From 4efcc36153f1d3650446b0e5172517a0040a8574 Mon Sep 17 00:00:00 2001 From: teocollin1995 Date: Thu, 8 Feb 2024 21:15:59 -0500 Subject: [PATCH 01/41] just a random start --- test/test_parallel.jl | 124 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 124 insertions(+) diff --git a/test/test_parallel.jl b/test/test_parallel.jl index 79fa55404..5c845ea8e 100644 --- a/test/test_parallel.jl +++ b/test/test_parallel.jl @@ -28,6 +28,130 @@ @test check_output("debug_parallel_spmv.txt", String(take!(io))) end + let + io = IOBuffer() + A = fsprand(42, 42, 0.1) + B = fsprand(42, 42, 0.1) + C = zeros(42, 42) + CR = A * B + + formats = [Dense, SparseList] + for fmtA1 in formats + for fmtA2 in formats + Af = fmatA2(fmatA1(Element(0.0))) + At = Tensor(Af, A) + for fmatB1 in formats + for fmatB2 in formats + Bf = fmatB2(fmatB1(Element(0.0))) + Bt = Tensor(Bf, B) + + Ct = Tensor(Dense(Dense(Element(0.0))), C) + + @repl io @finch_code begin + Ct .= 0 + for i = parallel(_) + for j = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end + @repl io @finch_code begin + Ct .= 0 + for i = parallel(_) + for j = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end + + @test Ct == CR + + + @repl io @finch_code begin + Ct .= 0 + for i = _ + for j = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end + @repl io @finch_code begin + Ct .= 0 + for i = _ + for j = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end + + @test Ct == CR + + @repl io @finch_code begin + Ct .= 0 + for j = parallel(_) + for i = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end + @repl io @finch_code begin + Ct .= 0 + for j = parallel(_) + for i = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end + + @test Ct == CR + + + @repl io @finch_code begin + Ct .= 0 + for j = _ + for i = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end + @repl io @finch_code begin + Ct .= 0 + for j = _ + for i = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end + + @test Ct == CR + + + end + end + + end + + @test check_output("debug_parallel_spmms_no_atomics.txt", String(take!(io))) + + + end + let io = IOBuffer() A = Tensor(Dense(SparseList(Element(0.0))), [1 2; 3 4]) From 9c1b3194aff54b137c35c280e71550285ae346be Mon Sep 17 00:00:00 2001 From: teocollin1995 Date: Fri, 9 Feb 2024 11:25:08 -0500 Subject: [PATCH 02/41] new passing parallel test + working on fix for atomics --- src/looplets/unfurl.jl | 4 +- src/tensors/levels/denselevels.jl | 2 + src/transforms/concurrent.jl | 11 +- .../debug_parallel_spmms_no_atomics.txt | 16124 ++++++++++++++++ test/test_parallel.jl | 32 +- 5 files changed, 16156 insertions(+), 17 deletions(-) create mode 100644 test/reference64/debug_parallel_spmms_no_atomics.txt diff --git a/src/looplets/unfurl.jl b/src/looplets/unfurl.jl index 398ab3d7d..7d54b7770 100644 --- a/src/looplets/unfurl.jl +++ b/src/looplets/unfurl.jl @@ -26,4 +26,6 @@ function unfurl(tns::Furlable, ctx, ext, mode, protos...) end unfurl(tns, ctx, ext, mode, protos...) = tns -instantiate(tns::Furlable, ctx, mode, protos) = tns \ No newline at end of file +instantiate(tns::Furlable, ctx, mode, protos) = tns +is_injective(tns:: Furlable, ctx) = is_injective(tns.body, ctx) +is_atomic(tns:: Furlable, ctx) = is_atomic(tns.body, ctx) \ No newline at end of file diff --git a/src/tensors/levels/denselevels.jl b/src/tensors/levels/denselevels.jl index 8aff5d819..b07cef6d5 100644 --- a/src/tensors/levels/denselevels.jl +++ b/src/tensors/levels/denselevels.jl @@ -211,3 +211,5 @@ function instantiate(trv::DenseTraversal, ctx, mode, subprotos, ::Union{typeof(d ) ) end + + diff --git a/src/transforms/concurrent.jl b/src/transforms/concurrent.jl index ea32488ae..bdd90c6d6 100644 --- a/src/transforms/concurrent.jl +++ b/src/transforms/concurrent.jl @@ -62,11 +62,16 @@ function ensure_concurrent(root, ctx) throw(FinchConcurrencyError("Nonlocal assignments to $(root) are not associative")) end + atomicity = (is_atomic(acc.tns, ctx)) + injectivity = (@capture(acc, access(~tns, ~mode, ~i..., idx)) ? (is_injective(tns, ctx), [length(i) + 1]) : ([false], [1])) + injectivityAlt = (@capture(acc, access(~tns, ~mode, ~i...)) ? (is_injective(tns, ctx), [length(i)]) : ([false], [1])) + testInjectivity = injectivity[1][injectivity[2]][1] + testInjectivityp = injectivityAlt[1][injectivityAlt[2]][1] if !( - (is_atomic(acc.tns, ctx)) || - (@capture(acc, access(~tns, ~mode, ~i..., idx)) && is_injective(tns, ctx)[length(i) + 1]) + atomicity || testInjectivity || testInjectivityp + ) - throw(FinchConcurrencyError("Cannot prove that $(acc) is safe to update from multiple threads")) + throw(FinchConcurrencyError("Cannot prove that $(acc) is safe to update from multiple threads due atomicity = $(atomicity) and injectivity = $(injectivity) and erg=$(injectivityAlt)")) end end diff --git a/test/reference64/debug_parallel_spmms_no_atomics.txt b/test/reference64/debug_parallel_spmms_no_atomics.txt new file mode 100644 index 000000000..1d0bc77cf --- /dev/null +++ b/test/reference64/debug_parallel_spmms_no_atomics.txt @@ -0,0 +1,16124 @@ +julia> @finch begin + CR .= 0 + for i = _ + for j = _ + for k = _ + CR[i, j] += A[i, k] * B[k, j] + end + end + end + end +(CR = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for i = parallel(_) + for j = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_4 = 1:Threads.nthreads() + phase_start_2 = max(1, 1 + fld(A_lvl.shape[1] * (i_4 + -1), Threads.nthreads())) + phase_stop_2 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_4, Threads.nthreads())) + if phase_stop_2 >= phase_start_2 + for i_7 = phase_start_2:phase_stop_2 + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_stop_3 = min(B_lvl.shape[2], B_lvl_i_stop) + if phase_stop_3 >= 1 + if B_lvl_tbl2[B_lvl_q] < 1 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_3 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_5 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_5 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_5 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_6 = min(B_lvl_i_2, phase_stop_5, A_lvl_i) + if A_lvl_i == phase_stop_6 && B_lvl_i_2 == phase_stop_6 + B_lvl_2_val = B_lvl_val[B_lvl_q_2] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_7 = min(i_7, A_lvl_i_stop_2) + if phase_stop_7 >= i_7 + if A_lvl_tbl1[A_lvl_q] < i_7 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_7 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_9 = min(A_lvl_i_2, phase_stop_7) + if A_lvl_i_2 == phase_stop_9 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_6 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_6 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_6 + 1 + end + end + B_lvl_q = B_lvl_q_step + else + phase_stop_14 = min(B_lvl_i, phase_stop_3) + if B_lvl_i == phase_stop_14 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_14 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_15 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_15 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_15 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_16 = min(B_lvl_i_2, A_lvl_i, phase_stop_15) + if A_lvl_i == phase_stop_16 && B_lvl_i_2 == phase_stop_16 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_17 = min(i_7, A_lvl_i_stop_4) + if phase_stop_17 >= i_7 + if A_lvl_tbl1[A_lvl_q] < i_7 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_17 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_19 = min(A_lvl_i_4, phase_stop_17) + if A_lvl_i_4 == phase_stop_19 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_16 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_16 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_16 + 1 + end + end + B_lvl_q = B_lvl_q_step + end + break + end + end + end + end + end + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for i = parallel(_) + for j = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for i = _ + for j = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + for i_4 = 1:A_lvl.shape[1] + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_ptr_2 = B_lvl_ptr + B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1_2 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_2 = B_lvl_tbl2 + B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + val_2 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr_2 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_2 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_2 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_3 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_5 = 1:Threads.nthreads() + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_5 + -1), Threads.nthreads())) + phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_5, Threads.nthreads())) + if phase_stop_2 >= phase_start_2 + if B_lvl_tbl2[B_lvl_q] < phase_start_2 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_2 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_4 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_4 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) + if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 + B_lvl_2_val = B_lvl_val[B_lvl_q_3] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_6 = min(i_4, A_lvl_i_stop_2) + if phase_stop_6 >= i_4 + if A_lvl_tbl1[A_lvl_q] < i_4 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_6 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_8 = min(A_lvl_i_2, phase_stop_6) + if A_lvl_i_2 == phase_stop_8 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_5 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_5 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_5 + 1 + end + end + B_lvl_q = B_lvl_q_step + else + phase_stop_13 = min(B_lvl_i, phase_stop_2) + if B_lvl_i == phase_stop_13 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_14 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_14 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) + if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_16 = min(i_4, A_lvl_i_stop_4) + if phase_stop_16 >= i_4 + if A_lvl_tbl1[A_lvl_q] < i_4 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_16 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_18 = min(A_lvl_i_4, phase_stop_16) + if A_lvl_i_4 == phase_stop_18 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_15 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_15 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_15 + 1 + end + end + B_lvl_q = B_lvl_q_step + end + break + end + end + end + end + Ct_lvl_2_val = val + B_lvl_ptr = B_lvl_ptr_2 + B_lvl_tbl1 = B_lvl_tbl1_2 + B_lvl_tbl2 = B_lvl_tbl2_2 + B_lvl_val = val_2 + A_lvl_ptr = A_lvl_ptr_2 + A_lvl_tbl1 = A_lvl_tbl1_2 + A_lvl_tbl2 = A_lvl_tbl2_2 + A_lvl_val = val_3 + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(Ct_lvl_2_val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for i = _ + for j = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for j = parallel(_) + for i = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_4 = 1:Threads.nthreads() + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_4 + -1), Threads.nthreads())) + phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_4, Threads.nthreads())) + if phase_stop_2 >= phase_start_2 + if B_lvl_tbl2[B_lvl_q] < phase_start_2 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_2 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + for i_6 = 1:A_lvl.shape[1] + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_6 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_4 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_4 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) + if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 + B_lvl_2_val = B_lvl_val[B_lvl_q_3] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_6 = min(i_6, A_lvl_i_stop_2) + if phase_stop_6 >= i_6 + if A_lvl_tbl1[A_lvl_q] < i_6 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_6, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_6 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_8 = min(A_lvl_i_2, phase_stop_6) + if A_lvl_i_2 == phase_stop_8 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_5 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_5 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_5 + 1 + end + end + end + B_lvl_q = B_lvl_q_step + else + phase_stop_13 = min(B_lvl_i, phase_stop_2) + if B_lvl_i == phase_stop_13 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 + for i_8 = 1:A_lvl.shape[1] + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_8 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_14 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_14 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) + if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_16 = min(i_8, A_lvl_i_stop_4) + if phase_stop_16 >= i_8 + if A_lvl_tbl1[A_lvl_q] < i_8 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_8, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_16 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_18 = min(A_lvl_i_4, phase_stop_16) + if A_lvl_i_4 == phase_stop_18 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_15 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_15 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_15 + 1 + end + end + end + B_lvl_q = B_lvl_q_step + end + break + end + end + end + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for j = parallel(_) + for i = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for j = _ + for i = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_stop = min(B_lvl.shape[2], B_lvl_i_stop) + if phase_stop >= 1 + if B_lvl_tbl2[B_lvl_q] < 1 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_tbl1_2 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_2 = B_lvl_tbl2 + val_2 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr_2 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_2 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_2 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_3 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_9 = 1:Threads.nthreads() + phase_start_6 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_9), Threads.nthreads())) + phase_stop_7 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_9, Threads.nthreads())) + if phase_stop_7 >= phase_start_6 + for i_12 = phase_start_6:phase_stop_7 + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_12 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_8 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_8 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_8 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_9 = min(B_lvl_i_2, phase_stop_8, A_lvl_i) + if A_lvl_i == phase_stop_9 && B_lvl_i_2 == phase_stop_9 + B_lvl_2_val = B_lvl_val[B_lvl_q_2] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_10 = min(i_12, A_lvl_i_stop_2) + if phase_stop_10 >= i_12 + if A_lvl_tbl1[A_lvl_q] < i_12 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_12, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_10 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_12 = min(A_lvl_i_2, phase_stop_10) + if A_lvl_i_2 == phase_stop_12 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_9 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_9 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_9 + 1 + end + end + end + end + end + Ct_lvl_2_val = val + B_lvl_tbl1 = B_lvl_tbl1_2 + B_lvl_tbl2 = B_lvl_tbl2_2 + B_lvl_val = val_2 + A_lvl_ptr = A_lvl_ptr_2 + A_lvl_tbl1 = A_lvl_tbl1_2 + A_lvl_tbl2 = A_lvl_tbl2_2 + A_lvl_val = val_3 + B_lvl_q = B_lvl_q_step + else + phase_stop_18 = min(B_lvl_i, phase_stop) + if B_lvl_i == phase_stop_18 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_18 + val_4 = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_tbl1_3 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_3 = B_lvl_tbl2 + val_5 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr_3 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_3 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_3 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_6 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_19 = 1:Threads.nthreads() + phase_start_21 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_19), Threads.nthreads())) + phase_stop_23 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_19, Threads.nthreads())) + if phase_stop_23 >= phase_start_21 + for i_22 = phase_start_21:phase_stop_23 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_22 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_24 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_24 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_24 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_25 = min(B_lvl_i_2, A_lvl_i, phase_stop_24) + if A_lvl_i == phase_stop_25 && B_lvl_i_2 == phase_stop_25 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_26 = min(i_22, A_lvl_i_stop_4) + if phase_stop_26 >= i_22 + if A_lvl_tbl1[A_lvl_q] < i_22 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_22, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_26 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_28 = min(A_lvl_i_4, phase_stop_26) + if A_lvl_i_4 == phase_stop_28 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_25 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_25 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_25 + 1 + end + end + end + end + end + Ct_lvl_2_val = val_4 + B_lvl_tbl1 = B_lvl_tbl1_3 + B_lvl_tbl2 = B_lvl_tbl2_3 + B_lvl_val = val_5 + A_lvl_ptr = A_lvl_ptr_3 + A_lvl_tbl1 = A_lvl_tbl1_3 + A_lvl_tbl2 = A_lvl_tbl2_3 + A_lvl_val = val_6 + B_lvl_q = B_lvl_q_step + end + break + end + end + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(Ct_lvl_2_val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for j = _ + for i = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for i = parallel(_) + for j = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_4 = 1:Threads.nthreads() + phase_start_2 = max(1, 1 + fld(A_lvl.shape[1] * (i_4 + -1), Threads.nthreads())) + phase_stop_2 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_4, Threads.nthreads())) + if phase_stop_2 >= phase_start_2 + for i_7 = phase_start_2:phase_stop_2 + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_stop_3 = min(B_lvl.shape[2], B_lvl_i_stop) + if phase_stop_3 >= 1 + if B_lvl_tbl2[B_lvl_q] < 1 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_3 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_5 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_5 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_5 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_6 = min(B_lvl_i_2, phase_stop_5, A_lvl_i) + if A_lvl_i == phase_stop_6 && B_lvl_i_2 == phase_stop_6 + B_lvl_2_val = B_lvl_val[B_lvl_q_2] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_7 = min(i_7, A_lvl_i_stop_2) + if phase_stop_7 >= i_7 + if A_lvl_tbl1[A_lvl_q] < i_7 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_7 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_9 = min(A_lvl_i_2, phase_stop_7) + if A_lvl_i_2 == phase_stop_9 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_6 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_6 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_6 + 1 + end + end + B_lvl_q = B_lvl_q_step + else + phase_stop_14 = min(B_lvl_i, phase_stop_3) + if B_lvl_i == phase_stop_14 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_14 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_15 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_15 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_15 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_16 = min(B_lvl_i_2, A_lvl_i, phase_stop_15) + if A_lvl_i == phase_stop_16 && B_lvl_i_2 == phase_stop_16 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_17 = min(i_7, A_lvl_i_stop_4) + if phase_stop_17 >= i_7 + if A_lvl_tbl1[A_lvl_q] < i_7 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_17 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_19 = min(A_lvl_i_4, phase_stop_17) + if A_lvl_i_4 == phase_stop_19 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_16 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_16 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_16 + 1 + end + end + B_lvl_q = B_lvl_q_step + end + break + end + end + end + end + end + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for i = parallel(_) + for j = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for i = _ + for j = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + for i_4 = 1:A_lvl.shape[1] + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_ptr_2 = B_lvl_ptr + B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1_2 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_2 = B_lvl_tbl2 + B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + val_2 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr_2 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_2 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_2 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_3 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_5 = 1:Threads.nthreads() + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_5 + -1), Threads.nthreads())) + phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_5, Threads.nthreads())) + if phase_stop_2 >= phase_start_2 + if B_lvl_tbl2[B_lvl_q] < phase_start_2 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_2 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_4 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_4 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) + if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 + B_lvl_2_val = B_lvl_val[B_lvl_q_3] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_6 = min(i_4, A_lvl_i_stop_2) + if phase_stop_6 >= i_4 + if A_lvl_tbl1[A_lvl_q] < i_4 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_6 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_8 = min(A_lvl_i_2, phase_stop_6) + if A_lvl_i_2 == phase_stop_8 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_5 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_5 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_5 + 1 + end + end + B_lvl_q = B_lvl_q_step + else + phase_stop_13 = min(B_lvl_i, phase_stop_2) + if B_lvl_i == phase_stop_13 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_14 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_14 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) + if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_16 = min(i_4, A_lvl_i_stop_4) + if phase_stop_16 >= i_4 + if A_lvl_tbl1[A_lvl_q] < i_4 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_16 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_18 = min(A_lvl_i_4, phase_stop_16) + if A_lvl_i_4 == phase_stop_18 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_15 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_15 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_15 + 1 + end + end + B_lvl_q = B_lvl_q_step + end + break + end + end + end + end + Ct_lvl_2_val = val + B_lvl_ptr = B_lvl_ptr_2 + B_lvl_tbl1 = B_lvl_tbl1_2 + B_lvl_tbl2 = B_lvl_tbl2_2 + B_lvl_val = val_2 + A_lvl_ptr = A_lvl_ptr_2 + A_lvl_tbl1 = A_lvl_tbl1_2 + A_lvl_tbl2 = A_lvl_tbl2_2 + A_lvl_val = val_3 + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(Ct_lvl_2_val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for i = _ + for j = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for j = parallel(_) + for i = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_4 = 1:Threads.nthreads() + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_4 + -1), Threads.nthreads())) + phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_4, Threads.nthreads())) + if phase_stop_2 >= phase_start_2 + if B_lvl_tbl2[B_lvl_q] < phase_start_2 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_2 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + for i_6 = 1:A_lvl.shape[1] + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_6 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_4 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_4 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) + if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 + B_lvl_2_val = B_lvl_val[B_lvl_q_3] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_6 = min(i_6, A_lvl_i_stop_2) + if phase_stop_6 >= i_6 + if A_lvl_tbl1[A_lvl_q] < i_6 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_6, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_6 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_8 = min(A_lvl_i_2, phase_stop_6) + if A_lvl_i_2 == phase_stop_8 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_5 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_5 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_5 + 1 + end + end + end + B_lvl_q = B_lvl_q_step + else + phase_stop_13 = min(B_lvl_i, phase_stop_2) + if B_lvl_i == phase_stop_13 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 + for i_8 = 1:A_lvl.shape[1] + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_8 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_14 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_14 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) + if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_16 = min(i_8, A_lvl_i_stop_4) + if phase_stop_16 >= i_8 + if A_lvl_tbl1[A_lvl_q] < i_8 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_8, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_16 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_18 = min(A_lvl_i_4, phase_stop_16) + if A_lvl_i_4 == phase_stop_18 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_15 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_15 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_15 + 1 + end + end + end + B_lvl_q = B_lvl_q_step + end + break + end + end + end + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for j = parallel(_) + for i = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for j = _ + for i = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_stop = min(B_lvl.shape[2], B_lvl_i_stop) + if phase_stop >= 1 + if B_lvl_tbl2[B_lvl_q] < 1 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_tbl1_2 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_2 = B_lvl_tbl2 + val_2 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr_2 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_2 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_2 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_3 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_9 = 1:Threads.nthreads() + phase_start_6 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_9), Threads.nthreads())) + phase_stop_7 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_9, Threads.nthreads())) + if phase_stop_7 >= phase_start_6 + for i_12 = phase_start_6:phase_stop_7 + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_12 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_8 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_8 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_8 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_9 = min(B_lvl_i_2, phase_stop_8, A_lvl_i) + if A_lvl_i == phase_stop_9 && B_lvl_i_2 == phase_stop_9 + B_lvl_2_val = B_lvl_val[B_lvl_q_2] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_10 = min(i_12, A_lvl_i_stop_2) + if phase_stop_10 >= i_12 + if A_lvl_tbl1[A_lvl_q] < i_12 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_12, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_10 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_12 = min(A_lvl_i_2, phase_stop_10) + if A_lvl_i_2 == phase_stop_12 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_9 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_9 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_9 + 1 + end + end + end + end + end + Ct_lvl_2_val = val + B_lvl_tbl1 = B_lvl_tbl1_2 + B_lvl_tbl2 = B_lvl_tbl2_2 + B_lvl_val = val_2 + A_lvl_ptr = A_lvl_ptr_2 + A_lvl_tbl1 = A_lvl_tbl1_2 + A_lvl_tbl2 = A_lvl_tbl2_2 + A_lvl_val = val_3 + B_lvl_q = B_lvl_q_step + else + phase_stop_18 = min(B_lvl_i, phase_stop) + if B_lvl_i == phase_stop_18 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_18 + val_4 = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_tbl1_3 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_3 = B_lvl_tbl2 + val_5 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr_3 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_3 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_3 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_6 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_19 = 1:Threads.nthreads() + phase_start_21 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_19), Threads.nthreads())) + phase_stop_23 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_19, Threads.nthreads())) + if phase_stop_23 >= phase_start_21 + for i_22 = phase_start_21:phase_stop_23 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_22 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_24 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_24 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_24 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_25 = min(B_lvl_i_2, A_lvl_i, phase_stop_24) + if A_lvl_i == phase_stop_25 && B_lvl_i_2 == phase_stop_25 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_26 = min(i_22, A_lvl_i_stop_4) + if phase_stop_26 >= i_22 + if A_lvl_tbl1[A_lvl_q] < i_22 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_22, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_26 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_28 = min(A_lvl_i_4, phase_stop_26) + if A_lvl_i_4 == phase_stop_28 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_25 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_25 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_25 + 1 + end + end + end + end + end + Ct_lvl_2_val = val_4 + B_lvl_tbl1 = B_lvl_tbl1_3 + B_lvl_tbl2 = B_lvl_tbl2_3 + B_lvl_val = val_5 + A_lvl_ptr = A_lvl_ptr_3 + A_lvl_tbl1 = A_lvl_tbl1_3 + A_lvl_tbl2 = A_lvl_tbl2_3 + A_lvl_val = val_6 + B_lvl_q = B_lvl_q_step + end + break + end + end + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(Ct_lvl_2_val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for j = _ + for i = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for i = parallel(_) + for j = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_4 = 1:Threads.nthreads() + phase_start_2 = max(1, 1 + fld(A_lvl.shape[1] * (i_4 + -1), Threads.nthreads())) + phase_stop_2 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_4, Threads.nthreads())) + if phase_stop_2 >= phase_start_2 + for i_7 = phase_start_2:phase_stop_2 + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_stop_3 = min(B_lvl.shape[2], B_lvl_i_stop) + if phase_stop_3 >= 1 + if B_lvl_tbl2[B_lvl_q] < 1 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_3 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_5 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_5 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_5 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_6 = min(B_lvl_i_2, phase_stop_5, A_lvl_i) + if A_lvl_i == phase_stop_6 && B_lvl_i_2 == phase_stop_6 + B_lvl_2_val = B_lvl_val[B_lvl_q_2] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_7 = min(i_7, A_lvl_i_stop_2) + if phase_stop_7 >= i_7 + if A_lvl_tbl1[A_lvl_q] < i_7 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_7 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_9 = min(A_lvl_i_2, phase_stop_7) + if A_lvl_i_2 == phase_stop_9 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_6 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_6 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_6 + 1 + end + end + B_lvl_q = B_lvl_q_step + else + phase_stop_14 = min(B_lvl_i, phase_stop_3) + if B_lvl_i == phase_stop_14 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_14 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_15 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_15 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_15 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_16 = min(B_lvl_i_2, A_lvl_i, phase_stop_15) + if A_lvl_i == phase_stop_16 && B_lvl_i_2 == phase_stop_16 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_17 = min(i_7, A_lvl_i_stop_4) + if phase_stop_17 >= i_7 + if A_lvl_tbl1[A_lvl_q] < i_7 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_17 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_19 = min(A_lvl_i_4, phase_stop_17) + if A_lvl_i_4 == phase_stop_19 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_16 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_16 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_16 + 1 + end + end + B_lvl_q = B_lvl_q_step + end + break + end + end + end + end + end + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for i = parallel(_) + for j = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for i = _ + for j = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + for i_4 = 1:A_lvl.shape[1] + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_ptr_2 = B_lvl_ptr + B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1_2 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_2 = B_lvl_tbl2 + B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + val_2 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr_2 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_2 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_2 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_3 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_5 = 1:Threads.nthreads() + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_5 + -1), Threads.nthreads())) + phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_5, Threads.nthreads())) + if phase_stop_2 >= phase_start_2 + if B_lvl_tbl2[B_lvl_q] < phase_start_2 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_2 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_4 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_4 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) + if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 + B_lvl_2_val = B_lvl_val[B_lvl_q_3] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_6 = min(i_4, A_lvl_i_stop_2) + if phase_stop_6 >= i_4 + if A_lvl_tbl1[A_lvl_q] < i_4 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_6 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_8 = min(A_lvl_i_2, phase_stop_6) + if A_lvl_i_2 == phase_stop_8 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_5 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_5 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_5 + 1 + end + end + B_lvl_q = B_lvl_q_step + else + phase_stop_13 = min(B_lvl_i, phase_stop_2) + if B_lvl_i == phase_stop_13 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_14 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_14 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) + if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_16 = min(i_4, A_lvl_i_stop_4) + if phase_stop_16 >= i_4 + if A_lvl_tbl1[A_lvl_q] < i_4 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_16 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_18 = min(A_lvl_i_4, phase_stop_16) + if A_lvl_i_4 == phase_stop_18 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_15 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_15 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_15 + 1 + end + end + B_lvl_q = B_lvl_q_step + end + break + end + end + end + end + Ct_lvl_2_val = val + B_lvl_ptr = B_lvl_ptr_2 + B_lvl_tbl1 = B_lvl_tbl1_2 + B_lvl_tbl2 = B_lvl_tbl2_2 + B_lvl_val = val_2 + A_lvl_ptr = A_lvl_ptr_2 + A_lvl_tbl1 = A_lvl_tbl1_2 + A_lvl_tbl2 = A_lvl_tbl2_2 + A_lvl_val = val_3 + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(Ct_lvl_2_val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for i = _ + for j = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for j = parallel(_) + for i = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_4 = 1:Threads.nthreads() + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_4 + -1), Threads.nthreads())) + phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_4, Threads.nthreads())) + if phase_stop_2 >= phase_start_2 + if B_lvl_tbl2[B_lvl_q] < phase_start_2 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_2 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + for i_6 = 1:A_lvl.shape[1] + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_6 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_4 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_4 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) + if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 + B_lvl_2_val = B_lvl_val[B_lvl_q_3] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_6 = min(i_6, A_lvl_i_stop_2) + if phase_stop_6 >= i_6 + if A_lvl_tbl1[A_lvl_q] < i_6 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_6, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_6 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_8 = min(A_lvl_i_2, phase_stop_6) + if A_lvl_i_2 == phase_stop_8 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_5 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_5 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_5 + 1 + end + end + end + B_lvl_q = B_lvl_q_step + else + phase_stop_13 = min(B_lvl_i, phase_stop_2) + if B_lvl_i == phase_stop_13 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 + for i_8 = 1:A_lvl.shape[1] + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_8 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_14 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_14 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) + if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_16 = min(i_8, A_lvl_i_stop_4) + if phase_stop_16 >= i_8 + if A_lvl_tbl1[A_lvl_q] < i_8 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_8, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_16 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_18 = min(A_lvl_i_4, phase_stop_16) + if A_lvl_i_4 == phase_stop_18 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_15 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_15 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_15 + 1 + end + end + end + B_lvl_q = B_lvl_q_step + end + break + end + end + end + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for j = parallel(_) + for i = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for j = _ + for i = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_stop = min(B_lvl.shape[2], B_lvl_i_stop) + if phase_stop >= 1 + if B_lvl_tbl2[B_lvl_q] < 1 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_tbl1_2 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_2 = B_lvl_tbl2 + val_2 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr_2 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_2 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_2 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_3 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_9 = 1:Threads.nthreads() + phase_start_6 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_9), Threads.nthreads())) + phase_stop_7 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_9, Threads.nthreads())) + if phase_stop_7 >= phase_start_6 + for i_12 = phase_start_6:phase_stop_7 + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_12 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_8 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_8 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_8 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_9 = min(B_lvl_i_2, phase_stop_8, A_lvl_i) + if A_lvl_i == phase_stop_9 && B_lvl_i_2 == phase_stop_9 + B_lvl_2_val = B_lvl_val[B_lvl_q_2] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_10 = min(i_12, A_lvl_i_stop_2) + if phase_stop_10 >= i_12 + if A_lvl_tbl1[A_lvl_q] < i_12 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_12, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_10 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_12 = min(A_lvl_i_2, phase_stop_10) + if A_lvl_i_2 == phase_stop_12 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_9 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_9 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_9 + 1 + end + end + end + end + end + Ct_lvl_2_val = val + B_lvl_tbl1 = B_lvl_tbl1_2 + B_lvl_tbl2 = B_lvl_tbl2_2 + B_lvl_val = val_2 + A_lvl_ptr = A_lvl_ptr_2 + A_lvl_tbl1 = A_lvl_tbl1_2 + A_lvl_tbl2 = A_lvl_tbl2_2 + A_lvl_val = val_3 + B_lvl_q = B_lvl_q_step + else + phase_stop_18 = min(B_lvl_i, phase_stop) + if B_lvl_i == phase_stop_18 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_18 + val_4 = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_tbl1_3 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_3 = B_lvl_tbl2 + val_5 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr_3 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_3 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_3 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_6 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_19 = 1:Threads.nthreads() + phase_start_21 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_19), Threads.nthreads())) + phase_stop_23 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_19, Threads.nthreads())) + if phase_stop_23 >= phase_start_21 + for i_22 = phase_start_21:phase_stop_23 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_22 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_24 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_24 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_24 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_25 = min(B_lvl_i_2, A_lvl_i, phase_stop_24) + if A_lvl_i == phase_stop_25 && B_lvl_i_2 == phase_stop_25 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_26 = min(i_22, A_lvl_i_stop_4) + if phase_stop_26 >= i_22 + if A_lvl_tbl1[A_lvl_q] < i_22 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_22, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_26 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_28 = min(A_lvl_i_4, phase_stop_26) + if A_lvl_i_4 == phase_stop_28 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_25 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_25 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_25 + 1 + end + end + end + end + end + Ct_lvl_2_val = val_4 + B_lvl_tbl1 = B_lvl_tbl1_3 + B_lvl_tbl2 = B_lvl_tbl2_3 + B_lvl_val = val_5 + A_lvl_ptr = A_lvl_ptr_3 + A_lvl_tbl1 = A_lvl_tbl1_3 + A_lvl_tbl2 = A_lvl_tbl2_3 + A_lvl_val = val_6 + B_lvl_q = B_lvl_q_step + end + break + end + end + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(Ct_lvl_2_val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for j = _ + for i = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for i = parallel(_) + for j = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_4 = 1:Threads.nthreads() + phase_start_2 = max(1, 1 + fld(A_lvl.shape[1] * (i_4 + -1), Threads.nthreads())) + phase_stop_2 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_4, Threads.nthreads())) + if phase_stop_2 >= phase_start_2 + for i_7 = phase_start_2:phase_stop_2 + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_stop_3 = min(B_lvl.shape[2], B_lvl_i_stop) + if phase_stop_3 >= 1 + if B_lvl_tbl2[B_lvl_q] < 1 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_3 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_5 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_5 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_5 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_6 = min(B_lvl_i_2, phase_stop_5, A_lvl_i) + if A_lvl_i == phase_stop_6 && B_lvl_i_2 == phase_stop_6 + B_lvl_2_val = B_lvl_val[B_lvl_q_2] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_7 = min(i_7, A_lvl_i_stop_2) + if phase_stop_7 >= i_7 + if A_lvl_tbl1[A_lvl_q] < i_7 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_7 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_9 = min(A_lvl_i_2, phase_stop_7) + if A_lvl_i_2 == phase_stop_9 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_6 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_6 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_6 + 1 + end + end + B_lvl_q = B_lvl_q_step + else + phase_stop_14 = min(B_lvl_i, phase_stop_3) + if B_lvl_i == phase_stop_14 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_14 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_15 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_15 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_15 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_16 = min(B_lvl_i_2, A_lvl_i, phase_stop_15) + if A_lvl_i == phase_stop_16 && B_lvl_i_2 == phase_stop_16 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_17 = min(i_7, A_lvl_i_stop_4) + if phase_stop_17 >= i_7 + if A_lvl_tbl1[A_lvl_q] < i_7 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_17 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_19 = min(A_lvl_i_4, phase_stop_17) + if A_lvl_i_4 == phase_stop_19 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_16 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_16 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_16 + 1 + end + end + B_lvl_q = B_lvl_q_step + end + break + end + end + end + end + end + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for i = parallel(_) + for j = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for i = _ + for j = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + for i_4 = 1:A_lvl.shape[1] + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_ptr_2 = B_lvl_ptr + B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1_2 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_2 = B_lvl_tbl2 + B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + val_2 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr_2 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_2 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_2 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_3 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_5 = 1:Threads.nthreads() + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_5 + -1), Threads.nthreads())) + phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_5, Threads.nthreads())) + if phase_stop_2 >= phase_start_2 + if B_lvl_tbl2[B_lvl_q] < phase_start_2 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_2 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_4 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_4 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) + if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 + B_lvl_2_val = B_lvl_val[B_lvl_q_3] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_6 = min(i_4, A_lvl_i_stop_2) + if phase_stop_6 >= i_4 + if A_lvl_tbl1[A_lvl_q] < i_4 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_6 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_8 = min(A_lvl_i_2, phase_stop_6) + if A_lvl_i_2 == phase_stop_8 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_5 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_5 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_5 + 1 + end + end + B_lvl_q = B_lvl_q_step + else + phase_stop_13 = min(B_lvl_i, phase_stop_2) + if B_lvl_i == phase_stop_13 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_14 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_14 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) + if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_16 = min(i_4, A_lvl_i_stop_4) + if phase_stop_16 >= i_4 + if A_lvl_tbl1[A_lvl_q] < i_4 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_16 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_18 = min(A_lvl_i_4, phase_stop_16) + if A_lvl_i_4 == phase_stop_18 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_15 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_15 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_15 + 1 + end + end + B_lvl_q = B_lvl_q_step + end + break + end + end + end + end + Ct_lvl_2_val = val + B_lvl_ptr = B_lvl_ptr_2 + B_lvl_tbl1 = B_lvl_tbl1_2 + B_lvl_tbl2 = B_lvl_tbl2_2 + B_lvl_val = val_2 + A_lvl_ptr = A_lvl_ptr_2 + A_lvl_tbl1 = A_lvl_tbl1_2 + A_lvl_tbl2 = A_lvl_tbl2_2 + A_lvl_val = val_3 + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(Ct_lvl_2_val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for i = _ + for j = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for j = parallel(_) + for i = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_4 = 1:Threads.nthreads() + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_4 + -1), Threads.nthreads())) + phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_4, Threads.nthreads())) + if phase_stop_2 >= phase_start_2 + if B_lvl_tbl2[B_lvl_q] < phase_start_2 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_2 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + for i_6 = 1:A_lvl.shape[1] + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_6 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_4 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_4 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) + if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 + B_lvl_2_val = B_lvl_val[B_lvl_q_3] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_6 = min(i_6, A_lvl_i_stop_2) + if phase_stop_6 >= i_6 + if A_lvl_tbl1[A_lvl_q] < i_6 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_6, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_6 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_8 = min(A_lvl_i_2, phase_stop_6) + if A_lvl_i_2 == phase_stop_8 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_5 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_5 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_5 + 1 + end + end + end + B_lvl_q = B_lvl_q_step + else + phase_stop_13 = min(B_lvl_i, phase_stop_2) + if B_lvl_i == phase_stop_13 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 + for i_8 = 1:A_lvl.shape[1] + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_8 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_14 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_14 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) + if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_16 = min(i_8, A_lvl_i_stop_4) + if phase_stop_16 >= i_8 + if A_lvl_tbl1[A_lvl_q] < i_8 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_8, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_16 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_18 = min(A_lvl_i_4, phase_stop_16) + if A_lvl_i_4 == phase_stop_18 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_15 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_15 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_15 + 1 + end + end + end + B_lvl_q = B_lvl_q_step + end + break + end + end + end + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for j = parallel(_) + for i = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for j = _ + for i = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_stop = min(B_lvl.shape[2], B_lvl_i_stop) + if phase_stop >= 1 + if B_lvl_tbl2[B_lvl_q] < 1 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_tbl1_2 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_2 = B_lvl_tbl2 + val_2 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr_2 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_2 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_2 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_3 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_9 = 1:Threads.nthreads() + phase_start_6 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_9), Threads.nthreads())) + phase_stop_7 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_9, Threads.nthreads())) + if phase_stop_7 >= phase_start_6 + for i_12 = phase_start_6:phase_stop_7 + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_12 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_8 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_8 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_8 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_9 = min(B_lvl_i_2, phase_stop_8, A_lvl_i) + if A_lvl_i == phase_stop_9 && B_lvl_i_2 == phase_stop_9 + B_lvl_2_val = B_lvl_val[B_lvl_q_2] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_10 = min(i_12, A_lvl_i_stop_2) + if phase_stop_10 >= i_12 + if A_lvl_tbl1[A_lvl_q] < i_12 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_12, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_10 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_12 = min(A_lvl_i_2, phase_stop_10) + if A_lvl_i_2 == phase_stop_12 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_9 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_9 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_9 + 1 + end + end + end + end + end + Ct_lvl_2_val = val + B_lvl_tbl1 = B_lvl_tbl1_2 + B_lvl_tbl2 = B_lvl_tbl2_2 + B_lvl_val = val_2 + A_lvl_ptr = A_lvl_ptr_2 + A_lvl_tbl1 = A_lvl_tbl1_2 + A_lvl_tbl2 = A_lvl_tbl2_2 + A_lvl_val = val_3 + B_lvl_q = B_lvl_q_step + else + phase_stop_18 = min(B_lvl_i, phase_stop) + if B_lvl_i == phase_stop_18 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_18 + val_4 = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_tbl1_3 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_3 = B_lvl_tbl2 + val_5 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr_3 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_3 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_3 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_6 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_19 = 1:Threads.nthreads() + phase_start_21 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_19), Threads.nthreads())) + phase_stop_23 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_19, Threads.nthreads())) + if phase_stop_23 >= phase_start_21 + for i_22 = phase_start_21:phase_stop_23 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_22 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_24 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_24 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_24 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_25 = min(B_lvl_i_2, A_lvl_i, phase_stop_24) + if A_lvl_i == phase_stop_25 && B_lvl_i_2 == phase_stop_25 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_26 = min(i_22, A_lvl_i_stop_4) + if phase_stop_26 >= i_22 + if A_lvl_tbl1[A_lvl_q] < i_22 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_22, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_26 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_28 = min(A_lvl_i_4, phase_stop_26) + if A_lvl_i_4 == phase_stop_28 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_25 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_25 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_25 + 1 + end + end + end + end + end + Ct_lvl_2_val = val_4 + B_lvl_tbl1 = B_lvl_tbl1_3 + B_lvl_tbl2 = B_lvl_tbl2_3 + B_lvl_val = val_5 + A_lvl_ptr = A_lvl_ptr_3 + A_lvl_tbl1 = A_lvl_tbl1_3 + A_lvl_tbl2 = A_lvl_tbl2_3 + A_lvl_val = val_6 + B_lvl_q = B_lvl_q_step + end + break + end + end + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(Ct_lvl_2_val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for j = _ + for i = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for i = parallel(_) + for j = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_4 = 1:Threads.nthreads() + phase_start_2 = max(1, 1 + fld(A_lvl.shape[1] * (i_4 + -1), Threads.nthreads())) + phase_stop_2 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_4, Threads.nthreads())) + if phase_stop_2 >= phase_start_2 + for i_7 = phase_start_2:phase_stop_2 + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_stop_3 = min(B_lvl.shape[2], B_lvl_i_stop) + if phase_stop_3 >= 1 + if B_lvl_tbl2[B_lvl_q] < 1 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_3 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_5 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_5 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_5 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_6 = min(B_lvl_i_2, phase_stop_5, A_lvl_i) + if A_lvl_i == phase_stop_6 && B_lvl_i_2 == phase_stop_6 + B_lvl_2_val = B_lvl_val[B_lvl_q_2] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_7 = min(i_7, A_lvl_i_stop_2) + if phase_stop_7 >= i_7 + if A_lvl_tbl1[A_lvl_q] < i_7 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_7 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_9 = min(A_lvl_i_2, phase_stop_7) + if A_lvl_i_2 == phase_stop_9 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_6 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_6 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_6 + 1 + end + end + B_lvl_q = B_lvl_q_step + else + phase_stop_14 = min(B_lvl_i, phase_stop_3) + if B_lvl_i == phase_stop_14 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_14 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_15 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_15 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_15 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_16 = min(B_lvl_i_2, A_lvl_i, phase_stop_15) + if A_lvl_i == phase_stop_16 && B_lvl_i_2 == phase_stop_16 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_17 = min(i_7, A_lvl_i_stop_4) + if phase_stop_17 >= i_7 + if A_lvl_tbl1[A_lvl_q] < i_7 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_17 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_19 = min(A_lvl_i_4, phase_stop_17) + if A_lvl_i_4 == phase_stop_19 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_16 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_16 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_16 + 1 + end + end + B_lvl_q = B_lvl_q_step + end + break + end + end + end + end + end + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for i = parallel(_) + for j = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for i = _ + for j = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + for i_4 = 1:A_lvl.shape[1] + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_ptr_2 = B_lvl_ptr + B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1_2 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_2 = B_lvl_tbl2 + B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + val_2 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr_2 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_2 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_2 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_3 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_5 = 1:Threads.nthreads() + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_5 + -1), Threads.nthreads())) + phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_5, Threads.nthreads())) + if phase_stop_2 >= phase_start_2 + if B_lvl_tbl2[B_lvl_q] < phase_start_2 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_2 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_4 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_4 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) + if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 + B_lvl_2_val = B_lvl_val[B_lvl_q_3] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_6 = min(i_4, A_lvl_i_stop_2) + if phase_stop_6 >= i_4 + if A_lvl_tbl1[A_lvl_q] < i_4 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_6 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_8 = min(A_lvl_i_2, phase_stop_6) + if A_lvl_i_2 == phase_stop_8 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_5 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_5 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_5 + 1 + end + end + B_lvl_q = B_lvl_q_step + else + phase_stop_13 = min(B_lvl_i, phase_stop_2) + if B_lvl_i == phase_stop_13 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_14 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_14 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) + if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_16 = min(i_4, A_lvl_i_stop_4) + if phase_stop_16 >= i_4 + if A_lvl_tbl1[A_lvl_q] < i_4 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_16 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_18 = min(A_lvl_i_4, phase_stop_16) + if A_lvl_i_4 == phase_stop_18 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_15 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_15 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_15 + 1 + end + end + B_lvl_q = B_lvl_q_step + end + break + end + end + end + end + Ct_lvl_2_val = val + B_lvl_ptr = B_lvl_ptr_2 + B_lvl_tbl1 = B_lvl_tbl1_2 + B_lvl_tbl2 = B_lvl_tbl2_2 + B_lvl_val = val_2 + A_lvl_ptr = A_lvl_ptr_2 + A_lvl_tbl1 = A_lvl_tbl1_2 + A_lvl_tbl2 = A_lvl_tbl2_2 + A_lvl_val = val_3 + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(Ct_lvl_2_val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for i = _ + for j = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for j = parallel(_) + for i = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_4 = 1:Threads.nthreads() + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_4 + -1), Threads.nthreads())) + phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_4, Threads.nthreads())) + if phase_stop_2 >= phase_start_2 + if B_lvl_tbl2[B_lvl_q] < phase_start_2 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_2 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + for i_6 = 1:A_lvl.shape[1] + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_6 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_4 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_4 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) + if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 + B_lvl_2_val = B_lvl_val[B_lvl_q_3] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_6 = min(i_6, A_lvl_i_stop_2) + if phase_stop_6 >= i_6 + if A_lvl_tbl1[A_lvl_q] < i_6 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_6, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_6 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_8 = min(A_lvl_i_2, phase_stop_6) + if A_lvl_i_2 == phase_stop_8 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_5 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_5 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_5 + 1 + end + end + end + B_lvl_q = B_lvl_q_step + else + phase_stop_13 = min(B_lvl_i, phase_stop_2) + if B_lvl_i == phase_stop_13 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 + for i_8 = 1:A_lvl.shape[1] + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_8 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_14 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_14 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) + if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_16 = min(i_8, A_lvl_i_stop_4) + if phase_stop_16 >= i_8 + if A_lvl_tbl1[A_lvl_q] < i_8 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_8, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_16 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_18 = min(A_lvl_i_4, phase_stop_16) + if A_lvl_i_4 == phase_stop_18 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_15 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_15 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_15 + 1 + end + end + end + B_lvl_q = B_lvl_q_step + end + break + end + end + end + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for j = parallel(_) + for i = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for j = _ + for i = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_stop = min(B_lvl.shape[2], B_lvl_i_stop) + if phase_stop >= 1 + if B_lvl_tbl2[B_lvl_q] < 1 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_tbl1_2 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_2 = B_lvl_tbl2 + val_2 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr_2 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_2 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_2 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_3 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_9 = 1:Threads.nthreads() + phase_start_6 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_9), Threads.nthreads())) + phase_stop_7 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_9, Threads.nthreads())) + if phase_stop_7 >= phase_start_6 + for i_12 = phase_start_6:phase_stop_7 + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_12 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_8 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_8 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_8 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_9 = min(B_lvl_i_2, phase_stop_8, A_lvl_i) + if A_lvl_i == phase_stop_9 && B_lvl_i_2 == phase_stop_9 + B_lvl_2_val = B_lvl_val[B_lvl_q_2] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_10 = min(i_12, A_lvl_i_stop_2) + if phase_stop_10 >= i_12 + if A_lvl_tbl1[A_lvl_q] < i_12 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_12, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_10 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_12 = min(A_lvl_i_2, phase_stop_10) + if A_lvl_i_2 == phase_stop_12 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_9 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_9 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_9 + 1 + end + end + end + end + end + Ct_lvl_2_val = val + B_lvl_tbl1 = B_lvl_tbl1_2 + B_lvl_tbl2 = B_lvl_tbl2_2 + B_lvl_val = val_2 + A_lvl_ptr = A_lvl_ptr_2 + A_lvl_tbl1 = A_lvl_tbl1_2 + A_lvl_tbl2 = A_lvl_tbl2_2 + A_lvl_val = val_3 + B_lvl_q = B_lvl_q_step + else + phase_stop_18 = min(B_lvl_i, phase_stop) + if B_lvl_i == phase_stop_18 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_18 + val_4 = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_tbl1_3 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_3 = B_lvl_tbl2 + val_5 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr_3 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_3 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_3 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_6 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_19 = 1:Threads.nthreads() + phase_start_21 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_19), Threads.nthreads())) + phase_stop_23 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_19, Threads.nthreads())) + if phase_stop_23 >= phase_start_21 + for i_22 = phase_start_21:phase_stop_23 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_22 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_24 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_24 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_24 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_25 = min(B_lvl_i_2, A_lvl_i, phase_stop_24) + if A_lvl_i == phase_stop_25 && B_lvl_i_2 == phase_stop_25 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_26 = min(i_22, A_lvl_i_stop_4) + if phase_stop_26 >= i_22 + if A_lvl_tbl1[A_lvl_q] < i_22 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_22, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_26 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_28 = min(A_lvl_i_4, phase_stop_26) + if A_lvl_i_4 == phase_stop_28 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_25 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_25 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_25 + 1 + end + end + end + end + end + Ct_lvl_2_val = val_4 + B_lvl_tbl1 = B_lvl_tbl1_3 + B_lvl_tbl2 = B_lvl_tbl2_3 + B_lvl_val = val_5 + A_lvl_ptr = A_lvl_ptr_3 + A_lvl_tbl1 = A_lvl_tbl1_3 + A_lvl_tbl2 = A_lvl_tbl2_3 + A_lvl_val = val_6 + B_lvl_q = B_lvl_q_step + end + break + end + end + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(Ct_lvl_2_val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for j = _ + for i = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for i = parallel(_) + for j = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_4 = 1:Threads.nthreads() + phase_start_2 = max(1, 1 + fld(A_lvl.shape[1] * (i_4 + -1), Threads.nthreads())) + phase_stop_2 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_4, Threads.nthreads())) + if phase_stop_2 >= phase_start_2 + for i_7 = phase_start_2:phase_stop_2 + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_stop_3 = min(B_lvl.shape[2], B_lvl_i_stop) + if phase_stop_3 >= 1 + if B_lvl_tbl2[B_lvl_q] < 1 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_3 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_5 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_5 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_5 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_6 = min(B_lvl_i_2, phase_stop_5, A_lvl_i) + if A_lvl_i == phase_stop_6 && B_lvl_i_2 == phase_stop_6 + B_lvl_2_val = B_lvl_val[B_lvl_q_2] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_7 = min(i_7, A_lvl_i_stop_2) + if phase_stop_7 >= i_7 + if A_lvl_tbl1[A_lvl_q] < i_7 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_7 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_9 = min(A_lvl_i_2, phase_stop_7) + if A_lvl_i_2 == phase_stop_9 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_6 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_6 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_6 + 1 + end + end + B_lvl_q = B_lvl_q_step + else + phase_stop_14 = min(B_lvl_i, phase_stop_3) + if B_lvl_i == phase_stop_14 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_14 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_15 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_15 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_15 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_16 = min(B_lvl_i_2, A_lvl_i, phase_stop_15) + if A_lvl_i == phase_stop_16 && B_lvl_i_2 == phase_stop_16 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_17 = min(i_7, A_lvl_i_stop_4) + if phase_stop_17 >= i_7 + if A_lvl_tbl1[A_lvl_q] < i_7 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_17 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_19 = min(A_lvl_i_4, phase_stop_17) + if A_lvl_i_4 == phase_stop_19 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_16 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_16 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_16 + 1 + end + end + B_lvl_q = B_lvl_q_step + end + break + end + end + end + end + end + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for i = parallel(_) + for j = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for i = _ + for j = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + for i_4 = 1:A_lvl.shape[1] + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_ptr_2 = B_lvl_ptr + B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1_2 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_2 = B_lvl_tbl2 + B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + val_2 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr_2 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_2 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_2 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_3 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_5 = 1:Threads.nthreads() + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_5 + -1), Threads.nthreads())) + phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_5, Threads.nthreads())) + if phase_stop_2 >= phase_start_2 + if B_lvl_tbl2[B_lvl_q] < phase_start_2 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_2 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_4 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_4 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) + if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 + B_lvl_2_val = B_lvl_val[B_lvl_q_3] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_6 = min(i_4, A_lvl_i_stop_2) + if phase_stop_6 >= i_4 + if A_lvl_tbl1[A_lvl_q] < i_4 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_6 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_8 = min(A_lvl_i_2, phase_stop_6) + if A_lvl_i_2 == phase_stop_8 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_5 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_5 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_5 + 1 + end + end + B_lvl_q = B_lvl_q_step + else + phase_stop_13 = min(B_lvl_i, phase_stop_2) + if B_lvl_i == phase_stop_13 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_14 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_14 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) + if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_16 = min(i_4, A_lvl_i_stop_4) + if phase_stop_16 >= i_4 + if A_lvl_tbl1[A_lvl_q] < i_4 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_16 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_18 = min(A_lvl_i_4, phase_stop_16) + if A_lvl_i_4 == phase_stop_18 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_15 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_15 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_15 + 1 + end + end + B_lvl_q = B_lvl_q_step + end + break + end + end + end + end + Ct_lvl_2_val = val + B_lvl_ptr = B_lvl_ptr_2 + B_lvl_tbl1 = B_lvl_tbl1_2 + B_lvl_tbl2 = B_lvl_tbl2_2 + B_lvl_val = val_2 + A_lvl_ptr = A_lvl_ptr_2 + A_lvl_tbl1 = A_lvl_tbl1_2 + A_lvl_tbl2 = A_lvl_tbl2_2 + A_lvl_val = val_3 + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(Ct_lvl_2_val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for i = _ + for j = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for j = parallel(_) + for i = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_4 = 1:Threads.nthreads() + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_4 + -1), Threads.nthreads())) + phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_4, Threads.nthreads())) + if phase_stop_2 >= phase_start_2 + if B_lvl_tbl2[B_lvl_q] < phase_start_2 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_2 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + for i_6 = 1:A_lvl.shape[1] + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_6 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_4 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_4 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) + if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 + B_lvl_2_val = B_lvl_val[B_lvl_q_3] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_6 = min(i_6, A_lvl_i_stop_2) + if phase_stop_6 >= i_6 + if A_lvl_tbl1[A_lvl_q] < i_6 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_6, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_6 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_8 = min(A_lvl_i_2, phase_stop_6) + if A_lvl_i_2 == phase_stop_8 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_5 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_5 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_5 + 1 + end + end + end + B_lvl_q = B_lvl_q_step + else + phase_stop_13 = min(B_lvl_i, phase_stop_2) + if B_lvl_i == phase_stop_13 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 + for i_8 = 1:A_lvl.shape[1] + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_8 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_14 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_14 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) + if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_16 = min(i_8, A_lvl_i_stop_4) + if phase_stop_16 >= i_8 + if A_lvl_tbl1[A_lvl_q] < i_8 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_8, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_16 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_18 = min(A_lvl_i_4, phase_stop_16) + if A_lvl_i_4 == phase_stop_18 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_15 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_15 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_15 + 1 + end + end + end + B_lvl_q = B_lvl_q_step + end + break + end + end + end + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for j = parallel(_) + for i = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for j = _ + for i = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_stop = min(B_lvl.shape[2], B_lvl_i_stop) + if phase_stop >= 1 + if B_lvl_tbl2[B_lvl_q] < 1 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_tbl1_2 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_2 = B_lvl_tbl2 + val_2 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr_2 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_2 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_2 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_3 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_9 = 1:Threads.nthreads() + phase_start_6 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_9), Threads.nthreads())) + phase_stop_7 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_9, Threads.nthreads())) + if phase_stop_7 >= phase_start_6 + for i_12 = phase_start_6:phase_stop_7 + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_12 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_8 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_8 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_8 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_9 = min(B_lvl_i_2, phase_stop_8, A_lvl_i) + if A_lvl_i == phase_stop_9 && B_lvl_i_2 == phase_stop_9 + B_lvl_2_val = B_lvl_val[B_lvl_q_2] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_10 = min(i_12, A_lvl_i_stop_2) + if phase_stop_10 >= i_12 + if A_lvl_tbl1[A_lvl_q] < i_12 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_12, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_10 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_12 = min(A_lvl_i_2, phase_stop_10) + if A_lvl_i_2 == phase_stop_12 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_9 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_9 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_9 + 1 + end + end + end + end + end + Ct_lvl_2_val = val + B_lvl_tbl1 = B_lvl_tbl1_2 + B_lvl_tbl2 = B_lvl_tbl2_2 + B_lvl_val = val_2 + A_lvl_ptr = A_lvl_ptr_2 + A_lvl_tbl1 = A_lvl_tbl1_2 + A_lvl_tbl2 = A_lvl_tbl2_2 + A_lvl_val = val_3 + B_lvl_q = B_lvl_q_step + else + phase_stop_18 = min(B_lvl_i, phase_stop) + if B_lvl_i == phase_stop_18 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_18 + val_4 = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_tbl1_3 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_3 = B_lvl_tbl2 + val_5 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr_3 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_3 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_3 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_6 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_19 = 1:Threads.nthreads() + phase_start_21 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_19), Threads.nthreads())) + phase_stop_23 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_19, Threads.nthreads())) + if phase_stop_23 >= phase_start_21 + for i_22 = phase_start_21:phase_stop_23 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_22 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_24 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_24 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_24 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_25 = min(B_lvl_i_2, A_lvl_i, phase_stop_24) + if A_lvl_i == phase_stop_25 && B_lvl_i_2 == phase_stop_25 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_26 = min(i_22, A_lvl_i_stop_4) + if phase_stop_26 >= i_22 + if A_lvl_tbl1[A_lvl_q] < i_22 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_22, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_26 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_28 = min(A_lvl_i_4, phase_stop_26) + if A_lvl_i_4 == phase_stop_28 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_25 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_25 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_25 + 1 + end + end + end + end + end + Ct_lvl_2_val = val_4 + B_lvl_tbl1 = B_lvl_tbl1_3 + B_lvl_tbl2 = B_lvl_tbl2_3 + B_lvl_val = val_5 + A_lvl_ptr = A_lvl_ptr_3 + A_lvl_tbl1 = A_lvl_tbl1_3 + A_lvl_tbl2 = A_lvl_tbl2_3 + A_lvl_val = val_6 + B_lvl_q = B_lvl_q_step + end + break + end + end + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(Ct_lvl_2_val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for j = _ + for i = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for i = parallel(_) + for j = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_4 = 1:Threads.nthreads() + phase_start_2 = max(1, 1 + fld(A_lvl.shape[1] * (i_4 + -1), Threads.nthreads())) + phase_stop_2 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_4, Threads.nthreads())) + if phase_stop_2 >= phase_start_2 + for i_7 = phase_start_2:phase_stop_2 + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_stop_3 = min(B_lvl.shape[2], B_lvl_i_stop) + if phase_stop_3 >= 1 + if B_lvl_tbl2[B_lvl_q] < 1 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_3 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_5 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_5 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_5 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_6 = min(B_lvl_i_2, phase_stop_5, A_lvl_i) + if A_lvl_i == phase_stop_6 && B_lvl_i_2 == phase_stop_6 + B_lvl_2_val = B_lvl_val[B_lvl_q_2] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_7 = min(i_7, A_lvl_i_stop_2) + if phase_stop_7 >= i_7 + if A_lvl_tbl1[A_lvl_q] < i_7 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_7 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_9 = min(A_lvl_i_2, phase_stop_7) + if A_lvl_i_2 == phase_stop_9 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_6 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_6 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_6 + 1 + end + end + B_lvl_q = B_lvl_q_step + else + phase_stop_14 = min(B_lvl_i, phase_stop_3) + if B_lvl_i == phase_stop_14 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_14 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_15 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_15 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_15 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_16 = min(B_lvl_i_2, A_lvl_i, phase_stop_15) + if A_lvl_i == phase_stop_16 && B_lvl_i_2 == phase_stop_16 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_17 = min(i_7, A_lvl_i_stop_4) + if phase_stop_17 >= i_7 + if A_lvl_tbl1[A_lvl_q] < i_7 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_17 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_19 = min(A_lvl_i_4, phase_stop_17) + if A_lvl_i_4 == phase_stop_19 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_16 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_16 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_16 + 1 + end + end + B_lvl_q = B_lvl_q_step + end + break + end + end + end + end + end + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for i = parallel(_) + for j = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for i = _ + for j = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + for i_4 = 1:A_lvl.shape[1] + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_ptr_2 = B_lvl_ptr + B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1_2 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_2 = B_lvl_tbl2 + B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + val_2 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr_2 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_2 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_2 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_3 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_5 = 1:Threads.nthreads() + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_5 + -1), Threads.nthreads())) + phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_5, Threads.nthreads())) + if phase_stop_2 >= phase_start_2 + if B_lvl_tbl2[B_lvl_q] < phase_start_2 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_2 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_4 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_4 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) + if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 + B_lvl_2_val = B_lvl_val[B_lvl_q_3] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_6 = min(i_4, A_lvl_i_stop_2) + if phase_stop_6 >= i_4 + if A_lvl_tbl1[A_lvl_q] < i_4 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_6 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_8 = min(A_lvl_i_2, phase_stop_6) + if A_lvl_i_2 == phase_stop_8 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_5 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_5 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_5 + 1 + end + end + B_lvl_q = B_lvl_q_step + else + phase_stop_13 = min(B_lvl_i, phase_stop_2) + if B_lvl_i == phase_stop_13 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_14 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_14 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) + if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_16 = min(i_4, A_lvl_i_stop_4) + if phase_stop_16 >= i_4 + if A_lvl_tbl1[A_lvl_q] < i_4 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_16 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_18 = min(A_lvl_i_4, phase_stop_16) + if A_lvl_i_4 == phase_stop_18 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_15 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_15 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_15 + 1 + end + end + B_lvl_q = B_lvl_q_step + end + break + end + end + end + end + Ct_lvl_2_val = val + B_lvl_ptr = B_lvl_ptr_2 + B_lvl_tbl1 = B_lvl_tbl1_2 + B_lvl_tbl2 = B_lvl_tbl2_2 + B_lvl_val = val_2 + A_lvl_ptr = A_lvl_ptr_2 + A_lvl_tbl1 = A_lvl_tbl1_2 + A_lvl_tbl2 = A_lvl_tbl2_2 + A_lvl_val = val_3 + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(Ct_lvl_2_val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for i = _ + for j = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for j = parallel(_) + for i = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_4 = 1:Threads.nthreads() + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_4 + -1), Threads.nthreads())) + phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_4, Threads.nthreads())) + if phase_stop_2 >= phase_start_2 + if B_lvl_tbl2[B_lvl_q] < phase_start_2 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_2 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + for i_6 = 1:A_lvl.shape[1] + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_6 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_4 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_4 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) + if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 + B_lvl_2_val = B_lvl_val[B_lvl_q_3] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_6 = min(i_6, A_lvl_i_stop_2) + if phase_stop_6 >= i_6 + if A_lvl_tbl1[A_lvl_q] < i_6 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_6, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_6 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_8 = min(A_lvl_i_2, phase_stop_6) + if A_lvl_i_2 == phase_stop_8 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_5 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_5 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_5 + 1 + end + end + end + B_lvl_q = B_lvl_q_step + else + phase_stop_13 = min(B_lvl_i, phase_stop_2) + if B_lvl_i == phase_stop_13 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 + for i_8 = 1:A_lvl.shape[1] + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_8 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_14 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_14 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) + if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_16 = min(i_8, A_lvl_i_stop_4) + if phase_stop_16 >= i_8 + if A_lvl_tbl1[A_lvl_q] < i_8 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_8, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_16 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_18 = min(A_lvl_i_4, phase_stop_16) + if A_lvl_i_4 == phase_stop_18 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_15 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_15 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_15 + 1 + end + end + end + B_lvl_q = B_lvl_q_step + end + break + end + end + end + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for j = parallel(_) + for i = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for j = _ + for i = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_stop = min(B_lvl.shape[2], B_lvl_i_stop) + if phase_stop >= 1 + if B_lvl_tbl2[B_lvl_q] < 1 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_tbl1_2 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_2 = B_lvl_tbl2 + val_2 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr_2 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_2 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_2 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_3 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_9 = 1:Threads.nthreads() + phase_start_6 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_9), Threads.nthreads())) + phase_stop_7 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_9, Threads.nthreads())) + if phase_stop_7 >= phase_start_6 + for i_12 = phase_start_6:phase_stop_7 + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_12 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_8 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_8 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_8 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_9 = min(B_lvl_i_2, phase_stop_8, A_lvl_i) + if A_lvl_i == phase_stop_9 && B_lvl_i_2 == phase_stop_9 + B_lvl_2_val = B_lvl_val[B_lvl_q_2] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_10 = min(i_12, A_lvl_i_stop_2) + if phase_stop_10 >= i_12 + if A_lvl_tbl1[A_lvl_q] < i_12 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_12, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_10 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_12 = min(A_lvl_i_2, phase_stop_10) + if A_lvl_i_2 == phase_stop_12 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_9 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_9 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_9 + 1 + end + end + end + end + end + Ct_lvl_2_val = val + B_lvl_tbl1 = B_lvl_tbl1_2 + B_lvl_tbl2 = B_lvl_tbl2_2 + B_lvl_val = val_2 + A_lvl_ptr = A_lvl_ptr_2 + A_lvl_tbl1 = A_lvl_tbl1_2 + A_lvl_tbl2 = A_lvl_tbl2_2 + A_lvl_val = val_3 + B_lvl_q = B_lvl_q_step + else + phase_stop_18 = min(B_lvl_i, phase_stop) + if B_lvl_i == phase_stop_18 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_18 + val_4 = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_tbl1_3 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_3 = B_lvl_tbl2 + val_5 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr_3 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_3 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_3 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_6 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_19 = 1:Threads.nthreads() + phase_start_21 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_19), Threads.nthreads())) + phase_stop_23 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_19, Threads.nthreads())) + if phase_stop_23 >= phase_start_21 + for i_22 = phase_start_21:phase_stop_23 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_22 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_24 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_24 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_24 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_25 = min(B_lvl_i_2, A_lvl_i, phase_stop_24) + if A_lvl_i == phase_stop_25 && B_lvl_i_2 == phase_stop_25 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_26 = min(i_22, A_lvl_i_stop_4) + if phase_stop_26 >= i_22 + if A_lvl_tbl1[A_lvl_q] < i_22 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_22, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_26 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_28 = min(A_lvl_i_4, phase_stop_26) + if A_lvl_i_4 == phase_stop_28 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_25 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_25 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_25 + 1 + end + end + end + end + end + Ct_lvl_2_val = val_4 + B_lvl_tbl1 = B_lvl_tbl1_3 + B_lvl_tbl2 = B_lvl_tbl2_3 + B_lvl_val = val_5 + A_lvl_ptr = A_lvl_ptr_3 + A_lvl_tbl1 = A_lvl_tbl1_3 + A_lvl_tbl2 = A_lvl_tbl2_3 + A_lvl_val = val_6 + B_lvl_q = B_lvl_q_step + end + break + end + end + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(Ct_lvl_2_val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for j = _ + for i = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for i = parallel(_) + for j = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_4 = 1:Threads.nthreads() + phase_start_2 = max(1, 1 + fld(A_lvl.shape[1] * (i_4 + -1), Threads.nthreads())) + phase_stop_2 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_4, Threads.nthreads())) + if phase_stop_2 >= phase_start_2 + for i_7 = phase_start_2:phase_stop_2 + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_stop_3 = min(B_lvl.shape[2], B_lvl_i_stop) + if phase_stop_3 >= 1 + if B_lvl_tbl2[B_lvl_q] < 1 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_3 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_5 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_5 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_5 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_6 = min(B_lvl_i_2, phase_stop_5, A_lvl_i) + if A_lvl_i == phase_stop_6 && B_lvl_i_2 == phase_stop_6 + B_lvl_2_val = B_lvl_val[B_lvl_q_2] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_7 = min(i_7, A_lvl_i_stop_2) + if phase_stop_7 >= i_7 + if A_lvl_tbl1[A_lvl_q] < i_7 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_7 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_9 = min(A_lvl_i_2, phase_stop_7) + if A_lvl_i_2 == phase_stop_9 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_6 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_6 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_6 + 1 + end + end + B_lvl_q = B_lvl_q_step + else + phase_stop_14 = min(B_lvl_i, phase_stop_3) + if B_lvl_i == phase_stop_14 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_14 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_15 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_15 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_15 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_16 = min(B_lvl_i_2, A_lvl_i, phase_stop_15) + if A_lvl_i == phase_stop_16 && B_lvl_i_2 == phase_stop_16 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_17 = min(i_7, A_lvl_i_stop_4) + if phase_stop_17 >= i_7 + if A_lvl_tbl1[A_lvl_q] < i_7 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_17 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_19 = min(A_lvl_i_4, phase_stop_17) + if A_lvl_i_4 == phase_stop_19 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_16 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_16 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_16 + 1 + end + end + B_lvl_q = B_lvl_q_step + end + break + end + end + end + end + end + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for i = parallel(_) + for j = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for i = _ + for j = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + for i_4 = 1:A_lvl.shape[1] + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_ptr_2 = B_lvl_ptr + B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1_2 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_2 = B_lvl_tbl2 + B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + val_2 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr_2 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_2 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_2 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_3 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_5 = 1:Threads.nthreads() + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_5 + -1), Threads.nthreads())) + phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_5, Threads.nthreads())) + if phase_stop_2 >= phase_start_2 + if B_lvl_tbl2[B_lvl_q] < phase_start_2 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_2 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_4 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_4 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) + if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 + B_lvl_2_val = B_lvl_val[B_lvl_q_3] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_6 = min(i_4, A_lvl_i_stop_2) + if phase_stop_6 >= i_4 + if A_lvl_tbl1[A_lvl_q] < i_4 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_6 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_8 = min(A_lvl_i_2, phase_stop_6) + if A_lvl_i_2 == phase_stop_8 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_5 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_5 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_5 + 1 + end + end + B_lvl_q = B_lvl_q_step + else + phase_stop_13 = min(B_lvl_i, phase_stop_2) + if B_lvl_i == phase_stop_13 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_14 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_14 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) + if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_16 = min(i_4, A_lvl_i_stop_4) + if phase_stop_16 >= i_4 + if A_lvl_tbl1[A_lvl_q] < i_4 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_16 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_18 = min(A_lvl_i_4, phase_stop_16) + if A_lvl_i_4 == phase_stop_18 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_15 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_15 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_15 + 1 + end + end + B_lvl_q = B_lvl_q_step + end + break + end + end + end + end + Ct_lvl_2_val = val + B_lvl_ptr = B_lvl_ptr_2 + B_lvl_tbl1 = B_lvl_tbl1_2 + B_lvl_tbl2 = B_lvl_tbl2_2 + B_lvl_val = val_2 + A_lvl_ptr = A_lvl_ptr_2 + A_lvl_tbl1 = A_lvl_tbl1_2 + A_lvl_tbl2 = A_lvl_tbl2_2 + A_lvl_val = val_3 + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(Ct_lvl_2_val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for i = _ + for j = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for j = parallel(_) + for i = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_4 = 1:Threads.nthreads() + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_4 + -1), Threads.nthreads())) + phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_4, Threads.nthreads())) + if phase_stop_2 >= phase_start_2 + if B_lvl_tbl2[B_lvl_q] < phase_start_2 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_2 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + for i_6 = 1:A_lvl.shape[1] + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_6 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_4 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_4 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) + if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 + B_lvl_2_val = B_lvl_val[B_lvl_q_3] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_6 = min(i_6, A_lvl_i_stop_2) + if phase_stop_6 >= i_6 + if A_lvl_tbl1[A_lvl_q] < i_6 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_6, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_6 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_8 = min(A_lvl_i_2, phase_stop_6) + if A_lvl_i_2 == phase_stop_8 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_5 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_5 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_5 + 1 + end + end + end + B_lvl_q = B_lvl_q_step + else + phase_stop_13 = min(B_lvl_i, phase_stop_2) + if B_lvl_i == phase_stop_13 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 + for i_8 = 1:A_lvl.shape[1] + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_8 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_14 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_14 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) + if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_16 = min(i_8, A_lvl_i_stop_4) + if phase_stop_16 >= i_8 + if A_lvl_tbl1[A_lvl_q] < i_8 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_8, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_16 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_18 = min(A_lvl_i_4, phase_stop_16) + if A_lvl_i_4 == phase_stop_18 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_15 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_15 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_15 + 1 + end + end + end + B_lvl_q = B_lvl_q_step + end + break + end + end + end + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for j = parallel(_) + for i = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for j = _ + for i = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_stop = min(B_lvl.shape[2], B_lvl_i_stop) + if phase_stop >= 1 + if B_lvl_tbl2[B_lvl_q] < 1 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_tbl1_2 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_2 = B_lvl_tbl2 + val_2 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr_2 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_2 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_2 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_3 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_9 = 1:Threads.nthreads() + phase_start_6 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_9), Threads.nthreads())) + phase_stop_7 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_9, Threads.nthreads())) + if phase_stop_7 >= phase_start_6 + for i_12 = phase_start_6:phase_stop_7 + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_12 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_8 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_8 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_8 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_9 = min(B_lvl_i_2, phase_stop_8, A_lvl_i) + if A_lvl_i == phase_stop_9 && B_lvl_i_2 == phase_stop_9 + B_lvl_2_val = B_lvl_val[B_lvl_q_2] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_10 = min(i_12, A_lvl_i_stop_2) + if phase_stop_10 >= i_12 + if A_lvl_tbl1[A_lvl_q] < i_12 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_12, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_10 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_12 = min(A_lvl_i_2, phase_stop_10) + if A_lvl_i_2 == phase_stop_12 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_9 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_9 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_9 + 1 + end + end + end + end + end + Ct_lvl_2_val = val + B_lvl_tbl1 = B_lvl_tbl1_2 + B_lvl_tbl2 = B_lvl_tbl2_2 + B_lvl_val = val_2 + A_lvl_ptr = A_lvl_ptr_2 + A_lvl_tbl1 = A_lvl_tbl1_2 + A_lvl_tbl2 = A_lvl_tbl2_2 + A_lvl_val = val_3 + B_lvl_q = B_lvl_q_step + else + phase_stop_18 = min(B_lvl_i, phase_stop) + if B_lvl_i == phase_stop_18 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_18 + val_4 = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_tbl1_3 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_3 = B_lvl_tbl2 + val_5 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr_3 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_3 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_3 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_6 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_19 = 1:Threads.nthreads() + phase_start_21 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_19), Threads.nthreads())) + phase_stop_23 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_19, Threads.nthreads())) + if phase_stop_23 >= phase_start_21 + for i_22 = phase_start_21:phase_stop_23 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_22 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_24 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_24 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_24 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_25 = min(B_lvl_i_2, A_lvl_i, phase_stop_24) + if A_lvl_i == phase_stop_25 && B_lvl_i_2 == phase_stop_25 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_26 = min(i_22, A_lvl_i_stop_4) + if phase_stop_26 >= i_22 + if A_lvl_tbl1[A_lvl_q] < i_22 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_22, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_26 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_28 = min(A_lvl_i_4, phase_stop_26) + if A_lvl_i_4 == phase_stop_28 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_25 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_25 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_25 + 1 + end + end + end + end + end + Ct_lvl_2_val = val_4 + B_lvl_tbl1 = B_lvl_tbl1_3 + B_lvl_tbl2 = B_lvl_tbl2_3 + B_lvl_val = val_5 + A_lvl_ptr = A_lvl_ptr_3 + A_lvl_tbl1 = A_lvl_tbl1_3 + A_lvl_tbl2 = A_lvl_tbl2_3 + A_lvl_val = val_6 + B_lvl_q = B_lvl_q_step + end + break + end + end + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(Ct_lvl_2_val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for j = _ + for i = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for i = parallel(_) + for j = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_4 = 1:Threads.nthreads() + phase_start_2 = max(1, 1 + fld(A_lvl.shape[1] * (i_4 + -1), Threads.nthreads())) + phase_stop_2 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_4, Threads.nthreads())) + if phase_stop_2 >= phase_start_2 + for i_7 = phase_start_2:phase_stop_2 + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_stop_3 = min(B_lvl.shape[2], B_lvl_i_stop) + if phase_stop_3 >= 1 + if B_lvl_tbl2[B_lvl_q] < 1 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_3 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_5 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_5 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_5 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_6 = min(B_lvl_i_2, phase_stop_5, A_lvl_i) + if A_lvl_i == phase_stop_6 && B_lvl_i_2 == phase_stop_6 + B_lvl_2_val = B_lvl_val[B_lvl_q_2] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_7 = min(i_7, A_lvl_i_stop_2) + if phase_stop_7 >= i_7 + if A_lvl_tbl1[A_lvl_q] < i_7 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_7 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_9 = min(A_lvl_i_2, phase_stop_7) + if A_lvl_i_2 == phase_stop_9 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_6 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_6 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_6 + 1 + end + end + B_lvl_q = B_lvl_q_step + else + phase_stop_14 = min(B_lvl_i, phase_stop_3) + if B_lvl_i == phase_stop_14 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_14 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_15 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_15 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_15 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_16 = min(B_lvl_i_2, A_lvl_i, phase_stop_15) + if A_lvl_i == phase_stop_16 && B_lvl_i_2 == phase_stop_16 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_17 = min(i_7, A_lvl_i_stop_4) + if phase_stop_17 >= i_7 + if A_lvl_tbl1[A_lvl_q] < i_7 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_17 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_19 = min(A_lvl_i_4, phase_stop_17) + if A_lvl_i_4 == phase_stop_19 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_16 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_16 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_16 + 1 + end + end + B_lvl_q = B_lvl_q_step + end + break + end + end + end + end + end + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for i = parallel(_) + for j = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for i = _ + for j = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + for i_4 = 1:A_lvl.shape[1] + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_ptr_2 = B_lvl_ptr + B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1_2 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_2 = B_lvl_tbl2 + B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + val_2 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr_2 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_2 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_2 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_3 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_5 = 1:Threads.nthreads() + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_5 + -1), Threads.nthreads())) + phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_5, Threads.nthreads())) + if phase_stop_2 >= phase_start_2 + if B_lvl_tbl2[B_lvl_q] < phase_start_2 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_2 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_4 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_4 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) + if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 + B_lvl_2_val = B_lvl_val[B_lvl_q_3] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_6 = min(i_4, A_lvl_i_stop_2) + if phase_stop_6 >= i_4 + if A_lvl_tbl1[A_lvl_q] < i_4 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_6 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_8 = min(A_lvl_i_2, phase_stop_6) + if A_lvl_i_2 == phase_stop_8 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_5 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_5 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_5 + 1 + end + end + B_lvl_q = B_lvl_q_step + else + phase_stop_13 = min(B_lvl_i, phase_stop_2) + if B_lvl_i == phase_stop_13 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_14 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_14 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) + if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_16 = min(i_4, A_lvl_i_stop_4) + if phase_stop_16 >= i_4 + if A_lvl_tbl1[A_lvl_q] < i_4 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_16 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_18 = min(A_lvl_i_4, phase_stop_16) + if A_lvl_i_4 == phase_stop_18 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_15 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_15 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_15 + 1 + end + end + B_lvl_q = B_lvl_q_step + end + break + end + end + end + end + Ct_lvl_2_val = val + B_lvl_ptr = B_lvl_ptr_2 + B_lvl_tbl1 = B_lvl_tbl1_2 + B_lvl_tbl2 = B_lvl_tbl2_2 + B_lvl_val = val_2 + A_lvl_ptr = A_lvl_ptr_2 + A_lvl_tbl1 = A_lvl_tbl1_2 + A_lvl_tbl2 = A_lvl_tbl2_2 + A_lvl_val = val_3 + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(Ct_lvl_2_val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for i = _ + for j = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for j = parallel(_) + for i = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_4 = 1:Threads.nthreads() + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_4 + -1), Threads.nthreads())) + phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_4, Threads.nthreads())) + if phase_stop_2 >= phase_start_2 + if B_lvl_tbl2[B_lvl_q] < phase_start_2 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_2 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + for i_6 = 1:A_lvl.shape[1] + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_6 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_4 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_4 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) + if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 + B_lvl_2_val = B_lvl_val[B_lvl_q_3] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_6 = min(i_6, A_lvl_i_stop_2) + if phase_stop_6 >= i_6 + if A_lvl_tbl1[A_lvl_q] < i_6 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_6, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_6 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_8 = min(A_lvl_i_2, phase_stop_6) + if A_lvl_i_2 == phase_stop_8 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_5 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_5 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_5 + 1 + end + end + end + B_lvl_q = B_lvl_q_step + else + phase_stop_13 = min(B_lvl_i, phase_stop_2) + if B_lvl_i == phase_stop_13 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 + for i_8 = 1:A_lvl.shape[1] + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_8 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_14 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_14 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) + if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_16 = min(i_8, A_lvl_i_stop_4) + if phase_stop_16 >= i_8 + if A_lvl_tbl1[A_lvl_q] < i_8 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_8, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_16 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_18 = min(A_lvl_i_4, phase_stop_16) + if A_lvl_i_4 == phase_stop_18 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_15 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_15 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_15 + 1 + end + end + end + B_lvl_q = B_lvl_q_step + end + break + end + end + end + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for j = parallel(_) + for i = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for j = _ + for i = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_stop = min(B_lvl.shape[2], B_lvl_i_stop) + if phase_stop >= 1 + if B_lvl_tbl2[B_lvl_q] < 1 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_tbl1_2 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_2 = B_lvl_tbl2 + val_2 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr_2 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_2 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_2 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_3 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_9 = 1:Threads.nthreads() + phase_start_6 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_9), Threads.nthreads())) + phase_stop_7 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_9, Threads.nthreads())) + if phase_stop_7 >= phase_start_6 + for i_12 = phase_start_6:phase_stop_7 + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_12 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_8 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_8 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_8 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_9 = min(B_lvl_i_2, phase_stop_8, A_lvl_i) + if A_lvl_i == phase_stop_9 && B_lvl_i_2 == phase_stop_9 + B_lvl_2_val = B_lvl_val[B_lvl_q_2] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_10 = min(i_12, A_lvl_i_stop_2) + if phase_stop_10 >= i_12 + if A_lvl_tbl1[A_lvl_q] < i_12 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_12, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_10 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_12 = min(A_lvl_i_2, phase_stop_10) + if A_lvl_i_2 == phase_stop_12 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_9 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_9 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_9 + 1 + end + end + end + end + end + Ct_lvl_2_val = val + B_lvl_tbl1 = B_lvl_tbl1_2 + B_lvl_tbl2 = B_lvl_tbl2_2 + B_lvl_val = val_2 + A_lvl_ptr = A_lvl_ptr_2 + A_lvl_tbl1 = A_lvl_tbl1_2 + A_lvl_tbl2 = A_lvl_tbl2_2 + A_lvl_val = val_3 + B_lvl_q = B_lvl_q_step + else + phase_stop_18 = min(B_lvl_i, phase_stop) + if B_lvl_i == phase_stop_18 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_18 + val_4 = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_tbl1_3 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_3 = B_lvl_tbl2 + val_5 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr_3 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_3 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_3 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_6 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_19 = 1:Threads.nthreads() + phase_start_21 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_19), Threads.nthreads())) + phase_stop_23 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_19, Threads.nthreads())) + if phase_stop_23 >= phase_start_21 + for i_22 = phase_start_21:phase_stop_23 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_22 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_24 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_24 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_24 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_25 = min(B_lvl_i_2, A_lvl_i, phase_stop_24) + if A_lvl_i == phase_stop_25 && B_lvl_i_2 == phase_stop_25 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_26 = min(i_22, A_lvl_i_stop_4) + if phase_stop_26 >= i_22 + if A_lvl_tbl1[A_lvl_q] < i_22 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_22, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_26 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_28 = min(A_lvl_i_4, phase_stop_26) + if A_lvl_i_4 == phase_stop_28 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_25 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_25 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_25 + 1 + end + end + end + end + end + Ct_lvl_2_val = val_4 + B_lvl_tbl1 = B_lvl_tbl1_3 + B_lvl_tbl2 = B_lvl_tbl2_3 + B_lvl_val = val_5 + A_lvl_ptr = A_lvl_ptr_3 + A_lvl_tbl1 = A_lvl_tbl1_3 + A_lvl_tbl2 = A_lvl_tbl2_3 + A_lvl_val = val_6 + B_lvl_q = B_lvl_q_step + end + break + end + end + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(Ct_lvl_2_val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for j = _ + for i = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for i = parallel(_) + for j = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_4 = 1:Threads.nthreads() + phase_start_2 = max(1, 1 + fld(A_lvl.shape[1] * (i_4 + -1), Threads.nthreads())) + phase_stop_2 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_4, Threads.nthreads())) + if phase_stop_2 >= phase_start_2 + for i_7 = phase_start_2:phase_stop_2 + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_stop_3 = min(B_lvl.shape[2], B_lvl_i_stop) + if phase_stop_3 >= 1 + if B_lvl_tbl2[B_lvl_q] < 1 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_3 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_5 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_5 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_5 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_6 = min(B_lvl_i_2, phase_stop_5, A_lvl_i) + if A_lvl_i == phase_stop_6 && B_lvl_i_2 == phase_stop_6 + B_lvl_2_val = B_lvl_val[B_lvl_q_2] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_7 = min(i_7, A_lvl_i_stop_2) + if phase_stop_7 >= i_7 + if A_lvl_tbl1[A_lvl_q] < i_7 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_7 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_9 = min(A_lvl_i_2, phase_stop_7) + if A_lvl_i_2 == phase_stop_9 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_6 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_6 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_6 + 1 + end + end + B_lvl_q = B_lvl_q_step + else + phase_stop_14 = min(B_lvl_i, phase_stop_3) + if B_lvl_i == phase_stop_14 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_14 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_15 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_15 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_15 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_16 = min(B_lvl_i_2, A_lvl_i, phase_stop_15) + if A_lvl_i == phase_stop_16 && B_lvl_i_2 == phase_stop_16 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_17 = min(i_7, A_lvl_i_stop_4) + if phase_stop_17 >= i_7 + if A_lvl_tbl1[A_lvl_q] < i_7 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_17 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_19 = min(A_lvl_i_4, phase_stop_17) + if A_lvl_i_4 == phase_stop_19 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_16 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_16 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_16 + 1 + end + end + B_lvl_q = B_lvl_q_step + end + break + end + end + end + end + end + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for i = parallel(_) + for j = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for i = _ + for j = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + for i_4 = 1:A_lvl.shape[1] + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_ptr_2 = B_lvl_ptr + B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1_2 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_2 = B_lvl_tbl2 + B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + val_2 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr_2 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_2 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_2 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_3 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_5 = 1:Threads.nthreads() + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_5 + -1), Threads.nthreads())) + phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_5, Threads.nthreads())) + if phase_stop_2 >= phase_start_2 + if B_lvl_tbl2[B_lvl_q] < phase_start_2 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_2 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_4 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_4 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) + if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 + B_lvl_2_val = B_lvl_val[B_lvl_q_3] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_6 = min(i_4, A_lvl_i_stop_2) + if phase_stop_6 >= i_4 + if A_lvl_tbl1[A_lvl_q] < i_4 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_6 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_8 = min(A_lvl_i_2, phase_stop_6) + if A_lvl_i_2 == phase_stop_8 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_5 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_5 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_5 + 1 + end + end + B_lvl_q = B_lvl_q_step + else + phase_stop_13 = min(B_lvl_i, phase_stop_2) + if B_lvl_i == phase_stop_13 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_14 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_14 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) + if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_16 = min(i_4, A_lvl_i_stop_4) + if phase_stop_16 >= i_4 + if A_lvl_tbl1[A_lvl_q] < i_4 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_16 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_18 = min(A_lvl_i_4, phase_stop_16) + if A_lvl_i_4 == phase_stop_18 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_15 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_15 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_15 + 1 + end + end + B_lvl_q = B_lvl_q_step + end + break + end + end + end + end + Ct_lvl_2_val = val + B_lvl_ptr = B_lvl_ptr_2 + B_lvl_tbl1 = B_lvl_tbl1_2 + B_lvl_tbl2 = B_lvl_tbl2_2 + B_lvl_val = val_2 + A_lvl_ptr = A_lvl_ptr_2 + A_lvl_tbl1 = A_lvl_tbl1_2 + A_lvl_tbl2 = A_lvl_tbl2_2 + A_lvl_val = val_3 + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(Ct_lvl_2_val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for i = _ + for j = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for j = parallel(_) + for i = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_4 = 1:Threads.nthreads() + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_4 + -1), Threads.nthreads())) + phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_4, Threads.nthreads())) + if phase_stop_2 >= phase_start_2 + if B_lvl_tbl2[B_lvl_q] < phase_start_2 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_2 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + for i_6 = 1:A_lvl.shape[1] + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_6 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_4 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_4 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) + if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 + B_lvl_2_val = B_lvl_val[B_lvl_q_3] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_6 = min(i_6, A_lvl_i_stop_2) + if phase_stop_6 >= i_6 + if A_lvl_tbl1[A_lvl_q] < i_6 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_6, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_6 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_8 = min(A_lvl_i_2, phase_stop_6) + if A_lvl_i_2 == phase_stop_8 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_5 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_5 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_5 + 1 + end + end + end + B_lvl_q = B_lvl_q_step + else + phase_stop_13 = min(B_lvl_i, phase_stop_2) + if B_lvl_i == phase_stop_13 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 + for i_8 = 1:A_lvl.shape[1] + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_8 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_14 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_14 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) + if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_16 = min(i_8, A_lvl_i_stop_4) + if phase_stop_16 >= i_8 + if A_lvl_tbl1[A_lvl_q] < i_8 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_8, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_16 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_18 = min(A_lvl_i_4, phase_stop_16) + if A_lvl_i_4 == phase_stop_18 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_15 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_15 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_15 + 1 + end + end + end + B_lvl_q = B_lvl_q_step + end + break + end + end + end + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for j = parallel(_) + for i = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for j = _ + for i = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_stop = min(B_lvl.shape[2], B_lvl_i_stop) + if phase_stop >= 1 + if B_lvl_tbl2[B_lvl_q] < 1 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_tbl1_2 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_2 = B_lvl_tbl2 + val_2 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr_2 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_2 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_2 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_3 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_9 = 1:Threads.nthreads() + phase_start_6 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_9), Threads.nthreads())) + phase_stop_7 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_9, Threads.nthreads())) + if phase_stop_7 >= phase_start_6 + for i_12 = phase_start_6:phase_stop_7 + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_12 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_8 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_8 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_8 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_9 = min(B_lvl_i_2, phase_stop_8, A_lvl_i) + if A_lvl_i == phase_stop_9 && B_lvl_i_2 == phase_stop_9 + B_lvl_2_val = B_lvl_val[B_lvl_q_2] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_10 = min(i_12, A_lvl_i_stop_2) + if phase_stop_10 >= i_12 + if A_lvl_tbl1[A_lvl_q] < i_12 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_12, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_10 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_12 = min(A_lvl_i_2, phase_stop_10) + if A_lvl_i_2 == phase_stop_12 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_9 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_9 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_9 + 1 + end + end + end + end + end + Ct_lvl_2_val = val + B_lvl_tbl1 = B_lvl_tbl1_2 + B_lvl_tbl2 = B_lvl_tbl2_2 + B_lvl_val = val_2 + A_lvl_ptr = A_lvl_ptr_2 + A_lvl_tbl1 = A_lvl_tbl1_2 + A_lvl_tbl2 = A_lvl_tbl2_2 + A_lvl_val = val_3 + B_lvl_q = B_lvl_q_step + else + phase_stop_18 = min(B_lvl_i, phase_stop) + if B_lvl_i == phase_stop_18 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_18 + val_4 = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_tbl1_3 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_3 = B_lvl_tbl2 + val_5 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr_3 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_3 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_3 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_6 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_19 = 1:Threads.nthreads() + phase_start_21 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_19), Threads.nthreads())) + phase_stop_23 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_19, Threads.nthreads())) + if phase_stop_23 >= phase_start_21 + for i_22 = phase_start_21:phase_stop_23 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_22 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_24 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_24 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_24 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_25 = min(B_lvl_i_2, A_lvl_i, phase_stop_24) + if A_lvl_i == phase_stop_25 && B_lvl_i_2 == phase_stop_25 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_26 = min(i_22, A_lvl_i_stop_4) + if phase_stop_26 >= i_22 + if A_lvl_tbl1[A_lvl_q] < i_22 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_22, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_26 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_28 = min(A_lvl_i_4, phase_stop_26) + if A_lvl_i_4 == phase_stop_28 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_25 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_25 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_25 + 1 + end + end + end + end + end + Ct_lvl_2_val = val_4 + B_lvl_tbl1 = B_lvl_tbl1_3 + B_lvl_tbl2 = B_lvl_tbl2_3 + B_lvl_val = val_5 + A_lvl_ptr = A_lvl_ptr_3 + A_lvl_tbl1 = A_lvl_tbl1_3 + A_lvl_tbl2 = A_lvl_tbl2_3 + A_lvl_val = val_6 + B_lvl_q = B_lvl_q_step + end + break + end + end + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(Ct_lvl_2_val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for j = _ + for i = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for i = parallel(_) + for j = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_4 = 1:Threads.nthreads() + phase_start_2 = max(1, 1 + fld(A_lvl.shape[1] * (i_4 + -1), Threads.nthreads())) + phase_stop_2 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_4, Threads.nthreads())) + if phase_stop_2 >= phase_start_2 + for i_7 = phase_start_2:phase_stop_2 + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_stop_3 = min(B_lvl.shape[2], B_lvl_i_stop) + if phase_stop_3 >= 1 + if B_lvl_tbl2[B_lvl_q] < 1 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_3 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_5 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_5 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_5 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_6 = min(B_lvl_i_2, phase_stop_5, A_lvl_i) + if A_lvl_i == phase_stop_6 && B_lvl_i_2 == phase_stop_6 + B_lvl_2_val = B_lvl_val[B_lvl_q_2] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_7 = min(i_7, A_lvl_i_stop_2) + if phase_stop_7 >= i_7 + if A_lvl_tbl1[A_lvl_q] < i_7 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_7 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_9 = min(A_lvl_i_2, phase_stop_7) + if A_lvl_i_2 == phase_stop_9 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_6 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_6 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_6 + 1 + end + end + B_lvl_q = B_lvl_q_step + else + phase_stop_14 = min(B_lvl_i, phase_stop_3) + if B_lvl_i == phase_stop_14 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_14 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_15 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_15 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_15 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_16 = min(B_lvl_i_2, A_lvl_i, phase_stop_15) + if A_lvl_i == phase_stop_16 && B_lvl_i_2 == phase_stop_16 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_17 = min(i_7, A_lvl_i_stop_4) + if phase_stop_17 >= i_7 + if A_lvl_tbl1[A_lvl_q] < i_7 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_17 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_19 = min(A_lvl_i_4, phase_stop_17) + if A_lvl_i_4 == phase_stop_19 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_16 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_16 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_16 + 1 + end + end + B_lvl_q = B_lvl_q_step + end + break + end + end + end + end + end + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for i = parallel(_) + for j = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for i = _ + for j = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + for i_4 = 1:A_lvl.shape[1] + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_ptr_2 = B_lvl_ptr + B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1_2 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_2 = B_lvl_tbl2 + B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + val_2 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr_2 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_2 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_2 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_3 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_5 = 1:Threads.nthreads() + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_5 + -1), Threads.nthreads())) + phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_5, Threads.nthreads())) + if phase_stop_2 >= phase_start_2 + if B_lvl_tbl2[B_lvl_q] < phase_start_2 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_2 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_4 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_4 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) + if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 + B_lvl_2_val = B_lvl_val[B_lvl_q_3] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_6 = min(i_4, A_lvl_i_stop_2) + if phase_stop_6 >= i_4 + if A_lvl_tbl1[A_lvl_q] < i_4 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_6 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_8 = min(A_lvl_i_2, phase_stop_6) + if A_lvl_i_2 == phase_stop_8 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_5 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_5 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_5 + 1 + end + end + B_lvl_q = B_lvl_q_step + else + phase_stop_13 = min(B_lvl_i, phase_stop_2) + if B_lvl_i == phase_stop_13 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_14 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_14 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) + if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_16 = min(i_4, A_lvl_i_stop_4) + if phase_stop_16 >= i_4 + if A_lvl_tbl1[A_lvl_q] < i_4 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_16 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_18 = min(A_lvl_i_4, phase_stop_16) + if A_lvl_i_4 == phase_stop_18 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_15 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_15 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_15 + 1 + end + end + B_lvl_q = B_lvl_q_step + end + break + end + end + end + end + Ct_lvl_2_val = val + B_lvl_ptr = B_lvl_ptr_2 + B_lvl_tbl1 = B_lvl_tbl1_2 + B_lvl_tbl2 = B_lvl_tbl2_2 + B_lvl_val = val_2 + A_lvl_ptr = A_lvl_ptr_2 + A_lvl_tbl1 = A_lvl_tbl1_2 + A_lvl_tbl2 = A_lvl_tbl2_2 + A_lvl_val = val_3 + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(Ct_lvl_2_val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for i = _ + for j = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for j = parallel(_) + for i = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_4 = 1:Threads.nthreads() + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_4 + -1), Threads.nthreads())) + phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_4, Threads.nthreads())) + if phase_stop_2 >= phase_start_2 + if B_lvl_tbl2[B_lvl_q] < phase_start_2 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_2 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + for i_6 = 1:A_lvl.shape[1] + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_6 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_4 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_4 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) + if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 + B_lvl_2_val = B_lvl_val[B_lvl_q_3] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_6 = min(i_6, A_lvl_i_stop_2) + if phase_stop_6 >= i_6 + if A_lvl_tbl1[A_lvl_q] < i_6 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_6, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_6 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_8 = min(A_lvl_i_2, phase_stop_6) + if A_lvl_i_2 == phase_stop_8 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_5 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_5 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_5 + 1 + end + end + end + B_lvl_q = B_lvl_q_step + else + phase_stop_13 = min(B_lvl_i, phase_stop_2) + if B_lvl_i == phase_stop_13 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 + for i_8 = 1:A_lvl.shape[1] + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_8 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_14 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_14 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) + if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_16 = min(i_8, A_lvl_i_stop_4) + if phase_stop_16 >= i_8 + if A_lvl_tbl1[A_lvl_q] < i_8 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_8, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_16 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_18 = min(A_lvl_i_4, phase_stop_16) + if A_lvl_i_4 == phase_stop_18 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_15 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_15 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_15 + 1 + end + end + end + B_lvl_q = B_lvl_q_step + end + break + end + end + end + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for j = parallel(_) + for i = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for j = _ + for i = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_stop = min(B_lvl.shape[2], B_lvl_i_stop) + if phase_stop >= 1 + if B_lvl_tbl2[B_lvl_q] < 1 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_tbl1_2 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_2 = B_lvl_tbl2 + val_2 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr_2 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_2 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_2 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_3 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_9 = 1:Threads.nthreads() + phase_start_6 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_9), Threads.nthreads())) + phase_stop_7 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_9, Threads.nthreads())) + if phase_stop_7 >= phase_start_6 + for i_12 = phase_start_6:phase_stop_7 + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_12 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_8 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_8 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_8 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_9 = min(B_lvl_i_2, phase_stop_8, A_lvl_i) + if A_lvl_i == phase_stop_9 && B_lvl_i_2 == phase_stop_9 + B_lvl_2_val = B_lvl_val[B_lvl_q_2] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_10 = min(i_12, A_lvl_i_stop_2) + if phase_stop_10 >= i_12 + if A_lvl_tbl1[A_lvl_q] < i_12 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_12, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_10 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_12 = min(A_lvl_i_2, phase_stop_10) + if A_lvl_i_2 == phase_stop_12 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_9 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_9 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_9 + 1 + end + end + end + end + end + Ct_lvl_2_val = val + B_lvl_tbl1 = B_lvl_tbl1_2 + B_lvl_tbl2 = B_lvl_tbl2_2 + B_lvl_val = val_2 + A_lvl_ptr = A_lvl_ptr_2 + A_lvl_tbl1 = A_lvl_tbl1_2 + A_lvl_tbl2 = A_lvl_tbl2_2 + A_lvl_val = val_3 + B_lvl_q = B_lvl_q_step + else + phase_stop_18 = min(B_lvl_i, phase_stop) + if B_lvl_i == phase_stop_18 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_18 + val_4 = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_tbl1_3 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_3 = B_lvl_tbl2 + val_5 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr_3 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_3 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_3 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_6 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_19 = 1:Threads.nthreads() + phase_start_21 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_19), Threads.nthreads())) + phase_stop_23 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_19, Threads.nthreads())) + if phase_stop_23 >= phase_start_21 + for i_22 = phase_start_21:phase_stop_23 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_22 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_24 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_24 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_24 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_25 = min(B_lvl_i_2, A_lvl_i, phase_stop_24) + if A_lvl_i == phase_stop_25 && B_lvl_i_2 == phase_stop_25 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_26 = min(i_22, A_lvl_i_stop_4) + if phase_stop_26 >= i_22 + if A_lvl_tbl1[A_lvl_q] < i_22 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_22, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_26 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_28 = min(A_lvl_i_4, phase_stop_26) + if A_lvl_i_4 == phase_stop_28 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_25 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_25 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_25 + 1 + end + end + end + end + end + Ct_lvl_2_val = val_4 + B_lvl_tbl1 = B_lvl_tbl1_3 + B_lvl_tbl2 = B_lvl_tbl2_3 + B_lvl_val = val_5 + A_lvl_ptr = A_lvl_ptr_3 + A_lvl_tbl1 = A_lvl_tbl1_3 + A_lvl_tbl2 = A_lvl_tbl2_3 + A_lvl_val = val_6 + B_lvl_q = B_lvl_q_step + end + break + end + end + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(Ct_lvl_2_val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for j = _ + for i = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for i = parallel(_) + for j = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_4 = 1:Threads.nthreads() + phase_start_2 = max(1, 1 + fld(A_lvl.shape[1] * (i_4 + -1), Threads.nthreads())) + phase_stop_2 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_4, Threads.nthreads())) + if phase_stop_2 >= phase_start_2 + for i_7 = phase_start_2:phase_stop_2 + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_stop_3 = min(B_lvl.shape[2], B_lvl_i_stop) + if phase_stop_3 >= 1 + if B_lvl_tbl2[B_lvl_q] < 1 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_3 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_5 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_5 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_5 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_6 = min(B_lvl_i_2, phase_stop_5, A_lvl_i) + if A_lvl_i == phase_stop_6 && B_lvl_i_2 == phase_stop_6 + B_lvl_2_val = B_lvl_val[B_lvl_q_2] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_7 = min(i_7, A_lvl_i_stop_2) + if phase_stop_7 >= i_7 + if A_lvl_tbl1[A_lvl_q] < i_7 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_7 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_9 = min(A_lvl_i_2, phase_stop_7) + if A_lvl_i_2 == phase_stop_9 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_6 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_6 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_6 + 1 + end + end + B_lvl_q = B_lvl_q_step + else + phase_stop_14 = min(B_lvl_i, phase_stop_3) + if B_lvl_i == phase_stop_14 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_14 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_15 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_15 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_15 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_16 = min(B_lvl_i_2, A_lvl_i, phase_stop_15) + if A_lvl_i == phase_stop_16 && B_lvl_i_2 == phase_stop_16 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_17 = min(i_7, A_lvl_i_stop_4) + if phase_stop_17 >= i_7 + if A_lvl_tbl1[A_lvl_q] < i_7 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_17 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_19 = min(A_lvl_i_4, phase_stop_17) + if A_lvl_i_4 == phase_stop_19 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_16 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_16 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_16 + 1 + end + end + B_lvl_q = B_lvl_q_step + end + break + end + end + end + end + end + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for i = parallel(_) + for j = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for i = _ + for j = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + for i_4 = 1:A_lvl.shape[1] + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_ptr_2 = B_lvl_ptr + B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1_2 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_2 = B_lvl_tbl2 + B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + val_2 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr_2 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_2 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_2 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_3 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_5 = 1:Threads.nthreads() + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_5 + -1), Threads.nthreads())) + phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_5, Threads.nthreads())) + if phase_stop_2 >= phase_start_2 + if B_lvl_tbl2[B_lvl_q] < phase_start_2 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_2 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_4 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_4 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) + if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 + B_lvl_2_val = B_lvl_val[B_lvl_q_3] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_6 = min(i_4, A_lvl_i_stop_2) + if phase_stop_6 >= i_4 + if A_lvl_tbl1[A_lvl_q] < i_4 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_6 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_8 = min(A_lvl_i_2, phase_stop_6) + if A_lvl_i_2 == phase_stop_8 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_5 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_5 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_5 + 1 + end + end + B_lvl_q = B_lvl_q_step + else + phase_stop_13 = min(B_lvl_i, phase_stop_2) + if B_lvl_i == phase_stop_13 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_14 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_14 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) + if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_16 = min(i_4, A_lvl_i_stop_4) + if phase_stop_16 >= i_4 + if A_lvl_tbl1[A_lvl_q] < i_4 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_16 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_18 = min(A_lvl_i_4, phase_stop_16) + if A_lvl_i_4 == phase_stop_18 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_15 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_15 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_15 + 1 + end + end + B_lvl_q = B_lvl_q_step + end + break + end + end + end + end + Ct_lvl_2_val = val + B_lvl_ptr = B_lvl_ptr_2 + B_lvl_tbl1 = B_lvl_tbl1_2 + B_lvl_tbl2 = B_lvl_tbl2_2 + B_lvl_val = val_2 + A_lvl_ptr = A_lvl_ptr_2 + A_lvl_tbl1 = A_lvl_tbl1_2 + A_lvl_tbl2 = A_lvl_tbl2_2 + A_lvl_val = val_3 + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(Ct_lvl_2_val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for i = _ + for j = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for j = parallel(_) + for i = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_4 = 1:Threads.nthreads() + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_4 + -1), Threads.nthreads())) + phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_4, Threads.nthreads())) + if phase_stop_2 >= phase_start_2 + if B_lvl_tbl2[B_lvl_q] < phase_start_2 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_2 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + for i_6 = 1:A_lvl.shape[1] + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_6 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_4 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_4 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) + if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 + B_lvl_2_val = B_lvl_val[B_lvl_q_3] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_6 = min(i_6, A_lvl_i_stop_2) + if phase_stop_6 >= i_6 + if A_lvl_tbl1[A_lvl_q] < i_6 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_6, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_6 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_8 = min(A_lvl_i_2, phase_stop_6) + if A_lvl_i_2 == phase_stop_8 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_5 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_5 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_5 + 1 + end + end + end + B_lvl_q = B_lvl_q_step + else + phase_stop_13 = min(B_lvl_i, phase_stop_2) + if B_lvl_i == phase_stop_13 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 + for i_8 = 1:A_lvl.shape[1] + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_8 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_14 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_14 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) + if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_16 = min(i_8, A_lvl_i_stop_4) + if phase_stop_16 >= i_8 + if A_lvl_tbl1[A_lvl_q] < i_8 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_8, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_16 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_18 = min(A_lvl_i_4, phase_stop_16) + if A_lvl_i_4 == phase_stop_18 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_15 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_15 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_15 + 1 + end + end + end + B_lvl_q = B_lvl_q_step + end + break + end + end + end + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for j = parallel(_) + for i = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for j = _ + for i = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_stop = min(B_lvl.shape[2], B_lvl_i_stop) + if phase_stop >= 1 + if B_lvl_tbl2[B_lvl_q] < 1 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_tbl1_2 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_2 = B_lvl_tbl2 + val_2 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr_2 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_2 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_2 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_3 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_9 = 1:Threads.nthreads() + phase_start_6 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_9), Threads.nthreads())) + phase_stop_7 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_9, Threads.nthreads())) + if phase_stop_7 >= phase_start_6 + for i_12 = phase_start_6:phase_stop_7 + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_12 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_8 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_8 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_8 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_9 = min(B_lvl_i_2, phase_stop_8, A_lvl_i) + if A_lvl_i == phase_stop_9 && B_lvl_i_2 == phase_stop_9 + B_lvl_2_val = B_lvl_val[B_lvl_q_2] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_10 = min(i_12, A_lvl_i_stop_2) + if phase_stop_10 >= i_12 + if A_lvl_tbl1[A_lvl_q] < i_12 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_12, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_10 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_12 = min(A_lvl_i_2, phase_stop_10) + if A_lvl_i_2 == phase_stop_12 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_9 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_9 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_9 + 1 + end + end + end + end + end + Ct_lvl_2_val = val + B_lvl_tbl1 = B_lvl_tbl1_2 + B_lvl_tbl2 = B_lvl_tbl2_2 + B_lvl_val = val_2 + A_lvl_ptr = A_lvl_ptr_2 + A_lvl_tbl1 = A_lvl_tbl1_2 + A_lvl_tbl2 = A_lvl_tbl2_2 + A_lvl_val = val_3 + B_lvl_q = B_lvl_q_step + else + phase_stop_18 = min(B_lvl_i, phase_stop) + if B_lvl_i == phase_stop_18 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_18 + val_4 = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_tbl1_3 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_3 = B_lvl_tbl2 + val_5 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr_3 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_3 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_3 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_6 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_19 = 1:Threads.nthreads() + phase_start_21 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_19), Threads.nthreads())) + phase_stop_23 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_19, Threads.nthreads())) + if phase_stop_23 >= phase_start_21 + for i_22 = phase_start_21:phase_stop_23 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_22 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_24 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_24 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_24 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_25 = min(B_lvl_i_2, A_lvl_i, phase_stop_24) + if A_lvl_i == phase_stop_25 && B_lvl_i_2 == phase_stop_25 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_26 = min(i_22, A_lvl_i_stop_4) + if phase_stop_26 >= i_22 + if A_lvl_tbl1[A_lvl_q] < i_22 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_22, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_26 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_28 = min(A_lvl_i_4, phase_stop_26) + if A_lvl_i_4 == phase_stop_28 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_25 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_25 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_25 + 1 + end + end + end + end + end + Ct_lvl_2_val = val_4 + B_lvl_tbl1 = B_lvl_tbl1_3 + B_lvl_tbl2 = B_lvl_tbl2_3 + B_lvl_val = val_5 + A_lvl_ptr = A_lvl_ptr_3 + A_lvl_tbl1 = A_lvl_tbl1_3 + A_lvl_tbl2 = A_lvl_tbl2_3 + A_lvl_val = val_6 + B_lvl_q = B_lvl_q_step + end + break + end + end + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(Ct_lvl_2_val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for j = _ + for i = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for i = parallel(_) + for j = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_4 = 1:Threads.nthreads() + phase_start_2 = max(1, 1 + fld(A_lvl.shape[1] * (i_4 + -1), Threads.nthreads())) + phase_stop_2 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_4, Threads.nthreads())) + if phase_stop_2 >= phase_start_2 + for i_7 = phase_start_2:phase_stop_2 + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_stop_3 = min(B_lvl.shape[2], B_lvl_i_stop) + if phase_stop_3 >= 1 + if B_lvl_tbl2[B_lvl_q] < 1 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_3 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_5 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_5 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_5 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_6 = min(B_lvl_i_2, phase_stop_5, A_lvl_i) + if A_lvl_i == phase_stop_6 && B_lvl_i_2 == phase_stop_6 + B_lvl_2_val = B_lvl_val[B_lvl_q_2] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_7 = min(i_7, A_lvl_i_stop_2) + if phase_stop_7 >= i_7 + if A_lvl_tbl1[A_lvl_q] < i_7 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_7 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_9 = min(A_lvl_i_2, phase_stop_7) + if A_lvl_i_2 == phase_stop_9 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_6 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_6 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_6 + 1 + end + end + B_lvl_q = B_lvl_q_step + else + phase_stop_14 = min(B_lvl_i, phase_stop_3) + if B_lvl_i == phase_stop_14 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_14 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_15 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_15 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_15 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_16 = min(B_lvl_i_2, A_lvl_i, phase_stop_15) + if A_lvl_i == phase_stop_16 && B_lvl_i_2 == phase_stop_16 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_17 = min(i_7, A_lvl_i_stop_4) + if phase_stop_17 >= i_7 + if A_lvl_tbl1[A_lvl_q] < i_7 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_17 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_19 = min(A_lvl_i_4, phase_stop_17) + if A_lvl_i_4 == phase_stop_19 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_16 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_16 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_16 + 1 + end + end + B_lvl_q = B_lvl_q_step + end + break + end + end + end + end + end + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for i = parallel(_) + for j = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for i = _ + for j = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + for i_4 = 1:A_lvl.shape[1] + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_ptr_2 = B_lvl_ptr + B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1_2 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_2 = B_lvl_tbl2 + B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + val_2 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr_2 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_2 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_2 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_3 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_5 = 1:Threads.nthreads() + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_5 + -1), Threads.nthreads())) + phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_5, Threads.nthreads())) + if phase_stop_2 >= phase_start_2 + if B_lvl_tbl2[B_lvl_q] < phase_start_2 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_2 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_4 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_4 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) + if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 + B_lvl_2_val = B_lvl_val[B_lvl_q_3] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_6 = min(i_4, A_lvl_i_stop_2) + if phase_stop_6 >= i_4 + if A_lvl_tbl1[A_lvl_q] < i_4 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_6 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_8 = min(A_lvl_i_2, phase_stop_6) + if A_lvl_i_2 == phase_stop_8 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_5 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_5 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_5 + 1 + end + end + B_lvl_q = B_lvl_q_step + else + phase_stop_13 = min(B_lvl_i, phase_stop_2) + if B_lvl_i == phase_stop_13 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_14 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_14 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) + if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_16 = min(i_4, A_lvl_i_stop_4) + if phase_stop_16 >= i_4 + if A_lvl_tbl1[A_lvl_q] < i_4 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_16 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_18 = min(A_lvl_i_4, phase_stop_16) + if A_lvl_i_4 == phase_stop_18 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_15 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_15 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_15 + 1 + end + end + B_lvl_q = B_lvl_q_step + end + break + end + end + end + end + Ct_lvl_2_val = val + B_lvl_ptr = B_lvl_ptr_2 + B_lvl_tbl1 = B_lvl_tbl1_2 + B_lvl_tbl2 = B_lvl_tbl2_2 + B_lvl_val = val_2 + A_lvl_ptr = A_lvl_ptr_2 + A_lvl_tbl1 = A_lvl_tbl1_2 + A_lvl_tbl2 = A_lvl_tbl2_2 + A_lvl_val = val_3 + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(Ct_lvl_2_val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for i = _ + for j = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for j = parallel(_) + for i = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_4 = 1:Threads.nthreads() + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_4 + -1), Threads.nthreads())) + phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_4, Threads.nthreads())) + if phase_stop_2 >= phase_start_2 + if B_lvl_tbl2[B_lvl_q] < phase_start_2 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_2 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + for i_6 = 1:A_lvl.shape[1] + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_6 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_4 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_4 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) + if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 + B_lvl_2_val = B_lvl_val[B_lvl_q_3] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_6 = min(i_6, A_lvl_i_stop_2) + if phase_stop_6 >= i_6 + if A_lvl_tbl1[A_lvl_q] < i_6 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_6, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_6 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_8 = min(A_lvl_i_2, phase_stop_6) + if A_lvl_i_2 == phase_stop_8 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_5 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_5 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_5 + 1 + end + end + end + B_lvl_q = B_lvl_q_step + else + phase_stop_13 = min(B_lvl_i, phase_stop_2) + if B_lvl_i == phase_stop_13 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 + for i_8 = 1:A_lvl.shape[1] + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_8 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_14 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_14 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) + if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_16 = min(i_8, A_lvl_i_stop_4) + if phase_stop_16 >= i_8 + if A_lvl_tbl1[A_lvl_q] < i_8 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_8, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_16 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_18 = min(A_lvl_i_4, phase_stop_16) + if A_lvl_i_4 == phase_stop_18 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_15 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_15 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_15 + 1 + end + end + end + B_lvl_q = B_lvl_q_step + end + break + end + end + end + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for j = parallel(_) + for i = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for j = _ + for i = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_stop = min(B_lvl.shape[2], B_lvl_i_stop) + if phase_stop >= 1 + if B_lvl_tbl2[B_lvl_q] < 1 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_tbl1_2 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_2 = B_lvl_tbl2 + val_2 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr_2 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_2 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_2 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_3 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_9 = 1:Threads.nthreads() + phase_start_6 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_9), Threads.nthreads())) + phase_stop_7 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_9, Threads.nthreads())) + if phase_stop_7 >= phase_start_6 + for i_12 = phase_start_6:phase_stop_7 + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_12 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_8 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_8 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_8 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_9 = min(B_lvl_i_2, phase_stop_8, A_lvl_i) + if A_lvl_i == phase_stop_9 && B_lvl_i_2 == phase_stop_9 + B_lvl_2_val = B_lvl_val[B_lvl_q_2] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_10 = min(i_12, A_lvl_i_stop_2) + if phase_stop_10 >= i_12 + if A_lvl_tbl1[A_lvl_q] < i_12 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_12, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_10 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_12 = min(A_lvl_i_2, phase_stop_10) + if A_lvl_i_2 == phase_stop_12 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_9 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_9 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_9 + 1 + end + end + end + end + end + Ct_lvl_2_val = val + B_lvl_tbl1 = B_lvl_tbl1_2 + B_lvl_tbl2 = B_lvl_tbl2_2 + B_lvl_val = val_2 + A_lvl_ptr = A_lvl_ptr_2 + A_lvl_tbl1 = A_lvl_tbl1_2 + A_lvl_tbl2 = A_lvl_tbl2_2 + A_lvl_val = val_3 + B_lvl_q = B_lvl_q_step + else + phase_stop_18 = min(B_lvl_i, phase_stop) + if B_lvl_i == phase_stop_18 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_18 + val_4 = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_tbl1_3 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_3 = B_lvl_tbl2 + val_5 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr_3 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_3 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_3 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_6 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_19 = 1:Threads.nthreads() + phase_start_21 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_19), Threads.nthreads())) + phase_stop_23 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_19, Threads.nthreads())) + if phase_stop_23 >= phase_start_21 + for i_22 = phase_start_21:phase_stop_23 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_22 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_24 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_24 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_24 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_25 = min(B_lvl_i_2, A_lvl_i, phase_stop_24) + if A_lvl_i == phase_stop_25 && B_lvl_i_2 == phase_stop_25 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_26 = min(i_22, A_lvl_i_stop_4) + if phase_stop_26 >= i_22 + if A_lvl_tbl1[A_lvl_q] < i_22 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_22, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_26 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_28 = min(A_lvl_i_4, phase_stop_26) + if A_lvl_i_4 == phase_stop_28 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_25 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_25 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_25 + 1 + end + end + end + end + end + Ct_lvl_2_val = val_4 + B_lvl_tbl1 = B_lvl_tbl1_3 + B_lvl_tbl2 = B_lvl_tbl2_3 + B_lvl_val = val_5 + A_lvl_ptr = A_lvl_ptr_3 + A_lvl_tbl1 = A_lvl_tbl1_3 + A_lvl_tbl2 = A_lvl_tbl2_3 + A_lvl_val = val_6 + B_lvl_q = B_lvl_q_step + end + break + end + end + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(Ct_lvl_2_val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for j = _ + for i = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for i = parallel(_) + for j = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_4 = 1:Threads.nthreads() + phase_start_2 = max(1, 1 + fld(A_lvl.shape[1] * (i_4 + -1), Threads.nthreads())) + phase_stop_2 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_4, Threads.nthreads())) + if phase_stop_2 >= phase_start_2 + for i_7 = phase_start_2:phase_stop_2 + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_stop_3 = min(B_lvl.shape[2], B_lvl_i_stop) + if phase_stop_3 >= 1 + if B_lvl_tbl2[B_lvl_q] < 1 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_3 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_5 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_5 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_5 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_6 = min(B_lvl_i_2, phase_stop_5, A_lvl_i) + if A_lvl_i == phase_stop_6 && B_lvl_i_2 == phase_stop_6 + B_lvl_2_val = B_lvl_val[B_lvl_q_2] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_7 = min(i_7, A_lvl_i_stop_2) + if phase_stop_7 >= i_7 + if A_lvl_tbl1[A_lvl_q] < i_7 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_7 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_9 = min(A_lvl_i_2, phase_stop_7) + if A_lvl_i_2 == phase_stop_9 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_6 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_6 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_6 + 1 + end + end + B_lvl_q = B_lvl_q_step + else + phase_stop_14 = min(B_lvl_i, phase_stop_3) + if B_lvl_i == phase_stop_14 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_14 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_15 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_15 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_15 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_16 = min(B_lvl_i_2, A_lvl_i, phase_stop_15) + if A_lvl_i == phase_stop_16 && B_lvl_i_2 == phase_stop_16 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_17 = min(i_7, A_lvl_i_stop_4) + if phase_stop_17 >= i_7 + if A_lvl_tbl1[A_lvl_q] < i_7 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_17 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_19 = min(A_lvl_i_4, phase_stop_17) + if A_lvl_i_4 == phase_stop_19 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_16 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_16 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_16 + 1 + end + end + B_lvl_q = B_lvl_q_step + end + break + end + end + end + end + end + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for i = parallel(_) + for j = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for i = _ + for j = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + for i_4 = 1:A_lvl.shape[1] + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_ptr_2 = B_lvl_ptr + B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1_2 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_2 = B_lvl_tbl2 + B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + val_2 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr_2 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_2 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_2 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_3 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_5 = 1:Threads.nthreads() + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_5 + -1), Threads.nthreads())) + phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_5, Threads.nthreads())) + if phase_stop_2 >= phase_start_2 + if B_lvl_tbl2[B_lvl_q] < phase_start_2 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_2 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_4 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_4 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) + if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 + B_lvl_2_val = B_lvl_val[B_lvl_q_3] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_6 = min(i_4, A_lvl_i_stop_2) + if phase_stop_6 >= i_4 + if A_lvl_tbl1[A_lvl_q] < i_4 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_6 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_8 = min(A_lvl_i_2, phase_stop_6) + if A_lvl_i_2 == phase_stop_8 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_5 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_5 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_5 + 1 + end + end + B_lvl_q = B_lvl_q_step + else + phase_stop_13 = min(B_lvl_i, phase_stop_2) + if B_lvl_i == phase_stop_13 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_14 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_14 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) + if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_16 = min(i_4, A_lvl_i_stop_4) + if phase_stop_16 >= i_4 + if A_lvl_tbl1[A_lvl_q] < i_4 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_16 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_18 = min(A_lvl_i_4, phase_stop_16) + if A_lvl_i_4 == phase_stop_18 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_15 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_15 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_15 + 1 + end + end + B_lvl_q = B_lvl_q_step + end + break + end + end + end + end + Ct_lvl_2_val = val + B_lvl_ptr = B_lvl_ptr_2 + B_lvl_tbl1 = B_lvl_tbl1_2 + B_lvl_tbl2 = B_lvl_tbl2_2 + B_lvl_val = val_2 + A_lvl_ptr = A_lvl_ptr_2 + A_lvl_tbl1 = A_lvl_tbl1_2 + A_lvl_tbl2 = A_lvl_tbl2_2 + A_lvl_val = val_3 + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(Ct_lvl_2_val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for i = _ + for j = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for j = parallel(_) + for i = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_4 = 1:Threads.nthreads() + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_4 + -1), Threads.nthreads())) + phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_4, Threads.nthreads())) + if phase_stop_2 >= phase_start_2 + if B_lvl_tbl2[B_lvl_q] < phase_start_2 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_2 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + for i_6 = 1:A_lvl.shape[1] + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_6 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_4 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_4 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) + if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 + B_lvl_2_val = B_lvl_val[B_lvl_q_3] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_6 = min(i_6, A_lvl_i_stop_2) + if phase_stop_6 >= i_6 + if A_lvl_tbl1[A_lvl_q] < i_6 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_6, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_6 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_8 = min(A_lvl_i_2, phase_stop_6) + if A_lvl_i_2 == phase_stop_8 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_5 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_5 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_5 + 1 + end + end + end + B_lvl_q = B_lvl_q_step + else + phase_stop_13 = min(B_lvl_i, phase_stop_2) + if B_lvl_i == phase_stop_13 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 + for i_8 = 1:A_lvl.shape[1] + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_8 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_14 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_14 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) + if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_16 = min(i_8, A_lvl_i_stop_4) + if phase_stop_16 >= i_8 + if A_lvl_tbl1[A_lvl_q] < i_8 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_8, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_16 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_18 = min(A_lvl_i_4, phase_stop_16) + if A_lvl_i_4 == phase_stop_18 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_15 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_15 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_15 + 1 + end + end + end + B_lvl_q = B_lvl_q_step + end + break + end + end + end + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for j = parallel(_) + for i = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for j = _ + for i = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_stop = min(B_lvl.shape[2], B_lvl_i_stop) + if phase_stop >= 1 + if B_lvl_tbl2[B_lvl_q] < 1 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_tbl1_2 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_2 = B_lvl_tbl2 + val_2 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr_2 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_2 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_2 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_3 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_9 = 1:Threads.nthreads() + phase_start_6 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_9), Threads.nthreads())) + phase_stop_7 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_9, Threads.nthreads())) + if phase_stop_7 >= phase_start_6 + for i_12 = phase_start_6:phase_stop_7 + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_12 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_8 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_8 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_8 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_9 = min(B_lvl_i_2, phase_stop_8, A_lvl_i) + if A_lvl_i == phase_stop_9 && B_lvl_i_2 == phase_stop_9 + B_lvl_2_val = B_lvl_val[B_lvl_q_2] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_10 = min(i_12, A_lvl_i_stop_2) + if phase_stop_10 >= i_12 + if A_lvl_tbl1[A_lvl_q] < i_12 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_12, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_10 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_12 = min(A_lvl_i_2, phase_stop_10) + if A_lvl_i_2 == phase_stop_12 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_9 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_9 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_9 + 1 + end + end + end + end + end + Ct_lvl_2_val = val + B_lvl_tbl1 = B_lvl_tbl1_2 + B_lvl_tbl2 = B_lvl_tbl2_2 + B_lvl_val = val_2 + A_lvl_ptr = A_lvl_ptr_2 + A_lvl_tbl1 = A_lvl_tbl1_2 + A_lvl_tbl2 = A_lvl_tbl2_2 + A_lvl_val = val_3 + B_lvl_q = B_lvl_q_step + else + phase_stop_18 = min(B_lvl_i, phase_stop) + if B_lvl_i == phase_stop_18 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_18 + val_4 = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_tbl1_3 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_3 = B_lvl_tbl2 + val_5 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr_3 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_3 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_3 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_6 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_19 = 1:Threads.nthreads() + phase_start_21 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_19), Threads.nthreads())) + phase_stop_23 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_19, Threads.nthreads())) + if phase_stop_23 >= phase_start_21 + for i_22 = phase_start_21:phase_stop_23 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_22 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_24 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_24 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_24 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_25 = min(B_lvl_i_2, A_lvl_i, phase_stop_24) + if A_lvl_i == phase_stop_25 && B_lvl_i_2 == phase_stop_25 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_26 = min(i_22, A_lvl_i_stop_4) + if phase_stop_26 >= i_22 + if A_lvl_tbl1[A_lvl_q] < i_22 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_22, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_26 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_28 = min(A_lvl_i_4, phase_stop_26) + if A_lvl_i_4 == phase_stop_28 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_25 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_25 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_25 + 1 + end + end + end + end + end + Ct_lvl_2_val = val_4 + B_lvl_tbl1 = B_lvl_tbl1_3 + B_lvl_tbl2 = B_lvl_tbl2_3 + B_lvl_val = val_5 + A_lvl_ptr = A_lvl_ptr_3 + A_lvl_tbl1 = A_lvl_tbl1_3 + A_lvl_tbl2 = A_lvl_tbl2_3 + A_lvl_val = val_6 + B_lvl_q = B_lvl_q_step + end + break + end + end + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(Ct_lvl_2_val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for j = _ + for i = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for i = parallel(_) + for j = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_4 = 1:Threads.nthreads() + phase_start_2 = max(1, 1 + fld(A_lvl.shape[1] * (i_4 + -1), Threads.nthreads())) + phase_stop_2 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_4, Threads.nthreads())) + if phase_stop_2 >= phase_start_2 + for i_7 = phase_start_2:phase_stop_2 + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_stop_3 = min(B_lvl.shape[2], B_lvl_i_stop) + if phase_stop_3 >= 1 + if B_lvl_tbl2[B_lvl_q] < 1 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_3 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_5 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_5 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_5 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_6 = min(B_lvl_i_2, phase_stop_5, A_lvl_i) + if A_lvl_i == phase_stop_6 && B_lvl_i_2 == phase_stop_6 + B_lvl_2_val = B_lvl_val[B_lvl_q_2] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_7 = min(i_7, A_lvl_i_stop_2) + if phase_stop_7 >= i_7 + if A_lvl_tbl1[A_lvl_q] < i_7 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_7 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_9 = min(A_lvl_i_2, phase_stop_7) + if A_lvl_i_2 == phase_stop_9 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_6 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_6 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_6 + 1 + end + end + B_lvl_q = B_lvl_q_step + else + phase_stop_14 = min(B_lvl_i, phase_stop_3) + if B_lvl_i == phase_stop_14 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_14 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_15 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_15 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_15 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_16 = min(B_lvl_i_2, A_lvl_i, phase_stop_15) + if A_lvl_i == phase_stop_16 && B_lvl_i_2 == phase_stop_16 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_17 = min(i_7, A_lvl_i_stop_4) + if phase_stop_17 >= i_7 + if A_lvl_tbl1[A_lvl_q] < i_7 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_17 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_19 = min(A_lvl_i_4, phase_stop_17) + if A_lvl_i_4 == phase_stop_19 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_16 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_16 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_16 + 1 + end + end + B_lvl_q = B_lvl_q_step + end + break + end + end + end + end + end + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for i = parallel(_) + for j = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for i = _ + for j = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + for i_4 = 1:A_lvl.shape[1] + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_ptr_2 = B_lvl_ptr + B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1_2 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_2 = B_lvl_tbl2 + B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + val_2 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr_2 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_2 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_2 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_3 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_5 = 1:Threads.nthreads() + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_5 + -1), Threads.nthreads())) + phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_5, Threads.nthreads())) + if phase_stop_2 >= phase_start_2 + if B_lvl_tbl2[B_lvl_q] < phase_start_2 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_2 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_4 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_4 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) + if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 + B_lvl_2_val = B_lvl_val[B_lvl_q_3] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_6 = min(i_4, A_lvl_i_stop_2) + if phase_stop_6 >= i_4 + if A_lvl_tbl1[A_lvl_q] < i_4 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_6 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_8 = min(A_lvl_i_2, phase_stop_6) + if A_lvl_i_2 == phase_stop_8 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_5 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_5 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_5 + 1 + end + end + B_lvl_q = B_lvl_q_step + else + phase_stop_13 = min(B_lvl_i, phase_stop_2) + if B_lvl_i == phase_stop_13 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_14 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_14 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) + if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_16 = min(i_4, A_lvl_i_stop_4) + if phase_stop_16 >= i_4 + if A_lvl_tbl1[A_lvl_q] < i_4 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_16 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_18 = min(A_lvl_i_4, phase_stop_16) + if A_lvl_i_4 == phase_stop_18 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_15 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_15 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_15 + 1 + end + end + B_lvl_q = B_lvl_q_step + end + break + end + end + end + end + Ct_lvl_2_val = val + B_lvl_ptr = B_lvl_ptr_2 + B_lvl_tbl1 = B_lvl_tbl1_2 + B_lvl_tbl2 = B_lvl_tbl2_2 + B_lvl_val = val_2 + A_lvl_ptr = A_lvl_ptr_2 + A_lvl_tbl1 = A_lvl_tbl1_2 + A_lvl_tbl2 = A_lvl_tbl2_2 + A_lvl_val = val_3 + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(Ct_lvl_2_val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for i = _ + for j = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for j = parallel(_) + for i = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_4 = 1:Threads.nthreads() + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_4 + -1), Threads.nthreads())) + phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_4, Threads.nthreads())) + if phase_stop_2 >= phase_start_2 + if B_lvl_tbl2[B_lvl_q] < phase_start_2 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_2 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + for i_6 = 1:A_lvl.shape[1] + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_6 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_4 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_4 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) + if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 + B_lvl_2_val = B_lvl_val[B_lvl_q_3] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_6 = min(i_6, A_lvl_i_stop_2) + if phase_stop_6 >= i_6 + if A_lvl_tbl1[A_lvl_q] < i_6 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_6, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_6 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_8 = min(A_lvl_i_2, phase_stop_6) + if A_lvl_i_2 == phase_stop_8 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_5 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_5 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_5 + 1 + end + end + end + B_lvl_q = B_lvl_q_step + else + phase_stop_13 = min(B_lvl_i, phase_stop_2) + if B_lvl_i == phase_stop_13 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 + for i_8 = 1:A_lvl.shape[1] + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_8 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_14 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_14 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) + if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_16 = min(i_8, A_lvl_i_stop_4) + if phase_stop_16 >= i_8 + if A_lvl_tbl1[A_lvl_q] < i_8 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_8, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_16 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_18 = min(A_lvl_i_4, phase_stop_16) + if A_lvl_i_4 == phase_stop_18 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_15 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_15 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_15 + 1 + end + end + end + B_lvl_q = B_lvl_q_step + end + break + end + end + end + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for j = parallel(_) + for i = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for j = _ + for i = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_stop = min(B_lvl.shape[2], B_lvl_i_stop) + if phase_stop >= 1 + if B_lvl_tbl2[B_lvl_q] < 1 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_tbl1_2 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_2 = B_lvl_tbl2 + val_2 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr_2 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_2 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_2 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_3 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_9 = 1:Threads.nthreads() + phase_start_6 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_9), Threads.nthreads())) + phase_stop_7 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_9, Threads.nthreads())) + if phase_stop_7 >= phase_start_6 + for i_12 = phase_start_6:phase_stop_7 + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_12 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_8 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_8 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_8 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_9 = min(B_lvl_i_2, phase_stop_8, A_lvl_i) + if A_lvl_i == phase_stop_9 && B_lvl_i_2 == phase_stop_9 + B_lvl_2_val = B_lvl_val[B_lvl_q_2] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_10 = min(i_12, A_lvl_i_stop_2) + if phase_stop_10 >= i_12 + if A_lvl_tbl1[A_lvl_q] < i_12 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_12, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_10 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_12 = min(A_lvl_i_2, phase_stop_10) + if A_lvl_i_2 == phase_stop_12 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_9 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_9 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_9 + 1 + end + end + end + end + end + Ct_lvl_2_val = val + B_lvl_tbl1 = B_lvl_tbl1_2 + B_lvl_tbl2 = B_lvl_tbl2_2 + B_lvl_val = val_2 + A_lvl_ptr = A_lvl_ptr_2 + A_lvl_tbl1 = A_lvl_tbl1_2 + A_lvl_tbl2 = A_lvl_tbl2_2 + A_lvl_val = val_3 + B_lvl_q = B_lvl_q_step + else + phase_stop_18 = min(B_lvl_i, phase_stop) + if B_lvl_i == phase_stop_18 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_18 + val_4 = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_tbl1_3 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_3 = B_lvl_tbl2 + val_5 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr_3 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_3 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_3 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_6 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_19 = 1:Threads.nthreads() + phase_start_21 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_19), Threads.nthreads())) + phase_stop_23 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_19, Threads.nthreads())) + if phase_stop_23 >= phase_start_21 + for i_22 = phase_start_21:phase_stop_23 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_22 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_24 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_24 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_24 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_25 = min(B_lvl_i_2, A_lvl_i, phase_stop_24) + if A_lvl_i == phase_stop_25 && B_lvl_i_2 == phase_stop_25 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_26 = min(i_22, A_lvl_i_stop_4) + if phase_stop_26 >= i_22 + if A_lvl_tbl1[A_lvl_q] < i_22 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_22, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_26 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_28 = min(A_lvl_i_4, phase_stop_26) + if A_lvl_i_4 == phase_stop_28 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_25 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_25 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_25 + 1 + end + end + end + end + end + Ct_lvl_2_val = val_4 + B_lvl_tbl1 = B_lvl_tbl1_3 + B_lvl_tbl2 = B_lvl_tbl2_3 + B_lvl_val = val_5 + A_lvl_ptr = A_lvl_ptr_3 + A_lvl_tbl1 = A_lvl_tbl1_3 + A_lvl_tbl2 = A_lvl_tbl2_3 + A_lvl_val = val_6 + B_lvl_q = B_lvl_q_step + end + break + end + end + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(Ct_lvl_2_val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for j = _ + for i = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for i = parallel(_) + for j = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_4 = 1:Threads.nthreads() + phase_start_2 = max(1, 1 + fld(A_lvl.shape[1] * (i_4 + -1), Threads.nthreads())) + phase_stop_2 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_4, Threads.nthreads())) + if phase_stop_2 >= phase_start_2 + for i_7 = phase_start_2:phase_stop_2 + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_stop_3 = min(B_lvl.shape[2], B_lvl_i_stop) + if phase_stop_3 >= 1 + if B_lvl_tbl2[B_lvl_q] < 1 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_3 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_5 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_5 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_5 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_6 = min(B_lvl_i_2, phase_stop_5, A_lvl_i) + if A_lvl_i == phase_stop_6 && B_lvl_i_2 == phase_stop_6 + B_lvl_2_val = B_lvl_val[B_lvl_q_2] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_7 = min(i_7, A_lvl_i_stop_2) + if phase_stop_7 >= i_7 + if A_lvl_tbl1[A_lvl_q] < i_7 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_7 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_9 = min(A_lvl_i_2, phase_stop_7) + if A_lvl_i_2 == phase_stop_9 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_6 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_6 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_6 + 1 + end + end + B_lvl_q = B_lvl_q_step + else + phase_stop_14 = min(B_lvl_i, phase_stop_3) + if B_lvl_i == phase_stop_14 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_14 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_15 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_15 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_15 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_16 = min(B_lvl_i_2, A_lvl_i, phase_stop_15) + if A_lvl_i == phase_stop_16 && B_lvl_i_2 == phase_stop_16 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_17 = min(i_7, A_lvl_i_stop_4) + if phase_stop_17 >= i_7 + if A_lvl_tbl1[A_lvl_q] < i_7 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_17 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_19 = min(A_lvl_i_4, phase_stop_17) + if A_lvl_i_4 == phase_stop_19 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_16 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_16 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_16 + 1 + end + end + B_lvl_q = B_lvl_q_step + end + break + end + end + end + end + end + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for i = parallel(_) + for j = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for i = _ + for j = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + for i_4 = 1:A_lvl.shape[1] + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_ptr_2 = B_lvl_ptr + B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1_2 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_2 = B_lvl_tbl2 + B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + val_2 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr_2 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_2 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_2 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_3 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_5 = 1:Threads.nthreads() + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_5 + -1), Threads.nthreads())) + phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_5, Threads.nthreads())) + if phase_stop_2 >= phase_start_2 + if B_lvl_tbl2[B_lvl_q] < phase_start_2 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_2 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_4 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_4 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) + if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 + B_lvl_2_val = B_lvl_val[B_lvl_q_3] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_6 = min(i_4, A_lvl_i_stop_2) + if phase_stop_6 >= i_4 + if A_lvl_tbl1[A_lvl_q] < i_4 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_6 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_8 = min(A_lvl_i_2, phase_stop_6) + if A_lvl_i_2 == phase_stop_8 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_5 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_5 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_5 + 1 + end + end + B_lvl_q = B_lvl_q_step + else + phase_stop_13 = min(B_lvl_i, phase_stop_2) + if B_lvl_i == phase_stop_13 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_14 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_14 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) + if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_16 = min(i_4, A_lvl_i_stop_4) + if phase_stop_16 >= i_4 + if A_lvl_tbl1[A_lvl_q] < i_4 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_16 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_18 = min(A_lvl_i_4, phase_stop_16) + if A_lvl_i_4 == phase_stop_18 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_15 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_15 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_15 + 1 + end + end + B_lvl_q = B_lvl_q_step + end + break + end + end + end + end + Ct_lvl_2_val = val + B_lvl_ptr = B_lvl_ptr_2 + B_lvl_tbl1 = B_lvl_tbl1_2 + B_lvl_tbl2 = B_lvl_tbl2_2 + B_lvl_val = val_2 + A_lvl_ptr = A_lvl_ptr_2 + A_lvl_tbl1 = A_lvl_tbl1_2 + A_lvl_tbl2 = A_lvl_tbl2_2 + A_lvl_val = val_3 + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(Ct_lvl_2_val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for i = _ + for j = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for j = parallel(_) + for i = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_4 = 1:Threads.nthreads() + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_4 + -1), Threads.nthreads())) + phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_4, Threads.nthreads())) + if phase_stop_2 >= phase_start_2 + if B_lvl_tbl2[B_lvl_q] < phase_start_2 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_2 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + for i_6 = 1:A_lvl.shape[1] + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_6 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_4 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_4 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) + if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 + B_lvl_2_val = B_lvl_val[B_lvl_q_3] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_6 = min(i_6, A_lvl_i_stop_2) + if phase_stop_6 >= i_6 + if A_lvl_tbl1[A_lvl_q] < i_6 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_6, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_6 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_8 = min(A_lvl_i_2, phase_stop_6) + if A_lvl_i_2 == phase_stop_8 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_5 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_5 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_5 + 1 + end + end + end + B_lvl_q = B_lvl_q_step + else + phase_stop_13 = min(B_lvl_i, phase_stop_2) + if B_lvl_i == phase_stop_13 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 + for i_8 = 1:A_lvl.shape[1] + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_8 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_14 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_14 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) + if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_16 = min(i_8, A_lvl_i_stop_4) + if phase_stop_16 >= i_8 + if A_lvl_tbl1[A_lvl_q] < i_8 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_8, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_16 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_18 = min(A_lvl_i_4, phase_stop_16) + if A_lvl_i_4 == phase_stop_18 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_15 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_15 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_15 + 1 + end + end + end + B_lvl_q = B_lvl_q_step + end + break + end + end + end + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for j = parallel(_) + for i = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for j = _ + for i = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_val = Ct_lvl_2.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) + Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_stop = min(B_lvl.shape[2], B_lvl_i_stop) + if phase_stop >= 1 + if B_lvl_tbl2[B_lvl_q] < 1 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + val = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_tbl1_2 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_2 = B_lvl_tbl2 + val_2 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr_2 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_2 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_2 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_3 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_9 = 1:Threads.nthreads() + phase_start_6 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_9), Threads.nthreads())) + phase_stop_7 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_9, Threads.nthreads())) + if phase_stop_7 >= phase_start_6 + for i_12 = phase_start_6:phase_stop_7 + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_12 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_8 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_8 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_8 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_9 = min(B_lvl_i_2, phase_stop_8, A_lvl_i) + if A_lvl_i == phase_stop_9 && B_lvl_i_2 == phase_stop_9 + B_lvl_2_val = B_lvl_val[B_lvl_q_2] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_10 = min(i_12, A_lvl_i_stop_2) + if phase_stop_10 >= i_12 + if A_lvl_tbl1[A_lvl_q] < i_12 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_12, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_10 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_12 = min(A_lvl_i_2, phase_stop_10) + if A_lvl_i_2 == phase_stop_12 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_9 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_9 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_9 + 1 + end + end + end + end + end + Ct_lvl_2_val = val + B_lvl_tbl1 = B_lvl_tbl1_2 + B_lvl_tbl2 = B_lvl_tbl2_2 + B_lvl_val = val_2 + A_lvl_ptr = A_lvl_ptr_2 + A_lvl_tbl1 = A_lvl_tbl1_2 + A_lvl_tbl2 = A_lvl_tbl2_2 + A_lvl_val = val_3 + B_lvl_q = B_lvl_q_step + else + phase_stop_18 = min(B_lvl_i, phase_stop) + if B_lvl_i == phase_stop_18 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_18 + val_4 = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_tbl1_3 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_3 = B_lvl_tbl2 + val_5 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr_3 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_3 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_3 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_6 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_19 = 1:Threads.nthreads() + phase_start_21 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_19), Threads.nthreads())) + phase_stop_23 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_19, Threads.nthreads())) + if phase_stop_23 >= phase_start_21 + for i_22 = phase_start_21:phase_stop_23 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_22 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_24 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) + if phase_stop_24 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_24 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_25 = min(B_lvl_i_2, A_lvl_i, phase_stop_24) + if A_lvl_i == phase_stop_25 && B_lvl_i_2 == phase_stop_25 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_4 = 0 + end + phase_stop_26 = min(i_22, A_lvl_i_stop_4) + if phase_stop_26 >= i_22 + if A_lvl_tbl1[A_lvl_q] < i_22 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_22, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_26 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_28 = min(A_lvl_i_4, phase_stop_26) + if A_lvl_i_4 == phase_stop_28 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_25 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_25 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_25 + 1 + end + end + end + end + end + Ct_lvl_2_val = val_4 + B_lvl_tbl1 = B_lvl_tbl1_3 + B_lvl_tbl2 = B_lvl_tbl2_3 + B_lvl_val = val_5 + A_lvl_ptr = A_lvl_ptr_3 + A_lvl_tbl1 = A_lvl_tbl1_3 + A_lvl_tbl2 = A_lvl_tbl2_3 + A_lvl_val = val_6 + B_lvl_q = B_lvl_q_step + end + break + end + end + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(Ct_lvl_2_val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for j = _ + for i = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) + diff --git a/test/test_parallel.jl b/test/test_parallel.jl index 5c845ea8e..08ed24e89 100644 --- a/test/test_parallel.jl +++ b/test/test_parallel.jl @@ -32,12 +32,21 @@ io = IOBuffer() A = fsprand(42, 42, 0.1) B = fsprand(42, 42, 0.1) - C = zeros(42, 42) - CR = A * B + CR = Tensor(Dense(Dense(Element(0.0))), zeros(42, 42)) + @repl io @finch begin + CR .= 0 + for i = _ + for j = _ + for k = _ + CR[i, j] += A[i, k] * B[k, j] + end + end + end + end formats = [Dense, SparseList] - for fmtA1 in formats - for fmtA2 in formats + for fmatA1 in formats + for fmatA2 in formats Af = fmatA2(fmatA1(Element(0.0))) At = Tensor(Af, A) for fmatB1 in formats @@ -45,7 +54,7 @@ Bf = fmatB2(fmatB1(Element(0.0))) Bt = Tensor(Bf, B) - Ct = Tensor(Dense(Dense(Element(0.0))), C) + Ct = Tensor(Dense(Dense(Element(0.0))), zeros(42, 42)) @repl io @finch_code begin Ct .= 0 @@ -57,7 +66,7 @@ end end end - @repl io @finch_code begin + @repl io @finch begin Ct .= 0 for i = parallel(_) for j = _ @@ -81,7 +90,7 @@ end end end - @repl io @finch_code begin + @repl io @finch begin Ct .= 0 for i = _ for j = parallel(_) @@ -104,7 +113,7 @@ end end end - @repl io @finch_code begin + @repl io @finch begin Ct .= 0 for j = parallel(_) for i = _ @@ -128,7 +137,7 @@ end end end - @repl io @finch_code begin + @repl io @finch begin Ct .= 0 for j = _ for i = parallel(_) @@ -144,12 +153,9 @@ end end - + end end - @test check_output("debug_parallel_spmms_no_atomics.txt", String(take!(io))) - - end let From 34faf8de1d2e3bf70613b859193d8d1dac182008 Mon Sep 17 00:00:00 2001 From: teocollin1995 Date: Mon, 12 Feb 2024 11:46:18 -0500 Subject: [PATCH 03/41] fewer tests; added k parallel tests but it fails --- .../debug_parallel_spmms_atomics.txt | 302 + .../debug_parallel_spmms_no_atomics.txt | 15257 +--------------- test/test_parallel.jl | 173 +- 3 files changed, 699 insertions(+), 15033 deletions(-) create mode 100644 test/reference64/debug_parallel_spmms_atomics.txt diff --git a/test/reference64/debug_parallel_spmms_atomics.txt b/test/reference64/debug_parallel_spmms_atomics.txt new file mode 100644 index 000000000..d2344426c --- /dev/null +++ b/test/reference64/debug_parallel_spmms_atomics.txt @@ -0,0 +1,302 @@ +julia> @finch begin + CR .= 0 + for i = _ + for j = _ + for k = _ + CR[i, j] += A[i, k] * B[k, j] + end + end + end + end +(CR = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.018003972912606803, 0.6715509015807506, 0.7782653886209859, 0.32632930309063274, 0.07671040055246747, 0.5767259256948573, 0.810165869204658, 0.04291847779490834, 0.7523035763995596, 0.11302431472257762, 0.0, 0.01602965026103634, 0.22115346753431409, 0.037561900748908854, 0.013385336224041582, 0.029972484597749195, 0.0, 0.0, 0.5634489750971553, 0.054417596728049175, 0.0, 0.5656810924951424, 0.2940947806987573, 0.0, 0.08882217481442631, 0.22565673174351195, 0.09930062784782019, 0.19828502144330606, 0.0, 0.11456873776555695, 0.48424587385265383, 0.37663537032083527, 0.0, 0.0, 0.0, 0.037484025491953656, 0.0, 0.04358738828832, 0.18948713942721873, 0.0, 0.021309789698209406, 0.0, 0.0, 0.34915458383088943, 0.0, 0.0, 0.0, 0.007487180183164403, 0.09132978840971764, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2025839575232124, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10847123427460506, 0.10311356900941321, 0.03863451517271454, 0.0, 0.0, 0.0, 0.09096268938595695, 0.0, 0.0, 0.0, 0.0, 0.07419585782639983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08418511929497627, 0.0, 0.12651499086404613, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4321500979738283, 0.0, 0.006480579483586275, 0.0, 0.00038716149888684873, 0.0, 0.0, 0.013244468221545107, 0.0, 0.0, 0.24547792145680816, 0.0, 0.0, 0.24645038846539752, 0.0, 0.07787330782357368, 0.0, 0.09831191096156015, 0.0, 0.0863868727625753, 0.0, 0.0, 0.21097149137042656, 0.4600105653434928, 0.0, 0.0, 0.4846748152193548, 0.0053825196588004436, 0.0, 0.0, 0.23304656335170953, 0.0, 0.0, 0.0, 0.01644729791409444, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6635839294521109, 0.0, 0.0, 0.1032519091648337, 0.0, 0.014643680846542287, 0.0, 0.0, 0.012228001765264587, 0.0273809778429294, 0.0, 0.0, 0.0, 0.0, 0.11814152846841043, 0.0, 0.0, 0.0, 0.08114235550352887, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03981869801488778, 0.0, 0.0, 0.01690058436045381, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.47984630251995897, 0.0, 0.0, 0.0, 0.154685583485594, 0.0, 0.0, 0.7459066497127498, 0.32432766351381886, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21251921179608543, 0.0, 0.041283993604408244, 0.4906650630543811, 0.0, 0.0, 0.0, 0.3009663372628846, 0.29390924803430424, 0.14599468380868816, 0.14724751511978565, 0.02500191228688869, 0.0, 0.0, 0.0, 0.0, 0.06939565285269096, 0.018849269370198582, 0.32715732364762956, 0.0, 0.0, 0.0, 0.0, 0.4732128312830887, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5472401277259243, 0.0, 0.0, 0.0, 0.3356686041995424, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006124345533801972, 0.059693390630145234, 0.0, 0.0, 0.0, 0.0, 0.7701573530835567, 0.0, 0.0, 0.43089308645043684, 0.0, 0.4426871487137241, 0.12677439419075828, 0.0, 0.0, 0.47537084352136705, 0.0, 0.0, 0.0, 0.0, 0.0, 1.215287997578233, 0.037543424026112354, 0.0, 0.0, 0.5379410567908419, 0.0, 0.0, 0.17780464411285438, 0.3071357553748976, 0.3614993154298547, 0.0, 0.1891417853768657, 0.0, 0.6912529043730106, 0.0, 0.0, 0.5485925554907274, 0.0, 0.5108261790337173, 0.0, 0.0, 0.0, 0.02366817478031771, 0.0, 0.0, 1.2280555558078412, 0.4674168435713557, 0.0, 0.0, 0.0, 0.23075296158753902, 0.0, 0.0, 0.07502151735916562, 0.626568729479956, 0.0, 0.0, 0.0, 0.0, 0.4149990617847983, 0.0, 0.0, 0.0, 0.22279868499825492, 0.0, 0.0, 0.5403248930908322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06322273667040083, 0.10094478522643717, 0.3387178421999011, 0.0, 0.5942669672638095, 0.0, 0.07164274732515331, 0.0, 0.0, 0.0, 0.16162050236277423, 0.16241659821715973, 0.5135606043385268, 0.0, 0.0, 0.5786552208576398, 0.9215277550399469, 0.5467787056885621, 0.12114909389695927, 0.0, 0.41576199634744937, 0.25271142537828667, 0.10169080638315105, 0.09035644665270913, 0.5186992660395696, 0.0, 0.8350126002207462, 0.0, 0.4590684905849725, 0.5886674559725333, 0.8153568197541052, 0.0, 0.5241047591859962, 0.40143028033605616, 0.0, 0.0, 1.2135756958284523, 0.0, 0.9792953636803372, 0.0, 0.0, 0.0, 0.07614591165689645, 0.24556945517590373, 0.6102890524250416, 0.0, 1.0435423231384657, 0.0, 0.0, 0.48943379744214055, 0.12791852851238183, 0.0, 0.19465687730377407, 0.11709029823841187, 0.0, 0.4229951092224917, 0.1438540051610157, 0.0, 0.0, 0.1703427415013558, 0.08724202694224298, 0.1395620898962288, 0.0, 0.22213892259359796, 0.0, 0.7882143461677291, 0.2546665805877283, 0.03597313889306425, 0.14802212956482205, 0.3919199393005139, 0.0, 0.43670107573519007, 0.08461463206412526, 0.5268384995574602, 0.0, 0.0, 0.0, 0.710223739285348, 0.31420569755496963, 0.0, 0.060070569318188244, 0.0, 0.1747770748083586, 0.0, 0.0, 0.0, 0.0, 0.13970561131521003, 0.37685554260004983, 0.02392489472196235, 0.5001172064820062, 0.1271397932462149, 0.0, 0.0, 0.06640626803307163, 0.0, 0.33601428762663216, 0.3914997569159482, 0.0, 0.0, 0.0, 0.19710945641036862, 0.0, 0.0, 0.0, 0.2570446025119335, 0.0725597578451322, 0.2153089707985957, 0.29468347651980764, 0.0, 0.0, 0.0, 0.0, 0.5053218639862116, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3406987685187243, 0.1282582445133294, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2730271127536044, 0.0, 0.0, 0.0, 0.09127410611527945, 0.0, 0.0, 0.0, 0.43937003529159857, 0.0, 0.0, 0.34629394607426156, 0.3602903966859215, 0.0, 0.0, 0.0, 0.4524888332499127, 0.0, 0.0, 0.05407346090862119, 0.5645191906902647, 0.0, 0.0, 0.0, 0.06182241276595979, 0.5051019163723838, 0.0, 0.0, 0.0, 0.43689110783624835, 0.0, 0.3247012272501492, 0.7529477711340642, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04556922200754848, 0.07275824443457538, 0.6641996712133981, 0.0, 0.7527892189655382, 0.0, 0.0, 0.0, 0.0, 0.0650185387513895, 0.11649164431992753, 0.09285202740421554, 0.0, 0.10520472290792057, 0.0, 0.0, 0.0, 0.036503860437912636, 0.5018364780015474, 0.0, 0.9018697735038638, 0.27452370937022097, 0.20528582752919317, 0.07345710391625684, 0.08368878794961943, 0.0020062951066029595, 0.0, 0.024311758317256665, 0.6863531779584559, 0.09358353036484864, 0.0, 0.0, 0.9056118974425151, 0.29332085426290194, 0.0, 0.0630960103278028, 0.3131666065435304, 0.16132753119961868, 0.0, 0.0, 0.10949069660281478, 0.0, 0.0, 0.043082807469330416, 0.9391632037219755, 0.2464244579278498, 0.05056349807476583, 0.4941568471321954, 0.08930155661972776, 0.14135721850308308, 0.6365671583541417, 0.01570471026967911, 0.0, 0.0, 0.30035575477425325, 0.470607279557531, 0.0, 0.7051994623504158, 0.0, 0.23693793780889214, 0.0, 0.0, 0.0, 0.3089837451394857, 0.0, 0.25881489636176935, 0.3542280340299567, 0.0, 0.0, 0.0, 0.5509103928459669, 0.6074285960860691, 0.0, 0.0, 0.0, 0.0, 0.0, 0.40954130307575276, 0.4320109271392501, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7153301391295569, 0.32819572556211446, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25387735844455867, 0.0, 0.18356036702777592, 0.788959698429946, 0.059142916486545904, 0.0, 0.0, 0.2329870601139546, 0.30260111431019593, 0.0, 0.19018291703368598, 0.11334224351658809, 0.0, 0.0, 0.39837350679552525, 0.002854450925801763, 0.0, 0.0, 0.1761871096815805, 0.26007093167161216, 0.4537724619820453, 0.0, 0.0, 0.19939804636751923, 0.0, 0.0, 0.0, 0.1241315656029792, 0.1788746058733879, 0.06989387912072809, 0.0, 0.008706450766933925, 0.17069278519076628, 0.09804467032937333, 0.0, 0.0, 0.0, 0.0, 0.2756668600912958, 0.0, 0.0, 0.0, 0.005007038116067554, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8846910424025506, 0.0, 0.5333972690871841, 0.4949732055269114, 0.5048814532552262, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.627591044078193, 0.0, 0.19602396549237053, 0.0, 0.0, 0.0, 0.0, 0.1453664926926827, 0.896573768738389, 0.0, 0.0, 0.08916555133174352, 0.0, 0.45645988556129685, 0.4637272073796655, 0.0, 0.5460482316353812, 0.0, 0.0, 0.0, 0.0, 0.03854810586108881, 0.0, 0.0, 0.0, 0.24917051451787198, 0.15578564796063854, 0.0, 0.013543850896187834, 0.1652099998051347, 0.4862465546100088, 0.0, 0.0, 0.0, 0.11288030981556667, 0.07793421422144962, 0.0, 0.0, 0.34069897855478337, 0.0, 0.24220682644461092, 0.0, 0.042169823026623185, 0.0, 0.18652613799485498, 0.06988747434212275, 0.0, 0.19432531845717826, 0.0, 0.0, 0.00773760410112359, 0.0, 0.0, 0.0, 0.13421576760969542, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3005240696463887, 0.0, 0.0, 0.1430297093262495, 0.0, 0.024074811994738193, 0.0, 0.7425836604044599, 0.0, 0.0, 0.773031322896148, 0.0, 0.0, 0.0, 0.15113548220653236, 0.0, 0.02143475877513858, 0.0, 0.0, 0.017898796818035273, 0.5704357742231774, 0.0, 0.0, 0.28614450437434535, 0.8406253620321404, 0.4518328538149436, 0.0, 0.0, 0.0, 0.11877251593306616, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7242261419761843, 0.75325138697923, 0.0, 0.0, 0.0, 0.21774733884534636, 0.05828481210656411, 0.0, 0.0, 0.5513859663000955, 0.08804724386035472, 0.0, 0.0, 0.13001461893666422, 0.05055138733020214, 0.0, 0.8802248488281825, 0.6335423662880417, 0.0, 0.0, 0.01901314000236066, 0.007676360091610109, 0.03662889578173271, 0.0, 0.0, 0.0, 0.0, 0.03491957842751296, 0.0, 0.0, 0.0, 0.0, 0.31801869319533504, 0.11915500690641781, 0.055287184155029916, 0.07802084728905281, 0.0, 0.0, 0.1568519327721604, 0.0, 0.006469083934087435, 0.0103288836062672, 0.4783408265548552, 0.0, 0.03403634442829624, 0.0, 0.06752201735679073, 0.5482808562992434, 0.6465577226913658, 0.19559104705049943, 0.7473465260842165, 0.0, 0.2510639869948042, 0.0, 0.49874757736937353, 0.0, 0.0, 0.29196420234146186, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.28937972665293554, 0.0, 0.0, 0.007742544258898216, 0.0050434263912106985, 0.09915800240987568, 0.0, 0.7790435385945825, 0.0, 0.0, 0.0, 0.6720010410729492, 0.0, 0.0, 0.12993505760251525, 0.0, 0.0, 0.0, 0.09325889168521988, 0.0, 0.0, 0.0, 0.0, 0.029846526702260994, 0.0, 0.0, 0.0, 0.0, 0.03754266866784506, 0.0, 0.0, 0.06429885322169407, 0.0, 0.0, 0.0, 0.06625799315618229, 0.02719995417661398, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1751776227817407, 0.0, 0.007852967543861803, 0.0, 0.23548257357635802, 0.0, 0.0, 0.0, 0.18584714899527952, 0.0, 0.006031156908010012, 0.0, 0.0, 0.09024557651897172, 0.0, 0.0, 0.0, 0.01928750817179254, 0.0, 0.0, 0.0, 0.04647312904146408, 0.04238313205889527, 0.04813129297619805, 0.0, 0.05649291128148132, 0.3120484444217953, 0.20304077341891358, 0.22280612221181567, 0.0, 0.0, 0.0, 0.0, 0.2296027094274992, 0.36729813710945064, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03194349659115132, 0.013381366431696788, 0.22268795739920053, 0.0, 0.5523622509591986, 0.0, 0.0, 0.0, 0.6320065213132712, 0.0, 0.054122720571298674, 0.1129752905678043, 0.0, 0.0, 0.0, 0.1354202846158455, 0.0, 0.0, 0.0, 0.0, 0.07918967771838586, 0.33460525882449765, 0.0, 0.1408840961604024, 0.0, 0.13967703386944746, 0.0, 0.015739213046679565, 0.0, 0.0, 0.0, 0.18340851877331085, 0.049075431284917106, 0.5986297438714518, 0.1026146960995913, 0.0, 0.09880673435294796, 0.0, 0.01401324484028475, 0.0, 0.0, 0.011701564957593804, 0.026202178980838764, 0.0, 0.0, 0.0, 0.34875710305703866, 0.0, 0.6758676493244615, 0.25323358703827886, 0.0, 0.07764903554674676, 0.0, 0.0, 0.3437885050787113, 0.0, 0.0, 0.05172718445894569, 0.48632377387851766, 0.7737451549255131, 0.0, 0.0, 0.2824387300805914, 0.0, 0.03810443360186568, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5685388973074467, 0.0, 0.6119913546647608, 0.3631185701853139, 0.0, 0.0, 0.0, 0.0, 0.0, 0.42090311344262876, 0.0, 0.0, 0.5545361922919911, 0.0, 0.30486976208852845, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5353307932807481, 0.3737614291005788, 0.06278455657761825, 0.6503551227381855, 0.0, 0.30802712982197544, 0.0, 0.0, 0.0, 0.0, 0.6932590699354483, 0.0, 0.0, 0.1727602393426444, 0.3250355196326665, 0.0, 0.0, 0.0, 0.031208327259562327, 0.0, 0.022564485628753735, 0.20187972104397525, 0.0, 0.0, 0.0, 0.023252803763957695, 0.037197781883188764, 0.0, 0.0, 0.14016266119268855, 0.0, 0.0, 0.0, 0.0, 0.5500068484641752, 0.0, 0.21787864254870015, 0.11728832916212795, 0.7393468760695268, 0.0, 0.0, 0.0, 0.5835060614008979, 0.0, 0.0, 0.005481228874667605, 0.0, 0.24527608437248674, 0.0, 0.0, 0.0, 0.08585061953648496, 0.0, 0.0, 0.0, 0.0, 0.033886840626726755, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7610872759404612, 0.4515830514911833, 0.0, 0.0, 0.0, 0.0, 0.4404042575115658, 0.12990320458817742, 0.0, 0.0, 1.1767377087370854, 0.0, 0.37914342249438854, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4648187686925721, 0.0, 0.8087973873909876, 0.0, 0.0, 0.37042117085655, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4042220471506979, 0.506818287464434, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.799283492516607, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2072078588281799, 0.0, 0.0, 0.0, 0.0, 0.0, 0.38630185980823584, 0.0, 0.0, 0.7203309700401708, 0.28467844154475075, 0.0, 0.055301649487215346, 0.0, 0.0, 0.0, 0.0, 0.09138992101001418, 0.0, 0.19556603240348344, 0.19724425274952875, 0.03349111529878698, 0.0, 0.0, 0.0, 0.0, 0.09295840191163598, 0.062259404337737585, 0.5110045389416802, 0.0450152750177662, 0.0, 0.0, 0.0, 0.0, 0.04638844304232061, 0.07420813436973994, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08039405816322542, 0.0, 0.04499140125036479, 0.0, 0.0, 0.0, 0.0, 0.0, 0.47269177846996874, 0.0, 0.01093483934391422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06760293477957593, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.30814523656105497, 0.0, 0.0, 0.002453061284897307, 0.0, 0.13680023676237826, 0.0, 0.0, 0.0, 0.0, 0.4233541440451853, 0.3380165111056225, 0.08224079897271243, 0.0, 0.0, 0.24592756484718573, 0.0, 0.0, 0.02267336040190668, 0.2908323152368906, 0.29332804878897817, 0.04980567679624497, 0.01451698775054283, 0.0, 0.0, 0.0, 0.1382413239989673, 0.03764974542541842, 0.0, 0.45231380198935905, 0.0, 0.0, 0.0, 0.22772767048274462, 0.028083536989501626, 0.0, 0.0, 0.7177165992040482, 0.0, 0.248754226443203, 0.3404584582583339, 0.0, 0.0, 0.0, 0.0, 0.5838165911735776, 0.18900763241929244, 0.0, 0.0, 0.0, 0.0, 0.393621586219481, 0.1481813799050705, 0.08990527101762133, 0.0, 0.0, 0.0, 0.06541155133507946, 0.0, 0.0, 0.754567070013019, 0.0, 0.35519767644142475, 0.7886704894854123, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2853585340727017, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1466994216180092, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04489418163119632, 0.0, 0.154322481722074, 0.0, 0.0, 0.0, 0.05695713751335286, 0.0, 0.26396366899551715, 0.0, 0.0, 0.0, 0.2015805623941956, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1347415569982167, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15951239540553339, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26424756561910484, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3095030162301081, 0.4017859650017111, 0.4320177001616871, 0.31072912027464494, 0.0, 0.0, 0.0, 0.12395344067349241, 0.0, 0.10891813619746654, 0.0, 0.0, 0.36104977882982536, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4976654583754128, 0.7708862373561997, 0.47125964249827657, 0.10728601893015154, 0.0, 0.031799482348967435, 0.6739071734662878, 0.36447067198103217, 0.5830479926977264, 0.3439222616030173, 0.2549269417290746, 0.1664670841939448, 0.06466304544803145, 0.08850133352227474, 0.0, 0.0, 0.0, 0.0, 0.15176167781411123, 0.7529769594833942, 0.2081678127507482, 0.43606912218895016, 0.0, 0.20899247481790656, 0.13097931441492902, 0.0385193829281183, 0.0, 0.1692837648290093, 0.24671124992729013, 0.0732569603271901, 0.0, 0.0, 0.3302348567546971, 0.0, 0.0, 0.08199734797416196, 0.0, 0.3003739061478844, 0.5311514129612689, 0.2094016677928949, 0.08615953302492001, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2720133179050694, 0.08023401473498062, 0.0, 0.0, 0.3008565847002404, 0.0, 0.0, 0.0, 0.0, 0.15598633286780347, 0.0914681730216936, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2287886413185382, 0.0, 0.02163921527981386, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31303358584026736, 0.0, 0.0, 0.10317949853840898, 0.0, 0.0, 0.4429302660561133, 0.5715405010739755, 0.5374631632426349, 0.31889805938655563, 0.036252046956170986, 0.4422081073153658, 0.0, 0.7337564221688706, 0.0, 0.023977384315413304, 0.0, 0.0, 0.4870048796768423, 0.0, 0.5662703466651342, 0.07343369104191685, 0.0, 0.85942069251388, 0.0, 0.0, 1.3620890981561393, 0.18706378421604947, 0.5009363229828259, 0.0, 0.9153459961943655, 0.0, 0.3024413176269455, 0.0, 0.020206414212617495, 0.770875966881197, 0.3592476280889007, 0.42399066250320144, 0.10631373480524917, 0.0, 0.0, 0.28545275552737415, 0.0, 0.0, 0.051655005587926184, 0.2896221837003778, 0.0, 0.10479137286851924, 0.0, 0.6481743752598288, 0.18963154425718728, 0.1652754625808005, 0.5111459932504497, 0.20983351489683355, 0.0, 0.0688022311887445, 0.0, 0.1588427949870473, 0.07887689716448136, 0.0, 0.17182849674148495, 0.0, 0.0944668962094047, 0.4452313187931226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09119364969454108, 0.8790983194086319, 0.04652724209330274, 0.20151893535811746, 0.0, 0.09353766464308477, 0.0, 0.08529401781538828, 0.13618496703742403, 0.14879310483428343, 0.0, 0.5218449227201785, 0.0, 0.0, 0.4276792985772285, 0.37130791898202276, 0.0, 0.65385625176219, 0.21427428342013688, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029843856213185426, 0.7335168265162704, 0.36008358555156716, 0.016697251884690307, 0.0, 0.0, 0.0, 0.0, 0.32011086143599826, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.311051559092257, 0.4114828296911449, 0.40654319137761, 0.15232329989672078, 0.0, 0.7981814625524425, 0.0, 0.0, 0.03178181930754204, 0.0, 0.0, 0.08306558457263293, 0.9520806654789163, 0.0, 0.0, 0.0, 0.014583001249069335, 0.19830185076027407, 0.0, 0.0, 0.0, 0.017109723326194017, 0.5838039803907641, 0.036078269448045736, 0.0, 0.0, 0.0, 1.5483621887345977, 0.0, 0.0, 0.3938374131167075, 0.21826438331642692, 0.47843769619251875, 0.0, 0.03212191242915342, 0.0, 0.0, 0.026822955649167167, 0.06006204189453128, 0.3916449581841089, 0.17029114067254328, 0.0, 0.8085887138693341, 0.0, 0.0847427642025191, 0.0, 0.24867162588894387, 0.1779912895598945, 0.0, 0.4967368758167945, 0.2999184090453587, 0.0, 0.0, 0.34170853809147433, 0.15431967954789833, 0.0, 0.20047306608944798, 0.0, 0.34396866784271457, 0.0, 0.08734502916861536, 0.0, 0.0, 0.2734744328918824, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4826472849667363, 0.19813434438947314, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7219511030362349, 0.1739578003573766, 0.0, 0.0, 0.5805657409095567, 0.04393313724425415, 0.0, 0.0, 0.08832251544226348, 0.0, 0.0, 0.08642438629494777, 0.1404972141390735, 0.0, 0.0, 0.0, 0.0, 0.30873412613620277, 0.35060581780891126, 0.0, 0.411514882221113, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12502955237491653, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9289178041335806, 0.0, 0.0, 0.5936412791641967, 0.0, 0.0, 0.27919748240464876, 0.0, 0.0, 0.0, 0.0, 0.03866359013001743, 0.0, 0.09129386900625779, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11792903528210355, 0.0, 0.38768207402217597, 0.12966222332760374, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15858416904207315, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06587533022560071, 0.5693372038338419, 0.4118051761712919, 0.04005300556172724, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.28854004528147215, 0.0, 0.12922839237489175, 0.0, 0.14106371386748318, 0.0, 0.6427956538537295, 0.2408421964280935, 0.11343809741754582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.016886662889233732, 0.4625266626199813, 0.0, 0.027184451434696822, 0.0, 0.0, 0.0, 0.2545156696147772, 0.0, 0.0]), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for i = _ + for j = _ + for k = parallel(_) + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_locks = Ct_lvl_2.lvl.locks + Ct_lvl_4 = Ct_lvl_3.lvl + Ct_lvl_3_val = Ct_lvl_3.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + A_lvl.shape[2] == B_lvl.shape[1] || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl.shape[2]) != $(B_lvl.shape[1]))")) + @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_locks, pos_stop) + @inbounds for idx = 1:pos_stop + lockVal = make_lock(eltype(Vector{Base.Threads.SpinLock})) + if lockVal == false + break + else + Ct_lvl_2_locks[idx] = lockVal + end + end + Finch.resize_if_smaller!(Ct_lvl_3_val, pos_stop) + Finch.fill_range!(Ct_lvl_3_val, 0.0, 1, pos_stop) + for i_4 = 1:A_lvl.shape[1] + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_stop = min(B_lvl.shape[2], B_lvl_i_stop) + if phase_stop >= 1 + if B_lvl_tbl2[B_lvl_q] < 1 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 + Ct_lvl_3atomicArraysAcc = get_lock(CPU(1), Ct_lvl_2_locks, Ct_lvl_2_q, eltype(Vector{Base.Threads.SpinLock})) + aquire_lock!(CPU(1), Ct_lvl_3atomicArraysAcc) + B_lvl_ptr_2 = B_lvl_ptr + B_lvl_tbl1_2 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_2 = B_lvl_tbl2 + val = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr_2 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_2 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_2 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_2 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_6 = 1:Threads.nthreads() + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + phase_start_6 = max(1, 1 + fld(A_lvl.shape[2] * (-1 + i_6), Threads.nthreads())) + phase_stop_7 = min(A_lvl.shape[2], A_lvl_i_stop, B_lvl_i_stop_2, fld(A_lvl.shape[2] * i_6, Threads.nthreads())) + if phase_stop_7 >= phase_start_6 + k = phase_start_6 + if A_lvl_tbl2[A_lvl_q] < phase_start_6 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, phase_start_6, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < phase_start_6 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, phase_start_6, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_7 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_8 = min(B_lvl_i_2, phase_stop_7, A_lvl_i) + if A_lvl_i == phase_stop_8 && B_lvl_i_2 == phase_stop_8 + B_lvl_2_val_2 = B_lvl_val[B_lvl_q_2] + A_lvl_q_3 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_3 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_3 = 0 + end + phase_stop_9 = min(i_4, A_lvl_i_stop_3) + if phase_stop_9 >= i_4 + if A_lvl_tbl1[A_lvl_q] < i_4 + A_lvl_q_3 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_3 = A_lvl_tbl1[A_lvl_q_3] + if A_lvl_i_3 < phase_stop_9 + A_lvl_2_val = A_lvl_val[A_lvl_q_3] + Ct_lvl_3_val[Ct_lvl_2_q] = Ct_lvl_3_val[Ct_lvl_2_q] + B_lvl_2_val_2 * A_lvl_2_val + A_lvl_q_3 += 1 + else + phase_stop_11 = min(A_lvl_i_3, phase_stop_9) + if A_lvl_i_3 == phase_stop_11 + A_lvl_2_val = A_lvl_val[A_lvl_q_3] + Ct_lvl_3_val[Ct_lvl_2_q] = Ct_lvl_3_val[Ct_lvl_2_q] + B_lvl_2_val_2 * A_lvl_2_val + A_lvl_q_3 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_8 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_8 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_8 + 1 + end + end + end + B_lvl_ptr = B_lvl_ptr_2 + B_lvl_tbl1 = B_lvl_tbl1_2 + B_lvl_tbl2 = B_lvl_tbl2_2 + B_lvl_val = val + A_lvl_ptr = A_lvl_ptr_2 + A_lvl_tbl1 = A_lvl_tbl1_2 + A_lvl_tbl2 = A_lvl_tbl2_2 + A_lvl_val = val_2 + release_lock!(CPU(1), Ct_lvl_3atomicArraysAcc) + B_lvl_q = B_lvl_q_step + else + phase_stop_23 = min(B_lvl_i, phase_stop) + if B_lvl_i == phase_stop_23 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_23 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 + Ct_lvl_3atomicArraysAcc_2 = get_lock(CPU(1), Ct_lvl_2_locks, Ct_lvl_2_q_2, eltype(Vector{Base.Threads.SpinLock})) + aquire_lock!(CPU(1), Ct_lvl_3atomicArraysAcc_2) + B_lvl_ptr_3 = B_lvl_ptr + B_lvl_tbl1_3 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_3 = B_lvl_tbl2 + val_3 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr_3 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_3 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_3 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_4 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_8 = 1:Threads.nthreads() + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + phase_start_26 = max(1, 1 + fld(A_lvl.shape[2] * (-1 + i_8), Threads.nthreads())) + phase_stop_28 = min(A_lvl.shape[2], A_lvl_i_stop, B_lvl_i_stop_2, fld(A_lvl.shape[2] * i_8, Threads.nthreads())) + if phase_stop_28 >= phase_start_26 + k = phase_start_26 + if A_lvl_tbl2[A_lvl_q] < phase_start_26 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, phase_start_26, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < phase_start_26 + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, phase_start_26, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_28 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + phase_stop_29 = min(B_lvl_i_2, A_lvl_i, phase_stop_28) + if A_lvl_i == phase_stop_29 && B_lvl_i_2 == phase_stop_29 + B_lvl_2_val_8 = B_lvl_val[B_lvl_q_2] + A_lvl_q_9 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_9 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_9 = 0 + end + phase_stop_30 = min(i_4, A_lvl_i_stop_9) + if phase_stop_30 >= i_4 + if A_lvl_tbl1[A_lvl_q] < i_4 + A_lvl_q_9 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_9 = A_lvl_tbl1[A_lvl_q_9] + if A_lvl_i_9 < phase_stop_30 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_9] + Ct_lvl_3_val[Ct_lvl_2_q_2] = Ct_lvl_3_val[Ct_lvl_2_q_2] + B_lvl_2_val_8 * A_lvl_2_val_2 + A_lvl_q_9 += 1 + else + phase_stop_32 = min(A_lvl_i_9, phase_stop_30) + if A_lvl_i_9 == phase_stop_32 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_9] + Ct_lvl_3_val[Ct_lvl_2_q_2] = Ct_lvl_3_val[Ct_lvl_2_q_2] + B_lvl_2_val_8 * A_lvl_2_val_2 + A_lvl_q_9 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + B_lvl_q_2 += 1 + elseif B_lvl_i_2 == phase_stop_29 + B_lvl_q_2 += 1 + elseif A_lvl_i == phase_stop_29 + A_lvl_q = A_lvl_q_step + end + k = phase_stop_29 + 1 + end + end + end + B_lvl_ptr = B_lvl_ptr_3 + B_lvl_tbl1 = B_lvl_tbl1_3 + B_lvl_tbl2 = B_lvl_tbl2_3 + B_lvl_val = val_3 + A_lvl_ptr = A_lvl_ptr_3 + A_lvl_tbl1 = A_lvl_tbl1_3 + A_lvl_tbl2 = A_lvl_tbl2_3 + A_lvl_val = val_4 + release_lock!(CPU(1), Ct_lvl_3atomicArraysAcc_2) + B_lvl_q = B_lvl_q_step + end + break + end + end + end + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(Ct_lvl_2_locks, qos_2) + resize!(Ct_lvl_3_val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}((AtomicLevel){Vector{Base.Threads.SpinLock}, ElementLevel{0.0, Float64, Int64, Vector{Float64}}}(Ct_lvl_4, Ct_lvl_2_locks), A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for i = _ + for j = _ + for k = parallel(_) + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Atomic([Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0)], Element{0.0, Float64, Int64}([0.0, 0.0, 0.018003972912606803, 0.6715509015807506, 0.7782653886209859, 0.32632930309063274, 0.07671040055246747, 0.5767259256948573, 0.810165869204658, 0.04291847779490834, 0.7523035763995596, 0.11302431472257762, 0.0, 0.01602965026103634, 0.22115346753431409, 0.037561900748908854, 0.013385336224041582, 0.029972484597749195, 0.0, 0.0, 0.5634489750971553, 0.054417596728049175, 0.0, 0.5656810924951424, 0.2940947806987573, 0.0, 0.08882217481442631, 0.22565673174351195, 0.09930062784782019, 0.19828502144330606, 0.0, 0.11456873776555695, 0.48424587385265383, 0.37663537032083527, 0.0, 0.0, 0.0, 0.037484025491953656, 0.0, 0.04358738828832, 0.18948713942721873, 0.0, 0.021309789698209406, 0.0, 0.0, 0.34915458383088943, 0.0, 0.0, 0.0, 0.007487180183164403, 0.09132978840971764, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2025839575232124, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10847123427460506, 0.10311356900941321, 0.03863451517271454, 0.0, 0.0, 0.0, 0.09096268938595695, 0.0, 0.0, 0.0, 0.0, 0.07419585782639983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08418511929497627, 0.0, 0.12651499086404613, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4321500979738283, 0.0, 0.006480579483586275, 0.0, 0.00038716149888684873, 0.0, 0.0, 0.013244468221545107, 0.0, 0.0, 0.24547792145680816, 0.0, 0.0, 0.24645038846539752, 0.0, 0.07787330782357368, 0.0, 0.09831191096156015, 0.0, 0.0863868727625753, 0.0, 0.0, 0.21097149137042656, 0.4600105653434928, 0.0, 0.0, 0.4846748152193548, 0.0053825196588004436, 0.0, 0.0, 0.23304656335170953, 0.0, 0.0, 0.0, 0.01644729791409444, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6635839294521109, 0.0, 0.0, 0.1032519091648337, 0.0, 0.014643680846542287, 0.0, 0.0, 0.012228001765264587, 0.0273809778429294, 0.0, 0.0, 0.0, 0.0, 0.11814152846841043, 0.0, 0.0, 0.0, 0.08114235550352887, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03981869801488778, 0.0, 0.0, 0.01690058436045381, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.47984630251995897, 0.0, 0.0, 0.0, 0.154685583485594, 0.0, 0.0, 0.7459066497127498, 0.32432766351381886, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21251921179608543, 0.0, 0.041283993604408244, 0.4906650630543811, 0.0, 0.0, 0.0, 0.3009663372628846, 0.29390924803430424, 0.14599468380868816, 0.14724751511978565, 0.02500191228688869, 0.0, 0.0, 0.0, 0.0, 0.06939565285269096, 0.018849269370198582, 0.32715732364762956, 0.0, 0.0, 0.0, 0.0, 0.4732128312830887, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5472401277259243, 0.0, 0.0, 0.0, 0.3356686041995424, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006124345533801972, 0.059693390630145234, 0.0, 0.0, 0.0, 0.0, 0.7701573530835567, 0.0, 0.0, 0.43089308645043684, 0.0, 0.4426871487137241, 0.12677439419075828, 0.0, 0.0, 0.47537084352136705, 0.0, 0.0, 0.0, 0.0, 0.0, 1.215287997578233, 0.037543424026112354, 0.0, 0.0, 0.5379410567908419, 0.0, 0.0, 0.17780464411285438, 0.3071357553748976, 0.3614993154298547, 0.0, 0.1891417853768657, 0.0, 0.6912529043730106, 0.0, 0.0, 0.5485925554907274, 0.0, 0.5108261790337173, 0.0, 0.0, 0.0, 0.02366817478031771, 0.0, 0.0, 1.2280555558078412, 0.4674168435713557, 0.0, 0.0, 0.0, 0.23075296158753902, 0.0, 0.0, 0.07502151735916562, 0.626568729479956, 0.0, 0.0, 0.0, 0.0, 0.4149990617847983, 0.0, 0.0, 0.0, 0.22279868499825492, 0.0, 0.0, 0.5403248930908322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06322273667040083, 0.10094478522643717, 0.3387178421999011, 0.0, 0.5942669672638095, 0.0, 0.07164274732515331, 0.0, 0.0, 0.0, 0.16162050236277423, 0.16241659821715973, 0.5135606043385268, 0.0, 0.0, 0.5786552208576398, 0.9215277550399469, 0.5467787056885621, 0.12114909389695927, 0.0, 0.41576199634744937, 0.25271142537828667, 0.10169080638315105, 0.09035644665270913, 0.5186992660395696, 0.0, 0.8350126002207462, 0.0, 0.4590684905849725, 0.5886674559725333, 0.8153568197541052, 0.0, 0.5241047591859962, 0.40143028033605616, 0.0, 0.0, 1.2135756958284523, 0.0, 0.9792953636803372, 0.0, 0.0, 0.0, 0.07614591165689645, 0.24556945517590373, 0.6102890524250416, 0.0, 1.0435423231384657, 0.0, 0.0, 0.48943379744214055, 0.12791852851238183, 0.0, 0.19465687730377407, 0.11709029823841187, 0.0, 0.4229951092224917, 0.1438540051610157, 0.0, 0.0, 0.1703427415013558, 0.08724202694224298, 0.1395620898962288, 0.0, 0.22213892259359796, 0.0, 0.7882143461677291, 0.2546665805877283, 0.03597313889306425, 0.14802212956482205, 0.3919199393005139, 0.0, 0.43670107573519007, 0.08461463206412526, 0.5268384995574602, 0.0, 0.0, 0.0, 0.710223739285348, 0.31420569755496963, 0.0, 0.060070569318188244, 0.0, 0.1747770748083586, 0.0, 0.0, 0.0, 0.0, 0.13970561131521003, 0.37685554260004983, 0.02392489472196235, 0.5001172064820062, 0.1271397932462149, 0.0, 0.0, 0.06640626803307163, 0.0, 0.33601428762663216, 0.3914997569159482, 0.0, 0.0, 0.0, 0.19710945641036862, 0.0, 0.0, 0.0, 0.2570446025119335, 0.0725597578451322, 0.2153089707985957, 0.29468347651980764, 0.0, 0.0, 0.0, 0.0, 0.5053218639862116, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3406987685187243, 0.1282582445133294, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2730271127536044, 0.0, 0.0, 0.0, 0.09127410611527945, 0.0, 0.0, 0.0, 0.43937003529159857, 0.0, 0.0, 0.34629394607426156, 0.3602903966859215, 0.0, 0.0, 0.0, 0.4524888332499127, 0.0, 0.0, 0.05407346090862119, 0.5645191906902647, 0.0, 0.0, 0.0, 0.06182241276595979, 0.5051019163723838, 0.0, 0.0, 0.0, 0.43689110783624835, 0.0, 0.3247012272501492, 0.7529477711340642, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04556922200754848, 0.07275824443457538, 0.6641996712133981, 0.0, 0.7527892189655382, 0.0, 0.0, 0.0, 0.0, 0.0650185387513895, 0.11649164431992753, 0.09285202740421554, 0.0, 0.10520472290792057, 0.0, 0.0, 0.0, 0.036503860437912636, 0.5018364780015474, 0.0, 0.9018697735038638, 0.27452370937022097, 0.20528582752919317, 0.07345710391625684, 0.08368878794961943, 0.0020062951066029595, 0.0, 0.024311758317256665, 0.6863531779584559, 0.09358353036484864, 0.0, 0.0, 0.9056118974425151, 0.29332085426290194, 0.0, 0.0630960103278028, 0.3131666065435304, 0.16132753119961868, 0.0, 0.0, 0.10949069660281478, 0.0, 0.0, 0.043082807469330416, 0.9391632037219755, 0.2464244579278498, 0.05056349807476583, 0.4941568471321954, 0.08930155661972776, 0.14135721850308308, 0.6365671583541417, 0.01570471026967911, 0.0, 0.0, 0.30035575477425325, 0.470607279557531, 0.0, 0.7051994623504158, 0.0, 0.23693793780889214, 0.0, 0.0, 0.0, 0.3089837451394857, 0.0, 0.25881489636176935, 0.3542280340299567, 0.0, 0.0, 0.0, 0.5509103928459669, 0.6074285960860691, 0.0, 0.0, 0.0, 0.0, 0.0, 0.40954130307575276, 0.4320109271392501, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7153301391295569, 0.32819572556211446, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25387735844455867, 0.0, 0.18356036702777592, 0.788959698429946, 0.059142916486545904, 0.0, 0.0, 0.2329870601139546, 0.30260111431019593, 0.0, 0.19018291703368598, 0.11334224351658809, 0.0, 0.0, 0.39837350679552525, 0.002854450925801763, 0.0, 0.0, 0.1761871096815805, 0.26007093167161216, 0.4537724619820453, 0.0, 0.0, 0.19939804636751923, 0.0, 0.0, 0.0, 0.1241315656029792, 0.1788746058733879, 0.06989387912072809, 0.0, 0.008706450766933925, 0.17069278519076628, 0.09804467032937333, 0.0, 0.0, 0.0, 0.0, 0.2756668600912958, 0.0, 0.0, 0.0, 0.005007038116067554, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8846910424025506, 0.0, 0.5333972690871841, 0.4949732055269114, 0.5048814532552262, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.627591044078193, 0.0, 0.19602396549237053, 0.0, 0.0, 0.0, 0.0, 0.1453664926926827, 0.896573768738389, 0.0, 0.0, 0.08916555133174352, 0.0, 0.45645988556129685, 0.4637272073796655, 0.0, 0.5460482316353812, 0.0, 0.0, 0.0, 0.0, 0.03854810586108881, 0.0, 0.0, 0.0, 0.24917051451787198, 0.15578564796063854, 0.0, 0.013543850896187834, 0.1652099998051347, 0.4862465546100088, 0.0, 0.0, 0.0, 0.11288030981556667, 0.07793421422144962, 0.0, 0.0, 0.34069897855478337, 0.0, 0.24220682644461092, 0.0, 0.042169823026623185, 0.0, 0.18652613799485498, 0.06988747434212275, 0.0, 0.19432531845717826, 0.0, 0.0, 0.00773760410112359, 0.0, 0.0, 0.0, 0.13421576760969542, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3005240696463887, 0.0, 0.0, 0.1430297093262495, 0.0, 0.024074811994738193, 0.0, 0.7425836604044599, 0.0, 0.0, 0.773031322896148, 0.0, 0.0, 0.0, 0.15113548220653236, 0.0, 0.02143475877513858, 0.0, 0.0, 0.017898796818035273, 0.5704357742231774, 0.0, 0.0, 0.28614450437434535, 0.8406253620321404, 0.4518328538149436, 0.0, 0.0, 0.0, 0.11877251593306616, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7242261419761843, 0.75325138697923, 0.0, 0.0, 0.0, 0.21774733884534636, 0.05828481210656411, 0.0, 0.0, 0.5513859663000955, 0.08804724386035472, 0.0, 0.0, 0.13001461893666422, 0.05055138733020214, 0.0, 0.8802248488281825, 0.6335423662880417, 0.0, 0.0, 0.01901314000236066, 0.007676360091610109, 0.03662889578173271, 0.0, 0.0, 0.0, 0.0, 0.03491957842751296, 0.0, 0.0, 0.0, 0.0, 0.31801869319533504, 0.11915500690641781, 0.055287184155029916, 0.07802084728905281, 0.0, 0.0, 0.1568519327721604, 0.0, 0.006469083934087435, 0.0103288836062672, 0.4783408265548552, 0.0, 0.03403634442829624, 0.0, 0.06752201735679073, 0.5482808562992434, 0.6465577226913658, 0.19559104705049943, 0.7473465260842165, 0.0, 0.2510639869948042, 0.0, 0.49874757736937353, 0.0, 0.0, 0.29196420234146186, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.28937972665293554, 0.0, 0.0, 0.007742544258898216, 0.0050434263912106985, 0.09915800240987568, 0.0, 0.7790435385945825, 0.0, 0.0, 0.0, 0.6720010410729492, 0.0, 0.0, 0.12993505760251525, 0.0, 0.0, 0.0, 0.09325889168521988, 0.0, 0.0, 0.0, 0.0, 0.029846526702260994, 0.0, 0.0, 0.0, 0.0, 0.03754266866784506, 0.0, 0.0, 0.06429885322169407, 0.0, 0.0, 0.0, 0.06625799315618229, 0.02719995417661398, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1751776227817407, 0.0, 0.007852967543861803, 0.0, 0.23548257357635802, 0.0, 0.0, 0.0, 0.18584714899527952, 0.0, 0.006031156908010012, 0.0, 0.0, 0.09024557651897172, 0.0, 0.0, 0.0, 0.01928750817179254, 0.0, 0.0, 0.0, 0.04647312904146408, 0.04238313205889527, 0.04813129297619805, 0.0, 0.05649291128148132, 0.3120484444217953, 0.20304077341891358, 0.22280612221181567, 0.0, 0.0, 0.0, 0.0, 0.2296027094274992, 0.36729813710945064, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03194349659115132, 0.013381366431696788, 0.22268795739920053, 0.0, 0.5523622509591986, 0.0, 0.0, 0.0, 0.6320065213132712, 0.0, 0.054122720571298674, 0.1129752905678043, 0.0, 0.0, 0.0, 0.1354202846158455, 0.0, 0.0, 0.0, 0.0, 0.07918967771838586, 0.33460525882449765, 0.0, 0.1408840961604024, 0.0, 0.13967703386944746, 0.0, 0.015739213046679565, 0.0, 0.0, 0.0, 0.18340851877331085, 0.049075431284917106, 0.5986297438714518, 0.1026146960995913, 0.0, 0.09880673435294796, 0.0, 0.01401324484028475, 0.0, 0.0, 0.011701564957593804, 0.026202178980838764, 0.0, 0.0, 0.0, 0.34875710305703866, 0.0, 0.6758676493244615, 0.25323358703827886, 0.0, 0.07764903554674676, 0.0, 0.0, 0.3437885050787113, 0.0, 0.0, 0.05172718445894569, 0.48632377387851766, 0.7737451549255131, 0.0, 0.0, 0.2824387300805914, 0.0, 0.03810443360186568, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5685388973074467, 0.0, 0.6119913546647608, 0.3631185701853139, 0.0, 0.0, 0.0, 0.0, 0.0, 0.42090311344262876, 0.0, 0.0, 0.5545361922919911, 0.0, 0.30486976208852845, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5353307932807481, 0.3737614291005788, 0.06278455657761825, 0.6503551227381855, 0.0, 0.30802712982197544, 0.0, 0.0, 0.0, 0.0, 0.6932590699354483, 0.0, 0.0, 0.1727602393426444, 0.3250355196326665, 0.0, 0.0, 0.0, 0.031208327259562327, 0.0, 0.022564485628753735, 0.20187972104397525, 0.0, 0.0, 0.0, 0.023252803763957695, 0.037197781883188764, 0.0, 0.0, 0.14016266119268855, 0.0, 0.0, 0.0, 0.0, 0.5500068484641752, 0.0, 0.21787864254870015, 0.11728832916212795, 0.7393468760695268, 0.0, 0.0, 0.0, 0.5835060614008979, 0.0, 0.0, 0.005481228874667605, 0.0, 0.24527608437248674, 0.0, 0.0, 0.0, 0.08585061953648496, 0.0, 0.0, 0.0, 0.0, 0.033886840626726755, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7610872759404612, 0.4515830514911833, 0.0, 0.0, 0.0, 0.0, 0.4404042575115658, 0.12990320458817742, 0.0, 0.0, 1.1767377087370854, 0.0, 0.37914342249438854, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4648187686925721, 0.0, 0.8087973873909876, 0.0, 0.0, 0.37042117085655, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4042220471506979, 0.506818287464434, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.799283492516607, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2072078588281799, 0.0, 0.0, 0.0, 0.0, 0.0, 0.38630185980823584, 0.0, 0.0, 0.7203309700401708, 0.28467844154475075, 0.0, 0.055301649487215346, 0.0, 0.0, 0.0, 0.0, 0.09138992101001418, 0.0, 0.19556603240348344, 0.19724425274952875, 0.03349111529878698, 0.0, 0.0, 0.0, 0.0, 0.09295840191163598, 0.062259404337737585, 0.5110045389416802, 0.0450152750177662, 0.0, 0.0, 0.0, 0.0, 0.04638844304232061, 0.07420813436973994, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08039405816322542, 0.0, 0.04499140125036479, 0.0, 0.0, 0.0, 0.0, 0.0, 0.47269177846996874, 0.0, 0.01093483934391422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06760293477957593, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.30814523656105497, 0.0, 0.0, 0.002453061284897307, 0.0, 0.13680023676237826, 0.0, 0.0, 0.0, 0.0, 0.4233541440451853, 0.3380165111056225, 0.08224079897271243, 0.0, 0.0, 0.24592756484718573, 0.0, 0.0, 0.02267336040190668, 0.2908323152368906, 0.29332804878897817, 0.04980567679624497, 0.01451698775054283, 0.0, 0.0, 0.0, 0.1382413239989673, 0.03764974542541842, 0.0, 0.45231380198935905, 0.0, 0.0, 0.0, 0.22772767048274462, 0.028083536989501626, 0.0, 0.0, 0.7177165992040482, 0.0, 0.248754226443203, 0.3404584582583339, 0.0, 0.0, 0.0, 0.0, 0.5838165911735776, 0.18900763241929244, 0.0, 0.0, 0.0, 0.0, 0.393621586219481, 0.1481813799050705, 0.08990527101762133, 0.0, 0.0, 0.0, 0.06541155133507946, 0.0, 0.0, 0.754567070013019, 0.0, 0.35519767644142475, 0.7886704894854123, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2853585340727017, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1466994216180092, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04489418163119632, 0.0, 0.154322481722074, 0.0, 0.0, 0.0, 0.05695713751335286, 0.0, 0.26396366899551715, 0.0, 0.0, 0.0, 0.2015805623941956, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1347415569982167, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15951239540553339, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26424756561910484, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3095030162301081, 0.4017859650017111, 0.4320177001616871, 0.31072912027464494, 0.0, 0.0, 0.0, 0.12395344067349241, 0.0, 0.10891813619746654, 0.0, 0.0, 0.36104977882982536, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4976654583754128, 0.7708862373561997, 0.47125964249827657, 0.10728601893015154, 0.0, 0.031799482348967435, 0.6739071734662878, 0.36447067198103217, 0.5830479926977264, 0.3439222616030173, 0.07719737246781146, 0.1664670841939448, 0.06466304544803145, 0.08850133352227474, 0.0, 0.0, 0.0, 0.0, 0.15176167781411123, 0.7529769594833942, 0.2081678127507482, 0.43606912218895016, 0.0, 0.20899247481790656, 0.13097931441492902, 0.0385193829281183, 0.0, 0.1692837648290093, 0.24671124992729013, 0.0732569603271901, 0.0, 0.0, 0.3302348567546971, 0.0, 0.0, 0.08199734797416196, 0.0, 0.3003739061478844, 0.5311514129612689, 0.2094016677928949, 0.08615953302492001, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2720133179050694, 0.08023401473498062, 0.0, 0.0, 0.3008565847002404, 0.0, 0.0, 0.0, 0.0, 0.15598633286780347, 0.0914681730216936, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2287886413185382, 0.0, 0.02163921527981386, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31303358584026736, 0.0, 0.0, 0.10317949853840898, 0.0, 0.0, 0.4429302660561133, 0.5715405010739755, 0.5374631632426349, 0.31889805938655563, 0.036252046956170986, 0.4422081073153658, 0.0, 0.7337564221688706, 0.0, 0.023977384315413304, 0.0, 0.0, 0.4870048796768423, 0.0, 0.5662703466651342, 0.07343369104191685, 0.0, 0.85942069251388, 0.0, 0.0, 1.3620890981561393, 0.18706378421604947, 0.5009363229828259, 0.0, 0.9153459961943655, 0.0, 0.3024413176269455, 0.0, 0.020206414212617495, 0.770875966881197, 0.3592476280889007, 0.42399066250320144, 0.10631373480524917, 0.0, 0.0, 0.28545275552737415, 0.0, 0.0, 0.051655005587926184, 0.2896221837003778, 0.0, 0.10479137286851924, 0.0, 0.6481743752598288, 0.18963154425718728, 0.1652754625808005, 0.5111459932504497, 0.20983351489683355, 0.0, 0.0688022311887445, 0.0, 0.1588427949870473, 0.07887689716448136, 0.0, 0.17182849674148495, 0.0, 0.0944668962094047, 0.4452313187931226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09119364969454108, 0.8790983194086319, 0.04652724209330274, 0.20151893535811746, 0.0, 0.09353766464308477, 0.0, 0.08529401781538828, 0.13618496703742403, 0.14879310483428343, 0.0, 0.5218449227201785, 0.0, 0.0, 0.4276792985772285, 0.37130791898202276, 0.0, 0.65385625176219, 0.21427428342013688, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029843856213185426, 0.7335168265162704, 0.36008358555156716, 0.016697251884690307, 0.0, 0.0, 0.0, 0.0, 0.32011086143599826, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.311051559092257, 0.4114828296911449, 0.40654319137761, 0.15232329989672078, 0.0, 0.7981814625524425, 0.0, 0.0, 0.03178181930754204, 0.0, 0.0, 0.08306558457263293, 0.9520806654789163, 0.0, 0.0, 0.0, 0.014583001249069335, 0.19830185076027407, 0.0, 0.0, 0.0, 0.017109723326194017, 0.5838039803907641, 0.036078269448045736, 0.0, 0.0, 0.0, 1.5483621887345977, 0.0, 0.0, 0.3938374131167075, 0.21826438331642692, 0.47843769619251875, 0.0, 0.03212191242915342, 0.0, 0.0, 0.026822955649167167, 0.06006204189453128, 0.3916449581841089, 0.17029114067254328, 0.0, 0.8085887138693341, 0.0, 0.0847427642025191, 0.0, 0.24867162588894387, 0.1779912895598945, 0.0, 0.4967368758167945, 0.2999184090453587, 0.0, 0.0, 0.34170853809147433, 0.15431967954789833, 0.0, 0.20047306608944798, 0.0, 0.34396866784271457, 0.0, 0.08734502916861536, 0.0, 0.0, 0.2734744328918824, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4826472849667363, 0.19813434438947314, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7219511030362349, 0.1739578003573766, 0.0, 0.0, 0.5805657409095567, 0.04393313724425415, 0.0, 0.0, 0.08832251544226348, 0.0, 0.0, 0.08642438629494777, 0.1404972141390735, 0.0, 0.0, 0.0, 0.0, 0.30873412613620277, 0.35060581780891126, 0.0, 0.411514882221113, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12502955237491653, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9289178041335806, 0.0, 0.0, 0.5936412791641967, 0.0, 0.0, 0.27919748240464876, 0.0, 0.0, 0.0, 0.0, 0.03866359013001743, 0.0, 0.09129386900625779, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11792903528210355, 0.0, 0.38768207402217597, 0.12966222332760374, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15858416904207315, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06587533022560071, 0.5693372038338419, 0.4118051761712919, 0.04005300556172724, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.28854004528147215, 0.0, 0.12922839237489175, 0.0, 0.14106371386748318, 0.0, 0.6427956538537295, 0.2408421964280935, 0.11343809741754582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.016886662889233732, 0.4625266626199813, 0.0, 0.027184451434696822, 0.0, 0.0, 0.0, 0.2545156696147772, 0.0, 0.0])), 42), 42)),) + diff --git a/test/reference64/debug_parallel_spmms_no_atomics.txt b/test/reference64/debug_parallel_spmms_no_atomics.txt index 1d0bc77cf..ded3925d2 100644 --- a/test/reference64/debug_parallel_spmms_no_atomics.txt +++ b/test/reference64/debug_parallel_spmms_no_atomics.txt @@ -8,7 +8,7 @@ julia> @finch begin end end end -(CR = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +(CR = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.40798272794029244, 0.0, 0.05552236202954211, 0.0, 0.0, 0.0, 1.1508129348205518, 0.0, 0.19395356472348033, 0.2307481734593406, 0.0, 0.0, 0.0, 0.0, 0.7400687115958035, 0.0, 0.0, 0.4711198057610666, 0.0, 0.07015028050595504, 0.08663540769774136, 0.0, 0.0, 0.46359958748433167, 0.0, 0.035823254967012344, 0.0, 0.21605429332119105, 0.050389255833200065, 0.0, 0.0, 0.08982343514212215, 0.0, 0.11508828733565957, 0.4022461237733094, 0.0, 0.5232411380476881, 0.0, 0.17677960337865342, 0.6347058701128525, 0.0, 0.0, 0.0, 0.080760767105778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.530417945120141, 0.036947581649449654, 0.0, 0.42172014534542845, 0.0, 0.0, 0.0, 0.04046090790460827, 0.0, 0.0, 0.0, 0.0, 0.016730358390191713, 0.11216899138664496, 0.10090277285890621, 0.3770798811678483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06022016698365358, 0.0, 0.3347277070064448, 0.08319806447593037, 0.0, 0.0, 0.15734979027583865, 0.6034963214197537, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8559793301235343, 0.0, 0.0221818618958444, 0.0, 0.0, 0.0, 0.0, 0.6249640468245943, 0.0, 0.706457127780651, 0.8381987455683932, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05075027829145945, 0.0, 0.0, 0.28298860880763127, 0.0, 0.46775948880043733, 0.3276758676884306, 0.23162154119323575, 0.0, 0.0, 0.7097058534293814, 0.0, 0.01925480712564137, 0.6617464495997725, 0.5510119129346432, 0.9503030089786222, 0.19493828703065708, 0.4234771306495736, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11491839349038546, 0.0, 0.0, 0.0, 0.0, 0.0, 0.952344347120024, 0.31481029761912926, 0.0, 0.0, 0.3371532262514988, 0.0, 0.6461986748500718, 0.0, 0.20388394461232018, 0.6689077519036521, 0.008065708303756284, 0.026774581755143884, 0.0, 0.0, 0.0, 0.0, 0.20246692989511542, 0.0, 0.0, 0.0, 0.0, 0.6964472745009185, 0.0, 0.3001098015546565, 0.0, 0.002810485733837209, 0.0, 0.0, 0.2833439267406652, 0.0, 0.0, 0.0, 0.01365478232442864, 0.0, 0.07752931191170997, 0.005400497114468351, 0.01008472602077043, 0.7305457354717977, 0.0, 0.0, 0.3791767135274968, 0.009729638043940761, 0.14133243937397577, 0.0, 0.6050992861887972, 0.0, 0.0, 0.0, 0.0, 0.32748073574326575, 0.29782974023215064, 0.0, 0.0, 0.0, 0.0, 0.008516959572353846, 0.0, 0.0, 0.0, 0.5188617620854502, 0.0, 0.12960309538886133, 0.0, 0.2159060099855789, 0.0, 0.0, 0.0, 0.5916658876154497, 0.0, 0.08410324034674674, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7242114416300933, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.43295426032070555, 0.1879551877902947, 0.09140698995628445, 0.0, 0.0, 0.0, 0.0, 0.053834983759932134, 0.014210556502435533, 0.023024626002393696, 0.0, 0.0, 0.08510060429095491, 0.15442202399960203, 0.0, 0.5391171356753139, 0.0, 0.44855253786204935, 0.048493606647816025, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22138370024934187, 0.0, 0.08746644969030876, 0.0, 0.0, 0.0, 0.1616519416528851, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.035084084514750494, 0.0, 0.11688517594508105, 0.2089391042079727, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05598779403983851, 0.014778823268485956, 0.0, 0.0, 0.0, 0.0, 0.057780108315529474, 0.0, 0.201721527067654, 0.0, 0.3341648455181398, 0.0, 0.0, 0.7601477683176978, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8032144106029788, 0.0, 0.18178069418497272, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6936206835397086, 0.0, 0.36283080196789974, 0.4415514891805875, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.041591186808888826, 0.3770004419200786, 0.0, 0.0, 0.0, 0.17252416859375463, 0.0, 0.0, 0.6527400000425327, 0.0, 0.3340575108846618, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7763472218770214, 0.0, 0.0, 0.0, 0.0, 0.8376247582699287, 0.0, 0.014460886244840168, 0.6266762938745922, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.46397397404593055, 0.0, 0.23926875754339813, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.46347904589364963, 0.05902942262309747, 0.0, 0.03877718275846287, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2950495413884076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06597380264866397, 1.0898197013430582, 0.0, 0.012501862454917015, 0.0, 0.0, 0.05385941027253928, 0.0, 0.3522343881391282, 0.0, 0.398164495085241, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004630463685504157, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25876266416388005, 0.0, 0.0, 0.3103356146935319, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6074148238597709, 0.09425255656440318, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0032593418386170935, 0.0, 0.2297346969390008, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12055792386342427, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25324185315889564, 0.0, 0.05731281617489229, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21868854065637486, 0.0, 0.0, 0.13921477990069736, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.013113097926933236, 0.11886277100269102, 0.0, 0.0, 0.0, 0.0, 0.0, 0.52224991418746, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4173873832595858, 0.08858709037486684, 0.0, 0.0, 0.0, 0.0, 0.15667266254329507, 0.0, 0.40730912125206437, 0.5164653515440787, 0.0, 0.2032159032369745, 0.40587691627032874, 0.0, 0.0, 0.0, 0.0340034080482809, 0.0, 0.0, 0.15427161497649788, 0.44428262792688017, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.014262992619462008, 0.38024333666677773, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1612065141710269, 0.0, 0.03925137009723705, 0.0, 0.0078366311533161, 0.0, 0.014460397168610369, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06667255880132161, 0.0, 0.14952781464402123, 0.0, 0.0, 0.0, 0.0, 0.2779234999305725, 0.0, 0.008746314891451676, 0.0, 0.0, 0.06465282563196756, 0.0, 0.2464235137262255, 0.006899580599861792, 0.278556260330773, 0.007445268802069765, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18845739307946788, 0.01641249348500929, 0.5317378389887557, 0.0, 0.0, 0.14988438489574235, 0.0, 0.010375471289624015, 1.3557213333649594, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18808146093167488, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37253241298417417, 0.0, 0.1111794727253734, 0.16963583085055012, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10986305912788819, 0.0, 0.0, 0.11949895822624457, 0.0, 0.0, 0.15821760502340373, 0.0, 0.5523682427180556, 0.0, 0.4595776329669528, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.33581328744582783, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24138228903328196, 0.0, 0.3691306800612154, 0.0, 0.0, 0.0, 0.0, 0.0, 1.232394871494877, 0.0, 0.0, 0.0, 0.5293521525003586, 0.0, 0.48349454590588176, 0.0, 0.0, 0.6981988327823653, 0.0, 0.0, 0.0, 0.0, 0.0, 0.33600003819418794, 0.10493510524858034, 0.1002766625939797, 0.0, 0.4760848715940903, 0.30327936688968893, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15549653856407664, 0.053555423141422365, 0.33124643300151746, 0.1452133754699813, 0.29863037601205833, 0.5069679636197618, 0.0, 1.2650777504013886, 0.0, 0.0, 0.8010376870067246, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8336854027224526, 0.0, 0.0, 0.0, 0.0, 0.013135866634354858, 0.7693584995036987, 0.0, 0.0, 0.0, 0.1809386811488775, 0.18409266358857004, 0.0, 0.8209089663283375, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6269731623222802, 0.0, 0.0, 0.0, 0.0, 0.8578109001691112, 0.13549697762155272, 0.8892025809188543, 0.0, 0.17753144998442447, 0.0, 0.3275865900116729, 0.37045604078207667, 0.0, 0.0, 0.45942273296787417, 0.0, 0.0, 0.1496601554416231, 0.0, 0.4896166566389182, 0.09296161452877622, 0.0, 0.15295686770265157, 0.0, 0.0, 0.0, 0.18412880463476564, 0.0, 0.19671721658454625, 0.0, 0.0, 0.15630345798009787, 0.0, 0.16866550691184853, 0.0, 0.3962565901298767, 0.0, 0.0, 0.009054605400028368, 0.0, 0.0, 0.0, 0.0, 0.6323717354885464, 0.0, 0.27367929286054155, 1.074929147630902, 0.1458067334724375, 0.22417700682510228, 0.0, 0.10951695376531846, 0.0, 0.007581110002282966, 0.24931277842808883, 0.0, 0.6883954376611309, 0.6336690200937254, 0.2666286675338324, 0.0, 0.0, 0.0, 0.0, 0.2876738228687025, 0.0, 0.0, 0.21522568832904387, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0438812752886428, 0.6525143726026617, 0.0, 0.0, 0.0, 0.0, 0.0, 1.1869853573228195, 0.11631516482088484, 0.0, 0.0, 0.0, 0.0, 0.06506946683877823, 0.0, 0.22717008671076838, 0.10242247240104177, 0.18900849588618046, 0.11442201255265518, 0.5664450740439114, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019408932182682588, 0.20321698947174538, 1.233551723482737, 0.3258945612095407, 0.0, 0.13004560449904765, 0.0, 0.5146863326888748, 0.0, 0.0, 0.26506893163091566, 0.6961290235591785, 0.7308179758735578, 0.019108835994024305, 0.0, 0.0, 0.12318551581994355, 0.0, 0.6633736020985646, 0.09733981959320877, 0.6085861256804133, 0.0, 0.3702803270823883, 0.0, 0.31915877170632656, 0.0, 0.0048098299833409025, 0.08330917183364514, 0.03767139221212642, 0.0, 0.0, 0.7595521482230864, 0.0, 0.40492576086384785, 0.9767048148851073, 0.0, 0.7118250358317957, 1.4759259446598505, 0.6177251878074594, 0.0, 0.0, 0.5578474164235181, 0.0, 0.0, 0.0, 0.8466209961003106, 0.0, 0.0, 0.0, 0.0, 0.9134452822413822, 0.0, 0.0, 1.1506817448958997, 0.0, 0.0, 0.5717156136201251, 0.0, 0.0, 0.0, 0.0, 0.22301492152906585, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13134314230830874, 0.20762859161099162, 0.0, 0.4768286902241477, 0.0, 0.3252201513410915, 0.5728390197892637, 0.07274257736444308, 0.0946619273240044, 0.0, 0.08735695093663028, 0.0, 0.006047124502145837, 0.0, 0.0, 0.03396077178506113, 0.056902676891892164, 0.05446213354503342, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03284486748482166, 0.0, 0.03394228891521373, 0.0, 0.0, 0.0, 0.15913459349815823, 0.0988686644243417, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06403136572671528, 0.0008539041494970381, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4996043959310575, 0.03466871274471111, 0.0, 0.0, 0.0, 0.5916091668585121, 0.0, 0.0, 0.18522959478004286, 0.0, 0.0, 0.6748263739107161, 0.0, 0.0, 0.5617854630926186, 0.0, 0.7191769350887419, 0.22919875305609166, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07421634147547619, 0.2082330820676049, 0.0, 0.33671550924577986, 0.0, 0.0, 0.8216886233224614, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9288637557541211, 0.0, 0.0, 1.2410393190221276, 0.024834505618206743, 0.6697889027661909, 0.39618825585335343, 0.37106318592637155, 0.321662062811288, 0.0, 0.8625204846142658, 0.4737807718760894, 0.8171062776340833, 0.16785258111865808, 1.931465974538034, 0.1820623956052182, 0.0, 0.40831479446929375, 0.0, 1.6290713896950666, 0.0, 0.0, 1.0235643660149811, 0.0, 0.0, 0.0, 0.0, 0.996334540430692, 0.0, 0.0, 0.44156504893800563, 0.289897027676234, 0.0, 0.5556259307084835, 0.0, 0.0, 0.5751570179061616, 0.0, 0.15465163640644544, 0.0, 0.0, 0.0, 0.0, 0.1740886831542383, 0.8206341762594166, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8467869185435447, 0.05898504962060997, 0.03624481511042625, 0.6732560722166093, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.201694060644539, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4141926752107277, 0.14795154825402113, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21427949262749374, 0.46809092516056994, 0.0, 0.16828675961297507, 0.14194253863939424, 0.0, 0.46436829494386733, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13445486993921502, 0.019720618408469233, 0.2722006890254698, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06550905522135163, 0.04806777087710764, 0.0, 0.0, 0.0, 0.599761835300619, 0.0, 0.0, 0.5741431736534577, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17101973439245724, 0.0, 0.0, 0.0749875087919759, 0.0, 0.0, 0.28776812087676407, 0.8309016545414952, 0.0, 0.0, 0.0, 0.016199069272106216, 0.0, 0.0, 0.0, 0.0, 0.6545099569258361, 0.22702193109653576, 0.04569906480983916, 0.2833580027667076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11138860511768055, 0.062440751035711506, 0.5182620734767335, 0.0, 0.3481758497366363, 0.0, 0.4677994729760326, 0.6992526088901763, 0.01746909322126967, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4416823398234807, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08074443292335906, 0.005624454367769537, 0.4953841958649777, 0.06419759041251974, 0.0, 0.0, 0.0, 0.03378063280221251, 0.27793271609589054, 0.0, 0.0, 0.0, 0.013968102118739474, 0.0, 0.08424327814659714, 0.057402094804332435, 0.0, 0.0, 0.0333773112405404, 0.0, 0.0, 0.0, 0.020814415925578544, 0.050277550690626754, 0.07266714943835642, 0.05420980100927718, 0.1299217183065535, 0.0, 0.0, 0.3197221256849075, 0.0, 0.13800911480490768, 0.0, 0.0, 0.0, 0.0, 1.01268183989861, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7358814757212789, 0.30707785521832553, 0.5276131242565835, 0.0, 0.1743689886750783, 0.0, 0.25821885501181596, 0.5805464694386301, 0.7164948773890167, 0.0, 0.0, 0.0, 0.37021123955626156, 0.12525001349038106, 0.608077535649827, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0938347119534369, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17530069799945608, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6839828466860547, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0036702000371577168, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.030804733252794536, 0.6085396823865649, 0.3664826840226463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.052310575793324585, 0.23438841535865984, 0.027151249553211434, 0.42665810243765545, 0.060892623345148826, 0.0, 0.0, 0.08445468462850356, 0.05478879427510317, 0.5501718854551394, 0.0, 0.11343808432438283, 0.0, 0.09259962343643532, 0.2732186452567139, 0.0, 0.42011946077495216, 0.2576342392674693, 0.0, 0.5090094423403475, 0.0, 0.0, 0.0, 0.0010952054350690443, 0.08086253983246877, 0.0, 0.0, 0.23985944027024297, 0.0, 0.09028722397131896, 0.0, 0.07674602267622682, 0.43900489287844074, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3006474050100551, 0.0, 0.0, 0.0709455536446502, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24893625570967048, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2768131690025365, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0014853584531852684, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2394367041087018, 0.8202130158779322, 0.0, 0.0, 0.28871220094126887, 0.0, 0.0, 0.04358483751824937, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.052964062286445145, 0.0, 0.2958896434064324, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.695162332188878, 0.037163387811150035, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0679762361139716, 0.0, 0.0, 0.24678121036961095, 0.0, 0.0, 0.2964710587865061, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0759598903032082, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07295585235760724, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0603439559536301, 0.0, 0.0, 0.0, 0.17528000283667142, 0.0, 0.12675745187805368, 0.328557971512483, 0.028687306018592266, 0.0, 0.0, 0.8516002254500735, 0.0, 0.4371253184691764, 0.13991121920676916, 0.0, 0.3475458448096685, 0.46894433815651543, 0.0, 0.0, 0.6068029321085694, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.28015080493647854, 0.3107571390829928, 0.0, 0.0, 0.0, 0.0, 0.006563618369995558, 0.5906679530337167, 0.0, 0.0, 0.0, 0.6525869879262292, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00921986700494424, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04479484649111107, 0.0, 0.3151409942990884, 0.021951930030038837, 0.0, 0.2505595957731255, 0.0, 0.0, 0.0, 0.03191831493444459, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22403715744289487, 0.0, 0.0, 0.0, 0.0, 0.0, 0.027940093628006875, 0.0, 0.0, 0.0, 0.26553429437558146, 0.0, 0.030379801994009328, 0.0, 1.223521302648351, 0.3114612281119979, 0.3934859798468234, 0.0, 0.3688885410084021, 0.0, 0.5211677391443227, 0.318605826264122, 0.11794887163110916, 0.0, 0.0, 0.4256936617495534, 0.0, 0.49172025370622324, 0.48430956473476544, 0.0, 1.3234474260067457, 0.28650182105087124, 0.006913853673799038, 0.28826288884375384, 0.3033256150127764, 0.0, 0.19416551553442815, 0.19479473776455275, 0.0, 0.2201952762677155, 0.0, 0.0, 0.34956927181897907, 0.0, 0.0, 0.0, 0.5335997378219544, 0.1831214497933391, 0.5101375543135913, 0.0, 0.7417718286797346, 0.0, 0.23966647500006097, 0.8693502490764229, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21247306643180602, 0.1378389271943791, 0.0, 0.0, 0.2853901797463675, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20343586472727235, 0.29392458170687635, 0.011188169832657642, 0.0, 0.0, 0.28953305486076913, 0.0, 0.0, 0.07223789467137894, 0.0, 0.33051308113923733, 0.4540345661588786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9537370190824367, 0.0, 0.6089477015288718, 0.0, 0.07722630190963325, 0.0, 0.0, 1.0000222254545443, 0.8637206744494375, 0.0, 0.7751920658363071, 0.524298363554463, 0.0, 0.0, 0.01676078910810196, 0.0, 0.0, 0.07604278960261779, 0.0, 0.0, 0.0, 0.0, 0.40940877803475156, 0.0, 0.0, 0.0, 0.0, 0.09252661041066143, 0.44765043171933794, 0.0, 0.24055976047324873, 0.0, 0.15100552643910237, 0.35800810608226774]), 42), 42)),) julia> @finch_code begin Ct .= 0 for i = parallel(_) @@ -246,7 +246,7 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.40798272794029244, 0.0, 0.05552236202954211, 0.0, 0.0, 0.0, 1.1508129348205518, 0.0, 0.19395356472348033, 0.2307481734593406, 0.0, 0.0, 0.0, 0.0, 0.7400687115958035, 0.0, 0.0, 0.4711198057610666, 0.0, 0.07015028050595504, 0.08663540769774136, 0.0, 0.0, 0.46359958748433167, 0.0, 0.035823254967012344, 0.0, 0.21605429332119105, 0.050389255833200065, 0.0, 0.0, 0.08982343514212215, 0.0, 0.11508828733565957, 0.4022461237733094, 0.0, 0.5232411380476881, 0.0, 0.17677960337865342, 0.6347058701128525, 0.0, 0.0, 0.0, 0.080760767105778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.530417945120141, 0.036947581649449654, 0.0, 0.42172014534542845, 0.0, 0.0, 0.0, 0.04046090790460827, 0.0, 0.0, 0.0, 0.0, 0.016730358390191713, 0.11216899138664496, 0.10090277285890621, 0.3770798811678483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06022016698365358, 0.0, 0.3347277070064448, 0.08319806447593037, 0.0, 0.0, 0.15734979027583865, 0.6034963214197537, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8559793301235343, 0.0, 0.0221818618958444, 0.0, 0.0, 0.0, 0.0, 0.6249640468245943, 0.0, 0.706457127780651, 0.8381987455683932, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05075027829145945, 0.0, 0.0, 0.28298860880763127, 0.0, 0.46775948880043733, 0.3276758676884306, 0.23162154119323575, 0.0, 0.0, 0.7097058534293814, 0.0, 0.01925480712564137, 0.6617464495997725, 0.5510119129346432, 0.9503030089786222, 0.19493828703065708, 0.4234771306495736, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11491839349038546, 0.0, 0.0, 0.0, 0.0, 0.0, 0.952344347120024, 0.31481029761912926, 0.0, 0.0, 0.3371532262514988, 0.0, 0.6461986748500718, 0.0, 0.20388394461232018, 0.6689077519036521, 0.008065708303756284, 0.026774581755143884, 0.0, 0.0, 0.0, 0.0, 0.20246692989511542, 0.0, 0.0, 0.0, 0.0, 0.6964472745009185, 0.0, 0.3001098015546565, 0.0, 0.002810485733837209, 0.0, 0.0, 0.2833439267406652, 0.0, 0.0, 0.0, 0.01365478232442864, 0.0, 0.07752931191170997, 0.005400497114468351, 0.01008472602077043, 0.7305457354717977, 0.0, 0.0, 0.3791767135274968, 0.009729638043940761, 0.14133243937397577, 0.0, 0.6050992861887972, 0.0, 0.0, 0.0, 0.0, 0.32748073574326575, 0.29782974023215064, 0.0, 0.0, 0.0, 0.0, 0.008516959572353846, 0.0, 0.0, 0.0, 0.5188617620854502, 0.0, 0.12960309538886133, 0.0, 0.2159060099855789, 0.0, 0.0, 0.0, 0.5916658876154497, 0.0, 0.08410324034674674, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7242114416300933, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.43295426032070555, 0.1879551877902947, 0.09140698995628445, 0.0, 0.0, 0.0, 0.0, 0.053834983759932134, 0.014210556502435533, 0.023024626002393696, 0.0, 0.0, 0.08510060429095491, 0.15442202399960203, 0.0, 0.5391171356753139, 0.0, 0.44855253786204935, 0.048493606647816025, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22138370024934187, 0.0, 0.08746644969030876, 0.0, 0.0, 0.0, 0.1616519416528851, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.035084084514750494, 0.0, 0.11688517594508105, 0.2089391042079727, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05598779403983851, 0.014778823268485956, 0.0, 0.0, 0.0, 0.0, 0.057780108315529474, 0.0, 0.201721527067654, 0.0, 0.3341648455181398, 0.0, 0.0, 0.7601477683176978, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8032144106029788, 0.0, 0.18178069418497272, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6936206835397086, 0.0, 0.36283080196789974, 0.4415514891805875, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.041591186808888826, 0.3770004419200786, 0.0, 0.0, 0.0, 0.17252416859375463, 0.0, 0.0, 0.6527400000425327, 0.0, 0.3340575108846618, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7763472218770214, 0.0, 0.0, 0.0, 0.0, 0.8376247582699287, 0.0, 0.014460886244840168, 0.6266762938745922, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.46397397404593055, 0.0, 0.23926875754339813, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.46347904589364963, 0.05902942262309747, 0.0, 0.03877718275846287, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2950495413884076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06597380264866397, 1.0898197013430582, 0.0, 0.012501862454917015, 0.0, 0.0, 0.05385941027253928, 0.0, 0.3522343881391282, 0.0, 0.398164495085241, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004630463685504157, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25876266416388005, 0.0, 0.0, 0.3103356146935319, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6074148238597709, 0.09425255656440318, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0032593418386170935, 0.0, 0.2297346969390008, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12055792386342427, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25324185315889564, 0.0, 0.05731281617489229, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21868854065637486, 0.0, 0.0, 0.13921477990069736, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.013113097926933236, 0.11886277100269102, 0.0, 0.0, 0.0, 0.0, 0.0, 0.52224991418746, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4173873832595858, 0.08858709037486684, 0.0, 0.0, 0.0, 0.0, 0.15667266254329507, 0.0, 0.40730912125206437, 0.5164653515440787, 0.0, 0.2032159032369745, 0.40587691627032874, 0.0, 0.0, 0.0, 0.0340034080482809, 0.0, 0.0, 0.15427161497649788, 0.44428262792688017, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.014262992619462008, 0.38024333666677773, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1612065141710269, 0.0, 0.03925137009723705, 0.0, 0.0078366311533161, 0.0, 0.014460397168610369, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06667255880132161, 0.0, 0.14952781464402123, 0.0, 0.0, 0.0, 0.0, 0.2779234999305725, 0.0, 0.008746314891451676, 0.0, 0.0, 0.06465282563196756, 0.0, 0.2464235137262255, 0.006899580599861792, 0.278556260330773, 0.007445268802069765, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18845739307946788, 0.01641249348500929, 0.5317378389887557, 0.0, 0.0, 0.14988438489574235, 0.0, 0.010375471289624015, 1.3557213333649594, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18808146093167488, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37253241298417417, 0.0, 0.1111794727253734, 0.16963583085055012, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10986305912788819, 0.0, 0.0, 0.11949895822624457, 0.0, 0.0, 0.15821760502340373, 0.0, 0.5523682427180556, 0.0, 0.4595776329669528, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.33581328744582783, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24138228903328196, 0.0, 0.3691306800612154, 0.0, 0.0, 0.0, 0.0, 0.0, 1.232394871494877, 0.0, 0.0, 0.0, 0.5293521525003586, 0.0, 0.48349454590588176, 0.0, 0.0, 0.6981988327823653, 0.0, 0.0, 0.0, 0.0, 0.0, 0.33600003819418794, 0.10493510524858034, 0.1002766625939797, 0.0, 0.4760848715940903, 0.30327936688968893, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15549653856407664, 0.053555423141422365, 0.33124643300151746, 0.1452133754699813, 0.29863037601205833, 0.5069679636197618, 0.0, 1.2650777504013886, 0.0, 0.0, 0.8010376870067246, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8336854027224526, 0.0, 0.0, 0.0, 0.0, 0.013135866634354858, 0.7693584995036987, 0.0, 0.0, 0.0, 0.1809386811488775, 0.18409266358857004, 0.0, 0.8209089663283375, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6269731623222802, 0.0, 0.0, 0.0, 0.0, 0.8578109001691112, 0.13549697762155272, 0.8892025809188543, 0.0, 0.17753144998442447, 0.0, 0.3275865900116729, 0.37045604078207667, 0.0, 0.0, 0.45942273296787417, 0.0, 0.0, 0.1496601554416231, 0.0, 0.4896166566389182, 0.09296161452877622, 0.0, 0.15295686770265157, 0.0, 0.0, 0.0, 0.18412880463476564, 0.0, 0.19671721658454625, 0.0, 0.0, 0.15630345798009787, 0.0, 0.16866550691184853, 0.0, 0.3962565901298767, 0.0, 0.0, 0.009054605400028368, 0.0, 0.0, 0.0, 0.0, 0.6323717354885464, 0.0, 0.27367929286054155, 1.074929147630902, 0.1458067334724375, 0.22417700682510228, 0.0, 0.10951695376531846, 0.0, 0.007581110002282966, 0.24931277842808883, 0.0, 0.6883954376611309, 0.6336690200937254, 0.2666286675338324, 0.0, 0.0, 0.0, 0.0, 0.2876738228687025, 0.0, 0.0, 0.21522568832904387, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0438812752886428, 0.6525143726026617, 0.0, 0.0, 0.0, 0.0, 0.0, 1.1869853573228195, 0.11631516482088484, 0.0, 0.0, 0.0, 0.0, 0.06506946683877823, 0.0, 0.22717008671076838, 0.10242247240104177, 0.18900849588618046, 0.11442201255265518, 0.5664450740439114, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019408932182682588, 0.20321698947174538, 1.233551723482737, 0.3258945612095407, 0.0, 0.13004560449904765, 0.0, 0.5146863326888748, 0.0, 0.0, 0.26506893163091566, 0.6961290235591785, 0.7308179758735578, 0.019108835994024305, 0.0, 0.0, 0.12318551581994355, 0.0, 0.6633736020985646, 0.09733981959320877, 0.6085861256804133, 0.0, 0.3702803270823883, 0.0, 0.31915877170632656, 0.0, 0.0048098299833409025, 0.08330917183364514, 0.03767139221212642, 0.0, 0.0, 0.7595521482230864, 0.0, 0.40492576086384785, 0.9767048148851073, 0.0, 0.7118250358317957, 1.4759259446598505, 0.6177251878074594, 0.0, 0.0, 0.5578474164235181, 0.0, 0.0, 0.0, 0.8466209961003106, 0.0, 0.0, 0.0, 0.0, 0.9134452822413822, 0.0, 0.0, 1.1506817448958997, 0.0, 0.0, 0.5717156136201251, 0.0, 0.0, 0.0, 0.0, 0.22301492152906585, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13134314230830874, 0.20762859161099162, 0.0, 0.4768286902241477, 0.0, 0.3252201513410915, 0.5728390197892637, 0.07274257736444308, 0.0946619273240044, 0.0, 0.08735695093663028, 0.0, 0.006047124502145837, 0.0, 0.0, 0.03396077178506113, 0.056902676891892164, 0.05446213354503342, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03284486748482166, 0.0, 0.03394228891521373, 0.0, 0.0, 0.0, 0.15913459349815823, 0.0988686644243417, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06403136572671528, 0.0008539041494970381, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4996043959310575, 0.03466871274471111, 0.0, 0.0, 0.0, 0.5916091668585121, 0.0, 0.0, 0.18522959478004286, 0.0, 0.0, 0.6748263739107161, 0.0, 0.0, 0.5617854630926186, 0.0, 0.7191769350887419, 0.22919875305609166, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07421634147547619, 0.2082330820676049, 0.0, 0.33671550924577986, 0.0, 0.0, 0.8216886233224614, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9288637557541211, 0.0, 0.0, 1.2410393190221276, 0.024834505618206743, 0.6697889027661909, 0.39618825585335343, 0.37106318592637155, 0.321662062811288, 0.0, 0.8625204846142658, 0.4737807718760894, 0.8171062776340833, 0.16785258111865808, 1.931465974538034, 0.1820623956052182, 0.0, 0.40831479446929375, 0.0, 1.6290713896950666, 0.0, 0.0, 1.0235643660149811, 0.0, 0.0, 0.0, 0.0, 0.996334540430692, 0.0, 0.0, 0.44156504893800563, 0.289897027676234, 0.0, 0.5556259307084835, 0.0, 0.0, 0.5751570179061616, 0.0, 0.15465163640644544, 0.0, 0.0, 0.0, 0.0, 0.1740886831542383, 0.8206341762594166, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8467869185435447, 0.05898504962060997, 0.03624481511042625, 0.6732560722166093, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.201694060644539, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4141926752107277, 0.14795154825402113, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21427949262749374, 0.46809092516056994, 0.0, 0.16828675961297507, 0.14194253863939424, 0.0, 0.46436829494386733, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13445486993921502, 0.019720618408469233, 0.2722006890254698, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06550905522135163, 0.04806777087710764, 0.0, 0.0, 0.0, 0.599761835300619, 0.0, 0.0, 0.5741431736534577, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17101973439245724, 0.0, 0.0, 0.0749875087919759, 0.0, 0.0, 0.28776812087676407, 0.8309016545414952, 0.0, 0.0, 0.0, 0.016199069272106216, 0.0, 0.0, 0.0, 0.0, 0.6545099569258361, 0.22702193109653576, 0.04569906480983916, 0.2833580027667076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11138860511768055, 0.062440751035711506, 0.5182620734767335, 0.0, 0.3481758497366363, 0.0, 0.4677994729760326, 0.6992526088901763, 0.01746909322126967, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4416823398234807, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08074443292335906, 0.005624454367769537, 0.4953841958649777, 0.06419759041251974, 0.0, 0.0, 0.0, 0.03378063280221251, 0.27793271609589054, 0.0, 0.0, 0.0, 0.013968102118739474, 0.0, 0.08424327814659714, 0.057402094804332435, 0.0, 0.0, 0.0333773112405404, 0.0, 0.0, 0.0, 0.020814415925578544, 0.050277550690626754, 0.07266714943835642, 0.05420980100927718, 0.1299217183065535, 0.0, 0.0, 0.3197221256849075, 0.0, 0.13800911480490768, 0.0, 0.0, 0.0, 0.0, 1.01268183989861, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7358814757212789, 0.30707785521832553, 0.5276131242565835, 0.0, 0.1743689886750783, 0.0, 0.25821885501181596, 0.5805464694386301, 0.7164948773890167, 0.0, 0.0, 0.0, 0.37021123955626156, 0.12525001349038106, 0.608077535649827, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0938347119534369, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17530069799945608, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6839828466860547, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0036702000371577168, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.030804733252794536, 0.6085396823865649, 0.3664826840226463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.052310575793324585, 0.23438841535865984, 0.027151249553211434, 0.42665810243765545, 0.060892623345148826, 0.0, 0.0, 0.08445468462850356, 0.05478879427510317, 0.5501718854551394, 0.0, 0.11343808432438283, 0.0, 0.09259962343643532, 0.2732186452567139, 0.0, 0.42011946077495216, 0.2576342392674693, 0.0, 0.5090094423403475, 0.0, 0.0, 0.0, 0.0010952054350690443, 0.08086253983246877, 0.0, 0.0, 0.23985944027024297, 0.0, 0.09028722397131896, 0.0, 0.07674602267622682, 0.43900489287844074, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3006474050100551, 0.0, 0.0, 0.0709455536446502, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24893625570967048, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2768131690025365, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0014853584531852684, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2394367041087018, 0.8202130158779322, 0.0, 0.0, 0.28871220094126887, 0.0, 0.0, 0.04358483751824937, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.052964062286445145, 0.0, 0.2958896434064324, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.695162332188878, 0.037163387811150035, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0679762361139716, 0.0, 0.0, 0.24678121036961095, 0.0, 0.0, 0.2964710587865061, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0759598903032082, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07295585235760724, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0603439559536301, 0.0, 0.0, 0.0, 0.17528000283667142, 0.0, 0.12675745187805368, 0.328557971512483, 0.028687306018592266, 0.0, 0.0, 0.8516002254500735, 0.0, 0.4371253184691764, 0.13991121920676916, 0.0, 0.3475458448096685, 0.46894433815651543, 0.0, 0.0, 0.6068029321085694, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.28015080493647854, 0.3107571390829928, 0.0, 0.0, 0.0, 0.0, 0.006563618369995558, 0.5906679530337167, 0.0, 0.0, 0.0, 0.6525869879262292, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00921986700494424, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04479484649111107, 0.0, 0.3151409942990884, 0.021951930030038837, 0.0, 0.2505595957731255, 0.0, 0.0, 0.0, 0.03191831493444459, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22403715744289487, 0.0, 0.0, 0.0, 0.0, 0.0, 0.027940093628006875, 0.0, 0.0, 0.0, 0.26553429437558146, 0.0, 0.030379801994009328, 0.0, 1.223521302648351, 0.3114612281119979, 0.3934859798468234, 0.0, 0.3688885410084021, 0.0, 0.5211677391443227, 0.318605826264122, 0.11794887163110916, 0.0, 0.0, 0.4256936617495534, 0.0, 0.49172025370622324, 0.48430956473476544, 0.0, 1.3234474260067457, 0.28650182105087124, 0.006913853673799038, 0.28826288884375384, 0.3033256150127764, 0.0, 0.19416551553442815, 0.19479473776455275, 0.0, 0.2201952762677155, 0.0, 0.0, 0.34956927181897907, 0.0, 0.0, 0.0, 0.5335997378219544, 0.1831214497933391, 0.5101375543135913, 0.0, 0.7417718286797346, 0.0, 0.23966647500006097, 0.8693502490764229, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21247306643180602, 0.1378389271943791, 0.0, 0.0, 0.2853901797463675, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20343586472727235, 0.29392458170687635, 0.011188169832657642, 0.0, 0.0, 0.28953305486076913, 0.0, 0.0, 0.07223789467137894, 0.0, 0.33051308113923733, 0.4540345661588786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9537370190824367, 0.0, 0.6089477015288718, 0.0, 0.07722630190963325, 0.0, 0.0, 1.0000222254545443, 0.8637206744494375, 0.0, 0.7751920658363071, 0.524298363554463, 0.0, 0.0, 0.01676078910810196, 0.0, 0.0, 0.07604278960261779, 0.0, 0.0, 0.0, 0.0, 0.40940877803475156, 0.0, 0.0, 0.0, 0.0, 0.09252661041066143, 0.44765043171933794, 0.0, 0.24055976047324873, 0.0, 0.15100552643910237, 0.35800810608226774]), 42), 42)),) julia> @finch_code begin Ct .= 0 for i = _ @@ -498,7 +498,7 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.40798272794029244, 0.0, 0.05552236202954211, 0.0, 0.0, 0.0, 1.1508129348205518, 0.0, 0.19395356472348033, 0.2307481734593406, 0.0, 0.0, 0.0, 0.0, 0.7400687115958035, 0.0, 0.0, 0.4711198057610666, 0.0, 0.07015028050595504, 0.08663540769774136, 0.0, 0.0, 0.46359958748433167, 0.0, 0.035823254967012344, 0.0, 0.21605429332119105, 0.050389255833200065, 0.0, 0.0, 0.08982343514212215, 0.0, 0.11508828733565957, 0.4022461237733094, 0.0, 0.5232411380476881, 0.0, 0.17677960337865342, 0.6347058701128525, 0.0, 0.0, 0.0, 0.080760767105778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.530417945120141, 0.036947581649449654, 0.0, 0.42172014534542845, 0.0, 0.0, 0.0, 0.04046090790460827, 0.0, 0.0, 0.0, 0.0, 0.016730358390191713, 0.11216899138664496, 0.10090277285890621, 0.3770798811678483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06022016698365358, 0.0, 0.3347277070064448, 0.08319806447593037, 0.0, 0.0, 0.15734979027583865, 0.6034963214197537, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8559793301235343, 0.0, 0.0221818618958444, 0.0, 0.0, 0.0, 0.0, 0.6249640468245943, 0.0, 0.706457127780651, 0.8381987455683932, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05075027829145945, 0.0, 0.0, 0.28298860880763127, 0.0, 0.46775948880043733, 0.3276758676884306, 0.23162154119323575, 0.0, 0.0, 0.7097058534293814, 0.0, 0.01925480712564137, 0.6617464495997725, 0.5510119129346432, 0.9503030089786222, 0.19493828703065708, 0.4234771306495736, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11491839349038546, 0.0, 0.0, 0.0, 0.0, 0.0, 0.952344347120024, 0.31481029761912926, 0.0, 0.0, 0.3371532262514988, 0.0, 0.6461986748500718, 0.0, 0.20388394461232018, 0.6689077519036521, 0.008065708303756284, 0.026774581755143884, 0.0, 0.0, 0.0, 0.0, 0.20246692989511542, 0.0, 0.0, 0.0, 0.0, 0.6964472745009185, 0.0, 0.3001098015546565, 0.0, 0.002810485733837209, 0.0, 0.0, 0.2833439267406652, 0.0, 0.0, 0.0, 0.01365478232442864, 0.0, 0.07752931191170997, 0.005400497114468351, 0.01008472602077043, 0.7305457354717977, 0.0, 0.0, 0.3791767135274968, 0.009729638043940761, 0.14133243937397577, 0.0, 0.6050992861887972, 0.0, 0.0, 0.0, 0.0, 0.32748073574326575, 0.29782974023215064, 0.0, 0.0, 0.0, 0.0, 0.008516959572353846, 0.0, 0.0, 0.0, 0.5188617620854502, 0.0, 0.12960309538886133, 0.0, 0.2159060099855789, 0.0, 0.0, 0.0, 0.5916658876154497, 0.0, 0.08410324034674674, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7242114416300933, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.43295426032070555, 0.1879551877902947, 0.09140698995628445, 0.0, 0.0, 0.0, 0.0, 0.053834983759932134, 0.014210556502435533, 0.023024626002393696, 0.0, 0.0, 0.08510060429095491, 0.15442202399960203, 0.0, 0.5391171356753139, 0.0, 0.44855253786204935, 0.048493606647816025, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22138370024934187, 0.0, 0.08746644969030876, 0.0, 0.0, 0.0, 0.1616519416528851, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.035084084514750494, 0.0, 0.11688517594508105, 0.2089391042079727, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05598779403983851, 0.014778823268485956, 0.0, 0.0, 0.0, 0.0, 0.057780108315529474, 0.0, 0.201721527067654, 0.0, 0.3341648455181398, 0.0, 0.0, 0.7601477683176978, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8032144106029788, 0.0, 0.18178069418497272, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6936206835397086, 0.0, 0.36283080196789974, 0.4415514891805875, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.041591186808888826, 0.3770004419200786, 0.0, 0.0, 0.0, 0.17252416859375463, 0.0, 0.0, 0.6527400000425327, 0.0, 0.3340575108846618, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7763472218770214, 0.0, 0.0, 0.0, 0.0, 0.8376247582699287, 0.0, 0.014460886244840168, 0.6266762938745922, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.46397397404593055, 0.0, 0.23926875754339813, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.46347904589364963, 0.05902942262309747, 0.0, 0.03877718275846287, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2950495413884076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06597380264866397, 1.0898197013430582, 0.0, 0.012501862454917015, 0.0, 0.0, 0.05385941027253928, 0.0, 0.3522343881391282, 0.0, 0.398164495085241, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004630463685504157, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25876266416388005, 0.0, 0.0, 0.3103356146935319, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6074148238597709, 0.09425255656440318, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0032593418386170935, 0.0, 0.2297346969390008, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12055792386342427, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25324185315889564, 0.0, 0.05731281617489229, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21868854065637486, 0.0, 0.0, 0.13921477990069736, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.013113097926933236, 0.11886277100269102, 0.0, 0.0, 0.0, 0.0, 0.0, 0.52224991418746, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4173873832595858, 0.08858709037486684, 0.0, 0.0, 0.0, 0.0, 0.15667266254329507, 0.0, 0.40730912125206437, 0.5164653515440787, 0.0, 0.2032159032369745, 0.40587691627032874, 0.0, 0.0, 0.0, 0.0340034080482809, 0.0, 0.0, 0.15427161497649788, 0.44428262792688017, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.014262992619462008, 0.38024333666677773, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1612065141710269, 0.0, 0.03925137009723705, 0.0, 0.0078366311533161, 0.0, 0.014460397168610369, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06667255880132161, 0.0, 0.14952781464402123, 0.0, 0.0, 0.0, 0.0, 0.2779234999305725, 0.0, 0.008746314891451676, 0.0, 0.0, 0.06465282563196756, 0.0, 0.2464235137262255, 0.006899580599861792, 0.278556260330773, 0.007445268802069765, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18845739307946788, 0.01641249348500929, 0.5317378389887557, 0.0, 0.0, 0.14988438489574235, 0.0, 0.010375471289624015, 1.3557213333649594, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18808146093167488, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37253241298417417, 0.0, 0.1111794727253734, 0.16963583085055012, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10986305912788819, 0.0, 0.0, 0.11949895822624457, 0.0, 0.0, 0.15821760502340373, 0.0, 0.5523682427180556, 0.0, 0.4595776329669528, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.33581328744582783, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24138228903328196, 0.0, 0.3691306800612154, 0.0, 0.0, 0.0, 0.0, 0.0, 1.232394871494877, 0.0, 0.0, 0.0, 0.5293521525003586, 0.0, 0.48349454590588176, 0.0, 0.0, 0.6981988327823653, 0.0, 0.0, 0.0, 0.0, 0.0, 0.33600003819418794, 0.10493510524858034, 0.1002766625939797, 0.0, 0.4760848715940903, 0.30327936688968893, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15549653856407664, 0.053555423141422365, 0.33124643300151746, 0.1452133754699813, 0.29863037601205833, 0.5069679636197618, 0.0, 1.2650777504013886, 0.0, 0.0, 0.8010376870067246, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8336854027224526, 0.0, 0.0, 0.0, 0.0, 0.013135866634354858, 0.7693584995036987, 0.0, 0.0, 0.0, 0.1809386811488775, 0.18409266358857004, 0.0, 0.8209089663283375, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6269731623222802, 0.0, 0.0, 0.0, 0.0, 0.8578109001691112, 0.13549697762155272, 0.8892025809188543, 0.0, 0.17753144998442447, 0.0, 0.3275865900116729, 0.37045604078207667, 0.0, 0.0, 0.45942273296787417, 0.0, 0.0, 0.1496601554416231, 0.0, 0.4896166566389182, 0.09296161452877622, 0.0, 0.15295686770265157, 0.0, 0.0, 0.0, 0.18412880463476564, 0.0, 0.19671721658454625, 0.0, 0.0, 0.15630345798009787, 0.0, 0.16866550691184853, 0.0, 0.3962565901298767, 0.0, 0.0, 0.009054605400028368, 0.0, 0.0, 0.0, 0.0, 0.6323717354885464, 0.0, 0.27367929286054155, 1.074929147630902, 0.1458067334724375, 0.22417700682510228, 0.0, 0.10951695376531846, 0.0, 0.007581110002282966, 0.24931277842808883, 0.0, 0.6883954376611309, 0.6336690200937254, 0.2666286675338324, 0.0, 0.0, 0.0, 0.0, 0.2876738228687025, 0.0, 0.0, 0.21522568832904387, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0438812752886428, 0.6525143726026617, 0.0, 0.0, 0.0, 0.0, 0.0, 1.1869853573228195, 0.11631516482088484, 0.0, 0.0, 0.0, 0.0, 0.06506946683877823, 0.0, 0.22717008671076838, 0.10242247240104177, 0.18900849588618046, 0.11442201255265518, 0.5664450740439114, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019408932182682588, 0.20321698947174538, 1.233551723482737, 0.3258945612095407, 0.0, 0.13004560449904765, 0.0, 0.5146863326888748, 0.0, 0.0, 0.26506893163091566, 0.6961290235591785, 0.7308179758735578, 0.019108835994024305, 0.0, 0.0, 0.12318551581994355, 0.0, 0.6633736020985646, 0.09733981959320877, 0.6085861256804133, 0.0, 0.3702803270823883, 0.0, 0.31915877170632656, 0.0, 0.0048098299833409025, 0.08330917183364514, 0.03767139221212642, 0.0, 0.0, 0.7595521482230864, 0.0, 0.40492576086384785, 0.9767048148851073, 0.0, 0.7118250358317957, 1.4759259446598505, 0.6177251878074594, 0.0, 0.0, 0.5578474164235181, 0.0, 0.0, 0.0, 0.8466209961003106, 0.0, 0.0, 0.0, 0.0, 0.9134452822413822, 0.0, 0.0, 1.1506817448958997, 0.0, 0.0, 0.5717156136201251, 0.0, 0.0, 0.0, 0.0, 0.22301492152906585, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13134314230830874, 0.20762859161099162, 0.0, 0.4768286902241477, 0.0, 0.3252201513410915, 0.5728390197892637, 0.07274257736444308, 0.0946619273240044, 0.0, 0.08735695093663028, 0.0, 0.006047124502145837, 0.0, 0.0, 0.03396077178506113, 0.056902676891892164, 0.05446213354503342, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03284486748482166, 0.0, 0.03394228891521373, 0.0, 0.0, 0.0, 0.15913459349815823, 0.0988686644243417, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06403136572671528, 0.0008539041494970381, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4996043959310575, 0.03466871274471111, 0.0, 0.0, 0.0, 0.5916091668585121, 0.0, 0.0, 0.18522959478004286, 0.0, 0.0, 0.6748263739107161, 0.0, 0.0, 0.5617854630926186, 0.0, 0.7191769350887419, 0.22919875305609166, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07421634147547619, 0.2082330820676049, 0.0, 0.33671550924577986, 0.0, 0.0, 0.8216886233224614, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9288637557541211, 0.0, 0.0, 1.2410393190221276, 0.024834505618206743, 0.6697889027661909, 0.39618825585335343, 0.37106318592637155, 0.321662062811288, 0.0, 0.8625204846142658, 0.4737807718760894, 0.8171062776340833, 0.16785258111865808, 1.931465974538034, 0.1820623956052182, 0.0, 0.40831479446929375, 0.0, 1.6290713896950666, 0.0, 0.0, 1.0235643660149811, 0.0, 0.0, 0.0, 0.0, 0.996334540430692, 0.0, 0.0, 0.44156504893800563, 0.289897027676234, 0.0, 0.5556259307084835, 0.0, 0.0, 0.5751570179061616, 0.0, 0.15465163640644544, 0.0, 0.0, 0.0, 0.0, 0.1740886831542383, 0.8206341762594166, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8467869185435447, 0.05898504962060997, 0.03624481511042625, 0.6732560722166093, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.201694060644539, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4141926752107277, 0.14795154825402113, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21427949262749374, 0.46809092516056994, 0.0, 0.16828675961297507, 0.14194253863939424, 0.0, 0.46436829494386733, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13445486993921502, 0.019720618408469233, 0.2722006890254698, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06550905522135163, 0.04806777087710764, 0.0, 0.0, 0.0, 0.599761835300619, 0.0, 0.0, 0.5741431736534577, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17101973439245724, 0.0, 0.0, 0.0749875087919759, 0.0, 0.0, 0.28776812087676407, 0.8309016545414952, 0.0, 0.0, 0.0, 0.016199069272106216, 0.0, 0.0, 0.0, 0.0, 0.6545099569258361, 0.22702193109653576, 0.04569906480983916, 0.2833580027667076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11138860511768055, 0.062440751035711506, 0.5182620734767335, 0.0, 0.3481758497366363, 0.0, 0.4677994729760326, 0.6992526088901763, 0.01746909322126967, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4416823398234807, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08074443292335906, 0.005624454367769537, 0.4953841958649777, 0.06419759041251974, 0.0, 0.0, 0.0, 0.03378063280221251, 0.27793271609589054, 0.0, 0.0, 0.0, 0.013968102118739474, 0.0, 0.08424327814659714, 0.057402094804332435, 0.0, 0.0, 0.0333773112405404, 0.0, 0.0, 0.0, 0.020814415925578544, 0.050277550690626754, 0.07266714943835642, 0.05420980100927718, 0.1299217183065535, 0.0, 0.0, 0.3197221256849075, 0.0, 0.13800911480490768, 0.0, 0.0, 0.0, 0.0, 1.01268183989861, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7358814757212789, 0.30707785521832553, 0.5276131242565835, 0.0, 0.1743689886750783, 0.0, 0.25821885501181596, 0.5805464694386301, 0.7164948773890167, 0.0, 0.0, 0.0, 0.37021123955626156, 0.12525001349038106, 0.608077535649827, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0938347119534369, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17530069799945608, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6839828466860547, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0036702000371577168, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.030804733252794536, 0.6085396823865649, 0.3664826840226463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.052310575793324585, 0.23438841535865984, 0.027151249553211434, 0.42665810243765545, 0.060892623345148826, 0.0, 0.0, 0.08445468462850356, 0.05478879427510317, 0.5501718854551394, 0.0, 0.11343808432438283, 0.0, 0.09259962343643532, 0.2732186452567139, 0.0, 0.42011946077495216, 0.2576342392674693, 0.0, 0.5090094423403475, 0.0, 0.0, 0.0, 0.0010952054350690443, 0.08086253983246877, 0.0, 0.0, 0.23985944027024297, 0.0, 0.09028722397131896, 0.0, 0.07674602267622682, 0.43900489287844074, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3006474050100551, 0.0, 0.0, 0.0709455536446502, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24893625570967048, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2768131690025365, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0014853584531852684, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2394367041087018, 0.8202130158779322, 0.0, 0.0, 0.28871220094126887, 0.0, 0.0, 0.04358483751824937, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.052964062286445145, 0.0, 0.2958896434064324, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.695162332188878, 0.037163387811150035, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0679762361139716, 0.0, 0.0, 0.24678121036961095, 0.0, 0.0, 0.2964710587865061, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0759598903032082, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07295585235760724, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0603439559536301, 0.0, 0.0, 0.0, 0.17528000283667142, 0.0, 0.12675745187805368, 0.328557971512483, 0.028687306018592266, 0.0, 0.0, 0.8516002254500735, 0.0, 0.4371253184691764, 0.13991121920676916, 0.0, 0.3475458448096685, 0.46894433815651543, 0.0, 0.0, 0.6068029321085694, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.28015080493647854, 0.3107571390829928, 0.0, 0.0, 0.0, 0.0, 0.006563618369995558, 0.5906679530337167, 0.0, 0.0, 0.0, 0.6525869879262292, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00921986700494424, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04479484649111107, 0.0, 0.3151409942990884, 0.021951930030038837, 0.0, 0.2505595957731255, 0.0, 0.0, 0.0, 0.03191831493444459, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22403715744289487, 0.0, 0.0, 0.0, 0.0, 0.0, 0.027940093628006875, 0.0, 0.0, 0.0, 0.26553429437558146, 0.0, 0.030379801994009328, 0.0, 1.223521302648351, 0.3114612281119979, 0.3934859798468234, 0.0, 0.3688885410084021, 0.0, 0.5211677391443227, 0.318605826264122, 0.11794887163110916, 0.0, 0.0, 0.4256936617495534, 0.0, 0.49172025370622324, 0.48430956473476544, 0.0, 1.3234474260067457, 0.28650182105087124, 0.006913853673799038, 0.28826288884375384, 0.3033256150127764, 0.0, 0.19416551553442815, 0.19479473776455275, 0.0, 0.2201952762677155, 0.0, 0.0, 0.34956927181897907, 0.0, 0.0, 0.0, 0.5335997378219544, 0.1831214497933391, 0.5101375543135913, 0.0, 0.7417718286797346, 0.0, 0.23966647500006097, 0.8693502490764229, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21247306643180602, 0.1378389271943791, 0.0, 0.0, 0.2853901797463675, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20343586472727235, 0.29392458170687635, 0.011188169832657642, 0.0, 0.0, 0.28953305486076913, 0.0, 0.0, 0.07223789467137894, 0.0, 0.33051308113923733, 0.4540345661588786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9537370190824367, 0.0, 0.6089477015288718, 0.0, 0.07722630190963325, 0.0, 0.0, 1.0000222254545443, 0.8637206744494375, 0.0, 0.7751920658363071, 0.524298363554463, 0.0, 0.0, 0.01676078910810196, 0.0, 0.0, 0.07604278960261779, 0.0, 0.0, 0.0, 0.0, 0.40940877803475156, 0.0, 0.0, 0.0, 0.0, 0.09252661041066143, 0.44765043171933794, 0.0, 0.24055976047324873, 0.0, 0.15100552643910237, 0.35800810608226774]), 42), 42)),) julia> @finch_code begin Ct .= 0 for j = parallel(_) @@ -734,7 +734,7 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.40798272794029244, 0.0, 0.05552236202954211, 0.0, 0.0, 0.0, 1.1508129348205518, 0.0, 0.19395356472348033, 0.2307481734593406, 0.0, 0.0, 0.0, 0.0, 0.7400687115958035, 0.0, 0.0, 0.4711198057610666, 0.0, 0.07015028050595504, 0.08663540769774136, 0.0, 0.0, 0.46359958748433167, 0.0, 0.035823254967012344, 0.0, 0.21605429332119105, 0.050389255833200065, 0.0, 0.0, 0.08982343514212215, 0.0, 0.11508828733565957, 0.4022461237733094, 0.0, 0.5232411380476881, 0.0, 0.17677960337865342, 0.6347058701128525, 0.0, 0.0, 0.0, 0.080760767105778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.530417945120141, 0.036947581649449654, 0.0, 0.42172014534542845, 0.0, 0.0, 0.0, 0.04046090790460827, 0.0, 0.0, 0.0, 0.0, 0.016730358390191713, 0.11216899138664496, 0.10090277285890621, 0.3770798811678483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06022016698365358, 0.0, 0.3347277070064448, 0.08319806447593037, 0.0, 0.0, 0.15734979027583865, 0.6034963214197537, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8559793301235343, 0.0, 0.0221818618958444, 0.0, 0.0, 0.0, 0.0, 0.6249640468245943, 0.0, 0.706457127780651, 0.8381987455683932, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05075027829145945, 0.0, 0.0, 0.28298860880763127, 0.0, 0.46775948880043733, 0.3276758676884306, 0.23162154119323575, 0.0, 0.0, 0.7097058534293814, 0.0, 0.01925480712564137, 0.6617464495997725, 0.5510119129346432, 0.9503030089786222, 0.19493828703065708, 0.4234771306495736, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11491839349038546, 0.0, 0.0, 0.0, 0.0, 0.0, 0.952344347120024, 0.31481029761912926, 0.0, 0.0, 0.3371532262514988, 0.0, 0.6461986748500718, 0.0, 0.20388394461232018, 0.6689077519036521, 0.008065708303756284, 0.026774581755143884, 0.0, 0.0, 0.0, 0.0, 0.20246692989511542, 0.0, 0.0, 0.0, 0.0, 0.6964472745009185, 0.0, 0.3001098015546565, 0.0, 0.002810485733837209, 0.0, 0.0, 0.2833439267406652, 0.0, 0.0, 0.0, 0.01365478232442864, 0.0, 0.07752931191170997, 0.005400497114468351, 0.01008472602077043, 0.7305457354717977, 0.0, 0.0, 0.3791767135274968, 0.009729638043940761, 0.14133243937397577, 0.0, 0.6050992861887972, 0.0, 0.0, 0.0, 0.0, 0.32748073574326575, 0.29782974023215064, 0.0, 0.0, 0.0, 0.0, 0.008516959572353846, 0.0, 0.0, 0.0, 0.5188617620854502, 0.0, 0.12960309538886133, 0.0, 0.2159060099855789, 0.0, 0.0, 0.0, 0.5916658876154497, 0.0, 0.08410324034674674, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7242114416300933, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.43295426032070555, 0.1879551877902947, 0.09140698995628445, 0.0, 0.0, 0.0, 0.0, 0.053834983759932134, 0.014210556502435533, 0.023024626002393696, 0.0, 0.0, 0.08510060429095491, 0.15442202399960203, 0.0, 0.5391171356753139, 0.0, 0.44855253786204935, 0.048493606647816025, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22138370024934187, 0.0, 0.08746644969030876, 0.0, 0.0, 0.0, 0.1616519416528851, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.035084084514750494, 0.0, 0.11688517594508105, 0.2089391042079727, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05598779403983851, 0.014778823268485956, 0.0, 0.0, 0.0, 0.0, 0.057780108315529474, 0.0, 0.201721527067654, 0.0, 0.3341648455181398, 0.0, 0.0, 0.7601477683176978, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8032144106029788, 0.0, 0.18178069418497272, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6936206835397086, 0.0, 0.36283080196789974, 0.4415514891805875, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.041591186808888826, 0.3770004419200786, 0.0, 0.0, 0.0, 0.17252416859375463, 0.0, 0.0, 0.6527400000425327, 0.0, 0.3340575108846618, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7763472218770214, 0.0, 0.0, 0.0, 0.0, 0.8376247582699287, 0.0, 0.014460886244840168, 0.6266762938745922, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.46397397404593055, 0.0, 0.23926875754339813, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.46347904589364963, 0.05902942262309747, 0.0, 0.03877718275846287, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2950495413884076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06597380264866397, 1.0898197013430582, 0.0, 0.012501862454917015, 0.0, 0.0, 0.05385941027253928, 0.0, 0.3522343881391282, 0.0, 0.398164495085241, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004630463685504157, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25876266416388005, 0.0, 0.0, 0.3103356146935319, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6074148238597709, 0.09425255656440318, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0032593418386170935, 0.0, 0.2297346969390008, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12055792386342427, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25324185315889564, 0.0, 0.05731281617489229, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21868854065637486, 0.0, 0.0, 0.13921477990069736, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.013113097926933236, 0.11886277100269102, 0.0, 0.0, 0.0, 0.0, 0.0, 0.52224991418746, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4173873832595858, 0.08858709037486684, 0.0, 0.0, 0.0, 0.0, 0.15667266254329507, 0.0, 0.40730912125206437, 0.5164653515440787, 0.0, 0.2032159032369745, 0.40587691627032874, 0.0, 0.0, 0.0, 0.0340034080482809, 0.0, 0.0, 0.15427161497649788, 0.44428262792688017, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.014262992619462008, 0.38024333666677773, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1612065141710269, 0.0, 0.03925137009723705, 0.0, 0.0078366311533161, 0.0, 0.014460397168610369, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06667255880132161, 0.0, 0.14952781464402123, 0.0, 0.0, 0.0, 0.0, 0.2779234999305725, 0.0, 0.008746314891451676, 0.0, 0.0, 0.06465282563196756, 0.0, 0.2464235137262255, 0.006899580599861792, 0.278556260330773, 0.007445268802069765, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18845739307946788, 0.01641249348500929, 0.5317378389887557, 0.0, 0.0, 0.14988438489574235, 0.0, 0.010375471289624015, 1.3557213333649594, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18808146093167488, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37253241298417417, 0.0, 0.1111794727253734, 0.16963583085055012, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10986305912788819, 0.0, 0.0, 0.11949895822624457, 0.0, 0.0, 0.15821760502340373, 0.0, 0.5523682427180556, 0.0, 0.4595776329669528, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.33581328744582783, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24138228903328196, 0.0, 0.3691306800612154, 0.0, 0.0, 0.0, 0.0, 0.0, 1.232394871494877, 0.0, 0.0, 0.0, 0.5293521525003586, 0.0, 0.48349454590588176, 0.0, 0.0, 0.6981988327823653, 0.0, 0.0, 0.0, 0.0, 0.0, 0.33600003819418794, 0.10493510524858034, 0.1002766625939797, 0.0, 0.4760848715940903, 0.30327936688968893, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15549653856407664, 0.053555423141422365, 0.33124643300151746, 0.1452133754699813, 0.29863037601205833, 0.5069679636197618, 0.0, 1.2650777504013886, 0.0, 0.0, 0.8010376870067246, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8336854027224526, 0.0, 0.0, 0.0, 0.0, 0.013135866634354858, 0.7693584995036987, 0.0, 0.0, 0.0, 0.1809386811488775, 0.18409266358857004, 0.0, 0.8209089663283375, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6269731623222802, 0.0, 0.0, 0.0, 0.0, 0.8578109001691112, 0.13549697762155272, 0.8892025809188543, 0.0, 0.17753144998442447, 0.0, 0.3275865900116729, 0.37045604078207667, 0.0, 0.0, 0.45942273296787417, 0.0, 0.0, 0.1496601554416231, 0.0, 0.4896166566389182, 0.09296161452877622, 0.0, 0.15295686770265157, 0.0, 0.0, 0.0, 0.18412880463476564, 0.0, 0.19671721658454625, 0.0, 0.0, 0.15630345798009787, 0.0, 0.16866550691184853, 0.0, 0.3962565901298767, 0.0, 0.0, 0.009054605400028368, 0.0, 0.0, 0.0, 0.0, 0.6323717354885464, 0.0, 0.27367929286054155, 1.074929147630902, 0.1458067334724375, 0.22417700682510228, 0.0, 0.10951695376531846, 0.0, 0.007581110002282966, 0.24931277842808883, 0.0, 0.6883954376611309, 0.6336690200937254, 0.2666286675338324, 0.0, 0.0, 0.0, 0.0, 0.2876738228687025, 0.0, 0.0, 0.21522568832904387, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0438812752886428, 0.6525143726026617, 0.0, 0.0, 0.0, 0.0, 0.0, 1.1869853573228195, 0.11631516482088484, 0.0, 0.0, 0.0, 0.0, 0.06506946683877823, 0.0, 0.22717008671076838, 0.10242247240104177, 0.18900849588618046, 0.11442201255265518, 0.5664450740439114, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019408932182682588, 0.20321698947174538, 1.233551723482737, 0.3258945612095407, 0.0, 0.13004560449904765, 0.0, 0.5146863326888748, 0.0, 0.0, 0.26506893163091566, 0.6961290235591785, 0.7308179758735578, 0.019108835994024305, 0.0, 0.0, 0.12318551581994355, 0.0, 0.6633736020985646, 0.09733981959320877, 0.6085861256804133, 0.0, 0.3702803270823883, 0.0, 0.31915877170632656, 0.0, 0.0048098299833409025, 0.08330917183364514, 0.03767139221212642, 0.0, 0.0, 0.7595521482230864, 0.0, 0.40492576086384785, 0.9767048148851073, 0.0, 0.7118250358317957, 1.4759259446598505, 0.6177251878074594, 0.0, 0.0, 0.5578474164235181, 0.0, 0.0, 0.0, 0.8466209961003106, 0.0, 0.0, 0.0, 0.0, 0.9134452822413822, 0.0, 0.0, 1.1506817448958997, 0.0, 0.0, 0.5717156136201251, 0.0, 0.0, 0.0, 0.0, 0.22301492152906585, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13134314230830874, 0.20762859161099162, 0.0, 0.4768286902241477, 0.0, 0.3252201513410915, 0.5728390197892637, 0.07274257736444308, 0.0946619273240044, 0.0, 0.08735695093663028, 0.0, 0.006047124502145837, 0.0, 0.0, 0.03396077178506113, 0.056902676891892164, 0.05446213354503342, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03284486748482166, 0.0, 0.03394228891521373, 0.0, 0.0, 0.0, 0.15913459349815823, 0.0988686644243417, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06403136572671528, 0.0008539041494970381, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4996043959310575, 0.03466871274471111, 0.0, 0.0, 0.0, 0.5916091668585121, 0.0, 0.0, 0.18522959478004286, 0.0, 0.0, 0.6748263739107161, 0.0, 0.0, 0.5617854630926186, 0.0, 0.7191769350887419, 0.22919875305609166, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07421634147547619, 0.2082330820676049, 0.0, 0.33671550924577986, 0.0, 0.0, 0.8216886233224614, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9288637557541211, 0.0, 0.0, 1.2410393190221276, 0.024834505618206743, 0.6697889027661909, 0.39618825585335343, 0.37106318592637155, 0.321662062811288, 0.0, 0.8625204846142658, 0.4737807718760894, 0.8171062776340833, 0.16785258111865808, 1.931465974538034, 0.1820623956052182, 0.0, 0.40831479446929375, 0.0, 1.6290713896950666, 0.0, 0.0, 1.0235643660149811, 0.0, 0.0, 0.0, 0.0, 0.996334540430692, 0.0, 0.0, 0.44156504893800563, 0.289897027676234, 0.0, 0.5556259307084835, 0.0, 0.0, 0.5751570179061616, 0.0, 0.15465163640644544, 0.0, 0.0, 0.0, 0.0, 0.1740886831542383, 0.8206341762594166, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8467869185435447, 0.05898504962060997, 0.03624481511042625, 0.6732560722166093, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.201694060644539, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4141926752107277, 0.14795154825402113, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21427949262749374, 0.46809092516056994, 0.0, 0.16828675961297507, 0.14194253863939424, 0.0, 0.46436829494386733, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13445486993921502, 0.019720618408469233, 0.2722006890254698, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06550905522135163, 0.04806777087710764, 0.0, 0.0, 0.0, 0.599761835300619, 0.0, 0.0, 0.5741431736534577, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17101973439245724, 0.0, 0.0, 0.0749875087919759, 0.0, 0.0, 0.28776812087676407, 0.8309016545414952, 0.0, 0.0, 0.0, 0.016199069272106216, 0.0, 0.0, 0.0, 0.0, 0.6545099569258361, 0.22702193109653576, 0.04569906480983916, 0.2833580027667076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11138860511768055, 0.062440751035711506, 0.5182620734767335, 0.0, 0.3481758497366363, 0.0, 0.4677994729760326, 0.6992526088901763, 0.01746909322126967, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4416823398234807, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08074443292335906, 0.005624454367769537, 0.4953841958649777, 0.06419759041251974, 0.0, 0.0, 0.0, 0.03378063280221251, 0.27793271609589054, 0.0, 0.0, 0.0, 0.013968102118739474, 0.0, 0.08424327814659714, 0.057402094804332435, 0.0, 0.0, 0.0333773112405404, 0.0, 0.0, 0.0, 0.020814415925578544, 0.050277550690626754, 0.07266714943835642, 0.05420980100927718, 0.1299217183065535, 0.0, 0.0, 0.3197221256849075, 0.0, 0.13800911480490768, 0.0, 0.0, 0.0, 0.0, 1.01268183989861, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7358814757212789, 0.30707785521832553, 0.5276131242565835, 0.0, 0.1743689886750783, 0.0, 0.25821885501181596, 0.5805464694386301, 0.7164948773890167, 0.0, 0.0, 0.0, 0.37021123955626156, 0.12525001349038106, 0.608077535649827, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0938347119534369, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17530069799945608, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6839828466860547, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0036702000371577168, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.030804733252794536, 0.6085396823865649, 0.3664826840226463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.052310575793324585, 0.23438841535865984, 0.027151249553211434, 0.42665810243765545, 0.060892623345148826, 0.0, 0.0, 0.08445468462850356, 0.05478879427510317, 0.5501718854551394, 0.0, 0.11343808432438283, 0.0, 0.09259962343643532, 0.2732186452567139, 0.0, 0.42011946077495216, 0.2576342392674693, 0.0, 0.5090094423403475, 0.0, 0.0, 0.0, 0.0010952054350690443, 0.08086253983246877, 0.0, 0.0, 0.23985944027024297, 0.0, 0.09028722397131896, 0.0, 0.07674602267622682, 0.43900489287844074, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3006474050100551, 0.0, 0.0, 0.0709455536446502, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24893625570967048, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2768131690025365, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0014853584531852684, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2394367041087018, 0.8202130158779322, 0.0, 0.0, 0.28871220094126887, 0.0, 0.0, 0.04358483751824937, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.052964062286445145, 0.0, 0.2958896434064324, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.695162332188878, 0.037163387811150035, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0679762361139716, 0.0, 0.0, 0.24678121036961095, 0.0, 0.0, 0.2964710587865061, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0759598903032082, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07295585235760724, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0603439559536301, 0.0, 0.0, 0.0, 0.17528000283667142, 0.0, 0.12675745187805368, 0.328557971512483, 0.028687306018592266, 0.0, 0.0, 0.8516002254500735, 0.0, 0.4371253184691764, 0.13991121920676916, 0.0, 0.3475458448096685, 0.46894433815651543, 0.0, 0.0, 0.6068029321085694, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.28015080493647854, 0.3107571390829928, 0.0, 0.0, 0.0, 0.0, 0.006563618369995558, 0.5906679530337167, 0.0, 0.0, 0.0, 0.6525869879262292, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00921986700494424, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04479484649111107, 0.0, 0.3151409942990884, 0.021951930030038837, 0.0, 0.2505595957731255, 0.0, 0.0, 0.0, 0.03191831493444459, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22403715744289487, 0.0, 0.0, 0.0, 0.0, 0.0, 0.027940093628006875, 0.0, 0.0, 0.0, 0.26553429437558146, 0.0, 0.030379801994009328, 0.0, 1.223521302648351, 0.3114612281119979, 0.3934859798468234, 0.0, 0.3688885410084021, 0.0, 0.5211677391443227, 0.318605826264122, 0.11794887163110916, 0.0, 0.0, 0.4256936617495534, 0.0, 0.49172025370622324, 0.48430956473476544, 0.0, 1.3234474260067457, 0.28650182105087124, 0.006913853673799038, 0.28826288884375384, 0.3033256150127764, 0.0, 0.19416551553442815, 0.19479473776455275, 0.0, 0.2201952762677155, 0.0, 0.0, 0.34956927181897907, 0.0, 0.0, 0.0, 0.5335997378219544, 0.1831214497933391, 0.5101375543135913, 0.0, 0.7417718286797346, 0.0, 0.23966647500006097, 0.8693502490764229, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21247306643180602, 0.1378389271943791, 0.0, 0.0, 0.2853901797463675, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20343586472727235, 0.29392458170687635, 0.011188169832657642, 0.0, 0.0, 0.28953305486076913, 0.0, 0.0, 0.07223789467137894, 0.0, 0.33051308113923733, 0.4540345661588786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9537370190824367, 0.0, 0.6089477015288718, 0.0, 0.07722630190963325, 0.0, 0.0, 1.0000222254545443, 0.8637206744494375, 0.0, 0.7751920658363071, 0.524298363554463, 0.0, 0.0, 0.01676078910810196, 0.0, 0.0, 0.07604278960261779, 0.0, 0.0, 0.0, 0.0, 0.40940877803475156, 0.0, 0.0, 0.0, 0.0, 0.09252661041066143, 0.44765043171933794, 0.0, 0.24055976047324873, 0.0, 0.15100552643910237, 0.35800810608226774]), 42), 42)),) julia> @finch_code begin Ct .= 0 for j = _ @@ -1015,11 +1015,11 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.40798272794029244, 0.0, 0.05552236202954211, 0.0, 0.0, 0.0, 1.1508129348205518, 0.0, 0.19395356472348033, 0.2307481734593406, 0.0, 0.0, 0.0, 0.0, 0.7400687115958035, 0.0, 0.0, 0.4711198057610666, 0.0, 0.07015028050595504, 0.08663540769774136, 0.0, 0.0, 0.46359958748433167, 0.0, 0.035823254967012344, 0.0, 0.21605429332119105, 0.050389255833200065, 0.0, 0.0, 0.08982343514212215, 0.0, 0.11508828733565957, 0.4022461237733094, 0.0, 0.5232411380476881, 0.0, 0.17677960337865342, 0.6347058701128525, 0.0, 0.0, 0.0, 0.080760767105778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.530417945120141, 0.036947581649449654, 0.0, 0.42172014534542845, 0.0, 0.0, 0.0, 0.04046090790460827, 0.0, 0.0, 0.0, 0.0, 0.016730358390191713, 0.11216899138664496, 0.10090277285890621, 0.3770798811678483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06022016698365358, 0.0, 0.3347277070064448, 0.08319806447593037, 0.0, 0.0, 0.15734979027583865, 0.6034963214197537, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8559793301235343, 0.0, 0.0221818618958444, 0.0, 0.0, 0.0, 0.0, 0.6249640468245943, 0.0, 0.706457127780651, 0.8381987455683932, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05075027829145945, 0.0, 0.0, 0.28298860880763127, 0.0, 0.46775948880043733, 0.3276758676884306, 0.23162154119323575, 0.0, 0.0, 0.7097058534293814, 0.0, 0.01925480712564137, 0.6617464495997725, 0.5510119129346432, 0.9503030089786222, 0.19493828703065708, 0.4234771306495736, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11491839349038546, 0.0, 0.0, 0.0, 0.0, 0.0, 0.952344347120024, 0.31481029761912926, 0.0, 0.0, 0.3371532262514988, 0.0, 0.6461986748500718, 0.0, 0.20388394461232018, 0.6689077519036521, 0.008065708303756284, 0.026774581755143884, 0.0, 0.0, 0.0, 0.0, 0.20246692989511542, 0.0, 0.0, 0.0, 0.0, 0.6964472745009185, 0.0, 0.3001098015546565, 0.0, 0.002810485733837209, 0.0, 0.0, 0.2833439267406652, 0.0, 0.0, 0.0, 0.01365478232442864, 0.0, 0.07752931191170997, 0.005400497114468351, 0.01008472602077043, 0.7305457354717977, 0.0, 0.0, 0.3791767135274968, 0.009729638043940761, 0.14133243937397577, 0.0, 0.6050992861887972, 0.0, 0.0, 0.0, 0.0, 0.32748073574326575, 0.29782974023215064, 0.0, 0.0, 0.0, 0.0, 0.008516959572353846, 0.0, 0.0, 0.0, 0.5188617620854502, 0.0, 0.12960309538886133, 0.0, 0.2159060099855789, 0.0, 0.0, 0.0, 0.5916658876154497, 0.0, 0.08410324034674674, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7242114416300933, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.43295426032070555, 0.1879551877902947, 0.09140698995628445, 0.0, 0.0, 0.0, 0.0, 0.053834983759932134, 0.014210556502435533, 0.023024626002393696, 0.0, 0.0, 0.08510060429095491, 0.15442202399960203, 0.0, 0.5391171356753139, 0.0, 0.44855253786204935, 0.048493606647816025, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22138370024934187, 0.0, 0.08746644969030876, 0.0, 0.0, 0.0, 0.1616519416528851, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.035084084514750494, 0.0, 0.11688517594508105, 0.2089391042079727, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05598779403983851, 0.014778823268485956, 0.0, 0.0, 0.0, 0.0, 0.057780108315529474, 0.0, 0.201721527067654, 0.0, 0.3341648455181398, 0.0, 0.0, 0.7601477683176978, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8032144106029788, 0.0, 0.18178069418497272, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6936206835397086, 0.0, 0.36283080196789974, 0.4415514891805875, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.041591186808888826, 0.3770004419200786, 0.0, 0.0, 0.0, 0.17252416859375463, 0.0, 0.0, 0.6527400000425327, 0.0, 0.3340575108846618, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7763472218770214, 0.0, 0.0, 0.0, 0.0, 0.8376247582699287, 0.0, 0.014460886244840168, 0.6266762938745922, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.46397397404593055, 0.0, 0.23926875754339813, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.46347904589364963, 0.05902942262309747, 0.0, 0.03877718275846287, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2950495413884076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06597380264866397, 1.0898197013430582, 0.0, 0.012501862454917015, 0.0, 0.0, 0.05385941027253928, 0.0, 0.3522343881391282, 0.0, 0.398164495085241, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004630463685504157, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25876266416388005, 0.0, 0.0, 0.3103356146935319, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6074148238597709, 0.09425255656440318, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0032593418386170935, 0.0, 0.2297346969390008, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12055792386342427, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25324185315889564, 0.0, 0.05731281617489229, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21868854065637486, 0.0, 0.0, 0.13921477990069736, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.013113097926933236, 0.11886277100269102, 0.0, 0.0, 0.0, 0.0, 0.0, 0.52224991418746, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4173873832595858, 0.08858709037486684, 0.0, 0.0, 0.0, 0.0, 0.15667266254329507, 0.0, 0.40730912125206437, 0.5164653515440787, 0.0, 0.2032159032369745, 0.40587691627032874, 0.0, 0.0, 0.0, 0.0340034080482809, 0.0, 0.0, 0.15427161497649788, 0.44428262792688017, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.014262992619462008, 0.38024333666677773, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1612065141710269, 0.0, 0.03925137009723705, 0.0, 0.0078366311533161, 0.0, 0.014460397168610369, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06667255880132161, 0.0, 0.14952781464402123, 0.0, 0.0, 0.0, 0.0, 0.2779234999305725, 0.0, 0.008746314891451676, 0.0, 0.0, 0.06465282563196756, 0.0, 0.2464235137262255, 0.006899580599861792, 0.278556260330773, 0.007445268802069765, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18845739307946788, 0.01641249348500929, 0.5317378389887557, 0.0, 0.0, 0.14988438489574235, 0.0, 0.010375471289624015, 1.3557213333649594, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18808146093167488, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37253241298417417, 0.0, 0.1111794727253734, 0.16963583085055012, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10986305912788819, 0.0, 0.0, 0.11949895822624457, 0.0, 0.0, 0.15821760502340373, 0.0, 0.5523682427180556, 0.0, 0.4595776329669528, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.33581328744582783, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24138228903328196, 0.0, 0.3691306800612154, 0.0, 0.0, 0.0, 0.0, 0.0, 1.232394871494877, 0.0, 0.0, 0.0, 0.5293521525003586, 0.0, 0.48349454590588176, 0.0, 0.0, 0.6981988327823653, 0.0, 0.0, 0.0, 0.0, 0.0, 0.33600003819418794, 0.10493510524858034, 0.1002766625939797, 0.0, 0.4760848715940903, 0.30327936688968893, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15549653856407664, 0.053555423141422365, 0.33124643300151746, 0.1452133754699813, 0.29863037601205833, 0.5069679636197618, 0.0, 1.2650777504013886, 0.0, 0.0, 0.8010376870067246, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8336854027224526, 0.0, 0.0, 0.0, 0.0, 0.013135866634354858, 0.7693584995036987, 0.0, 0.0, 0.0, 0.1809386811488775, 0.18409266358857004, 0.0, 0.8209089663283375, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6269731623222802, 0.0, 0.0, 0.0, 0.0, 0.8578109001691112, 0.13549697762155272, 0.8892025809188543, 0.0, 0.17753144998442447, 0.0, 0.3275865900116729, 0.37045604078207667, 0.0, 0.0, 0.45942273296787417, 0.0, 0.0, 0.1496601554416231, 0.0, 0.4896166566389182, 0.09296161452877622, 0.0, 0.15295686770265157, 0.0, 0.0, 0.0, 0.18412880463476564, 0.0, 0.19671721658454625, 0.0, 0.0, 0.15630345798009787, 0.0, 0.16866550691184853, 0.0, 0.3962565901298767, 0.0, 0.0, 0.009054605400028368, 0.0, 0.0, 0.0, 0.0, 0.6323717354885464, 0.0, 0.27367929286054155, 1.074929147630902, 0.1458067334724375, 0.22417700682510228, 0.0, 0.10951695376531846, 0.0, 0.007581110002282966, 0.24931277842808883, 0.0, 0.6883954376611309, 0.6336690200937254, 0.2666286675338324, 0.0, 0.0, 0.0, 0.0, 0.2876738228687025, 0.0, 0.0, 0.21522568832904387, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0438812752886428, 0.6525143726026617, 0.0, 0.0, 0.0, 0.0, 0.0, 1.1869853573228195, 0.11631516482088484, 0.0, 0.0, 0.0, 0.0, 0.06506946683877823, 0.0, 0.22717008671076838, 0.10242247240104177, 0.18900849588618046, 0.11442201255265518, 0.5664450740439114, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019408932182682588, 0.20321698947174538, 1.233551723482737, 0.3258945612095407, 0.0, 0.13004560449904765, 0.0, 0.5146863326888748, 0.0, 0.0, 0.26506893163091566, 0.6961290235591785, 0.7308179758735578, 0.019108835994024305, 0.0, 0.0, 0.12318551581994355, 0.0, 0.6633736020985646, 0.09733981959320877, 0.6085861256804133, 0.0, 0.3702803270823883, 0.0, 0.31915877170632656, 0.0, 0.0048098299833409025, 0.08330917183364514, 0.03767139221212642, 0.0, 0.0, 0.7595521482230864, 0.0, 0.40492576086384785, 0.9767048148851073, 0.0, 0.7118250358317957, 1.4759259446598505, 0.6177251878074594, 0.0, 0.0, 0.5578474164235181, 0.0, 0.0, 0.0, 0.8466209961003106, 0.0, 0.0, 0.0, 0.0, 0.9134452822413822, 0.0, 0.0, 1.1506817448958997, 0.0, 0.0, 0.5717156136201251, 0.0, 0.0, 0.0, 0.0, 0.22301492152906585, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13134314230830874, 0.20762859161099162, 0.0, 0.4768286902241477, 0.0, 0.3252201513410915, 0.5728390197892637, 0.07274257736444308, 0.0946619273240044, 0.0, 0.08735695093663028, 0.0, 0.006047124502145837, 0.0, 0.0, 0.03396077178506113, 0.056902676891892164, 0.05446213354503342, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03284486748482166, 0.0, 0.03394228891521373, 0.0, 0.0, 0.0, 0.15913459349815823, 0.0988686644243417, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06403136572671528, 0.0008539041494970381, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4996043959310575, 0.03466871274471111, 0.0, 0.0, 0.0, 0.5916091668585121, 0.0, 0.0, 0.18522959478004286, 0.0, 0.0, 0.6748263739107161, 0.0, 0.0, 0.5617854630926186, 0.0, 0.7191769350887419, 0.22919875305609166, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07421634147547619, 0.2082330820676049, 0.0, 0.33671550924577986, 0.0, 0.0, 0.8216886233224614, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9288637557541211, 0.0, 0.0, 1.2410393190221276, 0.024834505618206743, 0.6697889027661909, 0.39618825585335343, 0.37106318592637155, 0.321662062811288, 0.0, 0.8625204846142658, 0.4737807718760894, 0.8171062776340833, 0.16785258111865808, 1.931465974538034, 0.1820623956052182, 0.0, 0.40831479446929375, 0.0, 1.6290713896950666, 0.0, 0.0, 1.0235643660149811, 0.0, 0.0, 0.0, 0.0, 0.996334540430692, 0.0, 0.0, 0.44156504893800563, 0.289897027676234, 0.0, 0.5556259307084835, 0.0, 0.0, 0.5751570179061616, 0.0, 0.15465163640644544, 0.0, 0.0, 0.0, 0.0, 0.1740886831542383, 0.8206341762594166, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8467869185435447, 0.05898504962060997, 0.03624481511042625, 0.6732560722166093, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.201694060644539, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4141926752107277, 0.14795154825402113, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21427949262749374, 0.46809092516056994, 0.0, 0.16828675961297507, 0.14194253863939424, 0.0, 0.46436829494386733, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13445486993921502, 0.019720618408469233, 0.2722006890254698, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06550905522135163, 0.04806777087710764, 0.0, 0.0, 0.0, 0.599761835300619, 0.0, 0.0, 0.5741431736534577, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17101973439245724, 0.0, 0.0, 0.0749875087919759, 0.0, 0.0, 0.28776812087676407, 0.8309016545414952, 0.0, 0.0, 0.0, 0.016199069272106216, 0.0, 0.0, 0.0, 0.0, 0.6545099569258361, 0.22702193109653576, 0.04569906480983916, 0.2833580027667076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11138860511768055, 0.062440751035711506, 0.5182620734767335, 0.0, 0.3481758497366363, 0.0, 0.4677994729760326, 0.6992526088901763, 0.01746909322126967, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4416823398234807, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08074443292335906, 0.005624454367769537, 0.4953841958649777, 0.06419759041251974, 0.0, 0.0, 0.0, 0.03378063280221251, 0.27793271609589054, 0.0, 0.0, 0.0, 0.013968102118739474, 0.0, 0.08424327814659714, 0.057402094804332435, 0.0, 0.0, 0.0333773112405404, 0.0, 0.0, 0.0, 0.020814415925578544, 0.050277550690626754, 0.07266714943835642, 0.05420980100927718, 0.1299217183065535, 0.0, 0.0, 0.3197221256849075, 0.0, 0.13800911480490768, 0.0, 0.0, 0.0, 0.0, 1.01268183989861, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7358814757212789, 0.30707785521832553, 0.5276131242565835, 0.0, 0.1743689886750783, 0.0, 0.25821885501181596, 0.5805464694386301, 0.7164948773890167, 0.0, 0.0, 0.0, 0.37021123955626156, 0.12525001349038106, 0.608077535649827, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0938347119534369, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17530069799945608, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6839828466860547, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0036702000371577168, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.030804733252794536, 0.6085396823865649, 0.3664826840226463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.052310575793324585, 0.23438841535865984, 0.027151249553211434, 0.42665810243765545, 0.060892623345148826, 0.0, 0.0, 0.08445468462850356, 0.05478879427510317, 0.5501718854551394, 0.0, 0.11343808432438283, 0.0, 0.09259962343643532, 0.2732186452567139, 0.0, 0.42011946077495216, 0.2576342392674693, 0.0, 0.5090094423403475, 0.0, 0.0, 0.0, 0.0010952054350690443, 0.08086253983246877, 0.0, 0.0, 0.23985944027024297, 0.0, 0.09028722397131896, 0.0, 0.07674602267622682, 0.43900489287844074, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3006474050100551, 0.0, 0.0, 0.0709455536446502, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24893625570967048, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2768131690025365, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0014853584531852684, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2394367041087018, 0.8202130158779322, 0.0, 0.0, 0.28871220094126887, 0.0, 0.0, 0.04358483751824937, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.052964062286445145, 0.0, 0.2958896434064324, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.695162332188878, 0.037163387811150035, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0679762361139716, 0.0, 0.0, 0.24678121036961095, 0.0, 0.0, 0.2964710587865061, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0759598903032082, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07295585235760724, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0603439559536301, 0.0, 0.0, 0.0, 0.17528000283667142, 0.0, 0.12675745187805368, 0.328557971512483, 0.028687306018592266, 0.0, 0.0, 0.8516002254500735, 0.0, 0.4371253184691764, 0.13991121920676916, 0.0, 0.3475458448096685, 0.46894433815651543, 0.0, 0.0, 0.6068029321085694, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.28015080493647854, 0.3107571390829928, 0.0, 0.0, 0.0, 0.0, 0.006563618369995558, 0.5906679530337167, 0.0, 0.0, 0.0, 0.6525869879262292, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00921986700494424, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04479484649111107, 0.0, 0.3151409942990884, 0.021951930030038837, 0.0, 0.2505595957731255, 0.0, 0.0, 0.0, 0.03191831493444459, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22403715744289487, 0.0, 0.0, 0.0, 0.0, 0.0, 0.027940093628006875, 0.0, 0.0, 0.0, 0.26553429437558146, 0.0, 0.030379801994009328, 0.0, 1.223521302648351, 0.3114612281119979, 0.3934859798468234, 0.0, 0.3688885410084021, 0.0, 0.5211677391443227, 0.318605826264122, 0.11794887163110916, 0.0, 0.0, 0.4256936617495534, 0.0, 0.49172025370622324, 0.48430956473476544, 0.0, 1.3234474260067457, 0.28650182105087124, 0.006913853673799038, 0.28826288884375384, 0.3033256150127764, 0.0, 0.19416551553442815, 0.19479473776455275, 0.0, 0.2201952762677155, 0.0, 0.0, 0.34956927181897907, 0.0, 0.0, 0.0, 0.5335997378219544, 0.1831214497933391, 0.5101375543135913, 0.0, 0.7417718286797346, 0.0, 0.23966647500006097, 0.8693502490764229, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21247306643180602, 0.1378389271943791, 0.0, 0.0, 0.2853901797463675, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20343586472727235, 0.29392458170687635, 0.011188169832657642, 0.0, 0.0, 0.28953305486076913, 0.0, 0.0, 0.07223789467137894, 0.0, 0.33051308113923733, 0.4540345661588786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9537370190824367, 0.0, 0.6089477015288718, 0.0, 0.07722630190963325, 0.0, 0.0, 1.0000222254545443, 0.8637206744494375, 0.0, 0.7751920658363071, 0.524298363554463, 0.0, 0.0, 0.01676078910810196, 0.0, 0.0, 0.07604278960261779, 0.0, 0.0, 0.0, 0.0, 0.40940877803475156, 0.0, 0.0, 0.0, 0.0, 0.09252661041066143, 0.44765043171933794, 0.0, 0.24055976047324873, 0.0, 0.15100552643910237, 0.35800810608226774]), 42), 42)),) julia> @finch_code begin Ct .= 0 - for i = parallel(_) - for j = _ + for j = parallel(_) + for i = parallel(_) for k = _ Ct[i, j] += A[i, k] * B[k, j] end @@ -1042,7 +1042,6 @@ quote B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] B_lvl_val = B_lvl.lvl.val B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" pos_stop = A_lvl.shape[1] * B_lvl.shape[2] Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) @@ -1058,182 +1057,243 @@ quote A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) Threads.@threads for i_4 = 1:Threads.nthreads() - phase_start_2 = max(1, 1 + fld(A_lvl.shape[1] * (i_4 + -1), Threads.nthreads())) - phase_stop_2 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_4, Threads.nthreads())) + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_4 + -1), Threads.nthreads())) + phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_4, Threads.nthreads())) if phase_stop_2 >= phase_start_2 - for i_7 = phase_start_2:phase_stop_2 - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 + if B_lvl_tbl2[B_lvl_q] < phase_start_2 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) end - phase_stop_3 = min(B_lvl.shape[2], B_lvl_i_stop) - if phase_stop_3 >= 1 - if B_lvl_tbl2[B_lvl_q] < 1 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_3 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_5 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_5 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_5 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + if B_lvl_i < phase_stop_2 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + val_4 = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + A_lvl_ptr_3 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_3 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_3 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_5 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + B_lvl_ptr_3 = B_lvl_ptr + B_lvl_tbl1_3 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_3 = B_lvl_tbl2 + val_6 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_10 = 1:Threads.nthreads() + phase_start_7 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_10), Threads.nthreads())) + phase_stop_8 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_10, Threads.nthreads())) + if phase_stop_8 >= phase_start_7 + for i_13 = phase_start_7:phase_stop_8 + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_13 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_6 = min(B_lvl_i_2, phase_stop_5, A_lvl_i) - if A_lvl_i == phase_stop_6 && B_lvl_i_2 == phase_stop_6 - B_lvl_2_val = B_lvl_val[B_lvl_q_2] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_7 = min(i_7, A_lvl_i_stop_2) - if phase_stop_7 >= i_7 - if A_lvl_tbl1[A_lvl_q] < i_7 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_7 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_9 = min(A_lvl_i_2, phase_stop_7) - if A_lvl_i_2 == phase_stop_9 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_9 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_9 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_9 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_10 = min(B_lvl_i_3, phase_stop_9, A_lvl_i) + if A_lvl_i == phase_stop_10 && B_lvl_i_3 == phase_stop_10 + B_lvl_2_val = B_lvl_val[B_lvl_q_3] + A_lvl_q_2 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_2 = 0 + end + phase_stop_11 = min(i_13, A_lvl_i_stop_2) + if phase_stop_11 >= i_13 + if A_lvl_tbl1[A_lvl_q] < i_13 + A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_13, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] + if A_lvl_i_2 < phase_stop_11 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + else + phase_stop_13 = min(A_lvl_i_2, phase_stop_11) + if A_lvl_i_2 == phase_stop_13 + A_lvl_2_val = A_lvl_val[A_lvl_q_2] + Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + A_lvl_q_2 += 1 + end + break + end end - break end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_10 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_10 + A_lvl_q = A_lvl_q_step end + k = phase_stop_10 + 1 end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_6 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_6 - A_lvl_q = A_lvl_q_step end - k = phase_stop_6 + 1 end end - B_lvl_q = B_lvl_q_step - else - phase_stop_14 = min(B_lvl_i, phase_stop_3) - if B_lvl_i == phase_stop_14 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_14 - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_15 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_15 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_15 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_16 = min(B_lvl_i_2, A_lvl_i, phase_stop_15) - if A_lvl_i == phase_stop_16 && B_lvl_i_2 == phase_stop_16 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_17 = min(i_7, A_lvl_i_stop_4) - if phase_stop_17 >= i_7 - if A_lvl_tbl1[A_lvl_q] < i_7 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_17 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 + end + Ct_lvl_2_val = val_4 + A_lvl_ptr = A_lvl_ptr_3 + A_lvl_tbl1 = A_lvl_tbl1_3 + A_lvl_tbl2 = A_lvl_tbl2_3 + A_lvl_val = val_5 + B_lvl_ptr = B_lvl_ptr_3 + B_lvl_tbl1 = B_lvl_tbl1_3 + B_lvl_tbl2 = B_lvl_tbl2_3 + B_lvl_val = val_6 + B_lvl_q = B_lvl_q_step + else + phase_stop_19 = min(B_lvl_i, phase_stop_2) + if B_lvl_i == phase_stop_19 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_19 + val_7 = Ct_lvl_2_val + Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + A_lvl_ptr_4 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_4 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_4 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_8 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + B_lvl_ptr_4 = B_lvl_ptr + B_lvl_tbl1_4 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_4 = B_lvl_tbl2 + val_9 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_20 = 1:Threads.nthreads() + phase_start_22 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_20), Threads.nthreads())) + phase_stop_24 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_20, Threads.nthreads())) + if phase_stop_24 >= phase_start_22 + for i_23 = phase_start_22:phase_stop_24 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_23 + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_25 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) + if phase_stop_25 >= 1 + k = 1 + if A_lvl_tbl2[A_lvl_q] < 1 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) + end + if B_lvl_tbl1[B_lvl_q] < 1 + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) + end + while k <= phase_stop_25 + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + phase_stop_26 = min(B_lvl_i_3, A_lvl_i, phase_stop_25) + if A_lvl_i == phase_stop_26 && B_lvl_i_3 == phase_stop_26 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] + A_lvl_q_4 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] else - phase_stop_19 = min(A_lvl_i_4, phase_stop_17) - if A_lvl_i_4 == phase_stop_19 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 + A_lvl_i_stop_4 = 0 + end + phase_stop_27 = min(i_23, A_lvl_i_stop_4) + if phase_stop_27 >= i_23 + if A_lvl_tbl1[A_lvl_q] < i_23 + A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_23, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] + if A_lvl_i_4 < phase_stop_27 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + else + phase_stop_29 = min(A_lvl_i_4, phase_stop_27) + if A_lvl_i_4 == phase_stop_29 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] + Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + A_lvl_q_4 += 1 + end + break + end end - break end + A_lvl_q = A_lvl_q_step + B_lvl_q_3 += 1 + elseif B_lvl_i_3 == phase_stop_26 + B_lvl_q_3 += 1 + elseif A_lvl_i == phase_stop_26 + A_lvl_q = A_lvl_q_step end + k = phase_stop_26 + 1 end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_16 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_16 - A_lvl_q = A_lvl_q_step end - k = phase_stop_16 + 1 end end - B_lvl_q = B_lvl_q_step end - break - end + Ct_lvl_2_val = val_7 + A_lvl_ptr = A_lvl_ptr_4 + A_lvl_tbl1 = A_lvl_tbl1_4 + A_lvl_tbl2 = A_lvl_tbl2_4 + A_lvl_val = val_8 + B_lvl_ptr = B_lvl_ptr_4 + B_lvl_tbl1 = B_lvl_tbl1_4 + B_lvl_tbl2 = B_lvl_tbl2_4 + B_lvl_val = val_9 + B_lvl_q = B_lvl_q_step end + break end end end @@ -1244,14875 +1304,8 @@ quote (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) end julia> @finch begin - Ct .= 0 - for i = parallel(_) - for j = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for i = _ - for j = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - for i_4 = 1:A_lvl.shape[1] - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_ptr_2 = B_lvl_ptr - B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) - B_lvl_tbl1_2 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2_2 = B_lvl_tbl2 - B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) - val_2 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr_2 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1_2 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2_2 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - val_3 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_5 = 1:Threads.nthreads() - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_5 + -1), Threads.nthreads())) - phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_5, Threads.nthreads())) - if phase_stop_2 >= phase_start_2 - if B_lvl_tbl2[B_lvl_q] < phase_start_2 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_2 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_4 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_4 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) - if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 - B_lvl_2_val = B_lvl_val[B_lvl_q_3] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_6 = min(i_4, A_lvl_i_stop_2) - if phase_stop_6 >= i_4 - if A_lvl_tbl1[A_lvl_q] < i_4 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_6 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_8 = min(A_lvl_i_2, phase_stop_6) - if A_lvl_i_2 == phase_stop_8 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_5 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_5 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_5 + 1 - end - end - B_lvl_q = B_lvl_q_step - else - phase_stop_13 = min(B_lvl_i, phase_stop_2) - if B_lvl_i == phase_stop_13 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_14 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_14 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) - if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_16 = min(i_4, A_lvl_i_stop_4) - if phase_stop_16 >= i_4 - if A_lvl_tbl1[A_lvl_q] < i_4 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_16 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_18 = min(A_lvl_i_4, phase_stop_16) - if A_lvl_i_4 == phase_stop_18 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_15 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_15 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_15 + 1 - end - end - B_lvl_q = B_lvl_q_step - end - break - end - end - end - end - Ct_lvl_2_val = val - B_lvl_ptr = B_lvl_ptr_2 - B_lvl_tbl1 = B_lvl_tbl1_2 - B_lvl_tbl2 = B_lvl_tbl2_2 - B_lvl_val = val_2 - A_lvl_ptr = A_lvl_ptr_2 - A_lvl_tbl1 = A_lvl_tbl1_2 - A_lvl_tbl2 = A_lvl_tbl2_2 - A_lvl_val = val_3 - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(Ct_lvl_2_val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for i = _ - for j = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin Ct .= 0 for j = parallel(_) - for i = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_4 = 1:Threads.nthreads() - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_4 + -1), Threads.nthreads())) - phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_4, Threads.nthreads())) - if phase_stop_2 >= phase_start_2 - if B_lvl_tbl2[B_lvl_q] < phase_start_2 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_2 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - for i_6 = 1:A_lvl.shape[1] - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_6 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_4 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_4 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) - if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 - B_lvl_2_val = B_lvl_val[B_lvl_q_3] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_6 = min(i_6, A_lvl_i_stop_2) - if phase_stop_6 >= i_6 - if A_lvl_tbl1[A_lvl_q] < i_6 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_6, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_6 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_8 = min(A_lvl_i_2, phase_stop_6) - if A_lvl_i_2 == phase_stop_8 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_5 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_5 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_5 + 1 - end - end - end - B_lvl_q = B_lvl_q_step - else - phase_stop_13 = min(B_lvl_i, phase_stop_2) - if B_lvl_i == phase_stop_13 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 - for i_8 = 1:A_lvl.shape[1] - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_8 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_14 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_14 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) - if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_16 = min(i_8, A_lvl_i_stop_4) - if phase_stop_16 >= i_8 - if A_lvl_tbl1[A_lvl_q] < i_8 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_8, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_16 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_18 = min(A_lvl_i_4, phase_stop_16) - if A_lvl_i_4 == phase_stop_18 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_15 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_15 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_15 + 1 - end - end - end - B_lvl_q = B_lvl_q_step - end - break - end - end - end - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for j = parallel(_) - for i = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for j = _ - for i = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_stop = min(B_lvl.shape[2], B_lvl_i_stop) - if phase_stop >= 1 - if B_lvl_tbl2[B_lvl_q] < 1 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_tbl1_2 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2_2 = B_lvl_tbl2 - val_2 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr_2 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1_2 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2_2 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - val_3 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_9 = 1:Threads.nthreads() - phase_start_6 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_9), Threads.nthreads())) - phase_stop_7 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_9, Threads.nthreads())) - if phase_stop_7 >= phase_start_6 - for i_12 = phase_start_6:phase_stop_7 - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_12 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_8 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_8 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_8 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_9 = min(B_lvl_i_2, phase_stop_8, A_lvl_i) - if A_lvl_i == phase_stop_9 && B_lvl_i_2 == phase_stop_9 - B_lvl_2_val = B_lvl_val[B_lvl_q_2] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_10 = min(i_12, A_lvl_i_stop_2) - if phase_stop_10 >= i_12 - if A_lvl_tbl1[A_lvl_q] < i_12 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_12, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_10 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_12 = min(A_lvl_i_2, phase_stop_10) - if A_lvl_i_2 == phase_stop_12 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_9 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_9 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_9 + 1 - end - end - end - end - end - Ct_lvl_2_val = val - B_lvl_tbl1 = B_lvl_tbl1_2 - B_lvl_tbl2 = B_lvl_tbl2_2 - B_lvl_val = val_2 - A_lvl_ptr = A_lvl_ptr_2 - A_lvl_tbl1 = A_lvl_tbl1_2 - A_lvl_tbl2 = A_lvl_tbl2_2 - A_lvl_val = val_3 - B_lvl_q = B_lvl_q_step - else - phase_stop_18 = min(B_lvl_i, phase_stop) - if B_lvl_i == phase_stop_18 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_18 - val_4 = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_tbl1_3 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2_3 = B_lvl_tbl2 - val_5 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr_3 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1_3 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2_3 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - val_6 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_19 = 1:Threads.nthreads() - phase_start_21 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_19), Threads.nthreads())) - phase_stop_23 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_19, Threads.nthreads())) - if phase_stop_23 >= phase_start_21 - for i_22 = phase_start_21:phase_stop_23 - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_22 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_24 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_24 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_24 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_25 = min(B_lvl_i_2, A_lvl_i, phase_stop_24) - if A_lvl_i == phase_stop_25 && B_lvl_i_2 == phase_stop_25 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_26 = min(i_22, A_lvl_i_stop_4) - if phase_stop_26 >= i_22 - if A_lvl_tbl1[A_lvl_q] < i_22 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_22, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_26 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_28 = min(A_lvl_i_4, phase_stop_26) - if A_lvl_i_4 == phase_stop_28 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_25 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_25 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_25 + 1 - end - end - end - end - end - Ct_lvl_2_val = val_4 - B_lvl_tbl1 = B_lvl_tbl1_3 - B_lvl_tbl2 = B_lvl_tbl2_3 - B_lvl_val = val_5 - A_lvl_ptr = A_lvl_ptr_3 - A_lvl_tbl1 = A_lvl_tbl1_3 - A_lvl_tbl2 = A_lvl_tbl2_3 - A_lvl_val = val_6 - B_lvl_q = B_lvl_q_step - end - break - end - end - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(Ct_lvl_2_val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for j = _ - for i = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for i = parallel(_) - for j = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_4 = 1:Threads.nthreads() - phase_start_2 = max(1, 1 + fld(A_lvl.shape[1] * (i_4 + -1), Threads.nthreads())) - phase_stop_2 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_4, Threads.nthreads())) - if phase_stop_2 >= phase_start_2 - for i_7 = phase_start_2:phase_stop_2 - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_stop_3 = min(B_lvl.shape[2], B_lvl_i_stop) - if phase_stop_3 >= 1 - if B_lvl_tbl2[B_lvl_q] < 1 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_3 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_5 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_5 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_5 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_6 = min(B_lvl_i_2, phase_stop_5, A_lvl_i) - if A_lvl_i == phase_stop_6 && B_lvl_i_2 == phase_stop_6 - B_lvl_2_val = B_lvl_val[B_lvl_q_2] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_7 = min(i_7, A_lvl_i_stop_2) - if phase_stop_7 >= i_7 - if A_lvl_tbl1[A_lvl_q] < i_7 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_7 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_9 = min(A_lvl_i_2, phase_stop_7) - if A_lvl_i_2 == phase_stop_9 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_6 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_6 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_6 + 1 - end - end - B_lvl_q = B_lvl_q_step - else - phase_stop_14 = min(B_lvl_i, phase_stop_3) - if B_lvl_i == phase_stop_14 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_14 - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_15 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_15 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_15 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_16 = min(B_lvl_i_2, A_lvl_i, phase_stop_15) - if A_lvl_i == phase_stop_16 && B_lvl_i_2 == phase_stop_16 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_17 = min(i_7, A_lvl_i_stop_4) - if phase_stop_17 >= i_7 - if A_lvl_tbl1[A_lvl_q] < i_7 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_17 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_19 = min(A_lvl_i_4, phase_stop_17) - if A_lvl_i_4 == phase_stop_19 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_16 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_16 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_16 + 1 - end - end - B_lvl_q = B_lvl_q_step - end - break - end - end - end - end - end - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for i = parallel(_) - for j = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for i = _ - for j = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - for i_4 = 1:A_lvl.shape[1] - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_ptr_2 = B_lvl_ptr - B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) - B_lvl_tbl1_2 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2_2 = B_lvl_tbl2 - B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) - val_2 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr_2 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1_2 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2_2 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - val_3 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_5 = 1:Threads.nthreads() - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_5 + -1), Threads.nthreads())) - phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_5, Threads.nthreads())) - if phase_stop_2 >= phase_start_2 - if B_lvl_tbl2[B_lvl_q] < phase_start_2 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_2 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_4 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_4 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) - if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 - B_lvl_2_val = B_lvl_val[B_lvl_q_3] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_6 = min(i_4, A_lvl_i_stop_2) - if phase_stop_6 >= i_4 - if A_lvl_tbl1[A_lvl_q] < i_4 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_6 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_8 = min(A_lvl_i_2, phase_stop_6) - if A_lvl_i_2 == phase_stop_8 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_5 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_5 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_5 + 1 - end - end - B_lvl_q = B_lvl_q_step - else - phase_stop_13 = min(B_lvl_i, phase_stop_2) - if B_lvl_i == phase_stop_13 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_14 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_14 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) - if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_16 = min(i_4, A_lvl_i_stop_4) - if phase_stop_16 >= i_4 - if A_lvl_tbl1[A_lvl_q] < i_4 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_16 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_18 = min(A_lvl_i_4, phase_stop_16) - if A_lvl_i_4 == phase_stop_18 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_15 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_15 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_15 + 1 - end - end - B_lvl_q = B_lvl_q_step - end - break - end - end - end - end - Ct_lvl_2_val = val - B_lvl_ptr = B_lvl_ptr_2 - B_lvl_tbl1 = B_lvl_tbl1_2 - B_lvl_tbl2 = B_lvl_tbl2_2 - B_lvl_val = val_2 - A_lvl_ptr = A_lvl_ptr_2 - A_lvl_tbl1 = A_lvl_tbl1_2 - A_lvl_tbl2 = A_lvl_tbl2_2 - A_lvl_val = val_3 - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(Ct_lvl_2_val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for i = _ - for j = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for j = parallel(_) - for i = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_4 = 1:Threads.nthreads() - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_4 + -1), Threads.nthreads())) - phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_4, Threads.nthreads())) - if phase_stop_2 >= phase_start_2 - if B_lvl_tbl2[B_lvl_q] < phase_start_2 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_2 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - for i_6 = 1:A_lvl.shape[1] - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_6 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_4 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_4 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) - if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 - B_lvl_2_val = B_lvl_val[B_lvl_q_3] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_6 = min(i_6, A_lvl_i_stop_2) - if phase_stop_6 >= i_6 - if A_lvl_tbl1[A_lvl_q] < i_6 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_6, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_6 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_8 = min(A_lvl_i_2, phase_stop_6) - if A_lvl_i_2 == phase_stop_8 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_5 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_5 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_5 + 1 - end - end - end - B_lvl_q = B_lvl_q_step - else - phase_stop_13 = min(B_lvl_i, phase_stop_2) - if B_lvl_i == phase_stop_13 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 - for i_8 = 1:A_lvl.shape[1] - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_8 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_14 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_14 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) - if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_16 = min(i_8, A_lvl_i_stop_4) - if phase_stop_16 >= i_8 - if A_lvl_tbl1[A_lvl_q] < i_8 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_8, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_16 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_18 = min(A_lvl_i_4, phase_stop_16) - if A_lvl_i_4 == phase_stop_18 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_15 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_15 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_15 + 1 - end - end - end - B_lvl_q = B_lvl_q_step - end - break - end - end - end - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for j = parallel(_) - for i = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for j = _ - for i = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_stop = min(B_lvl.shape[2], B_lvl_i_stop) - if phase_stop >= 1 - if B_lvl_tbl2[B_lvl_q] < 1 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_tbl1_2 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2_2 = B_lvl_tbl2 - val_2 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr_2 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1_2 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2_2 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - val_3 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_9 = 1:Threads.nthreads() - phase_start_6 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_9), Threads.nthreads())) - phase_stop_7 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_9, Threads.nthreads())) - if phase_stop_7 >= phase_start_6 - for i_12 = phase_start_6:phase_stop_7 - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_12 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_8 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_8 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_8 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_9 = min(B_lvl_i_2, phase_stop_8, A_lvl_i) - if A_lvl_i == phase_stop_9 && B_lvl_i_2 == phase_stop_9 - B_lvl_2_val = B_lvl_val[B_lvl_q_2] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_10 = min(i_12, A_lvl_i_stop_2) - if phase_stop_10 >= i_12 - if A_lvl_tbl1[A_lvl_q] < i_12 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_12, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_10 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_12 = min(A_lvl_i_2, phase_stop_10) - if A_lvl_i_2 == phase_stop_12 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_9 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_9 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_9 + 1 - end - end - end - end - end - Ct_lvl_2_val = val - B_lvl_tbl1 = B_lvl_tbl1_2 - B_lvl_tbl2 = B_lvl_tbl2_2 - B_lvl_val = val_2 - A_lvl_ptr = A_lvl_ptr_2 - A_lvl_tbl1 = A_lvl_tbl1_2 - A_lvl_tbl2 = A_lvl_tbl2_2 - A_lvl_val = val_3 - B_lvl_q = B_lvl_q_step - else - phase_stop_18 = min(B_lvl_i, phase_stop) - if B_lvl_i == phase_stop_18 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_18 - val_4 = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_tbl1_3 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2_3 = B_lvl_tbl2 - val_5 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr_3 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1_3 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2_3 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - val_6 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_19 = 1:Threads.nthreads() - phase_start_21 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_19), Threads.nthreads())) - phase_stop_23 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_19, Threads.nthreads())) - if phase_stop_23 >= phase_start_21 - for i_22 = phase_start_21:phase_stop_23 - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_22 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_24 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_24 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_24 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_25 = min(B_lvl_i_2, A_lvl_i, phase_stop_24) - if A_lvl_i == phase_stop_25 && B_lvl_i_2 == phase_stop_25 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_26 = min(i_22, A_lvl_i_stop_4) - if phase_stop_26 >= i_22 - if A_lvl_tbl1[A_lvl_q] < i_22 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_22, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_26 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_28 = min(A_lvl_i_4, phase_stop_26) - if A_lvl_i_4 == phase_stop_28 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_25 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_25 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_25 + 1 - end - end - end - end - end - Ct_lvl_2_val = val_4 - B_lvl_tbl1 = B_lvl_tbl1_3 - B_lvl_tbl2 = B_lvl_tbl2_3 - B_lvl_val = val_5 - A_lvl_ptr = A_lvl_ptr_3 - A_lvl_tbl1 = A_lvl_tbl1_3 - A_lvl_tbl2 = A_lvl_tbl2_3 - A_lvl_val = val_6 - B_lvl_q = B_lvl_q_step - end - break - end - end - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(Ct_lvl_2_val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for j = _ - for i = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for i = parallel(_) - for j = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_4 = 1:Threads.nthreads() - phase_start_2 = max(1, 1 + fld(A_lvl.shape[1] * (i_4 + -1), Threads.nthreads())) - phase_stop_2 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_4, Threads.nthreads())) - if phase_stop_2 >= phase_start_2 - for i_7 = phase_start_2:phase_stop_2 - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_stop_3 = min(B_lvl.shape[2], B_lvl_i_stop) - if phase_stop_3 >= 1 - if B_lvl_tbl2[B_lvl_q] < 1 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_3 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_5 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_5 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_5 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_6 = min(B_lvl_i_2, phase_stop_5, A_lvl_i) - if A_lvl_i == phase_stop_6 && B_lvl_i_2 == phase_stop_6 - B_lvl_2_val = B_lvl_val[B_lvl_q_2] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_7 = min(i_7, A_lvl_i_stop_2) - if phase_stop_7 >= i_7 - if A_lvl_tbl1[A_lvl_q] < i_7 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_7 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_9 = min(A_lvl_i_2, phase_stop_7) - if A_lvl_i_2 == phase_stop_9 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_6 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_6 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_6 + 1 - end - end - B_lvl_q = B_lvl_q_step - else - phase_stop_14 = min(B_lvl_i, phase_stop_3) - if B_lvl_i == phase_stop_14 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_14 - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_15 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_15 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_15 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_16 = min(B_lvl_i_2, A_lvl_i, phase_stop_15) - if A_lvl_i == phase_stop_16 && B_lvl_i_2 == phase_stop_16 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_17 = min(i_7, A_lvl_i_stop_4) - if phase_stop_17 >= i_7 - if A_lvl_tbl1[A_lvl_q] < i_7 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_17 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_19 = min(A_lvl_i_4, phase_stop_17) - if A_lvl_i_4 == phase_stop_19 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_16 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_16 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_16 + 1 - end - end - B_lvl_q = B_lvl_q_step - end - break - end - end - end - end - end - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for i = parallel(_) - for j = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for i = _ - for j = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - for i_4 = 1:A_lvl.shape[1] - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_ptr_2 = B_lvl_ptr - B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) - B_lvl_tbl1_2 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2_2 = B_lvl_tbl2 - B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) - val_2 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr_2 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1_2 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2_2 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - val_3 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_5 = 1:Threads.nthreads() - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_5 + -1), Threads.nthreads())) - phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_5, Threads.nthreads())) - if phase_stop_2 >= phase_start_2 - if B_lvl_tbl2[B_lvl_q] < phase_start_2 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_2 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_4 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_4 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) - if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 - B_lvl_2_val = B_lvl_val[B_lvl_q_3] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_6 = min(i_4, A_lvl_i_stop_2) - if phase_stop_6 >= i_4 - if A_lvl_tbl1[A_lvl_q] < i_4 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_6 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_8 = min(A_lvl_i_2, phase_stop_6) - if A_lvl_i_2 == phase_stop_8 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_5 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_5 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_5 + 1 - end - end - B_lvl_q = B_lvl_q_step - else - phase_stop_13 = min(B_lvl_i, phase_stop_2) - if B_lvl_i == phase_stop_13 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_14 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_14 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) - if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_16 = min(i_4, A_lvl_i_stop_4) - if phase_stop_16 >= i_4 - if A_lvl_tbl1[A_lvl_q] < i_4 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_16 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_18 = min(A_lvl_i_4, phase_stop_16) - if A_lvl_i_4 == phase_stop_18 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_15 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_15 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_15 + 1 - end - end - B_lvl_q = B_lvl_q_step - end - break - end - end - end - end - Ct_lvl_2_val = val - B_lvl_ptr = B_lvl_ptr_2 - B_lvl_tbl1 = B_lvl_tbl1_2 - B_lvl_tbl2 = B_lvl_tbl2_2 - B_lvl_val = val_2 - A_lvl_ptr = A_lvl_ptr_2 - A_lvl_tbl1 = A_lvl_tbl1_2 - A_lvl_tbl2 = A_lvl_tbl2_2 - A_lvl_val = val_3 - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(Ct_lvl_2_val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for i = _ - for j = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for j = parallel(_) - for i = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_4 = 1:Threads.nthreads() - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_4 + -1), Threads.nthreads())) - phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_4, Threads.nthreads())) - if phase_stop_2 >= phase_start_2 - if B_lvl_tbl2[B_lvl_q] < phase_start_2 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_2 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - for i_6 = 1:A_lvl.shape[1] - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_6 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_4 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_4 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) - if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 - B_lvl_2_val = B_lvl_val[B_lvl_q_3] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_6 = min(i_6, A_lvl_i_stop_2) - if phase_stop_6 >= i_6 - if A_lvl_tbl1[A_lvl_q] < i_6 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_6, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_6 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_8 = min(A_lvl_i_2, phase_stop_6) - if A_lvl_i_2 == phase_stop_8 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_5 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_5 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_5 + 1 - end - end - end - B_lvl_q = B_lvl_q_step - else - phase_stop_13 = min(B_lvl_i, phase_stop_2) - if B_lvl_i == phase_stop_13 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 - for i_8 = 1:A_lvl.shape[1] - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_8 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_14 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_14 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) - if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_16 = min(i_8, A_lvl_i_stop_4) - if phase_stop_16 >= i_8 - if A_lvl_tbl1[A_lvl_q] < i_8 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_8, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_16 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_18 = min(A_lvl_i_4, phase_stop_16) - if A_lvl_i_4 == phase_stop_18 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_15 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_15 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_15 + 1 - end - end - end - B_lvl_q = B_lvl_q_step - end - break - end - end - end - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for j = parallel(_) - for i = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for j = _ - for i = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_stop = min(B_lvl.shape[2], B_lvl_i_stop) - if phase_stop >= 1 - if B_lvl_tbl2[B_lvl_q] < 1 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_tbl1_2 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2_2 = B_lvl_tbl2 - val_2 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr_2 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1_2 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2_2 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - val_3 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_9 = 1:Threads.nthreads() - phase_start_6 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_9), Threads.nthreads())) - phase_stop_7 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_9, Threads.nthreads())) - if phase_stop_7 >= phase_start_6 - for i_12 = phase_start_6:phase_stop_7 - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_12 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_8 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_8 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_8 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_9 = min(B_lvl_i_2, phase_stop_8, A_lvl_i) - if A_lvl_i == phase_stop_9 && B_lvl_i_2 == phase_stop_9 - B_lvl_2_val = B_lvl_val[B_lvl_q_2] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_10 = min(i_12, A_lvl_i_stop_2) - if phase_stop_10 >= i_12 - if A_lvl_tbl1[A_lvl_q] < i_12 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_12, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_10 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_12 = min(A_lvl_i_2, phase_stop_10) - if A_lvl_i_2 == phase_stop_12 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_9 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_9 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_9 + 1 - end - end - end - end - end - Ct_lvl_2_val = val - B_lvl_tbl1 = B_lvl_tbl1_2 - B_lvl_tbl2 = B_lvl_tbl2_2 - B_lvl_val = val_2 - A_lvl_ptr = A_lvl_ptr_2 - A_lvl_tbl1 = A_lvl_tbl1_2 - A_lvl_tbl2 = A_lvl_tbl2_2 - A_lvl_val = val_3 - B_lvl_q = B_lvl_q_step - else - phase_stop_18 = min(B_lvl_i, phase_stop) - if B_lvl_i == phase_stop_18 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_18 - val_4 = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_tbl1_3 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2_3 = B_lvl_tbl2 - val_5 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr_3 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1_3 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2_3 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - val_6 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_19 = 1:Threads.nthreads() - phase_start_21 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_19), Threads.nthreads())) - phase_stop_23 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_19, Threads.nthreads())) - if phase_stop_23 >= phase_start_21 - for i_22 = phase_start_21:phase_stop_23 - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_22 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_24 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_24 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_24 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_25 = min(B_lvl_i_2, A_lvl_i, phase_stop_24) - if A_lvl_i == phase_stop_25 && B_lvl_i_2 == phase_stop_25 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_26 = min(i_22, A_lvl_i_stop_4) - if phase_stop_26 >= i_22 - if A_lvl_tbl1[A_lvl_q] < i_22 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_22, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_26 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_28 = min(A_lvl_i_4, phase_stop_26) - if A_lvl_i_4 == phase_stop_28 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_25 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_25 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_25 + 1 - end - end - end - end - end - Ct_lvl_2_val = val_4 - B_lvl_tbl1 = B_lvl_tbl1_3 - B_lvl_tbl2 = B_lvl_tbl2_3 - B_lvl_val = val_5 - A_lvl_ptr = A_lvl_ptr_3 - A_lvl_tbl1 = A_lvl_tbl1_3 - A_lvl_tbl2 = A_lvl_tbl2_3 - A_lvl_val = val_6 - B_lvl_q = B_lvl_q_step - end - break - end - end - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(Ct_lvl_2_val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for j = _ - for i = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for i = parallel(_) - for j = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_4 = 1:Threads.nthreads() - phase_start_2 = max(1, 1 + fld(A_lvl.shape[1] * (i_4 + -1), Threads.nthreads())) - phase_stop_2 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_4, Threads.nthreads())) - if phase_stop_2 >= phase_start_2 - for i_7 = phase_start_2:phase_stop_2 - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_stop_3 = min(B_lvl.shape[2], B_lvl_i_stop) - if phase_stop_3 >= 1 - if B_lvl_tbl2[B_lvl_q] < 1 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_3 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_5 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_5 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_5 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_6 = min(B_lvl_i_2, phase_stop_5, A_lvl_i) - if A_lvl_i == phase_stop_6 && B_lvl_i_2 == phase_stop_6 - B_lvl_2_val = B_lvl_val[B_lvl_q_2] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_7 = min(i_7, A_lvl_i_stop_2) - if phase_stop_7 >= i_7 - if A_lvl_tbl1[A_lvl_q] < i_7 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_7 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_9 = min(A_lvl_i_2, phase_stop_7) - if A_lvl_i_2 == phase_stop_9 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_6 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_6 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_6 + 1 - end - end - B_lvl_q = B_lvl_q_step - else - phase_stop_14 = min(B_lvl_i, phase_stop_3) - if B_lvl_i == phase_stop_14 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_14 - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_15 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_15 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_15 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_16 = min(B_lvl_i_2, A_lvl_i, phase_stop_15) - if A_lvl_i == phase_stop_16 && B_lvl_i_2 == phase_stop_16 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_17 = min(i_7, A_lvl_i_stop_4) - if phase_stop_17 >= i_7 - if A_lvl_tbl1[A_lvl_q] < i_7 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_17 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_19 = min(A_lvl_i_4, phase_stop_17) - if A_lvl_i_4 == phase_stop_19 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_16 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_16 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_16 + 1 - end - end - B_lvl_q = B_lvl_q_step - end - break - end - end - end - end - end - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for i = parallel(_) - for j = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for i = _ - for j = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - for i_4 = 1:A_lvl.shape[1] - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_ptr_2 = B_lvl_ptr - B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) - B_lvl_tbl1_2 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2_2 = B_lvl_tbl2 - B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) - val_2 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr_2 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1_2 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2_2 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - val_3 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_5 = 1:Threads.nthreads() - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_5 + -1), Threads.nthreads())) - phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_5, Threads.nthreads())) - if phase_stop_2 >= phase_start_2 - if B_lvl_tbl2[B_lvl_q] < phase_start_2 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_2 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_4 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_4 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) - if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 - B_lvl_2_val = B_lvl_val[B_lvl_q_3] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_6 = min(i_4, A_lvl_i_stop_2) - if phase_stop_6 >= i_4 - if A_lvl_tbl1[A_lvl_q] < i_4 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_6 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_8 = min(A_lvl_i_2, phase_stop_6) - if A_lvl_i_2 == phase_stop_8 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_5 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_5 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_5 + 1 - end - end - B_lvl_q = B_lvl_q_step - else - phase_stop_13 = min(B_lvl_i, phase_stop_2) - if B_lvl_i == phase_stop_13 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_14 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_14 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) - if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_16 = min(i_4, A_lvl_i_stop_4) - if phase_stop_16 >= i_4 - if A_lvl_tbl1[A_lvl_q] < i_4 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_16 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_18 = min(A_lvl_i_4, phase_stop_16) - if A_lvl_i_4 == phase_stop_18 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_15 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_15 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_15 + 1 - end - end - B_lvl_q = B_lvl_q_step - end - break - end - end - end - end - Ct_lvl_2_val = val - B_lvl_ptr = B_lvl_ptr_2 - B_lvl_tbl1 = B_lvl_tbl1_2 - B_lvl_tbl2 = B_lvl_tbl2_2 - B_lvl_val = val_2 - A_lvl_ptr = A_lvl_ptr_2 - A_lvl_tbl1 = A_lvl_tbl1_2 - A_lvl_tbl2 = A_lvl_tbl2_2 - A_lvl_val = val_3 - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(Ct_lvl_2_val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for i = _ - for j = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for j = parallel(_) - for i = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_4 = 1:Threads.nthreads() - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_4 + -1), Threads.nthreads())) - phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_4, Threads.nthreads())) - if phase_stop_2 >= phase_start_2 - if B_lvl_tbl2[B_lvl_q] < phase_start_2 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_2 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - for i_6 = 1:A_lvl.shape[1] - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_6 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_4 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_4 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) - if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 - B_lvl_2_val = B_lvl_val[B_lvl_q_3] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_6 = min(i_6, A_lvl_i_stop_2) - if phase_stop_6 >= i_6 - if A_lvl_tbl1[A_lvl_q] < i_6 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_6, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_6 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_8 = min(A_lvl_i_2, phase_stop_6) - if A_lvl_i_2 == phase_stop_8 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_5 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_5 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_5 + 1 - end - end - end - B_lvl_q = B_lvl_q_step - else - phase_stop_13 = min(B_lvl_i, phase_stop_2) - if B_lvl_i == phase_stop_13 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 - for i_8 = 1:A_lvl.shape[1] - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_8 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_14 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_14 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) - if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_16 = min(i_8, A_lvl_i_stop_4) - if phase_stop_16 >= i_8 - if A_lvl_tbl1[A_lvl_q] < i_8 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_8, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_16 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_18 = min(A_lvl_i_4, phase_stop_16) - if A_lvl_i_4 == phase_stop_18 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_15 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_15 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_15 + 1 - end - end - end - B_lvl_q = B_lvl_q_step - end - break - end - end - end - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for j = parallel(_) - for i = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for j = _ - for i = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_stop = min(B_lvl.shape[2], B_lvl_i_stop) - if phase_stop >= 1 - if B_lvl_tbl2[B_lvl_q] < 1 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_tbl1_2 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2_2 = B_lvl_tbl2 - val_2 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr_2 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1_2 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2_2 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - val_3 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_9 = 1:Threads.nthreads() - phase_start_6 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_9), Threads.nthreads())) - phase_stop_7 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_9, Threads.nthreads())) - if phase_stop_7 >= phase_start_6 - for i_12 = phase_start_6:phase_stop_7 - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_12 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_8 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_8 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_8 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_9 = min(B_lvl_i_2, phase_stop_8, A_lvl_i) - if A_lvl_i == phase_stop_9 && B_lvl_i_2 == phase_stop_9 - B_lvl_2_val = B_lvl_val[B_lvl_q_2] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_10 = min(i_12, A_lvl_i_stop_2) - if phase_stop_10 >= i_12 - if A_lvl_tbl1[A_lvl_q] < i_12 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_12, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_10 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_12 = min(A_lvl_i_2, phase_stop_10) - if A_lvl_i_2 == phase_stop_12 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_9 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_9 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_9 + 1 - end - end - end - end - end - Ct_lvl_2_val = val - B_lvl_tbl1 = B_lvl_tbl1_2 - B_lvl_tbl2 = B_lvl_tbl2_2 - B_lvl_val = val_2 - A_lvl_ptr = A_lvl_ptr_2 - A_lvl_tbl1 = A_lvl_tbl1_2 - A_lvl_tbl2 = A_lvl_tbl2_2 - A_lvl_val = val_3 - B_lvl_q = B_lvl_q_step - else - phase_stop_18 = min(B_lvl_i, phase_stop) - if B_lvl_i == phase_stop_18 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_18 - val_4 = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_tbl1_3 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2_3 = B_lvl_tbl2 - val_5 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr_3 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1_3 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2_3 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - val_6 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_19 = 1:Threads.nthreads() - phase_start_21 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_19), Threads.nthreads())) - phase_stop_23 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_19, Threads.nthreads())) - if phase_stop_23 >= phase_start_21 - for i_22 = phase_start_21:phase_stop_23 - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_22 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_24 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_24 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_24 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_25 = min(B_lvl_i_2, A_lvl_i, phase_stop_24) - if A_lvl_i == phase_stop_25 && B_lvl_i_2 == phase_stop_25 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_26 = min(i_22, A_lvl_i_stop_4) - if phase_stop_26 >= i_22 - if A_lvl_tbl1[A_lvl_q] < i_22 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_22, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_26 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_28 = min(A_lvl_i_4, phase_stop_26) - if A_lvl_i_4 == phase_stop_28 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_25 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_25 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_25 + 1 - end - end - end - end - end - Ct_lvl_2_val = val_4 - B_lvl_tbl1 = B_lvl_tbl1_3 - B_lvl_tbl2 = B_lvl_tbl2_3 - B_lvl_val = val_5 - A_lvl_ptr = A_lvl_ptr_3 - A_lvl_tbl1 = A_lvl_tbl1_3 - A_lvl_tbl2 = A_lvl_tbl2_3 - A_lvl_val = val_6 - B_lvl_q = B_lvl_q_step - end - break - end - end - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(Ct_lvl_2_val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for j = _ - for i = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for i = parallel(_) - for j = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_4 = 1:Threads.nthreads() - phase_start_2 = max(1, 1 + fld(A_lvl.shape[1] * (i_4 + -1), Threads.nthreads())) - phase_stop_2 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_4, Threads.nthreads())) - if phase_stop_2 >= phase_start_2 - for i_7 = phase_start_2:phase_stop_2 - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_stop_3 = min(B_lvl.shape[2], B_lvl_i_stop) - if phase_stop_3 >= 1 - if B_lvl_tbl2[B_lvl_q] < 1 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_3 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_5 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_5 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_5 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_6 = min(B_lvl_i_2, phase_stop_5, A_lvl_i) - if A_lvl_i == phase_stop_6 && B_lvl_i_2 == phase_stop_6 - B_lvl_2_val = B_lvl_val[B_lvl_q_2] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_7 = min(i_7, A_lvl_i_stop_2) - if phase_stop_7 >= i_7 - if A_lvl_tbl1[A_lvl_q] < i_7 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_7 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_9 = min(A_lvl_i_2, phase_stop_7) - if A_lvl_i_2 == phase_stop_9 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_6 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_6 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_6 + 1 - end - end - B_lvl_q = B_lvl_q_step - else - phase_stop_14 = min(B_lvl_i, phase_stop_3) - if B_lvl_i == phase_stop_14 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_14 - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_15 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_15 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_15 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_16 = min(B_lvl_i_2, A_lvl_i, phase_stop_15) - if A_lvl_i == phase_stop_16 && B_lvl_i_2 == phase_stop_16 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_17 = min(i_7, A_lvl_i_stop_4) - if phase_stop_17 >= i_7 - if A_lvl_tbl1[A_lvl_q] < i_7 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_17 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_19 = min(A_lvl_i_4, phase_stop_17) - if A_lvl_i_4 == phase_stop_19 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_16 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_16 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_16 + 1 - end - end - B_lvl_q = B_lvl_q_step - end - break - end - end - end - end - end - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for i = parallel(_) - for j = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for i = _ - for j = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - for i_4 = 1:A_lvl.shape[1] - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_ptr_2 = B_lvl_ptr - B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) - B_lvl_tbl1_2 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2_2 = B_lvl_tbl2 - B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) - val_2 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr_2 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1_2 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2_2 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - val_3 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_5 = 1:Threads.nthreads() - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_5 + -1), Threads.nthreads())) - phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_5, Threads.nthreads())) - if phase_stop_2 >= phase_start_2 - if B_lvl_tbl2[B_lvl_q] < phase_start_2 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_2 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_4 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_4 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) - if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 - B_lvl_2_val = B_lvl_val[B_lvl_q_3] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_6 = min(i_4, A_lvl_i_stop_2) - if phase_stop_6 >= i_4 - if A_lvl_tbl1[A_lvl_q] < i_4 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_6 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_8 = min(A_lvl_i_2, phase_stop_6) - if A_lvl_i_2 == phase_stop_8 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_5 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_5 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_5 + 1 - end - end - B_lvl_q = B_lvl_q_step - else - phase_stop_13 = min(B_lvl_i, phase_stop_2) - if B_lvl_i == phase_stop_13 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_14 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_14 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) - if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_16 = min(i_4, A_lvl_i_stop_4) - if phase_stop_16 >= i_4 - if A_lvl_tbl1[A_lvl_q] < i_4 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_16 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_18 = min(A_lvl_i_4, phase_stop_16) - if A_lvl_i_4 == phase_stop_18 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_15 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_15 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_15 + 1 - end - end - B_lvl_q = B_lvl_q_step - end - break - end - end - end - end - Ct_lvl_2_val = val - B_lvl_ptr = B_lvl_ptr_2 - B_lvl_tbl1 = B_lvl_tbl1_2 - B_lvl_tbl2 = B_lvl_tbl2_2 - B_lvl_val = val_2 - A_lvl_ptr = A_lvl_ptr_2 - A_lvl_tbl1 = A_lvl_tbl1_2 - A_lvl_tbl2 = A_lvl_tbl2_2 - A_lvl_val = val_3 - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(Ct_lvl_2_val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for i = _ - for j = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for j = parallel(_) - for i = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_4 = 1:Threads.nthreads() - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_4 + -1), Threads.nthreads())) - phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_4, Threads.nthreads())) - if phase_stop_2 >= phase_start_2 - if B_lvl_tbl2[B_lvl_q] < phase_start_2 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_2 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - for i_6 = 1:A_lvl.shape[1] - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_6 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_4 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_4 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) - if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 - B_lvl_2_val = B_lvl_val[B_lvl_q_3] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_6 = min(i_6, A_lvl_i_stop_2) - if phase_stop_6 >= i_6 - if A_lvl_tbl1[A_lvl_q] < i_6 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_6, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_6 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_8 = min(A_lvl_i_2, phase_stop_6) - if A_lvl_i_2 == phase_stop_8 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_5 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_5 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_5 + 1 - end - end - end - B_lvl_q = B_lvl_q_step - else - phase_stop_13 = min(B_lvl_i, phase_stop_2) - if B_lvl_i == phase_stop_13 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 - for i_8 = 1:A_lvl.shape[1] - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_8 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_14 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_14 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) - if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_16 = min(i_8, A_lvl_i_stop_4) - if phase_stop_16 >= i_8 - if A_lvl_tbl1[A_lvl_q] < i_8 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_8, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_16 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_18 = min(A_lvl_i_4, phase_stop_16) - if A_lvl_i_4 == phase_stop_18 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_15 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_15 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_15 + 1 - end - end - end - B_lvl_q = B_lvl_q_step - end - break - end - end - end - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for j = parallel(_) - for i = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for j = _ - for i = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_stop = min(B_lvl.shape[2], B_lvl_i_stop) - if phase_stop >= 1 - if B_lvl_tbl2[B_lvl_q] < 1 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_tbl1_2 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2_2 = B_lvl_tbl2 - val_2 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr_2 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1_2 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2_2 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - val_3 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_9 = 1:Threads.nthreads() - phase_start_6 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_9), Threads.nthreads())) - phase_stop_7 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_9, Threads.nthreads())) - if phase_stop_7 >= phase_start_6 - for i_12 = phase_start_6:phase_stop_7 - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_12 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_8 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_8 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_8 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_9 = min(B_lvl_i_2, phase_stop_8, A_lvl_i) - if A_lvl_i == phase_stop_9 && B_lvl_i_2 == phase_stop_9 - B_lvl_2_val = B_lvl_val[B_lvl_q_2] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_10 = min(i_12, A_lvl_i_stop_2) - if phase_stop_10 >= i_12 - if A_lvl_tbl1[A_lvl_q] < i_12 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_12, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_10 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_12 = min(A_lvl_i_2, phase_stop_10) - if A_lvl_i_2 == phase_stop_12 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_9 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_9 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_9 + 1 - end - end - end - end - end - Ct_lvl_2_val = val - B_lvl_tbl1 = B_lvl_tbl1_2 - B_lvl_tbl2 = B_lvl_tbl2_2 - B_lvl_val = val_2 - A_lvl_ptr = A_lvl_ptr_2 - A_lvl_tbl1 = A_lvl_tbl1_2 - A_lvl_tbl2 = A_lvl_tbl2_2 - A_lvl_val = val_3 - B_lvl_q = B_lvl_q_step - else - phase_stop_18 = min(B_lvl_i, phase_stop) - if B_lvl_i == phase_stop_18 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_18 - val_4 = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_tbl1_3 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2_3 = B_lvl_tbl2 - val_5 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr_3 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1_3 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2_3 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - val_6 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_19 = 1:Threads.nthreads() - phase_start_21 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_19), Threads.nthreads())) - phase_stop_23 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_19, Threads.nthreads())) - if phase_stop_23 >= phase_start_21 - for i_22 = phase_start_21:phase_stop_23 - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_22 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_24 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_24 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_24 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_25 = min(B_lvl_i_2, A_lvl_i, phase_stop_24) - if A_lvl_i == phase_stop_25 && B_lvl_i_2 == phase_stop_25 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_26 = min(i_22, A_lvl_i_stop_4) - if phase_stop_26 >= i_22 - if A_lvl_tbl1[A_lvl_q] < i_22 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_22, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_26 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_28 = min(A_lvl_i_4, phase_stop_26) - if A_lvl_i_4 == phase_stop_28 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_25 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_25 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_25 + 1 - end - end - end - end - end - Ct_lvl_2_val = val_4 - B_lvl_tbl1 = B_lvl_tbl1_3 - B_lvl_tbl2 = B_lvl_tbl2_3 - B_lvl_val = val_5 - A_lvl_ptr = A_lvl_ptr_3 - A_lvl_tbl1 = A_lvl_tbl1_3 - A_lvl_tbl2 = A_lvl_tbl2_3 - A_lvl_val = val_6 - B_lvl_q = B_lvl_q_step - end - break - end - end - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(Ct_lvl_2_val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for j = _ - for i = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for i = parallel(_) - for j = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_4 = 1:Threads.nthreads() - phase_start_2 = max(1, 1 + fld(A_lvl.shape[1] * (i_4 + -1), Threads.nthreads())) - phase_stop_2 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_4, Threads.nthreads())) - if phase_stop_2 >= phase_start_2 - for i_7 = phase_start_2:phase_stop_2 - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_stop_3 = min(B_lvl.shape[2], B_lvl_i_stop) - if phase_stop_3 >= 1 - if B_lvl_tbl2[B_lvl_q] < 1 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_3 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_5 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_5 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_5 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_6 = min(B_lvl_i_2, phase_stop_5, A_lvl_i) - if A_lvl_i == phase_stop_6 && B_lvl_i_2 == phase_stop_6 - B_lvl_2_val = B_lvl_val[B_lvl_q_2] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_7 = min(i_7, A_lvl_i_stop_2) - if phase_stop_7 >= i_7 - if A_lvl_tbl1[A_lvl_q] < i_7 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_7 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_9 = min(A_lvl_i_2, phase_stop_7) - if A_lvl_i_2 == phase_stop_9 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_6 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_6 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_6 + 1 - end - end - B_lvl_q = B_lvl_q_step - else - phase_stop_14 = min(B_lvl_i, phase_stop_3) - if B_lvl_i == phase_stop_14 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_14 - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_15 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_15 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_15 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_16 = min(B_lvl_i_2, A_lvl_i, phase_stop_15) - if A_lvl_i == phase_stop_16 && B_lvl_i_2 == phase_stop_16 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_17 = min(i_7, A_lvl_i_stop_4) - if phase_stop_17 >= i_7 - if A_lvl_tbl1[A_lvl_q] < i_7 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_17 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_19 = min(A_lvl_i_4, phase_stop_17) - if A_lvl_i_4 == phase_stop_19 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_16 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_16 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_16 + 1 - end - end - B_lvl_q = B_lvl_q_step - end - break - end - end - end - end - end - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for i = parallel(_) - for j = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for i = _ - for j = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - for i_4 = 1:A_lvl.shape[1] - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_ptr_2 = B_lvl_ptr - B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) - B_lvl_tbl1_2 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2_2 = B_lvl_tbl2 - B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) - val_2 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr_2 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1_2 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2_2 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - val_3 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_5 = 1:Threads.nthreads() - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_5 + -1), Threads.nthreads())) - phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_5, Threads.nthreads())) - if phase_stop_2 >= phase_start_2 - if B_lvl_tbl2[B_lvl_q] < phase_start_2 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_2 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_4 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_4 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) - if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 - B_lvl_2_val = B_lvl_val[B_lvl_q_3] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_6 = min(i_4, A_lvl_i_stop_2) - if phase_stop_6 >= i_4 - if A_lvl_tbl1[A_lvl_q] < i_4 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_6 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_8 = min(A_lvl_i_2, phase_stop_6) - if A_lvl_i_2 == phase_stop_8 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_5 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_5 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_5 + 1 - end - end - B_lvl_q = B_lvl_q_step - else - phase_stop_13 = min(B_lvl_i, phase_stop_2) - if B_lvl_i == phase_stop_13 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_14 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_14 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) - if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_16 = min(i_4, A_lvl_i_stop_4) - if phase_stop_16 >= i_4 - if A_lvl_tbl1[A_lvl_q] < i_4 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_16 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_18 = min(A_lvl_i_4, phase_stop_16) - if A_lvl_i_4 == phase_stop_18 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_15 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_15 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_15 + 1 - end - end - B_lvl_q = B_lvl_q_step - end - break - end - end - end - end - Ct_lvl_2_val = val - B_lvl_ptr = B_lvl_ptr_2 - B_lvl_tbl1 = B_lvl_tbl1_2 - B_lvl_tbl2 = B_lvl_tbl2_2 - B_lvl_val = val_2 - A_lvl_ptr = A_lvl_ptr_2 - A_lvl_tbl1 = A_lvl_tbl1_2 - A_lvl_tbl2 = A_lvl_tbl2_2 - A_lvl_val = val_3 - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(Ct_lvl_2_val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for i = _ - for j = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for j = parallel(_) - for i = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_4 = 1:Threads.nthreads() - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_4 + -1), Threads.nthreads())) - phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_4, Threads.nthreads())) - if phase_stop_2 >= phase_start_2 - if B_lvl_tbl2[B_lvl_q] < phase_start_2 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_2 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - for i_6 = 1:A_lvl.shape[1] - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_6 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_4 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_4 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) - if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 - B_lvl_2_val = B_lvl_val[B_lvl_q_3] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_6 = min(i_6, A_lvl_i_stop_2) - if phase_stop_6 >= i_6 - if A_lvl_tbl1[A_lvl_q] < i_6 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_6, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_6 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_8 = min(A_lvl_i_2, phase_stop_6) - if A_lvl_i_2 == phase_stop_8 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_5 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_5 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_5 + 1 - end - end - end - B_lvl_q = B_lvl_q_step - else - phase_stop_13 = min(B_lvl_i, phase_stop_2) - if B_lvl_i == phase_stop_13 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 - for i_8 = 1:A_lvl.shape[1] - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_8 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_14 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_14 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) - if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_16 = min(i_8, A_lvl_i_stop_4) - if phase_stop_16 >= i_8 - if A_lvl_tbl1[A_lvl_q] < i_8 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_8, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_16 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_18 = min(A_lvl_i_4, phase_stop_16) - if A_lvl_i_4 == phase_stop_18 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_15 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_15 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_15 + 1 - end - end - end - B_lvl_q = B_lvl_q_step - end - break - end - end - end - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for j = parallel(_) - for i = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for j = _ - for i = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_stop = min(B_lvl.shape[2], B_lvl_i_stop) - if phase_stop >= 1 - if B_lvl_tbl2[B_lvl_q] < 1 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_tbl1_2 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2_2 = B_lvl_tbl2 - val_2 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr_2 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1_2 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2_2 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - val_3 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_9 = 1:Threads.nthreads() - phase_start_6 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_9), Threads.nthreads())) - phase_stop_7 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_9, Threads.nthreads())) - if phase_stop_7 >= phase_start_6 - for i_12 = phase_start_6:phase_stop_7 - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_12 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_8 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_8 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_8 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_9 = min(B_lvl_i_2, phase_stop_8, A_lvl_i) - if A_lvl_i == phase_stop_9 && B_lvl_i_2 == phase_stop_9 - B_lvl_2_val = B_lvl_val[B_lvl_q_2] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_10 = min(i_12, A_lvl_i_stop_2) - if phase_stop_10 >= i_12 - if A_lvl_tbl1[A_lvl_q] < i_12 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_12, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_10 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_12 = min(A_lvl_i_2, phase_stop_10) - if A_lvl_i_2 == phase_stop_12 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_9 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_9 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_9 + 1 - end - end - end - end - end - Ct_lvl_2_val = val - B_lvl_tbl1 = B_lvl_tbl1_2 - B_lvl_tbl2 = B_lvl_tbl2_2 - B_lvl_val = val_2 - A_lvl_ptr = A_lvl_ptr_2 - A_lvl_tbl1 = A_lvl_tbl1_2 - A_lvl_tbl2 = A_lvl_tbl2_2 - A_lvl_val = val_3 - B_lvl_q = B_lvl_q_step - else - phase_stop_18 = min(B_lvl_i, phase_stop) - if B_lvl_i == phase_stop_18 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_18 - val_4 = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_tbl1_3 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2_3 = B_lvl_tbl2 - val_5 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr_3 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1_3 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2_3 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - val_6 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_19 = 1:Threads.nthreads() - phase_start_21 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_19), Threads.nthreads())) - phase_stop_23 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_19, Threads.nthreads())) - if phase_stop_23 >= phase_start_21 - for i_22 = phase_start_21:phase_stop_23 - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_22 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_24 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_24 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_24 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_25 = min(B_lvl_i_2, A_lvl_i, phase_stop_24) - if A_lvl_i == phase_stop_25 && B_lvl_i_2 == phase_stop_25 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_26 = min(i_22, A_lvl_i_stop_4) - if phase_stop_26 >= i_22 - if A_lvl_tbl1[A_lvl_q] < i_22 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_22, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_26 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_28 = min(A_lvl_i_4, phase_stop_26) - if A_lvl_i_4 == phase_stop_28 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_25 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_25 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_25 + 1 - end - end - end - end - end - Ct_lvl_2_val = val_4 - B_lvl_tbl1 = B_lvl_tbl1_3 - B_lvl_tbl2 = B_lvl_tbl2_3 - B_lvl_val = val_5 - A_lvl_ptr = A_lvl_ptr_3 - A_lvl_tbl1 = A_lvl_tbl1_3 - A_lvl_tbl2 = A_lvl_tbl2_3 - A_lvl_val = val_6 - B_lvl_q = B_lvl_q_step - end - break - end - end - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(Ct_lvl_2_val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for j = _ - for i = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for i = parallel(_) - for j = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_4 = 1:Threads.nthreads() - phase_start_2 = max(1, 1 + fld(A_lvl.shape[1] * (i_4 + -1), Threads.nthreads())) - phase_stop_2 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_4, Threads.nthreads())) - if phase_stop_2 >= phase_start_2 - for i_7 = phase_start_2:phase_stop_2 - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_stop_3 = min(B_lvl.shape[2], B_lvl_i_stop) - if phase_stop_3 >= 1 - if B_lvl_tbl2[B_lvl_q] < 1 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_3 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_5 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_5 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_5 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_6 = min(B_lvl_i_2, phase_stop_5, A_lvl_i) - if A_lvl_i == phase_stop_6 && B_lvl_i_2 == phase_stop_6 - B_lvl_2_val = B_lvl_val[B_lvl_q_2] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_7 = min(i_7, A_lvl_i_stop_2) - if phase_stop_7 >= i_7 - if A_lvl_tbl1[A_lvl_q] < i_7 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_7 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_9 = min(A_lvl_i_2, phase_stop_7) - if A_lvl_i_2 == phase_stop_9 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_6 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_6 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_6 + 1 - end - end - B_lvl_q = B_lvl_q_step - else - phase_stop_14 = min(B_lvl_i, phase_stop_3) - if B_lvl_i == phase_stop_14 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_14 - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_15 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_15 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_15 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_16 = min(B_lvl_i_2, A_lvl_i, phase_stop_15) - if A_lvl_i == phase_stop_16 && B_lvl_i_2 == phase_stop_16 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_17 = min(i_7, A_lvl_i_stop_4) - if phase_stop_17 >= i_7 - if A_lvl_tbl1[A_lvl_q] < i_7 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_17 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_19 = min(A_lvl_i_4, phase_stop_17) - if A_lvl_i_4 == phase_stop_19 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_16 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_16 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_16 + 1 - end - end - B_lvl_q = B_lvl_q_step - end - break - end - end - end - end - end - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for i = parallel(_) - for j = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for i = _ - for j = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - for i_4 = 1:A_lvl.shape[1] - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_ptr_2 = B_lvl_ptr - B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) - B_lvl_tbl1_2 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2_2 = B_lvl_tbl2 - B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) - val_2 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr_2 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1_2 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2_2 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - val_3 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_5 = 1:Threads.nthreads() - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_5 + -1), Threads.nthreads())) - phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_5, Threads.nthreads())) - if phase_stop_2 >= phase_start_2 - if B_lvl_tbl2[B_lvl_q] < phase_start_2 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_2 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_4 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_4 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) - if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 - B_lvl_2_val = B_lvl_val[B_lvl_q_3] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_6 = min(i_4, A_lvl_i_stop_2) - if phase_stop_6 >= i_4 - if A_lvl_tbl1[A_lvl_q] < i_4 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_6 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_8 = min(A_lvl_i_2, phase_stop_6) - if A_lvl_i_2 == phase_stop_8 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_5 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_5 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_5 + 1 - end - end - B_lvl_q = B_lvl_q_step - else - phase_stop_13 = min(B_lvl_i, phase_stop_2) - if B_lvl_i == phase_stop_13 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_14 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_14 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) - if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_16 = min(i_4, A_lvl_i_stop_4) - if phase_stop_16 >= i_4 - if A_lvl_tbl1[A_lvl_q] < i_4 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_16 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_18 = min(A_lvl_i_4, phase_stop_16) - if A_lvl_i_4 == phase_stop_18 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_15 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_15 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_15 + 1 - end - end - B_lvl_q = B_lvl_q_step - end - break - end - end - end - end - Ct_lvl_2_val = val - B_lvl_ptr = B_lvl_ptr_2 - B_lvl_tbl1 = B_lvl_tbl1_2 - B_lvl_tbl2 = B_lvl_tbl2_2 - B_lvl_val = val_2 - A_lvl_ptr = A_lvl_ptr_2 - A_lvl_tbl1 = A_lvl_tbl1_2 - A_lvl_tbl2 = A_lvl_tbl2_2 - A_lvl_val = val_3 - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(Ct_lvl_2_val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for i = _ - for j = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for j = parallel(_) - for i = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_4 = 1:Threads.nthreads() - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_4 + -1), Threads.nthreads())) - phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_4, Threads.nthreads())) - if phase_stop_2 >= phase_start_2 - if B_lvl_tbl2[B_lvl_q] < phase_start_2 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_2 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - for i_6 = 1:A_lvl.shape[1] - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_6 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_4 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_4 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) - if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 - B_lvl_2_val = B_lvl_val[B_lvl_q_3] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_6 = min(i_6, A_lvl_i_stop_2) - if phase_stop_6 >= i_6 - if A_lvl_tbl1[A_lvl_q] < i_6 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_6, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_6 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_8 = min(A_lvl_i_2, phase_stop_6) - if A_lvl_i_2 == phase_stop_8 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_5 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_5 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_5 + 1 - end - end - end - B_lvl_q = B_lvl_q_step - else - phase_stop_13 = min(B_lvl_i, phase_stop_2) - if B_lvl_i == phase_stop_13 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 - for i_8 = 1:A_lvl.shape[1] - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_8 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_14 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_14 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) - if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_16 = min(i_8, A_lvl_i_stop_4) - if phase_stop_16 >= i_8 - if A_lvl_tbl1[A_lvl_q] < i_8 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_8, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_16 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_18 = min(A_lvl_i_4, phase_stop_16) - if A_lvl_i_4 == phase_stop_18 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_15 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_15 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_15 + 1 - end - end - end - B_lvl_q = B_lvl_q_step - end - break - end - end - end - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for j = parallel(_) - for i = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for j = _ - for i = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_stop = min(B_lvl.shape[2], B_lvl_i_stop) - if phase_stop >= 1 - if B_lvl_tbl2[B_lvl_q] < 1 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_tbl1_2 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2_2 = B_lvl_tbl2 - val_2 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr_2 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1_2 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2_2 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - val_3 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_9 = 1:Threads.nthreads() - phase_start_6 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_9), Threads.nthreads())) - phase_stop_7 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_9, Threads.nthreads())) - if phase_stop_7 >= phase_start_6 - for i_12 = phase_start_6:phase_stop_7 - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_12 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_8 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_8 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_8 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_9 = min(B_lvl_i_2, phase_stop_8, A_lvl_i) - if A_lvl_i == phase_stop_9 && B_lvl_i_2 == phase_stop_9 - B_lvl_2_val = B_lvl_val[B_lvl_q_2] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_10 = min(i_12, A_lvl_i_stop_2) - if phase_stop_10 >= i_12 - if A_lvl_tbl1[A_lvl_q] < i_12 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_12, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_10 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_12 = min(A_lvl_i_2, phase_stop_10) - if A_lvl_i_2 == phase_stop_12 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_9 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_9 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_9 + 1 - end - end - end - end - end - Ct_lvl_2_val = val - B_lvl_tbl1 = B_lvl_tbl1_2 - B_lvl_tbl2 = B_lvl_tbl2_2 - B_lvl_val = val_2 - A_lvl_ptr = A_lvl_ptr_2 - A_lvl_tbl1 = A_lvl_tbl1_2 - A_lvl_tbl2 = A_lvl_tbl2_2 - A_lvl_val = val_3 - B_lvl_q = B_lvl_q_step - else - phase_stop_18 = min(B_lvl_i, phase_stop) - if B_lvl_i == phase_stop_18 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_18 - val_4 = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_tbl1_3 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2_3 = B_lvl_tbl2 - val_5 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr_3 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1_3 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2_3 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - val_6 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_19 = 1:Threads.nthreads() - phase_start_21 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_19), Threads.nthreads())) - phase_stop_23 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_19, Threads.nthreads())) - if phase_stop_23 >= phase_start_21 - for i_22 = phase_start_21:phase_stop_23 - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_22 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_24 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_24 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_24 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_25 = min(B_lvl_i_2, A_lvl_i, phase_stop_24) - if A_lvl_i == phase_stop_25 && B_lvl_i_2 == phase_stop_25 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_26 = min(i_22, A_lvl_i_stop_4) - if phase_stop_26 >= i_22 - if A_lvl_tbl1[A_lvl_q] < i_22 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_22, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_26 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_28 = min(A_lvl_i_4, phase_stop_26) - if A_lvl_i_4 == phase_stop_28 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_25 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_25 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_25 + 1 - end - end - end - end - end - Ct_lvl_2_val = val_4 - B_lvl_tbl1 = B_lvl_tbl1_3 - B_lvl_tbl2 = B_lvl_tbl2_3 - B_lvl_val = val_5 - A_lvl_ptr = A_lvl_ptr_3 - A_lvl_tbl1 = A_lvl_tbl1_3 - A_lvl_tbl2 = A_lvl_tbl2_3 - A_lvl_val = val_6 - B_lvl_q = B_lvl_q_step - end - break - end - end - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(Ct_lvl_2_val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for j = _ - for i = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for i = parallel(_) - for j = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_4 = 1:Threads.nthreads() - phase_start_2 = max(1, 1 + fld(A_lvl.shape[1] * (i_4 + -1), Threads.nthreads())) - phase_stop_2 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_4, Threads.nthreads())) - if phase_stop_2 >= phase_start_2 - for i_7 = phase_start_2:phase_stop_2 - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_stop_3 = min(B_lvl.shape[2], B_lvl_i_stop) - if phase_stop_3 >= 1 - if B_lvl_tbl2[B_lvl_q] < 1 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_3 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_5 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_5 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_5 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_6 = min(B_lvl_i_2, phase_stop_5, A_lvl_i) - if A_lvl_i == phase_stop_6 && B_lvl_i_2 == phase_stop_6 - B_lvl_2_val = B_lvl_val[B_lvl_q_2] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_7 = min(i_7, A_lvl_i_stop_2) - if phase_stop_7 >= i_7 - if A_lvl_tbl1[A_lvl_q] < i_7 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_7 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_9 = min(A_lvl_i_2, phase_stop_7) - if A_lvl_i_2 == phase_stop_9 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_6 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_6 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_6 + 1 - end - end - B_lvl_q = B_lvl_q_step - else - phase_stop_14 = min(B_lvl_i, phase_stop_3) - if B_lvl_i == phase_stop_14 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_14 - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_15 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_15 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_15 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_16 = min(B_lvl_i_2, A_lvl_i, phase_stop_15) - if A_lvl_i == phase_stop_16 && B_lvl_i_2 == phase_stop_16 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_17 = min(i_7, A_lvl_i_stop_4) - if phase_stop_17 >= i_7 - if A_lvl_tbl1[A_lvl_q] < i_7 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_17 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_19 = min(A_lvl_i_4, phase_stop_17) - if A_lvl_i_4 == phase_stop_19 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_16 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_16 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_16 + 1 - end - end - B_lvl_q = B_lvl_q_step - end - break - end - end - end - end - end - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for i = parallel(_) - for j = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for i = _ - for j = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - for i_4 = 1:A_lvl.shape[1] - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_ptr_2 = B_lvl_ptr - B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) - B_lvl_tbl1_2 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2_2 = B_lvl_tbl2 - B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) - val_2 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr_2 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1_2 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2_2 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - val_3 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_5 = 1:Threads.nthreads() - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_5 + -1), Threads.nthreads())) - phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_5, Threads.nthreads())) - if phase_stop_2 >= phase_start_2 - if B_lvl_tbl2[B_lvl_q] < phase_start_2 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_2 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_4 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_4 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) - if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 - B_lvl_2_val = B_lvl_val[B_lvl_q_3] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_6 = min(i_4, A_lvl_i_stop_2) - if phase_stop_6 >= i_4 - if A_lvl_tbl1[A_lvl_q] < i_4 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_6 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_8 = min(A_lvl_i_2, phase_stop_6) - if A_lvl_i_2 == phase_stop_8 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_5 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_5 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_5 + 1 - end - end - B_lvl_q = B_lvl_q_step - else - phase_stop_13 = min(B_lvl_i, phase_stop_2) - if B_lvl_i == phase_stop_13 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_14 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_14 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) - if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_16 = min(i_4, A_lvl_i_stop_4) - if phase_stop_16 >= i_4 - if A_lvl_tbl1[A_lvl_q] < i_4 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_16 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_18 = min(A_lvl_i_4, phase_stop_16) - if A_lvl_i_4 == phase_stop_18 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_15 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_15 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_15 + 1 - end - end - B_lvl_q = B_lvl_q_step - end - break - end - end - end - end - Ct_lvl_2_val = val - B_lvl_ptr = B_lvl_ptr_2 - B_lvl_tbl1 = B_lvl_tbl1_2 - B_lvl_tbl2 = B_lvl_tbl2_2 - B_lvl_val = val_2 - A_lvl_ptr = A_lvl_ptr_2 - A_lvl_tbl1 = A_lvl_tbl1_2 - A_lvl_tbl2 = A_lvl_tbl2_2 - A_lvl_val = val_3 - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(Ct_lvl_2_val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for i = _ - for j = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for j = parallel(_) - for i = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_4 = 1:Threads.nthreads() - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_4 + -1), Threads.nthreads())) - phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_4, Threads.nthreads())) - if phase_stop_2 >= phase_start_2 - if B_lvl_tbl2[B_lvl_q] < phase_start_2 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_2 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - for i_6 = 1:A_lvl.shape[1] - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_6 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_4 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_4 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) - if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 - B_lvl_2_val = B_lvl_val[B_lvl_q_3] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_6 = min(i_6, A_lvl_i_stop_2) - if phase_stop_6 >= i_6 - if A_lvl_tbl1[A_lvl_q] < i_6 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_6, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_6 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_8 = min(A_lvl_i_2, phase_stop_6) - if A_lvl_i_2 == phase_stop_8 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_5 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_5 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_5 + 1 - end - end - end - B_lvl_q = B_lvl_q_step - else - phase_stop_13 = min(B_lvl_i, phase_stop_2) - if B_lvl_i == phase_stop_13 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 - for i_8 = 1:A_lvl.shape[1] - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_8 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_14 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_14 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) - if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_16 = min(i_8, A_lvl_i_stop_4) - if phase_stop_16 >= i_8 - if A_lvl_tbl1[A_lvl_q] < i_8 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_8, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_16 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_18 = min(A_lvl_i_4, phase_stop_16) - if A_lvl_i_4 == phase_stop_18 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_15 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_15 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_15 + 1 - end - end - end - B_lvl_q = B_lvl_q_step - end - break - end - end - end - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for j = parallel(_) - for i = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for j = _ - for i = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_stop = min(B_lvl.shape[2], B_lvl_i_stop) - if phase_stop >= 1 - if B_lvl_tbl2[B_lvl_q] < 1 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_tbl1_2 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2_2 = B_lvl_tbl2 - val_2 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr_2 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1_2 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2_2 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - val_3 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_9 = 1:Threads.nthreads() - phase_start_6 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_9), Threads.nthreads())) - phase_stop_7 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_9, Threads.nthreads())) - if phase_stop_7 >= phase_start_6 - for i_12 = phase_start_6:phase_stop_7 - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_12 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_8 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_8 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_8 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_9 = min(B_lvl_i_2, phase_stop_8, A_lvl_i) - if A_lvl_i == phase_stop_9 && B_lvl_i_2 == phase_stop_9 - B_lvl_2_val = B_lvl_val[B_lvl_q_2] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_10 = min(i_12, A_lvl_i_stop_2) - if phase_stop_10 >= i_12 - if A_lvl_tbl1[A_lvl_q] < i_12 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_12, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_10 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_12 = min(A_lvl_i_2, phase_stop_10) - if A_lvl_i_2 == phase_stop_12 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_9 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_9 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_9 + 1 - end - end - end - end - end - Ct_lvl_2_val = val - B_lvl_tbl1 = B_lvl_tbl1_2 - B_lvl_tbl2 = B_lvl_tbl2_2 - B_lvl_val = val_2 - A_lvl_ptr = A_lvl_ptr_2 - A_lvl_tbl1 = A_lvl_tbl1_2 - A_lvl_tbl2 = A_lvl_tbl2_2 - A_lvl_val = val_3 - B_lvl_q = B_lvl_q_step - else - phase_stop_18 = min(B_lvl_i, phase_stop) - if B_lvl_i == phase_stop_18 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_18 - val_4 = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_tbl1_3 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2_3 = B_lvl_tbl2 - val_5 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr_3 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1_3 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2_3 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - val_6 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_19 = 1:Threads.nthreads() - phase_start_21 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_19), Threads.nthreads())) - phase_stop_23 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_19, Threads.nthreads())) - if phase_stop_23 >= phase_start_21 - for i_22 = phase_start_21:phase_stop_23 - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_22 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_24 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_24 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_24 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_25 = min(B_lvl_i_2, A_lvl_i, phase_stop_24) - if A_lvl_i == phase_stop_25 && B_lvl_i_2 == phase_stop_25 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_26 = min(i_22, A_lvl_i_stop_4) - if phase_stop_26 >= i_22 - if A_lvl_tbl1[A_lvl_q] < i_22 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_22, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_26 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_28 = min(A_lvl_i_4, phase_stop_26) - if A_lvl_i_4 == phase_stop_28 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_25 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_25 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_25 + 1 - end - end - end - end - end - Ct_lvl_2_val = val_4 - B_lvl_tbl1 = B_lvl_tbl1_3 - B_lvl_tbl2 = B_lvl_tbl2_3 - B_lvl_val = val_5 - A_lvl_ptr = A_lvl_ptr_3 - A_lvl_tbl1 = A_lvl_tbl1_3 - A_lvl_tbl2 = A_lvl_tbl2_3 - A_lvl_val = val_6 - B_lvl_q = B_lvl_q_step - end - break - end - end - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(Ct_lvl_2_val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for j = _ - for i = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for i = parallel(_) - for j = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_4 = 1:Threads.nthreads() - phase_start_2 = max(1, 1 + fld(A_lvl.shape[1] * (i_4 + -1), Threads.nthreads())) - phase_stop_2 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_4, Threads.nthreads())) - if phase_stop_2 >= phase_start_2 - for i_7 = phase_start_2:phase_stop_2 - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_stop_3 = min(B_lvl.shape[2], B_lvl_i_stop) - if phase_stop_3 >= 1 - if B_lvl_tbl2[B_lvl_q] < 1 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_3 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_5 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_5 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_5 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_6 = min(B_lvl_i_2, phase_stop_5, A_lvl_i) - if A_lvl_i == phase_stop_6 && B_lvl_i_2 == phase_stop_6 - B_lvl_2_val = B_lvl_val[B_lvl_q_2] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_7 = min(i_7, A_lvl_i_stop_2) - if phase_stop_7 >= i_7 - if A_lvl_tbl1[A_lvl_q] < i_7 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_7 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_9 = min(A_lvl_i_2, phase_stop_7) - if A_lvl_i_2 == phase_stop_9 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_6 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_6 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_6 + 1 - end - end - B_lvl_q = B_lvl_q_step - else - phase_stop_14 = min(B_lvl_i, phase_stop_3) - if B_lvl_i == phase_stop_14 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_14 - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_15 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_15 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_15 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_16 = min(B_lvl_i_2, A_lvl_i, phase_stop_15) - if A_lvl_i == phase_stop_16 && B_lvl_i_2 == phase_stop_16 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_17 = min(i_7, A_lvl_i_stop_4) - if phase_stop_17 >= i_7 - if A_lvl_tbl1[A_lvl_q] < i_7 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_17 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_19 = min(A_lvl_i_4, phase_stop_17) - if A_lvl_i_4 == phase_stop_19 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_16 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_16 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_16 + 1 - end - end - B_lvl_q = B_lvl_q_step - end - break - end - end - end - end - end - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for i = parallel(_) - for j = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for i = _ - for j = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - for i_4 = 1:A_lvl.shape[1] - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_ptr_2 = B_lvl_ptr - B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) - B_lvl_tbl1_2 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2_2 = B_lvl_tbl2 - B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) - val_2 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr_2 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1_2 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2_2 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - val_3 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_5 = 1:Threads.nthreads() - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_5 + -1), Threads.nthreads())) - phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_5, Threads.nthreads())) - if phase_stop_2 >= phase_start_2 - if B_lvl_tbl2[B_lvl_q] < phase_start_2 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_2 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_4 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_4 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) - if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 - B_lvl_2_val = B_lvl_val[B_lvl_q_3] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_6 = min(i_4, A_lvl_i_stop_2) - if phase_stop_6 >= i_4 - if A_lvl_tbl1[A_lvl_q] < i_4 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_6 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_8 = min(A_lvl_i_2, phase_stop_6) - if A_lvl_i_2 == phase_stop_8 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_5 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_5 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_5 + 1 - end - end - B_lvl_q = B_lvl_q_step - else - phase_stop_13 = min(B_lvl_i, phase_stop_2) - if B_lvl_i == phase_stop_13 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_14 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_14 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) - if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_16 = min(i_4, A_lvl_i_stop_4) - if phase_stop_16 >= i_4 - if A_lvl_tbl1[A_lvl_q] < i_4 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_16 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_18 = min(A_lvl_i_4, phase_stop_16) - if A_lvl_i_4 == phase_stop_18 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_15 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_15 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_15 + 1 - end - end - B_lvl_q = B_lvl_q_step - end - break - end - end - end - end - Ct_lvl_2_val = val - B_lvl_ptr = B_lvl_ptr_2 - B_lvl_tbl1 = B_lvl_tbl1_2 - B_lvl_tbl2 = B_lvl_tbl2_2 - B_lvl_val = val_2 - A_lvl_ptr = A_lvl_ptr_2 - A_lvl_tbl1 = A_lvl_tbl1_2 - A_lvl_tbl2 = A_lvl_tbl2_2 - A_lvl_val = val_3 - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(Ct_lvl_2_val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for i = _ - for j = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for j = parallel(_) - for i = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_4 = 1:Threads.nthreads() - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_4 + -1), Threads.nthreads())) - phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_4, Threads.nthreads())) - if phase_stop_2 >= phase_start_2 - if B_lvl_tbl2[B_lvl_q] < phase_start_2 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_2 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - for i_6 = 1:A_lvl.shape[1] - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_6 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_4 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_4 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) - if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 - B_lvl_2_val = B_lvl_val[B_lvl_q_3] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_6 = min(i_6, A_lvl_i_stop_2) - if phase_stop_6 >= i_6 - if A_lvl_tbl1[A_lvl_q] < i_6 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_6, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_6 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_8 = min(A_lvl_i_2, phase_stop_6) - if A_lvl_i_2 == phase_stop_8 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_5 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_5 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_5 + 1 - end - end - end - B_lvl_q = B_lvl_q_step - else - phase_stop_13 = min(B_lvl_i, phase_stop_2) - if B_lvl_i == phase_stop_13 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 - for i_8 = 1:A_lvl.shape[1] - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_8 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_14 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_14 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) - if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_16 = min(i_8, A_lvl_i_stop_4) - if phase_stop_16 >= i_8 - if A_lvl_tbl1[A_lvl_q] < i_8 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_8, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_16 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_18 = min(A_lvl_i_4, phase_stop_16) - if A_lvl_i_4 == phase_stop_18 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_15 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_15 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_15 + 1 - end - end - end - B_lvl_q = B_lvl_q_step - end - break - end - end - end - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for j = parallel(_) - for i = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for j = _ - for i = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_stop = min(B_lvl.shape[2], B_lvl_i_stop) - if phase_stop >= 1 - if B_lvl_tbl2[B_lvl_q] < 1 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_tbl1_2 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2_2 = B_lvl_tbl2 - val_2 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr_2 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1_2 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2_2 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - val_3 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_9 = 1:Threads.nthreads() - phase_start_6 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_9), Threads.nthreads())) - phase_stop_7 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_9, Threads.nthreads())) - if phase_stop_7 >= phase_start_6 - for i_12 = phase_start_6:phase_stop_7 - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_12 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_8 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_8 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_8 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_9 = min(B_lvl_i_2, phase_stop_8, A_lvl_i) - if A_lvl_i == phase_stop_9 && B_lvl_i_2 == phase_stop_9 - B_lvl_2_val = B_lvl_val[B_lvl_q_2] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_10 = min(i_12, A_lvl_i_stop_2) - if phase_stop_10 >= i_12 - if A_lvl_tbl1[A_lvl_q] < i_12 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_12, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_10 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_12 = min(A_lvl_i_2, phase_stop_10) - if A_lvl_i_2 == phase_stop_12 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_9 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_9 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_9 + 1 - end - end - end - end - end - Ct_lvl_2_val = val - B_lvl_tbl1 = B_lvl_tbl1_2 - B_lvl_tbl2 = B_lvl_tbl2_2 - B_lvl_val = val_2 - A_lvl_ptr = A_lvl_ptr_2 - A_lvl_tbl1 = A_lvl_tbl1_2 - A_lvl_tbl2 = A_lvl_tbl2_2 - A_lvl_val = val_3 - B_lvl_q = B_lvl_q_step - else - phase_stop_18 = min(B_lvl_i, phase_stop) - if B_lvl_i == phase_stop_18 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_18 - val_4 = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_tbl1_3 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2_3 = B_lvl_tbl2 - val_5 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr_3 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1_3 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2_3 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - val_6 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_19 = 1:Threads.nthreads() - phase_start_21 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_19), Threads.nthreads())) - phase_stop_23 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_19, Threads.nthreads())) - if phase_stop_23 >= phase_start_21 - for i_22 = phase_start_21:phase_stop_23 - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_22 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_24 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_24 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_24 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_25 = min(B_lvl_i_2, A_lvl_i, phase_stop_24) - if A_lvl_i == phase_stop_25 && B_lvl_i_2 == phase_stop_25 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_26 = min(i_22, A_lvl_i_stop_4) - if phase_stop_26 >= i_22 - if A_lvl_tbl1[A_lvl_q] < i_22 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_22, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_26 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_28 = min(A_lvl_i_4, phase_stop_26) - if A_lvl_i_4 == phase_stop_28 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_25 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_25 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_25 + 1 - end - end - end - end - end - Ct_lvl_2_val = val_4 - B_lvl_tbl1 = B_lvl_tbl1_3 - B_lvl_tbl2 = B_lvl_tbl2_3 - B_lvl_val = val_5 - A_lvl_ptr = A_lvl_ptr_3 - A_lvl_tbl1 = A_lvl_tbl1_3 - A_lvl_tbl2 = A_lvl_tbl2_3 - A_lvl_val = val_6 - B_lvl_q = B_lvl_q_step - end - break - end - end - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(Ct_lvl_2_val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for j = _ - for i = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for i = parallel(_) - for j = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_4 = 1:Threads.nthreads() - phase_start_2 = max(1, 1 + fld(A_lvl.shape[1] * (i_4 + -1), Threads.nthreads())) - phase_stop_2 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_4, Threads.nthreads())) - if phase_stop_2 >= phase_start_2 - for i_7 = phase_start_2:phase_stop_2 - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_stop_3 = min(B_lvl.shape[2], B_lvl_i_stop) - if phase_stop_3 >= 1 - if B_lvl_tbl2[B_lvl_q] < 1 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_3 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_5 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_5 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_5 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_6 = min(B_lvl_i_2, phase_stop_5, A_lvl_i) - if A_lvl_i == phase_stop_6 && B_lvl_i_2 == phase_stop_6 - B_lvl_2_val = B_lvl_val[B_lvl_q_2] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_7 = min(i_7, A_lvl_i_stop_2) - if phase_stop_7 >= i_7 - if A_lvl_tbl1[A_lvl_q] < i_7 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_7 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_9 = min(A_lvl_i_2, phase_stop_7) - if A_lvl_i_2 == phase_stop_9 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_6 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_6 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_6 + 1 - end - end - B_lvl_q = B_lvl_q_step - else - phase_stop_14 = min(B_lvl_i, phase_stop_3) - if B_lvl_i == phase_stop_14 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_14 - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_15 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_15 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_15 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_16 = min(B_lvl_i_2, A_lvl_i, phase_stop_15) - if A_lvl_i == phase_stop_16 && B_lvl_i_2 == phase_stop_16 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_17 = min(i_7, A_lvl_i_stop_4) - if phase_stop_17 >= i_7 - if A_lvl_tbl1[A_lvl_q] < i_7 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_17 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_19 = min(A_lvl_i_4, phase_stop_17) - if A_lvl_i_4 == phase_stop_19 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_16 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_16 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_16 + 1 - end - end - B_lvl_q = B_lvl_q_step - end - break - end - end - end - end - end - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for i = parallel(_) - for j = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for i = _ - for j = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - for i_4 = 1:A_lvl.shape[1] - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_ptr_2 = B_lvl_ptr - B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) - B_lvl_tbl1_2 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2_2 = B_lvl_tbl2 - B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) - val_2 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr_2 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1_2 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2_2 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - val_3 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_5 = 1:Threads.nthreads() - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_5 + -1), Threads.nthreads())) - phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_5, Threads.nthreads())) - if phase_stop_2 >= phase_start_2 - if B_lvl_tbl2[B_lvl_q] < phase_start_2 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_2 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_4 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_4 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) - if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 - B_lvl_2_val = B_lvl_val[B_lvl_q_3] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_6 = min(i_4, A_lvl_i_stop_2) - if phase_stop_6 >= i_4 - if A_lvl_tbl1[A_lvl_q] < i_4 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_6 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_8 = min(A_lvl_i_2, phase_stop_6) - if A_lvl_i_2 == phase_stop_8 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_5 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_5 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_5 + 1 - end - end - B_lvl_q = B_lvl_q_step - else - phase_stop_13 = min(B_lvl_i, phase_stop_2) - if B_lvl_i == phase_stop_13 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_14 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_14 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) - if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_16 = min(i_4, A_lvl_i_stop_4) - if phase_stop_16 >= i_4 - if A_lvl_tbl1[A_lvl_q] < i_4 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_16 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_18 = min(A_lvl_i_4, phase_stop_16) - if A_lvl_i_4 == phase_stop_18 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_15 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_15 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_15 + 1 - end - end - B_lvl_q = B_lvl_q_step - end - break - end - end - end - end - Ct_lvl_2_val = val - B_lvl_ptr = B_lvl_ptr_2 - B_lvl_tbl1 = B_lvl_tbl1_2 - B_lvl_tbl2 = B_lvl_tbl2_2 - B_lvl_val = val_2 - A_lvl_ptr = A_lvl_ptr_2 - A_lvl_tbl1 = A_lvl_tbl1_2 - A_lvl_tbl2 = A_lvl_tbl2_2 - A_lvl_val = val_3 - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(Ct_lvl_2_val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for i = _ - for j = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for j = parallel(_) - for i = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_4 = 1:Threads.nthreads() - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_4 + -1), Threads.nthreads())) - phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_4, Threads.nthreads())) - if phase_stop_2 >= phase_start_2 - if B_lvl_tbl2[B_lvl_q] < phase_start_2 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_2 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - for i_6 = 1:A_lvl.shape[1] - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_6 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_4 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_4 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) - if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 - B_lvl_2_val = B_lvl_val[B_lvl_q_3] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_6 = min(i_6, A_lvl_i_stop_2) - if phase_stop_6 >= i_6 - if A_lvl_tbl1[A_lvl_q] < i_6 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_6, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_6 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_8 = min(A_lvl_i_2, phase_stop_6) - if A_lvl_i_2 == phase_stop_8 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_5 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_5 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_5 + 1 - end - end - end - B_lvl_q = B_lvl_q_step - else - phase_stop_13 = min(B_lvl_i, phase_stop_2) - if B_lvl_i == phase_stop_13 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 - for i_8 = 1:A_lvl.shape[1] - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_8 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_14 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_14 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) - if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_16 = min(i_8, A_lvl_i_stop_4) - if phase_stop_16 >= i_8 - if A_lvl_tbl1[A_lvl_q] < i_8 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_8, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_16 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_18 = min(A_lvl_i_4, phase_stop_16) - if A_lvl_i_4 == phase_stop_18 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_15 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_15 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_15 + 1 - end - end - end - B_lvl_q = B_lvl_q_step - end - break - end - end - end - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for j = parallel(_) - for i = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for j = _ - for i = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_stop = min(B_lvl.shape[2], B_lvl_i_stop) - if phase_stop >= 1 - if B_lvl_tbl2[B_lvl_q] < 1 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_tbl1_2 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2_2 = B_lvl_tbl2 - val_2 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr_2 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1_2 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2_2 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - val_3 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_9 = 1:Threads.nthreads() - phase_start_6 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_9), Threads.nthreads())) - phase_stop_7 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_9, Threads.nthreads())) - if phase_stop_7 >= phase_start_6 - for i_12 = phase_start_6:phase_stop_7 - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_12 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_8 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_8 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_8 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_9 = min(B_lvl_i_2, phase_stop_8, A_lvl_i) - if A_lvl_i == phase_stop_9 && B_lvl_i_2 == phase_stop_9 - B_lvl_2_val = B_lvl_val[B_lvl_q_2] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_10 = min(i_12, A_lvl_i_stop_2) - if phase_stop_10 >= i_12 - if A_lvl_tbl1[A_lvl_q] < i_12 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_12, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_10 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_12 = min(A_lvl_i_2, phase_stop_10) - if A_lvl_i_2 == phase_stop_12 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_9 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_9 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_9 + 1 - end - end - end - end - end - Ct_lvl_2_val = val - B_lvl_tbl1 = B_lvl_tbl1_2 - B_lvl_tbl2 = B_lvl_tbl2_2 - B_lvl_val = val_2 - A_lvl_ptr = A_lvl_ptr_2 - A_lvl_tbl1 = A_lvl_tbl1_2 - A_lvl_tbl2 = A_lvl_tbl2_2 - A_lvl_val = val_3 - B_lvl_q = B_lvl_q_step - else - phase_stop_18 = min(B_lvl_i, phase_stop) - if B_lvl_i == phase_stop_18 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_18 - val_4 = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_tbl1_3 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2_3 = B_lvl_tbl2 - val_5 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr_3 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1_3 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2_3 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - val_6 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_19 = 1:Threads.nthreads() - phase_start_21 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_19), Threads.nthreads())) - phase_stop_23 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_19, Threads.nthreads())) - if phase_stop_23 >= phase_start_21 - for i_22 = phase_start_21:phase_stop_23 - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_22 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_24 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_24 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_24 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_25 = min(B_lvl_i_2, A_lvl_i, phase_stop_24) - if A_lvl_i == phase_stop_25 && B_lvl_i_2 == phase_stop_25 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_26 = min(i_22, A_lvl_i_stop_4) - if phase_stop_26 >= i_22 - if A_lvl_tbl1[A_lvl_q] < i_22 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_22, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_26 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_28 = min(A_lvl_i_4, phase_stop_26) - if A_lvl_i_4 == phase_stop_28 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_25 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_25 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_25 + 1 - end - end - end - end - end - Ct_lvl_2_val = val_4 - B_lvl_tbl1 = B_lvl_tbl1_3 - B_lvl_tbl2 = B_lvl_tbl2_3 - B_lvl_val = val_5 - A_lvl_ptr = A_lvl_ptr_3 - A_lvl_tbl1 = A_lvl_tbl1_3 - A_lvl_tbl2 = A_lvl_tbl2_3 - A_lvl_val = val_6 - B_lvl_q = B_lvl_q_step - end - break - end - end - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(Ct_lvl_2_val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for j = _ - for i = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for i = parallel(_) - for j = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_4 = 1:Threads.nthreads() - phase_start_2 = max(1, 1 + fld(A_lvl.shape[1] * (i_4 + -1), Threads.nthreads())) - phase_stop_2 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_4, Threads.nthreads())) - if phase_stop_2 >= phase_start_2 - for i_7 = phase_start_2:phase_stop_2 - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_stop_3 = min(B_lvl.shape[2], B_lvl_i_stop) - if phase_stop_3 >= 1 - if B_lvl_tbl2[B_lvl_q] < 1 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_3 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_5 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_5 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_5 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_6 = min(B_lvl_i_2, phase_stop_5, A_lvl_i) - if A_lvl_i == phase_stop_6 && B_lvl_i_2 == phase_stop_6 - B_lvl_2_val = B_lvl_val[B_lvl_q_2] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_7 = min(i_7, A_lvl_i_stop_2) - if phase_stop_7 >= i_7 - if A_lvl_tbl1[A_lvl_q] < i_7 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_7 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_9 = min(A_lvl_i_2, phase_stop_7) - if A_lvl_i_2 == phase_stop_9 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_6 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_6 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_6 + 1 - end - end - B_lvl_q = B_lvl_q_step - else - phase_stop_14 = min(B_lvl_i, phase_stop_3) - if B_lvl_i == phase_stop_14 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_14 - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_15 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_15 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_15 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_16 = min(B_lvl_i_2, A_lvl_i, phase_stop_15) - if A_lvl_i == phase_stop_16 && B_lvl_i_2 == phase_stop_16 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_17 = min(i_7, A_lvl_i_stop_4) - if phase_stop_17 >= i_7 - if A_lvl_tbl1[A_lvl_q] < i_7 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_17 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_19 = min(A_lvl_i_4, phase_stop_17) - if A_lvl_i_4 == phase_stop_19 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_16 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_16 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_16 + 1 - end - end - B_lvl_q = B_lvl_q_step - end - break - end - end - end - end - end - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for i = parallel(_) - for j = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for i = _ - for j = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - for i_4 = 1:A_lvl.shape[1] - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_ptr_2 = B_lvl_ptr - B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) - B_lvl_tbl1_2 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2_2 = B_lvl_tbl2 - B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) - val_2 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr_2 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1_2 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2_2 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - val_3 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_5 = 1:Threads.nthreads() - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_5 + -1), Threads.nthreads())) - phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_5, Threads.nthreads())) - if phase_stop_2 >= phase_start_2 - if B_lvl_tbl2[B_lvl_q] < phase_start_2 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_2 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_4 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_4 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) - if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 - B_lvl_2_val = B_lvl_val[B_lvl_q_3] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_6 = min(i_4, A_lvl_i_stop_2) - if phase_stop_6 >= i_4 - if A_lvl_tbl1[A_lvl_q] < i_4 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_6 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_8 = min(A_lvl_i_2, phase_stop_6) - if A_lvl_i_2 == phase_stop_8 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_5 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_5 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_5 + 1 - end - end - B_lvl_q = B_lvl_q_step - else - phase_stop_13 = min(B_lvl_i, phase_stop_2) - if B_lvl_i == phase_stop_13 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_14 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_14 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) - if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_16 = min(i_4, A_lvl_i_stop_4) - if phase_stop_16 >= i_4 - if A_lvl_tbl1[A_lvl_q] < i_4 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_16 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_18 = min(A_lvl_i_4, phase_stop_16) - if A_lvl_i_4 == phase_stop_18 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_15 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_15 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_15 + 1 - end - end - B_lvl_q = B_lvl_q_step - end - break - end - end - end - end - Ct_lvl_2_val = val - B_lvl_ptr = B_lvl_ptr_2 - B_lvl_tbl1 = B_lvl_tbl1_2 - B_lvl_tbl2 = B_lvl_tbl2_2 - B_lvl_val = val_2 - A_lvl_ptr = A_lvl_ptr_2 - A_lvl_tbl1 = A_lvl_tbl1_2 - A_lvl_tbl2 = A_lvl_tbl2_2 - A_lvl_val = val_3 - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(Ct_lvl_2_val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for i = _ - for j = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for j = parallel(_) - for i = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_4 = 1:Threads.nthreads() - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_4 + -1), Threads.nthreads())) - phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_4, Threads.nthreads())) - if phase_stop_2 >= phase_start_2 - if B_lvl_tbl2[B_lvl_q] < phase_start_2 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_2 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - for i_6 = 1:A_lvl.shape[1] - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_6 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_4 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_4 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) - if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 - B_lvl_2_val = B_lvl_val[B_lvl_q_3] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_6 = min(i_6, A_lvl_i_stop_2) - if phase_stop_6 >= i_6 - if A_lvl_tbl1[A_lvl_q] < i_6 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_6, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_6 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_8 = min(A_lvl_i_2, phase_stop_6) - if A_lvl_i_2 == phase_stop_8 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_5 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_5 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_5 + 1 - end - end - end - B_lvl_q = B_lvl_q_step - else - phase_stop_13 = min(B_lvl_i, phase_stop_2) - if B_lvl_i == phase_stop_13 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 - for i_8 = 1:A_lvl.shape[1] - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_8 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_14 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_14 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) - if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_16 = min(i_8, A_lvl_i_stop_4) - if phase_stop_16 >= i_8 - if A_lvl_tbl1[A_lvl_q] < i_8 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_8, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_16 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_18 = min(A_lvl_i_4, phase_stop_16) - if A_lvl_i_4 == phase_stop_18 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_15 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_15 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_15 + 1 - end - end - end - B_lvl_q = B_lvl_q_step - end - break - end - end - end - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for j = parallel(_) - for i = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for j = _ - for i = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_stop = min(B_lvl.shape[2], B_lvl_i_stop) - if phase_stop >= 1 - if B_lvl_tbl2[B_lvl_q] < 1 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_tbl1_2 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2_2 = B_lvl_tbl2 - val_2 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr_2 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1_2 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2_2 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - val_3 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_9 = 1:Threads.nthreads() - phase_start_6 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_9), Threads.nthreads())) - phase_stop_7 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_9, Threads.nthreads())) - if phase_stop_7 >= phase_start_6 - for i_12 = phase_start_6:phase_stop_7 - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_12 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_8 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_8 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_8 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_9 = min(B_lvl_i_2, phase_stop_8, A_lvl_i) - if A_lvl_i == phase_stop_9 && B_lvl_i_2 == phase_stop_9 - B_lvl_2_val = B_lvl_val[B_lvl_q_2] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_10 = min(i_12, A_lvl_i_stop_2) - if phase_stop_10 >= i_12 - if A_lvl_tbl1[A_lvl_q] < i_12 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_12, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_10 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_12 = min(A_lvl_i_2, phase_stop_10) - if A_lvl_i_2 == phase_stop_12 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_9 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_9 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_9 + 1 - end - end - end - end - end - Ct_lvl_2_val = val - B_lvl_tbl1 = B_lvl_tbl1_2 - B_lvl_tbl2 = B_lvl_tbl2_2 - B_lvl_val = val_2 - A_lvl_ptr = A_lvl_ptr_2 - A_lvl_tbl1 = A_lvl_tbl1_2 - A_lvl_tbl2 = A_lvl_tbl2_2 - A_lvl_val = val_3 - B_lvl_q = B_lvl_q_step - else - phase_stop_18 = min(B_lvl_i, phase_stop) - if B_lvl_i == phase_stop_18 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_18 - val_4 = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_tbl1_3 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2_3 = B_lvl_tbl2 - val_5 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr_3 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1_3 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2_3 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - val_6 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_19 = 1:Threads.nthreads() - phase_start_21 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_19), Threads.nthreads())) - phase_stop_23 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_19, Threads.nthreads())) - if phase_stop_23 >= phase_start_21 - for i_22 = phase_start_21:phase_stop_23 - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_22 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_24 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_24 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_24 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_25 = min(B_lvl_i_2, A_lvl_i, phase_stop_24) - if A_lvl_i == phase_stop_25 && B_lvl_i_2 == phase_stop_25 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_26 = min(i_22, A_lvl_i_stop_4) - if phase_stop_26 >= i_22 - if A_lvl_tbl1[A_lvl_q] < i_22 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_22, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_26 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_28 = min(A_lvl_i_4, phase_stop_26) - if A_lvl_i_4 == phase_stop_28 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_25 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_25 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_25 + 1 - end - end - end - end - end - Ct_lvl_2_val = val_4 - B_lvl_tbl1 = B_lvl_tbl1_3 - B_lvl_tbl2 = B_lvl_tbl2_3 - B_lvl_val = val_5 - A_lvl_ptr = A_lvl_ptr_3 - A_lvl_tbl1 = A_lvl_tbl1_3 - A_lvl_tbl2 = A_lvl_tbl2_3 - A_lvl_val = val_6 - B_lvl_q = B_lvl_q_step - end - break - end - end - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(Ct_lvl_2_val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for j = _ - for i = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for i = parallel(_) - for j = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_4 = 1:Threads.nthreads() - phase_start_2 = max(1, 1 + fld(A_lvl.shape[1] * (i_4 + -1), Threads.nthreads())) - phase_stop_2 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_4, Threads.nthreads())) - if phase_stop_2 >= phase_start_2 - for i_7 = phase_start_2:phase_stop_2 - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_stop_3 = min(B_lvl.shape[2], B_lvl_i_stop) - if phase_stop_3 >= 1 - if B_lvl_tbl2[B_lvl_q] < 1 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_3 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_5 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_5 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_5 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_6 = min(B_lvl_i_2, phase_stop_5, A_lvl_i) - if A_lvl_i == phase_stop_6 && B_lvl_i_2 == phase_stop_6 - B_lvl_2_val = B_lvl_val[B_lvl_q_2] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_7 = min(i_7, A_lvl_i_stop_2) - if phase_stop_7 >= i_7 - if A_lvl_tbl1[A_lvl_q] < i_7 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_7 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_9 = min(A_lvl_i_2, phase_stop_7) - if A_lvl_i_2 == phase_stop_9 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_6 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_6 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_6 + 1 - end - end - B_lvl_q = B_lvl_q_step - else - phase_stop_14 = min(B_lvl_i, phase_stop_3) - if B_lvl_i == phase_stop_14 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_14 - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_15 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_15 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_15 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_16 = min(B_lvl_i_2, A_lvl_i, phase_stop_15) - if A_lvl_i == phase_stop_16 && B_lvl_i_2 == phase_stop_16 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_17 = min(i_7, A_lvl_i_stop_4) - if phase_stop_17 >= i_7 - if A_lvl_tbl1[A_lvl_q] < i_7 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_17 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_19 = min(A_lvl_i_4, phase_stop_17) - if A_lvl_i_4 == phase_stop_19 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_16 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_16 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_16 + 1 - end - end - B_lvl_q = B_lvl_q_step - end - break - end - end - end - end - end - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for i = parallel(_) - for j = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for i = _ - for j = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - for i_4 = 1:A_lvl.shape[1] - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_ptr_2 = B_lvl_ptr - B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) - B_lvl_tbl1_2 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2_2 = B_lvl_tbl2 - B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) - val_2 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr_2 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1_2 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2_2 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - val_3 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_5 = 1:Threads.nthreads() - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_5 + -1), Threads.nthreads())) - phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_5, Threads.nthreads())) - if phase_stop_2 >= phase_start_2 - if B_lvl_tbl2[B_lvl_q] < phase_start_2 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_2 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_4 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_4 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) - if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 - B_lvl_2_val = B_lvl_val[B_lvl_q_3] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_6 = min(i_4, A_lvl_i_stop_2) - if phase_stop_6 >= i_4 - if A_lvl_tbl1[A_lvl_q] < i_4 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_6 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_8 = min(A_lvl_i_2, phase_stop_6) - if A_lvl_i_2 == phase_stop_8 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_5 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_5 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_5 + 1 - end - end - B_lvl_q = B_lvl_q_step - else - phase_stop_13 = min(B_lvl_i, phase_stop_2) - if B_lvl_i == phase_stop_13 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_14 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_14 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) - if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_16 = min(i_4, A_lvl_i_stop_4) - if phase_stop_16 >= i_4 - if A_lvl_tbl1[A_lvl_q] < i_4 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_16 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_18 = min(A_lvl_i_4, phase_stop_16) - if A_lvl_i_4 == phase_stop_18 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_15 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_15 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_15 + 1 - end - end - B_lvl_q = B_lvl_q_step - end - break - end - end - end - end - Ct_lvl_2_val = val - B_lvl_ptr = B_lvl_ptr_2 - B_lvl_tbl1 = B_lvl_tbl1_2 - B_lvl_tbl2 = B_lvl_tbl2_2 - B_lvl_val = val_2 - A_lvl_ptr = A_lvl_ptr_2 - A_lvl_tbl1 = A_lvl_tbl1_2 - A_lvl_tbl2 = A_lvl_tbl2_2 - A_lvl_val = val_3 - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(Ct_lvl_2_val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for i = _ - for j = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for j = parallel(_) - for i = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_4 = 1:Threads.nthreads() - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_4 + -1), Threads.nthreads())) - phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_4, Threads.nthreads())) - if phase_stop_2 >= phase_start_2 - if B_lvl_tbl2[B_lvl_q] < phase_start_2 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_2 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - for i_6 = 1:A_lvl.shape[1] - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_6 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_4 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_4 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) - if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 - B_lvl_2_val = B_lvl_val[B_lvl_q_3] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_6 = min(i_6, A_lvl_i_stop_2) - if phase_stop_6 >= i_6 - if A_lvl_tbl1[A_lvl_q] < i_6 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_6, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_6 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_8 = min(A_lvl_i_2, phase_stop_6) - if A_lvl_i_2 == phase_stop_8 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_5 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_5 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_5 + 1 - end - end - end - B_lvl_q = B_lvl_q_step - else - phase_stop_13 = min(B_lvl_i, phase_stop_2) - if B_lvl_i == phase_stop_13 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 - for i_8 = 1:A_lvl.shape[1] - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_8 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_14 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_14 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) - if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_16 = min(i_8, A_lvl_i_stop_4) - if phase_stop_16 >= i_8 - if A_lvl_tbl1[A_lvl_q] < i_8 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_8, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_16 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_18 = min(A_lvl_i_4, phase_stop_16) - if A_lvl_i_4 == phase_stop_18 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_15 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_15 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_15 + 1 - end - end - end - B_lvl_q = B_lvl_q_step - end - break - end - end - end - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for j = parallel(_) - for i = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for j = _ - for i = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_stop = min(B_lvl.shape[2], B_lvl_i_stop) - if phase_stop >= 1 - if B_lvl_tbl2[B_lvl_q] < 1 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_tbl1_2 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2_2 = B_lvl_tbl2 - val_2 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr_2 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1_2 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2_2 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - val_3 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_9 = 1:Threads.nthreads() - phase_start_6 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_9), Threads.nthreads())) - phase_stop_7 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_9, Threads.nthreads())) - if phase_stop_7 >= phase_start_6 - for i_12 = phase_start_6:phase_stop_7 - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_12 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_8 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_8 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_8 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_9 = min(B_lvl_i_2, phase_stop_8, A_lvl_i) - if A_lvl_i == phase_stop_9 && B_lvl_i_2 == phase_stop_9 - B_lvl_2_val = B_lvl_val[B_lvl_q_2] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_10 = min(i_12, A_lvl_i_stop_2) - if phase_stop_10 >= i_12 - if A_lvl_tbl1[A_lvl_q] < i_12 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_12, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_10 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_12 = min(A_lvl_i_2, phase_stop_10) - if A_lvl_i_2 == phase_stop_12 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_9 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_9 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_9 + 1 - end - end - end - end - end - Ct_lvl_2_val = val - B_lvl_tbl1 = B_lvl_tbl1_2 - B_lvl_tbl2 = B_lvl_tbl2_2 - B_lvl_val = val_2 - A_lvl_ptr = A_lvl_ptr_2 - A_lvl_tbl1 = A_lvl_tbl1_2 - A_lvl_tbl2 = A_lvl_tbl2_2 - A_lvl_val = val_3 - B_lvl_q = B_lvl_q_step - else - phase_stop_18 = min(B_lvl_i, phase_stop) - if B_lvl_i == phase_stop_18 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_18 - val_4 = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_tbl1_3 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2_3 = B_lvl_tbl2 - val_5 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr_3 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1_3 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2_3 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - val_6 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_19 = 1:Threads.nthreads() - phase_start_21 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_19), Threads.nthreads())) - phase_stop_23 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_19, Threads.nthreads())) - if phase_stop_23 >= phase_start_21 - for i_22 = phase_start_21:phase_stop_23 - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_22 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_24 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_24 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_24 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_25 = min(B_lvl_i_2, A_lvl_i, phase_stop_24) - if A_lvl_i == phase_stop_25 && B_lvl_i_2 == phase_stop_25 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_26 = min(i_22, A_lvl_i_stop_4) - if phase_stop_26 >= i_22 - if A_lvl_tbl1[A_lvl_q] < i_22 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_22, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_26 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_28 = min(A_lvl_i_4, phase_stop_26) - if A_lvl_i_4 == phase_stop_28 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_25 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_25 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_25 + 1 - end - end - end - end - end - Ct_lvl_2_val = val_4 - B_lvl_tbl1 = B_lvl_tbl1_3 - B_lvl_tbl2 = B_lvl_tbl2_3 - B_lvl_val = val_5 - A_lvl_ptr = A_lvl_ptr_3 - A_lvl_tbl1 = A_lvl_tbl1_3 - A_lvl_tbl2 = A_lvl_tbl2_3 - A_lvl_val = val_6 - B_lvl_q = B_lvl_q_step - end - break - end - end - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(Ct_lvl_2_val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for j = _ - for i = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for i = parallel(_) - for j = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_4 = 1:Threads.nthreads() - phase_start_2 = max(1, 1 + fld(A_lvl.shape[1] * (i_4 + -1), Threads.nthreads())) - phase_stop_2 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_4, Threads.nthreads())) - if phase_stop_2 >= phase_start_2 - for i_7 = phase_start_2:phase_stop_2 - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_stop_3 = min(B_lvl.shape[2], B_lvl_i_stop) - if phase_stop_3 >= 1 - if B_lvl_tbl2[B_lvl_q] < 1 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_3 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_5 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_5 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_5 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_6 = min(B_lvl_i_2, phase_stop_5, A_lvl_i) - if A_lvl_i == phase_stop_6 && B_lvl_i_2 == phase_stop_6 - B_lvl_2_val = B_lvl_val[B_lvl_q_2] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_7 = min(i_7, A_lvl_i_stop_2) - if phase_stop_7 >= i_7 - if A_lvl_tbl1[A_lvl_q] < i_7 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_7 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_9 = min(A_lvl_i_2, phase_stop_7) - if A_lvl_i_2 == phase_stop_9 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_6 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_6 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_6 + 1 - end - end - B_lvl_q = B_lvl_q_step - else - phase_stop_14 = min(B_lvl_i, phase_stop_3) - if B_lvl_i == phase_stop_14 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_14 - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_15 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_15 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_15 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_16 = min(B_lvl_i_2, A_lvl_i, phase_stop_15) - if A_lvl_i == phase_stop_16 && B_lvl_i_2 == phase_stop_16 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_17 = min(i_7, A_lvl_i_stop_4) - if phase_stop_17 >= i_7 - if A_lvl_tbl1[A_lvl_q] < i_7 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_17 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_19 = min(A_lvl_i_4, phase_stop_17) - if A_lvl_i_4 == phase_stop_19 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_16 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_16 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_16 + 1 - end - end - B_lvl_q = B_lvl_q_step - end - break - end - end - end - end - end - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for i = parallel(_) - for j = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for i = _ - for j = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - for i_4 = 1:A_lvl.shape[1] - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_ptr_2 = B_lvl_ptr - B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) - B_lvl_tbl1_2 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2_2 = B_lvl_tbl2 - B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) - val_2 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr_2 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1_2 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2_2 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - val_3 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_5 = 1:Threads.nthreads() - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_5 + -1), Threads.nthreads())) - phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_5, Threads.nthreads())) - if phase_stop_2 >= phase_start_2 - if B_lvl_tbl2[B_lvl_q] < phase_start_2 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_2 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_4 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_4 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) - if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 - B_lvl_2_val = B_lvl_val[B_lvl_q_3] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_6 = min(i_4, A_lvl_i_stop_2) - if phase_stop_6 >= i_4 - if A_lvl_tbl1[A_lvl_q] < i_4 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_6 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_8 = min(A_lvl_i_2, phase_stop_6) - if A_lvl_i_2 == phase_stop_8 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_5 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_5 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_5 + 1 - end - end - B_lvl_q = B_lvl_q_step - else - phase_stop_13 = min(B_lvl_i, phase_stop_2) - if B_lvl_i == phase_stop_13 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_14 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_14 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) - if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_16 = min(i_4, A_lvl_i_stop_4) - if phase_stop_16 >= i_4 - if A_lvl_tbl1[A_lvl_q] < i_4 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_16 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_18 = min(A_lvl_i_4, phase_stop_16) - if A_lvl_i_4 == phase_stop_18 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_15 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_15 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_15 + 1 - end - end - B_lvl_q = B_lvl_q_step - end - break - end - end - end - end - Ct_lvl_2_val = val - B_lvl_ptr = B_lvl_ptr_2 - B_lvl_tbl1 = B_lvl_tbl1_2 - B_lvl_tbl2 = B_lvl_tbl2_2 - B_lvl_val = val_2 - A_lvl_ptr = A_lvl_ptr_2 - A_lvl_tbl1 = A_lvl_tbl1_2 - A_lvl_tbl2 = A_lvl_tbl2_2 - A_lvl_val = val_3 - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(Ct_lvl_2_val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for i = _ - for j = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for j = parallel(_) - for i = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_4 = 1:Threads.nthreads() - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_4 + -1), Threads.nthreads())) - phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_4, Threads.nthreads())) - if phase_stop_2 >= phase_start_2 - if B_lvl_tbl2[B_lvl_q] < phase_start_2 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_2 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - for i_6 = 1:A_lvl.shape[1] - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_6 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_4 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_4 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) - if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 - B_lvl_2_val = B_lvl_val[B_lvl_q_3] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_6 = min(i_6, A_lvl_i_stop_2) - if phase_stop_6 >= i_6 - if A_lvl_tbl1[A_lvl_q] < i_6 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_6, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_6 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_8 = min(A_lvl_i_2, phase_stop_6) - if A_lvl_i_2 == phase_stop_8 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_5 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_5 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_5 + 1 - end - end - end - B_lvl_q = B_lvl_q_step - else - phase_stop_13 = min(B_lvl_i, phase_stop_2) - if B_lvl_i == phase_stop_13 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 - for i_8 = 1:A_lvl.shape[1] - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_8 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_14 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_14 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) - if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_16 = min(i_8, A_lvl_i_stop_4) - if phase_stop_16 >= i_8 - if A_lvl_tbl1[A_lvl_q] < i_8 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_8, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_16 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_18 = min(A_lvl_i_4, phase_stop_16) - if A_lvl_i_4 == phase_stop_18 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_15 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_15 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_15 + 1 - end - end - end - B_lvl_q = B_lvl_q_step - end - break - end - end - end - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for j = parallel(_) - for i = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for j = _ - for i = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_stop = min(B_lvl.shape[2], B_lvl_i_stop) - if phase_stop >= 1 - if B_lvl_tbl2[B_lvl_q] < 1 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_tbl1_2 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2_2 = B_lvl_tbl2 - val_2 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr_2 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1_2 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2_2 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - val_3 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_9 = 1:Threads.nthreads() - phase_start_6 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_9), Threads.nthreads())) - phase_stop_7 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_9, Threads.nthreads())) - if phase_stop_7 >= phase_start_6 - for i_12 = phase_start_6:phase_stop_7 - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_12 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_8 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_8 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_8 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_9 = min(B_lvl_i_2, phase_stop_8, A_lvl_i) - if A_lvl_i == phase_stop_9 && B_lvl_i_2 == phase_stop_9 - B_lvl_2_val = B_lvl_val[B_lvl_q_2] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_10 = min(i_12, A_lvl_i_stop_2) - if phase_stop_10 >= i_12 - if A_lvl_tbl1[A_lvl_q] < i_12 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_12, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_10 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_12 = min(A_lvl_i_2, phase_stop_10) - if A_lvl_i_2 == phase_stop_12 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_9 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_9 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_9 + 1 - end - end - end - end - end - Ct_lvl_2_val = val - B_lvl_tbl1 = B_lvl_tbl1_2 - B_lvl_tbl2 = B_lvl_tbl2_2 - B_lvl_val = val_2 - A_lvl_ptr = A_lvl_ptr_2 - A_lvl_tbl1 = A_lvl_tbl1_2 - A_lvl_tbl2 = A_lvl_tbl2_2 - A_lvl_val = val_3 - B_lvl_q = B_lvl_q_step - else - phase_stop_18 = min(B_lvl_i, phase_stop) - if B_lvl_i == phase_stop_18 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_18 - val_4 = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_tbl1_3 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2_3 = B_lvl_tbl2 - val_5 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr_3 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1_3 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2_3 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - val_6 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_19 = 1:Threads.nthreads() - phase_start_21 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_19), Threads.nthreads())) - phase_stop_23 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_19, Threads.nthreads())) - if phase_stop_23 >= phase_start_21 - for i_22 = phase_start_21:phase_stop_23 - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_22 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_24 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_24 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_24 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_25 = min(B_lvl_i_2, A_lvl_i, phase_stop_24) - if A_lvl_i == phase_stop_25 && B_lvl_i_2 == phase_stop_25 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_26 = min(i_22, A_lvl_i_stop_4) - if phase_stop_26 >= i_22 - if A_lvl_tbl1[A_lvl_q] < i_22 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_22, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_26 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_28 = min(A_lvl_i_4, phase_stop_26) - if A_lvl_i_4 == phase_stop_28 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_25 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_25 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_25 + 1 - end - end - end - end - end - Ct_lvl_2_val = val_4 - B_lvl_tbl1 = B_lvl_tbl1_3 - B_lvl_tbl2 = B_lvl_tbl2_3 - B_lvl_val = val_5 - A_lvl_ptr = A_lvl_ptr_3 - A_lvl_tbl1 = A_lvl_tbl1_3 - A_lvl_tbl2 = A_lvl_tbl2_3 - A_lvl_val = val_6 - B_lvl_q = B_lvl_q_step - end - break - end - end - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(Ct_lvl_2_val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for j = _ - for i = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for i = parallel(_) - for j = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_4 = 1:Threads.nthreads() - phase_start_2 = max(1, 1 + fld(A_lvl.shape[1] * (i_4 + -1), Threads.nthreads())) - phase_stop_2 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_4, Threads.nthreads())) - if phase_stop_2 >= phase_start_2 - for i_7 = phase_start_2:phase_stop_2 - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_stop_3 = min(B_lvl.shape[2], B_lvl_i_stop) - if phase_stop_3 >= 1 - if B_lvl_tbl2[B_lvl_q] < 1 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_3 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_5 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_5 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_5 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_6 = min(B_lvl_i_2, phase_stop_5, A_lvl_i) - if A_lvl_i == phase_stop_6 && B_lvl_i_2 == phase_stop_6 - B_lvl_2_val = B_lvl_val[B_lvl_q_2] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_7 = min(i_7, A_lvl_i_stop_2) - if phase_stop_7 >= i_7 - if A_lvl_tbl1[A_lvl_q] < i_7 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_7 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_9 = min(A_lvl_i_2, phase_stop_7) - if A_lvl_i_2 == phase_stop_9 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_6 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_6 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_6 + 1 - end - end - B_lvl_q = B_lvl_q_step - else - phase_stop_14 = min(B_lvl_i, phase_stop_3) - if B_lvl_i == phase_stop_14 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_14 - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_15 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_15 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_15 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_16 = min(B_lvl_i_2, A_lvl_i, phase_stop_15) - if A_lvl_i == phase_stop_16 && B_lvl_i_2 == phase_stop_16 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_17 = min(i_7, A_lvl_i_stop_4) - if phase_stop_17 >= i_7 - if A_lvl_tbl1[A_lvl_q] < i_7 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_17 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_19 = min(A_lvl_i_4, phase_stop_17) - if A_lvl_i_4 == phase_stop_19 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_16 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_16 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_16 + 1 - end - end - B_lvl_q = B_lvl_q_step - end - break - end - end - end - end - end - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for i = parallel(_) - for j = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for i = _ - for j = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - for i_4 = 1:A_lvl.shape[1] - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_ptr_2 = B_lvl_ptr - B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) - B_lvl_tbl1_2 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2_2 = B_lvl_tbl2 - B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) - val_2 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr_2 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1_2 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2_2 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - val_3 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_5 = 1:Threads.nthreads() - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_5 + -1), Threads.nthreads())) - phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_5, Threads.nthreads())) - if phase_stop_2 >= phase_start_2 - if B_lvl_tbl2[B_lvl_q] < phase_start_2 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_2 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_4 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_4 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) - if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 - B_lvl_2_val = B_lvl_val[B_lvl_q_3] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_6 = min(i_4, A_lvl_i_stop_2) - if phase_stop_6 >= i_4 - if A_lvl_tbl1[A_lvl_q] < i_4 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_6 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_8 = min(A_lvl_i_2, phase_stop_6) - if A_lvl_i_2 == phase_stop_8 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_5 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_5 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_5 + 1 - end - end - B_lvl_q = B_lvl_q_step - else - phase_stop_13 = min(B_lvl_i, phase_stop_2) - if B_lvl_i == phase_stop_13 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_14 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_14 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) - if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_16 = min(i_4, A_lvl_i_stop_4) - if phase_stop_16 >= i_4 - if A_lvl_tbl1[A_lvl_q] < i_4 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_16 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_18 = min(A_lvl_i_4, phase_stop_16) - if A_lvl_i_4 == phase_stop_18 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_15 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_15 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_15 + 1 - end - end - B_lvl_q = B_lvl_q_step - end - break - end - end - end - end - Ct_lvl_2_val = val - B_lvl_ptr = B_lvl_ptr_2 - B_lvl_tbl1 = B_lvl_tbl1_2 - B_lvl_tbl2 = B_lvl_tbl2_2 - B_lvl_val = val_2 - A_lvl_ptr = A_lvl_ptr_2 - A_lvl_tbl1 = A_lvl_tbl1_2 - A_lvl_tbl2 = A_lvl_tbl2_2 - A_lvl_val = val_3 - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(Ct_lvl_2_val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for i = _ - for j = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for j = parallel(_) - for i = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_4 = 1:Threads.nthreads() - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_4 + -1), Threads.nthreads())) - phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_4, Threads.nthreads())) - if phase_stop_2 >= phase_start_2 - if B_lvl_tbl2[B_lvl_q] < phase_start_2 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_2 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - for i_6 = 1:A_lvl.shape[1] - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_6 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_4 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_4 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) - if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 - B_lvl_2_val = B_lvl_val[B_lvl_q_3] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_6 = min(i_6, A_lvl_i_stop_2) - if phase_stop_6 >= i_6 - if A_lvl_tbl1[A_lvl_q] < i_6 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_6, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_6 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_8 = min(A_lvl_i_2, phase_stop_6) - if A_lvl_i_2 == phase_stop_8 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_5 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_5 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_5 + 1 - end - end - end - B_lvl_q = B_lvl_q_step - else - phase_stop_13 = min(B_lvl_i, phase_stop_2) - if B_lvl_i == phase_stop_13 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 - for i_8 = 1:A_lvl.shape[1] - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_8 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_14 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_14 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) - if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_16 = min(i_8, A_lvl_i_stop_4) - if phase_stop_16 >= i_8 - if A_lvl_tbl1[A_lvl_q] < i_8 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_8, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_16 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_18 = min(A_lvl_i_4, phase_stop_16) - if A_lvl_i_4 == phase_stop_18 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_15 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_15 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_15 + 1 - end - end - end - B_lvl_q = B_lvl_q_step - end - break - end - end - end - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for j = parallel(_) - for i = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for j = _ - for i = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_stop = min(B_lvl.shape[2], B_lvl_i_stop) - if phase_stop >= 1 - if B_lvl_tbl2[B_lvl_q] < 1 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_tbl1_2 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2_2 = B_lvl_tbl2 - val_2 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr_2 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1_2 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2_2 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - val_3 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_9 = 1:Threads.nthreads() - phase_start_6 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_9), Threads.nthreads())) - phase_stop_7 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_9, Threads.nthreads())) - if phase_stop_7 >= phase_start_6 - for i_12 = phase_start_6:phase_stop_7 - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_12 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_8 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_8 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_8 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_9 = min(B_lvl_i_2, phase_stop_8, A_lvl_i) - if A_lvl_i == phase_stop_9 && B_lvl_i_2 == phase_stop_9 - B_lvl_2_val = B_lvl_val[B_lvl_q_2] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_10 = min(i_12, A_lvl_i_stop_2) - if phase_stop_10 >= i_12 - if A_lvl_tbl1[A_lvl_q] < i_12 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_12, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_10 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_12 = min(A_lvl_i_2, phase_stop_10) - if A_lvl_i_2 == phase_stop_12 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_9 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_9 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_9 + 1 - end - end - end - end - end - Ct_lvl_2_val = val - B_lvl_tbl1 = B_lvl_tbl1_2 - B_lvl_tbl2 = B_lvl_tbl2_2 - B_lvl_val = val_2 - A_lvl_ptr = A_lvl_ptr_2 - A_lvl_tbl1 = A_lvl_tbl1_2 - A_lvl_tbl2 = A_lvl_tbl2_2 - A_lvl_val = val_3 - B_lvl_q = B_lvl_q_step - else - phase_stop_18 = min(B_lvl_i, phase_stop) - if B_lvl_i == phase_stop_18 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_18 - val_4 = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_tbl1_3 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2_3 = B_lvl_tbl2 - val_5 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr_3 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1_3 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2_3 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - val_6 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_19 = 1:Threads.nthreads() - phase_start_21 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_19), Threads.nthreads())) - phase_stop_23 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_19, Threads.nthreads())) - if phase_stop_23 >= phase_start_21 - for i_22 = phase_start_21:phase_stop_23 - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_22 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_24 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_24 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_24 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_25 = min(B_lvl_i_2, A_lvl_i, phase_stop_24) - if A_lvl_i == phase_stop_25 && B_lvl_i_2 == phase_stop_25 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_26 = min(i_22, A_lvl_i_stop_4) - if phase_stop_26 >= i_22 - if A_lvl_tbl1[A_lvl_q] < i_22 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_22, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_26 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_28 = min(A_lvl_i_4, phase_stop_26) - if A_lvl_i_4 == phase_stop_28 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_25 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_25 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_25 + 1 - end - end - end - end - end - Ct_lvl_2_val = val_4 - B_lvl_tbl1 = B_lvl_tbl1_3 - B_lvl_tbl2 = B_lvl_tbl2_3 - B_lvl_val = val_5 - A_lvl_ptr = A_lvl_ptr_3 - A_lvl_tbl1 = A_lvl_tbl1_3 - A_lvl_tbl2 = A_lvl_tbl2_3 - A_lvl_val = val_6 - B_lvl_q = B_lvl_q_step - end - break - end - end - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(Ct_lvl_2_val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for j = _ - for i = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for i = parallel(_) - for j = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_4 = 1:Threads.nthreads() - phase_start_2 = max(1, 1 + fld(A_lvl.shape[1] * (i_4 + -1), Threads.nthreads())) - phase_stop_2 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_4, Threads.nthreads())) - if phase_stop_2 >= phase_start_2 - for i_7 = phase_start_2:phase_stop_2 - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_stop_3 = min(B_lvl.shape[2], B_lvl_i_stop) - if phase_stop_3 >= 1 - if B_lvl_tbl2[B_lvl_q] < 1 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_3 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_5 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_5 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_5 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_6 = min(B_lvl_i_2, phase_stop_5, A_lvl_i) - if A_lvl_i == phase_stop_6 && B_lvl_i_2 == phase_stop_6 - B_lvl_2_val = B_lvl_val[B_lvl_q_2] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_7 = min(i_7, A_lvl_i_stop_2) - if phase_stop_7 >= i_7 - if A_lvl_tbl1[A_lvl_q] < i_7 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_7 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_9 = min(A_lvl_i_2, phase_stop_7) - if A_lvl_i_2 == phase_stop_9 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_6 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_6 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_6 + 1 - end - end - B_lvl_q = B_lvl_q_step - else - phase_stop_14 = min(B_lvl_i, phase_stop_3) - if B_lvl_i == phase_stop_14 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_14 - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_7 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_15 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_15 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_15 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_16 = min(B_lvl_i_2, A_lvl_i, phase_stop_15) - if A_lvl_i == phase_stop_16 && B_lvl_i_2 == phase_stop_16 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_17 = min(i_7, A_lvl_i_stop_4) - if phase_stop_17 >= i_7 - if A_lvl_tbl1[A_lvl_q] < i_7 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_7, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_17 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_19 = min(A_lvl_i_4, phase_stop_17) - if A_lvl_i_4 == phase_stop_19 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_16 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_16 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_16 + 1 - end - end - B_lvl_q = B_lvl_q_step - end - break - end - end - end - end - end - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for i = parallel(_) - for j = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for i = _ - for j = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - for i_4 = 1:A_lvl.shape[1] - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_ptr_2 = B_lvl_ptr - B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) - B_lvl_tbl1_2 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2_2 = B_lvl_tbl2 - B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) - val_2 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr_2 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1_2 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2_2 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - val_3 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_5 = 1:Threads.nthreads() - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_5 + -1), Threads.nthreads())) - phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_5, Threads.nthreads())) - if phase_stop_2 >= phase_start_2 - if B_lvl_tbl2[B_lvl_q] < phase_start_2 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_2 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_4 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_4 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) - if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 - B_lvl_2_val = B_lvl_val[B_lvl_q_3] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_6 = min(i_4, A_lvl_i_stop_2) - if phase_stop_6 >= i_4 - if A_lvl_tbl1[A_lvl_q] < i_4 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_6 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_8 = min(A_lvl_i_2, phase_stop_6) - if A_lvl_i_2 == phase_stop_8 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_5 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_5 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_5 + 1 - end - end - B_lvl_q = B_lvl_q_step - else - phase_stop_13 = min(B_lvl_i, phase_stop_2) - if B_lvl_i == phase_stop_13 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_14 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_14 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) - if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_16 = min(i_4, A_lvl_i_stop_4) - if phase_stop_16 >= i_4 - if A_lvl_tbl1[A_lvl_q] < i_4 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_16 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_18 = min(A_lvl_i_4, phase_stop_16) - if A_lvl_i_4 == phase_stop_18 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_15 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_15 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_15 + 1 - end - end - B_lvl_q = B_lvl_q_step - end - break - end - end - end - end - Ct_lvl_2_val = val - B_lvl_ptr = B_lvl_ptr_2 - B_lvl_tbl1 = B_lvl_tbl1_2 - B_lvl_tbl2 = B_lvl_tbl2_2 - B_lvl_val = val_2 - A_lvl_ptr = A_lvl_ptr_2 - A_lvl_tbl1 = A_lvl_tbl1_2 - A_lvl_tbl2 = A_lvl_tbl2_2 - A_lvl_val = val_3 - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(Ct_lvl_2_val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for i = _ - for j = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for j = parallel(_) - for i = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_4 = 1:Threads.nthreads() - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_start_2 = max(1, 1 + fld(B_lvl.shape[2] * (i_4 + -1), Threads.nthreads())) - phase_stop_2 = min(B_lvl.shape[2], B_lvl_i_stop, fld(B_lvl.shape[2] * i_4, Threads.nthreads())) - if phase_stop_2 >= phase_start_2 - if B_lvl_tbl2[B_lvl_q] < phase_start_2 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, phase_start_2, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_2 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - for i_6 = 1:A_lvl.shape[1] - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_6 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_4 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_4 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_4 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_5 = min(B_lvl_i_3, phase_stop_4, A_lvl_i) - if A_lvl_i == phase_stop_5 && B_lvl_i_3 == phase_stop_5 - B_lvl_2_val = B_lvl_val[B_lvl_q_3] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_6 = min(i_6, A_lvl_i_stop_2) - if phase_stop_6 >= i_6 - if A_lvl_tbl1[A_lvl_q] < i_6 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_6, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_6 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_8 = min(A_lvl_i_2, phase_stop_6) - if A_lvl_i_2 == phase_stop_8 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_5 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_5 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_5 + 1 - end - end - end - B_lvl_q = B_lvl_q_step - else - phase_stop_13 = min(B_lvl_i, phase_stop_2) - if B_lvl_i == phase_stop_13 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_13 - for i_8 = 1:A_lvl.shape[1] - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_8 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_14 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_3) - if phase_stop_14 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_14 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - phase_stop_15 = min(B_lvl_i_3, A_lvl_i, phase_stop_14) - if A_lvl_i == phase_stop_15 && B_lvl_i_3 == phase_stop_15 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_16 = min(i_8, A_lvl_i_stop_4) - if phase_stop_16 >= i_8 - if A_lvl_tbl1[A_lvl_q] < i_8 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_8, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_16 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_18 = min(A_lvl_i_4, phase_stop_16) - if A_lvl_i_4 == phase_stop_18 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_3 += 1 - elseif B_lvl_i_3 == phase_stop_15 - B_lvl_q_3 += 1 - elseif A_lvl_i == phase_stop_15 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_15 + 1 - end - end - end - B_lvl_q = B_lvl_q_step - end - break - end - end - end - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for j = parallel(_) - for i = _ - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for j = _ - for i = parallel(_) - for k = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) - Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_stop = min(B_lvl.shape[2], B_lvl_i_stop) - if phase_stop >= 1 - if B_lvl_tbl2[B_lvl_q] < 1 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_tbl1_2 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2_2 = B_lvl_tbl2 - val_2 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr_2 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1_2 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2_2 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - val_3 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_9 = 1:Threads.nthreads() - phase_start_6 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_9), Threads.nthreads())) - phase_stop_7 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_9, Threads.nthreads())) - if phase_stop_7 >= phase_start_6 - for i_12 = phase_start_6:phase_stop_7 - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_12 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_8 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_8 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_8 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_9 = min(B_lvl_i_2, phase_stop_8, A_lvl_i) - if A_lvl_i == phase_stop_9 && B_lvl_i_2 == phase_stop_9 - B_lvl_2_val = B_lvl_val[B_lvl_q_2] - A_lvl_q_2 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_2 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_2 = 0 - end - phase_stop_10 = min(i_12, A_lvl_i_stop_2) - if phase_stop_10 >= i_12 - if A_lvl_tbl1[A_lvl_q] < i_12 - A_lvl_q_2 = Finch.scansearch(A_lvl_tbl1, i_12, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] - if A_lvl_i_2 < phase_stop_10 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - else - phase_stop_12 = min(A_lvl_i_2, phase_stop_10) - if A_lvl_i_2 == phase_stop_12 - A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val - A_lvl_q_2 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_9 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_9 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_9 + 1 - end - end - end - end - end - Ct_lvl_2_val = val - B_lvl_tbl1 = B_lvl_tbl1_2 - B_lvl_tbl2 = B_lvl_tbl2_2 - B_lvl_val = val_2 - A_lvl_ptr = A_lvl_ptr_2 - A_lvl_tbl1 = A_lvl_tbl1_2 - A_lvl_tbl2 = A_lvl_tbl2_2 - A_lvl_val = val_3 - B_lvl_q = B_lvl_q_step - else - phase_stop_18 = min(B_lvl_i, phase_stop) - if B_lvl_i == phase_stop_18 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_18 - val_4 = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_tbl1_3 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2_3 = B_lvl_tbl2 - val_5 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr_3 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1_3 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2_3 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - val_6 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_19 = 1:Threads.nthreads() - phase_start_21 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_19), Threads.nthreads())) - phase_stop_23 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_19, Threads.nthreads())) - if phase_stop_23 >= phase_start_21 - for i_22 = phase_start_21:phase_stop_23 - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_22 - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_24 = min(B_lvl.shape[1], A_lvl_i_stop, B_lvl_i_stop_2) - if phase_stop_24 >= 1 - k = 1 - if A_lvl_tbl2[A_lvl_q] < 1 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, 1, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < 1 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, 1, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_24 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_25 = min(B_lvl_i_2, A_lvl_i, phase_stop_24) - if A_lvl_i == phase_stop_25 && B_lvl_i_2 == phase_stop_25 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_2] - A_lvl_q_4 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_4 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_4 = 0 - end - phase_stop_26 = min(i_22, A_lvl_i_stop_4) - if phase_stop_26 >= i_22 - if A_lvl_tbl1[A_lvl_q] < i_22 - A_lvl_q_4 = Finch.scansearch(A_lvl_tbl1, i_22, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] - if A_lvl_i_4 < phase_stop_26 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - else - phase_stop_28 = min(A_lvl_i_4, phase_stop_26) - if A_lvl_i_4 == phase_stop_28 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 - A_lvl_q_4 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_25 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_25 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_25 + 1 - end - end - end - end - end - Ct_lvl_2_val = val_4 - B_lvl_tbl1 = B_lvl_tbl1_3 - B_lvl_tbl2 = B_lvl_tbl2_3 - B_lvl_val = val_5 - A_lvl_ptr = A_lvl_ptr_3 - A_lvl_tbl1 = A_lvl_tbl1_3 - A_lvl_tbl2 = A_lvl_tbl2_3 - A_lvl_val = val_6 - B_lvl_q = B_lvl_q_step - end - break - end - end - end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(Ct_lvl_2_val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) -end -julia> @finch begin - Ct .= 0 - for j = _ for i = parallel(_) for k = _ Ct[i, j] += A[i, k] * B[k, j] @@ -16120,5 +1313,5 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0428789624797608, 0.08743611590208564, 0.0, 0.0, 0.7771943736883342, 0.8566307285039446, 0.0, 0.0, 0.3074726668114594, 0.1926824617371268, 0.0, 0.09744961392848928, 0.0, 0.0, 0.0, 0.40472958722306107, 0.1334234132871559, 0.13502037966414665, 0.384753712683889, 0.0, 0.0, 0.0, 0.04245930803079244, 0.0, 0.0, 0.0, 0.0, 0.232543498088826, 0.0, 0.0, 0.006208250652474222, 0.853241683312649, 0.13838159598021277, 0.6718696550712213, 0.0, 0.0, 0.3009328018875558, 0.7548914207055313, 0.08315770511918749, 0.0, 0.7921267306488304, 0.022757453132970167, 0.11800917617191224, 0.0, 0.1318085604836392, 0.092937183769726, 0.0, 0.0, 0.5602136568766394, 0.0, 0.057182493142543506, 0.5661083208979463, 0.4700341919673409, 0.0, 0.0396628382904592, 0.0, 0.0, 0.0, 0.026047939672719983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1324912296481703, 0.0, 0.0, 0.0, 0.0, 0.15406810900869447, 0.0, 0.42604244498161886, 0.0, 0.0, 0.6228079510297908, 0.5517488269014854, 0.0, 0.0, 1.3454800388738404, 0.0, 0.0, 0.27878996604355294, 0.14981346752804697, 0.48493565222165463, 0.0, 0.0, 0.175566348560725, 0.0, 0.0, 0.488211234512452, 0.4049191271055379, 0.0, 0.2572596255697597, 0.0, 0.0, 0.0, 0.12860715077271778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19926601116667575, 0.0, 0.0, 0.07981372691290523, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11282549654596616, 0.0, 0.0, 0.0, 0.0, 0.1960709877223577, 0.08463772824948687, 0.6000921975147593, 0.06933209047757498, 0.5903397548150102, 0.4533479677609482, 0.37600376723029033, 0.0, 0.22536704278038036, 0.0, 0.8331675068397575, 0.10858320912285253, 0.0, 0.0, 0.0, 0.0, 0.07235014265388351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3648532188260543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.056011038702209984, 0.0, 0.0, 0.8259337343417852, 0.661246530580228, 0.0, 0.0, 0.7308796928316751, 0.7486200426294148, 0.9189908393837516, 0.08049624774744675, 0.0, 0.6880790783907694, 0.0, 0.29554706458768826, 0.0, 0.13722052816256544, 0.11084092260151136, 0.23626535452605812, 0.0, 0.0, 0.0, 0.011381056978069693, 0.0, 0.0, 0.0, 0.10535317070728263, 0.14543482544301695, 0.0, 0.051239181888286314, 0.0, 0.0, 0.0747577813296711, 0.38519578325327114, 0.0, 0.0, 0.0, 0.31107126997725243, 0.0, 0.062381440699744946, 0.0, 0.0034568921571664145, 0.30403434807575835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08818303936466654, 0.13025353097218012, 0.0, 0.007961594298685966, 0.7271286455077467, 0.0, 0.22219791560962007, 0.3133242399846383, 0.3268548923736554, 0.0, 0.0, 0.0, 0.062043385392843244, 0.0, 0.0, 0.0, 0.5118979232699669, 0.0, 0.0, 0.304968704724498, 0.07757320111041376, 0.0, 0.0, 0.0, 0.36244482394528155, 0.48729955975902517, 0.0, 0.2578809850807504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26405495493704934, 0.0, 0.029266633556388796, 0.0, 1.2110472367818281, 0.0, 0.1187033409885821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2425740129164943, 0.3654529227835142, 0.5153300334395746, 0.0, 0.7303532509990378, 0.0, 0.30280176045543894, 0.0, 0.03763541722633813, 0.0, 0.16154011545850713, 0.3300236906507485, 0.0, 0.3564243509437679, 0.5015875337682285, 0.1275860441701041, 0.4852730978010842, 0.24949859939723054, 0.48822755084987346, 0.5961195445742726, 0.0, 0.4258373206096391, 0.04034804507220536, 0.10905685359790995, 0.23322362309902195, 0.0, 0.0, 0.0, 0.0, 0.04617600763364615, 0.0, 0.0, 0.0, 0.054740847021331536, 0.2289534857639407, 0.0, 0.9566746815161189, 0.5173366928677203, 0.7507086774699239, 0.0, 0.3397283595719449, 0.0, 0.046992692111316466, 0.0, 0.0, 0.0, 0.545517123849588, 0.7385352770089988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.044184743700219443, 0.0, 0.34893340603779743, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03408711743655356, 0.0, 0.0, 0.0, 0.0, 0.10288421033324832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4034440902637878, 0.0, 0.039572494858250686, 0.0, 0.0, 0.02965744996763479, 0.0, 0.0, 0.0, 0.07891932240827818, 0.38097929040006584, 0.5157796766942258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12359808033862156, 0.6117393031610942, 0.0, 0.0, 0.9673911366769413, 0.0, 0.6373984763052702, 0.0, 0.0, 0.0, 0.0, 0.8392753225054719, 0.0, 0.0, 0.0, 0.0, 0.07111900058169553, 0.8489937307498225, 0.0, 0.0, 0.0, 0.2136974454996388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.698777895294578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6214075302206429, 1.036249718606956, 0.288175662886351, 0.30891233093854337, 0.0, 0.0, 0.030879508082115467, 0.0, 0.2558976234079212, 0.0, 0.0, 0.042278765434284306, 0.0, 0.4724462226601247, 0.0, 0.0, 0.0, 0.25363078745957207, 0.0, 0.16744470661332633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7263137977886603, 0.0, 0.0, 0.0, 0.0, 0.4815382645923394, 0.0, 0.5389771095257322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1308584725861496, 0.0, 0.0, 0.08251830255971462, 0.0, 0.0034293294111591966, 0.0, 0.0, 0.28462730006232495, 0.0, 0.0, 0.0, 0.0, 0.7672574634035603, 0.06799234219219645, 0.7686836665518981, 0.0, 0.0, 0.07569662526896655, 0.12433421108969092, 0.029719729594264294, 0.0, 0.0, 0.033375050906541616, 0.0, 0.0, 0.027755923820063425, 0.0, 0.0, 0.06780373210090862, 0.0, 0.062393471497503045, 0.06376572488764005, 0.8812259136810331, 0.11171978836893101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032071316064303, 0.2778418947590191, 0.3836048827669035, 0.0, 0.0, 0.0, 0.0, 0.09600748829358721, 0.12392534705601368, 0.0, 0.9502560961906908, 0.0, 0.17771819515786774, 0.12012525452436125, 0.0, 0.0, 0.0, 0.0, 0.08800052638012112, 0.20460534683496254, 0.07836656003273164, 0.0, 0.0, 0.07733204623742608, 0.07445288630270257, 0.0, 0.09175578431673431, 0.0, 0.0, 0.15710541867277852, 0.0, 0.0, 0.0, 0.9471006301345436, 0.0, 0.8510630894604628, 0.043156570388064336, 0.20190939205426583, 0.0, 0.24328040556319352, 0.0, 0.0, 0.44542258264750934, 0.2732554892966366, 0.3559126085975685, 0.0, 0.0, 0.0, 0.0, 0.15244632551386036, 0.044750397692748425, 0.00015064272565775368, 0.0, 0.0, 0.16975321325404802, 0.0, 0.0, 0.10785372583674148, 0.016893034441964917, 0.0, 0.0, 0.0, 0.44878532871196397, 0.0, 0.0, 0.07579107513921182, 0.04907550677474498, 0.013333642103260275, 0.0630306546556411, 0.0, 0.0, 0.15397482894540573, 0.0, 0.0, 0.0, 0.7932520980106772, 0.0, 0.05504999836643944, 0.0, 0.00024803754949565015, 0.1772448247224359, 0.0, 0.3468482175761097, 0.489095290853196, 0.0, 0.0, 0.0, 0.49187643261565206, 0.08968952021475389, 0.0, 0.308198226139378, 0.0, 0.0, 0.0015257507226665138, 0.0, 0.4760524029218542, 0.13725876569793635, 0.022870502148480364, 0.0, 0.0, 0.5657719191928595, 0.7044371199107592, 0.0, 0.10928958999181013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37407199094140375, 0.04230765786478687, 0.0, 0.47125018764213217, 0.26841666363242983, 0.17159678882355658, 0.0, 0.7745962913367755, 0.0, 0.0, 0.0, 0.002512192133666035, 0.36038961387137014, 0.0, 0.0, 0.0, 0.0, 0.0030060643809689458, 0.0, 0.0, 0.0, 0.018410227422041164, 0.0, 0.1461608376469839, 0.22122149305176325, 0.0, 0.22042404000828647, 0.0, 0.0, 0.3028860300781355, 0.0, 0.8734338428431226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010843395115652311, 0.005239337502791826, 0.0, 0.0, 0.009327907773831686, 0.0, 0.2044511921886214, 0.040228854408754025, 0.0, 0.0, 0.017509071146779225, 0.0, 0.1974149550135206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009353957912913354, 0.0, 0.009791741151994864, 0.267707205354198, 0.0, 0.0, 0.0, 0.23026690546616582, 0.10199610442505093, 0.018990981850212127, 0.781584440023405, 0.0, 0.20124209479398683, 0.08466814366498222, 0.027298809970356448, 0.18532942423497814, 0.0, 0.0, 0.0, 0.07261615073050222, 0.05523527246334513, 0.0, 0.0, 0.0, 0.018577758887185037, 0.007556744576286696, 0.0, 0.0, 0.0, 0.041841469476118526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6999983171558223, 0.059630996036698, 0.03126919391610552, 0.0, 0.0, 0.0, 0.0, 0.13882649349368803, 0.0, 0.7707381738420093, 0.6105281431452728, 0.0, 0.3659349563659441, 0.0, 0.0, 0.792957039057469, 0.0, 0.0, 0.0, 0.0, 0.5578879570307803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7396112185709535, 0.36395144592450657, 0.0, 0.0, 0.0, 0.0, 0.11215320418590438, 0.0, 0.0, 0.0, 0.37591385888738293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20042855252697583, 0.0, 0.0, 0.0, 0.5044932689068156, 0.45830830153566743, 0.0, 0.019010357405419995, 0.3432031229937067, 0.9630609973086364, 0.0, 0.4086466251047053, 1.141575986881623, 0.6190496931553665, 0.6248450596019536, 0.0, 0.0, 0.0, 0.4859500703314839, 0.7752364001615992, 0.24066890708585614, 0.739514646287994, 0.0, 0.0, 0.0, 0.7972651300568858, 0.8044998248681345, 0.0, 0.0, 0.8800727106905054, 0.6774702345165845, 0.0, 0.0, 0.007691494652914049, 0.0, 0.2158362063320794, 0.0, 0.0, 0.3461932102404406, 0.0, 0.8862967368459654, 0.0, 0.5112247277468743, 0.10072082431619588, 0.028194549299716588, 0.29345191211085103, 0.0, 0.5957331179078807, 0.8033379685501598, 0.2763250870762641, 0.0, 0.0, 0.0, 0.2584468323192244, 1.4962170109225457, 0.737036973347589, 0.2163561342681589, 0.35157824666928306, 0.0, 0.0, 0.41592555026126565, 0.0, 0.7335626645924566, 0.0, 0.3824651051446043, 0.0, 0.0, 0.4465623503712833, 0.0, 0.0, 0.0, 0.0, 1.0075622514657745, 0.7531699947855945, 0.0, 0.01688562190231179, 0.0, 0.37637966615105906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26615193276732196, 0.40160098586018766, 0.22111875959610844, 0.7838712501005154, 0.11455850998047643, 0.0, 0.3244597290050513, 0.277935077217096, 0.678296539647923, 0.7943120870076059, 0.0, 0.0, 0.07580591228505294, 0.22739219631322996, 0.0, 0.36799633486687344, 0.13560057928971747, 0.34415022333694595, 0.0, 0.375286097502392, 0.0, 0.0, 0.0, 0.14930770854320144, 0.0, 0.0, 0.18538707235881216, 0.0, 0.0, 0.08415385567314168, 0.0, 0.2805839758523421, 0.30767376323246487, 0.0, 0.0, 0.0, 0.6362548390624749, 0.0, 0.0, 0.0, 0.0, 0.11896074672644522, 0.3082259124522087, 0.0, 0.0, 0.2818460549073561, 0.0, 0.0, 0.41257445550835625, 0.0, 0.053048065787345625, 0.0, 0.0, 0.11304579411509989, 0.034218884366002976, 0.6661360806603157, 0.0, 0.21411392040876626, 0.4841785777481824, 0.39302693151947515, 0.0, 0.21525894026398354, 0.6082774198662322, 0.6563770490501982, 1.3837370014200125, 0.0, 0.0, 0.0, 0.23111477100248784, 0.0, 0.2571742494634567, 0.1875593198419512, 0.10199527697624192, 0.39558938718223496, 0.23356202823127883, 0.0, 0.02146297966152243, 0.6833662064837734, 0.4784087412560625, 0.0, 0.0, 0.4952171342595967, 0.7395829004642561, 0.460637982190491, 0.8327926559189114, 0.20784537658466082, 0.28105967712936836, 0.07867639067477498, 0.0, 0.0, 0.03632767891315117, 0.03736223492624939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09874650817518764, 0.058514193648989486, 0.019680035455543327, 0.0, 0.0, 0.20854380210200846, 0.0, 0.01957821103544756, 0.0, 0.0, 0.0, 0.0, 0.029477943186437056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03018367933290697, 0.001246426225276636, 0.0, 0.0, 0.24436387761375777, 0.04319325220757273, 0.0, 0.0005544873380769801, 0.0, 0.0, 0.0, 0.0, 0.03240374035365331, 0.0, 0.16622987482814208, 0.14572703657816696, 0.0, 0.10691320164555042, 0.0, 0.0, 0.23771054420223764, 0.0, 0.028353365685102484, 0.0, 0.0, 0.42652095476268087, 0.0, 0.0, 0.0, 0.14037068091673455, 0.0, 0.1958655978459535, 0.11013721353955239, 0.0, 0.0, 0.21805933264244692, 0.16486976689470612, 0.5439006978172312, 0.0, 0.0, 0.0, 0.0, 0.08637154070931971, 0.0, 0.0, 0.0, 0.2894991668028485, 0.0, 0.1797369262849939, 0.0, 0.5725198911522605, 0.17418484945225488, 0.0, 0.06213015716122782, 0.0, 0.10490895444261257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6638490918443707, 0.5408789006672917, 0.09595630463039345, 0.37725368293279926, 0.016866261296368933, 0.0, 0.19466688554493405, 0.17773611080285265, 0.0, 0.0, 0.0, 0.24617777466330076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3776666637032188, 0.16143600164517602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07862919495673197, 0.0, 0.2413234196977018, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06779206472141591, 0.0, 0.0, 0.0, 0.0, 0.5076468400331536, 0.0, 0.0, 0.01391829091764819, 0.8212518440711771, 0.0, 0.0, 0.0, 1.108905221486613, 0.1188499796570694, 0.0, 0.0, 0.0, 0.0, 0.22392824827003446, 0.08374521709059522, 1.0377868678426458, 0.0, 0.0, 0.0, 0.06314656483715254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05065689017238068, 0.0, 0.0, 0.6182862700881498, 0.0, 0.0, 0.0, 0.08961698508270353, 0.0, 0.0, 0.0, 0.028552165079219483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046090351907509264, 0.0329968133815159, 0.0, 0.0, 0.0, 0.03171690167459951, 0.0, 0.02138595257853391, 0.0, 0.0, 0.0, 0.0, 0.5659059869109166, 0.0, 0.45486425104211037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009588419023083293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0007952625215232818, 0.0, 0.0, 0.0, 0.007023779107344989, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004358964367081868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006161876385986237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.053700530589800725, 0.0, 0.0022317086420093543, 0.0, 0.0, 0.05852821749944063, 0.516635908828728, 0.2985986620129579, 0.0, 0.6111927478449756, 0.0, 0.5825534608215744, 0.4090183318160424, 0.0, 0.0, 0.04926117981958254, 0.6562128001900569, 0.019340742583046598, 0.19538581363137364, 0.0, 0.0, 0.0, 0.6631613890315422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0406038711512622, 0.0, 0.5618914298633669, 0.0393496168530609, 0.628914960665529, 0.5901431396338964, 0.0, 0.0, 0.0, 0.09249307403952937, 0.35753332158552337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5177254384032435, 0.5834401941969394, 0.37342231634653106, 0.0, 0.0, 0.0, 0.0, 0.08909339054628015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051104660404469975, 0.0, 0.0, 0.0, 0.0, 0.4179127862572812, 0.0, 0.0, 0.0, 0.0, 0.4947946164068441, 0.7667446714679307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039434063584478374, 0.0, 0.0, 0.04843104241813036, 0.0, 0.5144335832828751, 0.0, 0.14581846115367056, 0.4166578844514915, 0.7614285159679925, 0.1630656521589184, 0.22441005680825418, 0.02866208643995639, 0.0, 0.4532407170428936, 0.3020453149417785, 0.07305001099695578, 0.0, 6.132735412841357e-6, 0.0976804037908706, 0.6199019333919525, 0.10006338754398636, 0.0, 0.0, 0.38147706213707766, 0.17006771536151036, 0.21491907339709776, 0.047799731379243794, 0.0, 0.0, 0.0, 6.654191086662508e-6, 0.01765054989887291, 0.0, 0.13362041195455804, 0.17492677428990264, 0.824706676344676, 0.31443512995233835, 0.00785205432182622, 0.13746268939688996, 0.36371132005929235, 0.15385951324448066, 5.921522701045136e-6, 0.0, 0.0, 0.0, 0.08994971181314479, 0.12683928655841373, 0.0, 0.5520092622508177, 0.7084594380639649, 0.0, 0.19562848681502015, 0.0, 0.03299702042160346, 0.0, 0.0, 0.34772152374282883, 0.13492246968382748, 0.12345681563544324, 0.3661265971029467, 0.13447656157275498, 0.0, 0.0, 0.14672418223455458, 0.0, 0.0, 0.0, 0.07499766265833707, 0.0, 0.0, 0.11068125753487118, 0.10089393862599626, 0.0, 0.0, 0.08908047116677639, 0.2015873379074186, 0.10298741816605479, 0.24527252520911447, 0.0, 0.03460879613727743, 0.16720966215203137, 0.013662888409749127, 0.12118730303780559, 0.0, 0.0, 0.0, 0.0, 0.12212178365153345, 0.0, 0.0, 0.005577609659891184, 0.0, 0.0, 0.26991070073046763, 0.0, 0.1174815203046113, 0.041692377559084594, 0.0, 0.5300753779838534, 0.0, 0.0, 0.31928275766072467, 0.1616832599984604, 0.04907933392612172, 0.0, 0.0, 0.0, 0.03821526045987873, 0.0, 0.3049648769572113, 0.1411321941361396, 0.0, 0.0, 0.041593282517463706, 0.13565782467478937, 0.011917705635957943, 0.09372751798208423, 0.22117213861445317, 0.050301121765738824, 0.3526465092680141, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16684332398446952, 0.008272237453333834, 0.0, 0.0, 0.0, 0.2099321573597463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287814803677072, 0.0, 0.4067318447798367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16563163900318595, 0.0, 0.0, 0.0, 0.0, 0.009667754061011632, 0.16959705252964216, 0.0, 0.0, 0.0, 0.56845350906485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3642749168228618, 0.0, 0.0, 0.0, 0.11984491012649627, 0.0, 0.41956953134409886, 0.0, 0.12317090215225207, 0.10102093683672053, 0.5963158912439469, 0.0, 0.4359200535321227, 0.6096786976430637, 0.0, 0.6499247921346847, 0.3073461538590094, 0.1405982316884511, 0.0, 0.04772903972078857, 0.7936024804714342, 0.9185709768343875, 0.0, 0.0, 0.0, 0.5470192570764263, 0.0, 0.21476868150199754, 0.0, 0.19073933171248297, 0.0, 0.3793331332535416, 0.0, 0.0, 0.01964391641210212, 0.0, 0.4378619125703662, 0.8223521000494463, 0.45088443908444353, 0.0, 0.4127633192993181, 0.7065876710503416, 0.12592180772438738, 0.0, 0.257238877891668, 0.1476433349129333, 0.0, 0.0, 0.6125568935640959, 0.11983099560604582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1358449450175441, 0.4856923886029592, 0.1982340562753604, 0.05114032089334242, 0.0, 0.0, 0.0, 0.34526566558380767, 0.0, 0.9079343502122469, 0.0, 0.0, 0.0, 0.019895722205129522, 0.0, 0.0, 0.0, 0.7714661769327793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31723887855236743, 0.0, 1.0495317958683972, 0.0, 0.7769221189304751, 0.0, 0.3594651552897292, 0.1931659239165346, 0.0, 0.0, 0.0, 0.0, 0.18587496888225893, 0.0, 0.014477652583978751, 0.8542571033156305, 0.0, 0.0, 0.0, 0.7347846293218806, 0.3803337673859788, 0.0, 0.0, 0.0, 0.0, 0.12216816529465464, 0.08711085044717441, 0.9436854562373743, 0.0, 0.0, 0.0, 0.19518451942944104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15016206786962047, 0.0, 0.0, 0.0, 0.5560042822620145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09321859870063849, 0.0, 0.0, 0.10827134941090288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1798518802325591, 0.0, 0.006417885147557111, 0.0159284523840847, 0.0, 0.16831380706777663, 0.0, 0.0, 0.0, 0.0, 0.0011820045463448933, 0.12724558967212649, 0.0, 0.0, 0.0, 0.14166391990604377, 0.0416750433027245, 0.055619565309699526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019332972712293686, 0.0, 0.0, 0.0, 0.01387244209455808, 0.11676747434216192, 0.0, 0.668276571400472, 0.11316052499395393, 0.0, 0.0, 0.0, 0.08695671597540733, 0.0, 0.0, 0.0, 0.0, 0.1964135023100263, 0.10797072815481346, 1.0763277030656333, 0.2696605992966385, 0.0, 0.008523313764823862, 0.506568380299954, 0.0, 0.032308115066342104, 0.0, 0.0, 0.38865688229464423, 0.0, 0.06005515175011382, 0.41556879130475816, 0.0, 0.0, 0.0, 0.03345947819837139, 0.0, 0.0, 0.0, 0.4958150659228213, 0.013511443741365857, 0.0, 0.0, 0.3848802389406841, 0.6796486976984905, 0.48129339927534, 0.0, 0.0, 0.019040654623360107, 0.7224444805840577, 0.04874639236388979, 0.0, 0.06426589870448678, 0.05319623403578879, 0.0, 0.15672070660980222, 0.0, 0.017033728136402918, 0.0, 0.08893706026336692, 0.0, 0.0, 0.0, 0.5487476129882687, 0.0, 0.15373184613084703, 0.04326471846211246, 0.22217865785086524, 0.2718297910539172, 0.0, 0.514430285095647, 0.002053672195206153, 0.0, 0.0, 0.0, 0.0, 0.21853919696408158, 0.0005532519945171588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37120039072692296, 0.43803271578487757, 0.31766672717556577, 0.0, 0.0, 0.0, 0.08026542821449031, 0.0, 0.235827620380954, 0.33254366820014003, 0.2686363331540573, 0.0, 0.0, 0.0, 0.06397748514988684, 0.21835360234859336, 0.0, 0.0, 0.4207199716601354, 0.0, 0.2634641669240437, 0.32367560122479555, 0.08233157081159413, 0.6620846217534156, 0.0, 0.3608913493520587, 0.38467732748933553, 0.0, 0.0, 0.21194788219064958, 0.0, 0.17239581808619228, 0.0, 0.05772352142055052, 0.0, 0.2170221602935571, 0.0, 0.0, 0.3867463771605307, 0.7274124563110836, 0.47713236111314844, 0.0, 0.2802647113151722, 0.49577669395011376, 0.11064312843188615, 0.5577384537186072, 0.0, 0.0, 0.0, 0.0, 0.42232119497840825, 0.0, 0.6660939990696797, 0.0, 0.0, 0.0, 0.03313428015688339, 0.05353962018206741, 0.0, 0.0, 0.0, 0.013909404170161314, 0.06142458692982868, 0.0, 0.4232534811180027, 0.0, 0.014492828854647392, 0.08738978198228943, 0.0, 0.2602424099063423, 0.0, 0.2510099113339794, 0.01352683366266603, 0.040192721606149735, 0.0, 0.16988522552757826, 0.0, 0.017854314097131885, 0.14128282204278342, 0.01562985045651764, 0.0, 0.5192290571749145, 0.0, 0.06339353874663697, 0.0, 0.11558641537807815, 0.0, 0.12937379361463164, 0.19594344599337632, 0.0, 0.0, 0.0, 0.0, 0.5398764845949043, 0.19451932421561768, 0.2519126729176587, 0.3410459315418626, 0.0, 0.0, 0.23421455529817845, 0.8809966008694553, 0.0, 0.0, 0.0830150881250035, 0.0, 0.0, 0.1611328831713825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.678075267927486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5149677006256428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5835127942681666, 0.3135624868315288, 0.0]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.40798272794029244, 0.0, 0.05552236202954211, 0.0, 0.0, 0.0, 1.1508129348205518, 0.0, 0.19395356472348033, 0.2307481734593406, 0.0, 0.0, 0.0, 0.0, 0.7400687115958035, 0.0, 0.0, 0.4711198057610666, 0.0, 0.07015028050595504, 0.08663540769774136, 0.0, 0.0, 0.46359958748433167, 0.0, 0.035823254967012344, 0.0, 0.21605429332119105, 0.050389255833200065, 0.0, 0.0, 0.08982343514212215, 0.0, 0.11508828733565957, 0.4022461237733094, 0.0, 0.5232411380476881, 0.0, 0.17677960337865342, 0.6347058701128525, 0.0, 0.0, 0.0, 0.080760767105778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.530417945120141, 0.036947581649449654, 0.0, 0.42172014534542845, 0.0, 0.0, 0.0, 0.04046090790460827, 0.0, 0.0, 0.0, 0.0, 0.016730358390191713, 0.11216899138664496, 0.10090277285890621, 0.3770798811678483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06022016698365358, 0.0, 0.3347277070064448, 0.08319806447593037, 0.0, 0.0, 0.15734979027583865, 0.6034963214197537, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8559793301235343, 0.0, 0.0221818618958444, 0.0, 0.0, 0.0, 0.0, 0.6249640468245943, 0.0, 0.706457127780651, 0.8381987455683932, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05075027829145945, 0.0, 0.0, 0.28298860880763127, 0.0, 0.46775948880043733, 0.3276758676884306, 0.23162154119323575, 0.0, 0.0, 0.7097058534293814, 0.0, 0.01925480712564137, 0.6617464495997725, 0.5510119129346432, 0.9503030089786222, 0.19493828703065708, 0.4234771306495736, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11491839349038546, 0.0, 0.0, 0.0, 0.0, 0.0, 0.952344347120024, 0.31481029761912926, 0.0, 0.0, 0.3371532262514988, 0.0, 0.6461986748500718, 0.0, 0.20388394461232018, 0.6689077519036521, 0.008065708303756284, 0.026774581755143884, 0.0, 0.0, 0.0, 0.0, 0.20246692989511542, 0.0, 0.0, 0.0, 0.0, 0.6964472745009185, 0.0, 0.3001098015546565, 0.0, 0.002810485733837209, 0.0, 0.0, 0.2833439267406652, 0.0, 0.0, 0.0, 0.01365478232442864, 0.0, 0.07752931191170997, 0.005400497114468351, 0.01008472602077043, 0.7305457354717977, 0.0, 0.0, 0.3791767135274968, 0.009729638043940761, 0.14133243937397577, 0.0, 0.6050992861887972, 0.0, 0.0, 0.0, 0.0, 0.32748073574326575, 0.29782974023215064, 0.0, 0.0, 0.0, 0.0, 0.008516959572353846, 0.0, 0.0, 0.0, 0.5188617620854502, 0.0, 0.12960309538886133, 0.0, 0.2159060099855789, 0.0, 0.0, 0.0, 0.5916658876154497, 0.0, 0.08410324034674674, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7242114416300933, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.43295426032070555, 0.1879551877902947, 0.09140698995628445, 0.0, 0.0, 0.0, 0.0, 0.053834983759932134, 0.014210556502435533, 0.023024626002393696, 0.0, 0.0, 0.08510060429095491, 0.15442202399960203, 0.0, 0.5391171356753139, 0.0, 0.44855253786204935, 0.048493606647816025, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22138370024934187, 0.0, 0.08746644969030876, 0.0, 0.0, 0.0, 0.1616519416528851, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.035084084514750494, 0.0, 0.11688517594508105, 0.2089391042079727, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05598779403983851, 0.014778823268485956, 0.0, 0.0, 0.0, 0.0, 0.057780108315529474, 0.0, 0.201721527067654, 0.0, 0.3341648455181398, 0.0, 0.0, 0.7601477683176978, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8032144106029788, 0.0, 0.18178069418497272, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6936206835397086, 0.0, 0.36283080196789974, 0.4415514891805875, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.041591186808888826, 0.3770004419200786, 0.0, 0.0, 0.0, 0.17252416859375463, 0.0, 0.0, 0.6527400000425327, 0.0, 0.3340575108846618, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7763472218770214, 0.0, 0.0, 0.0, 0.0, 0.8376247582699287, 0.0, 0.014460886244840168, 0.6266762938745922, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.46397397404593055, 0.0, 0.23926875754339813, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.46347904589364963, 0.05902942262309747, 0.0, 0.03877718275846287, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2950495413884076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06597380264866397, 1.0898197013430582, 0.0, 0.012501862454917015, 0.0, 0.0, 0.05385941027253928, 0.0, 0.3522343881391282, 0.0, 0.398164495085241, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004630463685504157, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25876266416388005, 0.0, 0.0, 0.3103356146935319, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6074148238597709, 0.09425255656440318, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0032593418386170935, 0.0, 0.2297346969390008, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12055792386342427, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25324185315889564, 0.0, 0.05731281617489229, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21868854065637486, 0.0, 0.0, 0.13921477990069736, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.013113097926933236, 0.11886277100269102, 0.0, 0.0, 0.0, 0.0, 0.0, 0.52224991418746, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4173873832595858, 0.08858709037486684, 0.0, 0.0, 0.0, 0.0, 0.15667266254329507, 0.0, 0.40730912125206437, 0.5164653515440787, 0.0, 0.2032159032369745, 0.40587691627032874, 0.0, 0.0, 0.0, 0.0340034080482809, 0.0, 0.0, 0.15427161497649788, 0.44428262792688017, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.014262992619462008, 0.38024333666677773, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1612065141710269, 0.0, 0.03925137009723705, 0.0, 0.0078366311533161, 0.0, 0.014460397168610369, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06667255880132161, 0.0, 0.14952781464402123, 0.0, 0.0, 0.0, 0.0, 0.2779234999305725, 0.0, 0.008746314891451676, 0.0, 0.0, 0.06465282563196756, 0.0, 0.2464235137262255, 0.006899580599861792, 0.278556260330773, 0.007445268802069765, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18845739307946788, 0.01641249348500929, 0.5317378389887557, 0.0, 0.0, 0.14988438489574235, 0.0, 0.010375471289624015, 1.3557213333649594, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18808146093167488, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37253241298417417, 0.0, 0.1111794727253734, 0.16963583085055012, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10986305912788819, 0.0, 0.0, 0.11949895822624457, 0.0, 0.0, 0.15821760502340373, 0.0, 0.5523682427180556, 0.0, 0.4595776329669528, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.33581328744582783, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24138228903328196, 0.0, 0.3691306800612154, 0.0, 0.0, 0.0, 0.0, 0.0, 1.232394871494877, 0.0, 0.0, 0.0, 0.5293521525003586, 0.0, 0.48349454590588176, 0.0, 0.0, 0.6981988327823653, 0.0, 0.0, 0.0, 0.0, 0.0, 0.33600003819418794, 0.10493510524858034, 0.1002766625939797, 0.0, 0.4760848715940903, 0.30327936688968893, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15549653856407664, 0.053555423141422365, 0.33124643300151746, 0.1452133754699813, 0.29863037601205833, 0.5069679636197618, 0.0, 1.2650777504013886, 0.0, 0.0, 0.8010376870067246, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8336854027224526, 0.0, 0.0, 0.0, 0.0, 0.013135866634354858, 0.7693584995036987, 0.0, 0.0, 0.0, 0.1809386811488775, 0.18409266358857004, 0.0, 0.8209089663283375, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6269731623222802, 0.0, 0.0, 0.0, 0.0, 0.8578109001691112, 0.13549697762155272, 0.8892025809188543, 0.0, 0.17753144998442447, 0.0, 0.3275865900116729, 0.37045604078207667, 0.0, 0.0, 0.45942273296787417, 0.0, 0.0, 0.1496601554416231, 0.0, 0.4896166566389182, 0.09296161452877622, 0.0, 0.15295686770265157, 0.0, 0.0, 0.0, 0.18412880463476564, 0.0, 0.19671721658454625, 0.0, 0.0, 0.15630345798009787, 0.0, 0.16866550691184853, 0.0, 0.3962565901298767, 0.0, 0.0, 0.009054605400028368, 0.0, 0.0, 0.0, 0.0, 0.6323717354885464, 0.0, 0.27367929286054155, 1.074929147630902, 0.1458067334724375, 0.22417700682510228, 0.0, 0.10951695376531846, 0.0, 0.007581110002282966, 0.24931277842808883, 0.0, 0.6883954376611309, 0.6336690200937254, 0.2666286675338324, 0.0, 0.0, 0.0, 0.0, 0.2876738228687025, 0.0, 0.0, 0.21522568832904387, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0438812752886428, 0.6525143726026617, 0.0, 0.0, 0.0, 0.0, 0.0, 1.1869853573228195, 0.11631516482088484, 0.0, 0.0, 0.0, 0.0, 0.06506946683877823, 0.0, 0.22717008671076838, 0.10242247240104177, 0.18900849588618046, 0.11442201255265518, 0.5664450740439114, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019408932182682588, 0.20321698947174538, 1.233551723482737, 0.3258945612095407, 0.0, 0.13004560449904765, 0.0, 0.5146863326888748, 0.0, 0.0, 0.26506893163091566, 0.6961290235591785, 0.7308179758735578, 0.019108835994024305, 0.0, 0.0, 0.12318551581994355, 0.0, 0.6633736020985646, 0.09733981959320877, 0.6085861256804133, 0.0, 0.3702803270823883, 0.0, 0.31915877170632656, 0.0, 0.0048098299833409025, 0.08330917183364514, 0.03767139221212642, 0.0, 0.0, 0.7595521482230864, 0.0, 0.40492576086384785, 0.9767048148851073, 0.0, 0.7118250358317957, 1.4759259446598505, 0.6177251878074594, 0.0, 0.0, 0.5578474164235181, 0.0, 0.0, 0.0, 0.8466209961003106, 0.0, 0.0, 0.0, 0.0, 0.9134452822413822, 0.0, 0.0, 1.1506817448958997, 0.0, 0.0, 0.5717156136201251, 0.0, 0.0, 0.0, 0.0, 0.22301492152906585, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13134314230830874, 0.20762859161099162, 0.0, 0.4768286902241477, 0.0, 0.3252201513410915, 0.5728390197892637, 0.07274257736444308, 0.0946619273240044, 0.0, 0.08735695093663028, 0.0, 0.006047124502145837, 0.0, 0.0, 0.03396077178506113, 0.056902676891892164, 0.05446213354503342, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03284486748482166, 0.0, 0.03394228891521373, 0.0, 0.0, 0.0, 0.15913459349815823, 0.0988686644243417, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06403136572671528, 0.0008539041494970381, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4996043959310575, 0.03466871274471111, 0.0, 0.0, 0.0, 0.5916091668585121, 0.0, 0.0, 0.18522959478004286, 0.0, 0.0, 0.6748263739107161, 0.0, 0.0, 0.5617854630926186, 0.0, 0.7191769350887419, 0.22919875305609166, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07421634147547619, 0.2082330820676049, 0.0, 0.33671550924577986, 0.0, 0.0, 0.8216886233224614, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9288637557541211, 0.0, 0.0, 1.2410393190221276, 0.024834505618206743, 0.6697889027661909, 0.39618825585335343, 0.37106318592637155, 0.321662062811288, 0.0, 0.8625204846142658, 0.4737807718760894, 0.8171062776340833, 0.16785258111865808, 1.931465974538034, 0.1820623956052182, 0.0, 0.40831479446929375, 0.0, 1.6290713896950666, 0.0, 0.0, 1.0235643660149811, 0.0, 0.0, 0.0, 0.0, 0.996334540430692, 0.0, 0.0, 0.44156504893800563, 0.289897027676234, 0.0, 0.5556259307084835, 0.0, 0.0, 0.5751570179061616, 0.0, 0.15465163640644544, 0.0, 0.0, 0.0, 0.0, 0.1740886831542383, 0.8206341762594166, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8467869185435447, 0.05898504962060997, 0.03624481511042625, 0.6732560722166093, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.201694060644539, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4141926752107277, 0.14795154825402113, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21427949262749374, 0.46809092516056994, 0.0, 0.16828675961297507, 0.14194253863939424, 0.0, 0.46436829494386733, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13445486993921502, 0.019720618408469233, 0.2722006890254698, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06550905522135163, 0.04806777087710764, 0.0, 0.0, 0.0, 0.599761835300619, 0.0, 0.0, 0.5741431736534577, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17101973439245724, 0.0, 0.0, 0.0749875087919759, 0.0, 0.0, 0.28776812087676407, 0.8309016545414952, 0.0, 0.0, 0.0, 0.016199069272106216, 0.0, 0.0, 0.0, 0.0, 0.6545099569258361, 0.22702193109653576, 0.04569906480983916, 0.2833580027667076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11138860511768055, 0.062440751035711506, 0.5182620734767335, 0.0, 0.3481758497366363, 0.0, 0.4677994729760326, 0.6992526088901763, 0.01746909322126967, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4416823398234807, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08074443292335906, 0.005624454367769537, 0.4953841958649777, 0.06419759041251974, 0.0, 0.0, 0.0, 0.03378063280221251, 0.27793271609589054, 0.0, 0.0, 0.0, 0.013968102118739474, 0.0, 0.08424327814659714, 0.057402094804332435, 0.0, 0.0, 0.0333773112405404, 0.0, 0.0, 0.0, 0.020814415925578544, 0.050277550690626754, 0.07266714943835642, 0.05420980100927718, 0.1299217183065535, 0.0, 0.0, 0.3197221256849075, 0.0, 0.13800911480490768, 0.0, 0.0, 0.0, 0.0, 1.01268183989861, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7358814757212789, 0.30707785521832553, 0.5276131242565835, 0.0, 0.1743689886750783, 0.0, 0.25821885501181596, 0.5805464694386301, 0.7164948773890167, 0.0, 0.0, 0.0, 0.37021123955626156, 0.12525001349038106, 0.608077535649827, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0938347119534369, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17530069799945608, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6839828466860547, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0036702000371577168, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.030804733252794536, 0.6085396823865649, 0.3664826840226463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.052310575793324585, 0.23438841535865984, 0.027151249553211434, 0.42665810243765545, 0.060892623345148826, 0.0, 0.0, 0.08445468462850356, 0.05478879427510317, 0.5501718854551394, 0.0, 0.11343808432438283, 0.0, 0.09259962343643532, 0.2732186452567139, 0.0, 0.42011946077495216, 0.2576342392674693, 0.0, 0.5090094423403475, 0.0, 0.0, 0.0, 0.0010952054350690443, 0.08086253983246877, 0.0, 0.0, 0.23985944027024297, 0.0, 0.09028722397131896, 0.0, 0.07674602267622682, 0.43900489287844074, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3006474050100551, 0.0, 0.0, 0.0709455536446502, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24893625570967048, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2768131690025365, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0014853584531852684, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2394367041087018, 0.8202130158779322, 0.0, 0.0, 0.28871220094126887, 0.0, 0.0, 0.04358483751824937, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.052964062286445145, 0.0, 0.2958896434064324, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.695162332188878, 0.037163387811150035, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0679762361139716, 0.0, 0.0, 0.24678121036961095, 0.0, 0.0, 0.2964710587865061, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0759598903032082, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07295585235760724, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0603439559536301, 0.0, 0.0, 0.0, 0.17528000283667142, 0.0, 0.12675745187805368, 0.328557971512483, 0.028687306018592266, 0.0, 0.0, 0.8516002254500735, 0.0, 0.4371253184691764, 0.13991121920676916, 0.0, 0.3475458448096685, 0.46894433815651543, 0.0, 0.0, 0.6068029321085694, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.28015080493647854, 0.3107571390829928, 0.0, 0.0, 0.0, 0.0, 0.006563618369995558, 0.5906679530337167, 0.0, 0.0, 0.0, 0.6525869879262292, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00921986700494424, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04479484649111107, 0.0, 0.3151409942990884, 0.021951930030038837, 0.0, 0.2505595957731255, 0.0, 0.0, 0.0, 0.03191831493444459, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22403715744289487, 0.0, 0.0, 0.0, 0.0, 0.0, 0.027940093628006875, 0.0, 0.0, 0.0, 0.26553429437558146, 0.0, 0.030379801994009328, 0.0, 1.223521302648351, 0.3114612281119979, 0.3934859798468234, 0.0, 0.3688885410084021, 0.0, 0.5211677391443227, 0.318605826264122, 0.11794887163110916, 0.0, 0.0, 0.4256936617495534, 0.0, 0.49172025370622324, 0.48430956473476544, 0.0, 1.3234474260067457, 0.28650182105087124, 0.006913853673799038, 0.28826288884375384, 0.3033256150127764, 0.0, 0.19416551553442815, 0.19479473776455275, 0.0, 0.2201952762677155, 0.0, 0.0, 0.34956927181897907, 0.0, 0.0, 0.0, 0.5335997378219544, 0.1831214497933391, 0.5101375543135913, 0.0, 0.7417718286797346, 0.0, 0.23966647500006097, 0.8693502490764229, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21247306643180602, 0.1378389271943791, 0.0, 0.0, 0.2853901797463675, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20343586472727235, 0.29392458170687635, 0.011188169832657642, 0.0, 0.0, 0.28953305486076913, 0.0, 0.0, 0.07223789467137894, 0.0, 0.33051308113923733, 0.4540345661588786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9537370190824367, 0.0, 0.6089477015288718, 0.0, 0.07722630190963325, 0.0, 0.0, 1.0000222254545443, 0.8637206744494375, 0.0, 0.7751920658363071, 0.524298363554463, 0.0, 0.0, 0.01676078910810196, 0.0, 0.0, 0.07604278960261779, 0.0, 0.0, 0.0, 0.0, 0.40940877803475156, 0.0, 0.0, 0.0, 0.0, 0.09252661041066143, 0.44765043171933794, 0.0, 0.24055976047324873, 0.0, 0.15100552643910237, 0.35800810608226774]), 42), 42)),) diff --git a/test/test_parallel.jl b/test/test_parallel.jl index 08ed24e89..46bc4629f 100644 --- a/test/test_parallel.jl +++ b/test/test_parallel.jl @@ -44,6 +44,129 @@ end end + AFormat = SparseList(Dense(Element(0.0))) + At = Tensor(AFormat, A) + BFormat = Dense(SparseList(Element(0.0))) + Bt = Tensor(BFormat, B) + Ct = Tensor(Dense(Dense(Element(0.0))), zeros(42, 42)) + @repl io @finch_code begin + Ct .= 0 + for i = parallel(_) + for j = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end + @repl io @finch begin + Ct .= 0 + for i = parallel(_) + for j = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end + + @test Ct == CR + + + @repl io @finch_code begin + Ct .= 0 + for i = _ + for j = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end + @repl io @finch begin + Ct .= 0 + for i = _ + for j = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end + + @test Ct == CR + + @repl io @finch_code begin + Ct .= 0 + for j = parallel(_) + for i = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end + @repl io @finch begin + Ct .= 0 + for j = parallel(_) + for i = _ + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end + + @test Ct == CR + + + @repl io @finch_code begin + Ct .= 0 + for j = _ + for i = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end + @repl io @finch begin + Ct .= 0 + for j = _ + for i = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end + + @test Ct == CR + + @repl io @finch_code begin + Ct .= 0 + for j = parallel(_) + for i = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end + @repl io @finch begin + Ct .= 0 + for j = parallel(_) + for i = parallel(_) + for k = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end + + @test Ct == CR + +#= formats = [Dense, SparseList] for fmatA1 in formats for fmatA2 in formats @@ -154,10 +277,58 @@ end end end - end + end =# @test check_output("debug_parallel_spmms_no_atomics.txt", String(take!(io))) end + let + io = IOBuffer() + A = fsprand(42, 42, 0.1) + B = fsprand(42, 42, 0.1) + CR = Tensor(Dense(Dense(Element(0.0))), zeros(42, 42)) + @repl io @finch begin + CR .= 0 + for i = _ + for j = _ + for k = _ + CR[i, j] += A[i, k] * B[k, j] + end + end + end + end + + AFormat = SparseList(Dense(Element(0.0))) + At = Tensor(AFormat, A) + BFormat = Dense(SparseList(Element(0.0))) + Bt = Tensor(BFormat, B) + Ct = Tensor(Dense(Dense(Atomic(Element(0.0)))), zeros(42, 42)) + + @repl io @finch_code begin + Ct .= 0 + for i = _ + for j = _ + for k = parallel(_) + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end + @repl io @finch begin + Ct .= 0 + for i = _ + for j = _ + for k = parallel(_) + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end + + @test Ct == CR + + @test check_output("debug_parallel_spmms_atomics.txt", String(take!(io))) + end + let io = IOBuffer() A = Tensor(Dense(SparseList(Element(0.0))), [1 2; 3 4]) From 2807d2bc21f6209c0eb1326adf7046d16334f363 Mon Sep 17 00:00:00 2001 From: teocollin1995 Date: Mon, 12 Feb 2024 11:48:05 -0500 Subject: [PATCH 04/41] make sure alternative fails --- test/test_parallel.jl | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/test/test_parallel.jl b/test/test_parallel.jl index 46bc4629f..5802f57ec 100644 --- a/test/test_parallel.jl +++ b/test/test_parallel.jl @@ -302,6 +302,22 @@ BFormat = Dense(SparseList(Element(0.0))) Bt = Tensor(BFormat, B) Ct = Tensor(Dense(Dense(Atomic(Element(0.0)))), zeros(42, 42)) + CBad = Tensor(Dense(Dense((Element(0.0)))), zeros(42, 42)) + + @test_throws Finch.FinchConcurrencyError + begin + @finch_code begin + Ct .= 0 + for i = _ + for j = _ + for k = parallel(_) + CBad[i, j] += A[i, k] * B[k, j] + end + end + end + end + end + @repl io @finch_code begin Ct .= 0 From a70c7328f7da9142e27ae2664d92dee10ae910ec Mon Sep 17 00:00:00 2001 From: teocollin1995 Date: Mon, 12 Feb 2024 11:52:12 -0500 Subject: [PATCH 05/41] analysis problems... --- test/reference64/debug_parallel_spmms_no_atomics.txt | 12 ++++++------ test/test_parallel.jl | 3 +-- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/test/reference64/debug_parallel_spmms_no_atomics.txt b/test/reference64/debug_parallel_spmms_no_atomics.txt index ded3925d2..bfc366dac 100644 --- a/test/reference64/debug_parallel_spmms_no_atomics.txt +++ b/test/reference64/debug_parallel_spmms_no_atomics.txt @@ -8,7 +8,7 @@ julia> @finch begin end end end -(CR = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.40798272794029244, 0.0, 0.05552236202954211, 0.0, 0.0, 0.0, 1.1508129348205518, 0.0, 0.19395356472348033, 0.2307481734593406, 0.0, 0.0, 0.0, 0.0, 0.7400687115958035, 0.0, 0.0, 0.4711198057610666, 0.0, 0.07015028050595504, 0.08663540769774136, 0.0, 0.0, 0.46359958748433167, 0.0, 0.035823254967012344, 0.0, 0.21605429332119105, 0.050389255833200065, 0.0, 0.0, 0.08982343514212215, 0.0, 0.11508828733565957, 0.4022461237733094, 0.0, 0.5232411380476881, 0.0, 0.17677960337865342, 0.6347058701128525, 0.0, 0.0, 0.0, 0.080760767105778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.530417945120141, 0.036947581649449654, 0.0, 0.42172014534542845, 0.0, 0.0, 0.0, 0.04046090790460827, 0.0, 0.0, 0.0, 0.0, 0.016730358390191713, 0.11216899138664496, 0.10090277285890621, 0.3770798811678483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06022016698365358, 0.0, 0.3347277070064448, 0.08319806447593037, 0.0, 0.0, 0.15734979027583865, 0.6034963214197537, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8559793301235343, 0.0, 0.0221818618958444, 0.0, 0.0, 0.0, 0.0, 0.6249640468245943, 0.0, 0.706457127780651, 0.8381987455683932, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05075027829145945, 0.0, 0.0, 0.28298860880763127, 0.0, 0.46775948880043733, 0.3276758676884306, 0.23162154119323575, 0.0, 0.0, 0.7097058534293814, 0.0, 0.01925480712564137, 0.6617464495997725, 0.5510119129346432, 0.9503030089786222, 0.19493828703065708, 0.4234771306495736, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11491839349038546, 0.0, 0.0, 0.0, 0.0, 0.0, 0.952344347120024, 0.31481029761912926, 0.0, 0.0, 0.3371532262514988, 0.0, 0.6461986748500718, 0.0, 0.20388394461232018, 0.6689077519036521, 0.008065708303756284, 0.026774581755143884, 0.0, 0.0, 0.0, 0.0, 0.20246692989511542, 0.0, 0.0, 0.0, 0.0, 0.6964472745009185, 0.0, 0.3001098015546565, 0.0, 0.002810485733837209, 0.0, 0.0, 0.2833439267406652, 0.0, 0.0, 0.0, 0.01365478232442864, 0.0, 0.07752931191170997, 0.005400497114468351, 0.01008472602077043, 0.7305457354717977, 0.0, 0.0, 0.3791767135274968, 0.009729638043940761, 0.14133243937397577, 0.0, 0.6050992861887972, 0.0, 0.0, 0.0, 0.0, 0.32748073574326575, 0.29782974023215064, 0.0, 0.0, 0.0, 0.0, 0.008516959572353846, 0.0, 0.0, 0.0, 0.5188617620854502, 0.0, 0.12960309538886133, 0.0, 0.2159060099855789, 0.0, 0.0, 0.0, 0.5916658876154497, 0.0, 0.08410324034674674, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7242114416300933, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.43295426032070555, 0.1879551877902947, 0.09140698995628445, 0.0, 0.0, 0.0, 0.0, 0.053834983759932134, 0.014210556502435533, 0.023024626002393696, 0.0, 0.0, 0.08510060429095491, 0.15442202399960203, 0.0, 0.5391171356753139, 0.0, 0.44855253786204935, 0.048493606647816025, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22138370024934187, 0.0, 0.08746644969030876, 0.0, 0.0, 0.0, 0.1616519416528851, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.035084084514750494, 0.0, 0.11688517594508105, 0.2089391042079727, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05598779403983851, 0.014778823268485956, 0.0, 0.0, 0.0, 0.0, 0.057780108315529474, 0.0, 0.201721527067654, 0.0, 0.3341648455181398, 0.0, 0.0, 0.7601477683176978, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8032144106029788, 0.0, 0.18178069418497272, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6936206835397086, 0.0, 0.36283080196789974, 0.4415514891805875, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.041591186808888826, 0.3770004419200786, 0.0, 0.0, 0.0, 0.17252416859375463, 0.0, 0.0, 0.6527400000425327, 0.0, 0.3340575108846618, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7763472218770214, 0.0, 0.0, 0.0, 0.0, 0.8376247582699287, 0.0, 0.014460886244840168, 0.6266762938745922, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.46397397404593055, 0.0, 0.23926875754339813, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.46347904589364963, 0.05902942262309747, 0.0, 0.03877718275846287, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2950495413884076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06597380264866397, 1.0898197013430582, 0.0, 0.012501862454917015, 0.0, 0.0, 0.05385941027253928, 0.0, 0.3522343881391282, 0.0, 0.398164495085241, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004630463685504157, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25876266416388005, 0.0, 0.0, 0.3103356146935319, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6074148238597709, 0.09425255656440318, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0032593418386170935, 0.0, 0.2297346969390008, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12055792386342427, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25324185315889564, 0.0, 0.05731281617489229, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21868854065637486, 0.0, 0.0, 0.13921477990069736, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.013113097926933236, 0.11886277100269102, 0.0, 0.0, 0.0, 0.0, 0.0, 0.52224991418746, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4173873832595858, 0.08858709037486684, 0.0, 0.0, 0.0, 0.0, 0.15667266254329507, 0.0, 0.40730912125206437, 0.5164653515440787, 0.0, 0.2032159032369745, 0.40587691627032874, 0.0, 0.0, 0.0, 0.0340034080482809, 0.0, 0.0, 0.15427161497649788, 0.44428262792688017, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.014262992619462008, 0.38024333666677773, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1612065141710269, 0.0, 0.03925137009723705, 0.0, 0.0078366311533161, 0.0, 0.014460397168610369, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06667255880132161, 0.0, 0.14952781464402123, 0.0, 0.0, 0.0, 0.0, 0.2779234999305725, 0.0, 0.008746314891451676, 0.0, 0.0, 0.06465282563196756, 0.0, 0.2464235137262255, 0.006899580599861792, 0.278556260330773, 0.007445268802069765, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18845739307946788, 0.01641249348500929, 0.5317378389887557, 0.0, 0.0, 0.14988438489574235, 0.0, 0.010375471289624015, 1.3557213333649594, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18808146093167488, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37253241298417417, 0.0, 0.1111794727253734, 0.16963583085055012, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10986305912788819, 0.0, 0.0, 0.11949895822624457, 0.0, 0.0, 0.15821760502340373, 0.0, 0.5523682427180556, 0.0, 0.4595776329669528, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.33581328744582783, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24138228903328196, 0.0, 0.3691306800612154, 0.0, 0.0, 0.0, 0.0, 0.0, 1.232394871494877, 0.0, 0.0, 0.0, 0.5293521525003586, 0.0, 0.48349454590588176, 0.0, 0.0, 0.6981988327823653, 0.0, 0.0, 0.0, 0.0, 0.0, 0.33600003819418794, 0.10493510524858034, 0.1002766625939797, 0.0, 0.4760848715940903, 0.30327936688968893, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15549653856407664, 0.053555423141422365, 0.33124643300151746, 0.1452133754699813, 0.29863037601205833, 0.5069679636197618, 0.0, 1.2650777504013886, 0.0, 0.0, 0.8010376870067246, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8336854027224526, 0.0, 0.0, 0.0, 0.0, 0.013135866634354858, 0.7693584995036987, 0.0, 0.0, 0.0, 0.1809386811488775, 0.18409266358857004, 0.0, 0.8209089663283375, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6269731623222802, 0.0, 0.0, 0.0, 0.0, 0.8578109001691112, 0.13549697762155272, 0.8892025809188543, 0.0, 0.17753144998442447, 0.0, 0.3275865900116729, 0.37045604078207667, 0.0, 0.0, 0.45942273296787417, 0.0, 0.0, 0.1496601554416231, 0.0, 0.4896166566389182, 0.09296161452877622, 0.0, 0.15295686770265157, 0.0, 0.0, 0.0, 0.18412880463476564, 0.0, 0.19671721658454625, 0.0, 0.0, 0.15630345798009787, 0.0, 0.16866550691184853, 0.0, 0.3962565901298767, 0.0, 0.0, 0.009054605400028368, 0.0, 0.0, 0.0, 0.0, 0.6323717354885464, 0.0, 0.27367929286054155, 1.074929147630902, 0.1458067334724375, 0.22417700682510228, 0.0, 0.10951695376531846, 0.0, 0.007581110002282966, 0.24931277842808883, 0.0, 0.6883954376611309, 0.6336690200937254, 0.2666286675338324, 0.0, 0.0, 0.0, 0.0, 0.2876738228687025, 0.0, 0.0, 0.21522568832904387, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0438812752886428, 0.6525143726026617, 0.0, 0.0, 0.0, 0.0, 0.0, 1.1869853573228195, 0.11631516482088484, 0.0, 0.0, 0.0, 0.0, 0.06506946683877823, 0.0, 0.22717008671076838, 0.10242247240104177, 0.18900849588618046, 0.11442201255265518, 0.5664450740439114, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019408932182682588, 0.20321698947174538, 1.233551723482737, 0.3258945612095407, 0.0, 0.13004560449904765, 0.0, 0.5146863326888748, 0.0, 0.0, 0.26506893163091566, 0.6961290235591785, 0.7308179758735578, 0.019108835994024305, 0.0, 0.0, 0.12318551581994355, 0.0, 0.6633736020985646, 0.09733981959320877, 0.6085861256804133, 0.0, 0.3702803270823883, 0.0, 0.31915877170632656, 0.0, 0.0048098299833409025, 0.08330917183364514, 0.03767139221212642, 0.0, 0.0, 0.7595521482230864, 0.0, 0.40492576086384785, 0.9767048148851073, 0.0, 0.7118250358317957, 1.4759259446598505, 0.6177251878074594, 0.0, 0.0, 0.5578474164235181, 0.0, 0.0, 0.0, 0.8466209961003106, 0.0, 0.0, 0.0, 0.0, 0.9134452822413822, 0.0, 0.0, 1.1506817448958997, 0.0, 0.0, 0.5717156136201251, 0.0, 0.0, 0.0, 0.0, 0.22301492152906585, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13134314230830874, 0.20762859161099162, 0.0, 0.4768286902241477, 0.0, 0.3252201513410915, 0.5728390197892637, 0.07274257736444308, 0.0946619273240044, 0.0, 0.08735695093663028, 0.0, 0.006047124502145837, 0.0, 0.0, 0.03396077178506113, 0.056902676891892164, 0.05446213354503342, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03284486748482166, 0.0, 0.03394228891521373, 0.0, 0.0, 0.0, 0.15913459349815823, 0.0988686644243417, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06403136572671528, 0.0008539041494970381, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4996043959310575, 0.03466871274471111, 0.0, 0.0, 0.0, 0.5916091668585121, 0.0, 0.0, 0.18522959478004286, 0.0, 0.0, 0.6748263739107161, 0.0, 0.0, 0.5617854630926186, 0.0, 0.7191769350887419, 0.22919875305609166, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07421634147547619, 0.2082330820676049, 0.0, 0.33671550924577986, 0.0, 0.0, 0.8216886233224614, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9288637557541211, 0.0, 0.0, 1.2410393190221276, 0.024834505618206743, 0.6697889027661909, 0.39618825585335343, 0.37106318592637155, 0.321662062811288, 0.0, 0.8625204846142658, 0.4737807718760894, 0.8171062776340833, 0.16785258111865808, 1.931465974538034, 0.1820623956052182, 0.0, 0.40831479446929375, 0.0, 1.6290713896950666, 0.0, 0.0, 1.0235643660149811, 0.0, 0.0, 0.0, 0.0, 0.996334540430692, 0.0, 0.0, 0.44156504893800563, 0.289897027676234, 0.0, 0.5556259307084835, 0.0, 0.0, 0.5751570179061616, 0.0, 0.15465163640644544, 0.0, 0.0, 0.0, 0.0, 0.1740886831542383, 0.8206341762594166, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8467869185435447, 0.05898504962060997, 0.03624481511042625, 0.6732560722166093, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.201694060644539, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4141926752107277, 0.14795154825402113, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21427949262749374, 0.46809092516056994, 0.0, 0.16828675961297507, 0.14194253863939424, 0.0, 0.46436829494386733, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13445486993921502, 0.019720618408469233, 0.2722006890254698, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06550905522135163, 0.04806777087710764, 0.0, 0.0, 0.0, 0.599761835300619, 0.0, 0.0, 0.5741431736534577, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17101973439245724, 0.0, 0.0, 0.0749875087919759, 0.0, 0.0, 0.28776812087676407, 0.8309016545414952, 0.0, 0.0, 0.0, 0.016199069272106216, 0.0, 0.0, 0.0, 0.0, 0.6545099569258361, 0.22702193109653576, 0.04569906480983916, 0.2833580027667076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11138860511768055, 0.062440751035711506, 0.5182620734767335, 0.0, 0.3481758497366363, 0.0, 0.4677994729760326, 0.6992526088901763, 0.01746909322126967, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4416823398234807, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08074443292335906, 0.005624454367769537, 0.4953841958649777, 0.06419759041251974, 0.0, 0.0, 0.0, 0.03378063280221251, 0.27793271609589054, 0.0, 0.0, 0.0, 0.013968102118739474, 0.0, 0.08424327814659714, 0.057402094804332435, 0.0, 0.0, 0.0333773112405404, 0.0, 0.0, 0.0, 0.020814415925578544, 0.050277550690626754, 0.07266714943835642, 0.05420980100927718, 0.1299217183065535, 0.0, 0.0, 0.3197221256849075, 0.0, 0.13800911480490768, 0.0, 0.0, 0.0, 0.0, 1.01268183989861, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7358814757212789, 0.30707785521832553, 0.5276131242565835, 0.0, 0.1743689886750783, 0.0, 0.25821885501181596, 0.5805464694386301, 0.7164948773890167, 0.0, 0.0, 0.0, 0.37021123955626156, 0.12525001349038106, 0.608077535649827, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0938347119534369, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17530069799945608, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6839828466860547, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0036702000371577168, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.030804733252794536, 0.6085396823865649, 0.3664826840226463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.052310575793324585, 0.23438841535865984, 0.027151249553211434, 0.42665810243765545, 0.060892623345148826, 0.0, 0.0, 0.08445468462850356, 0.05478879427510317, 0.5501718854551394, 0.0, 0.11343808432438283, 0.0, 0.09259962343643532, 0.2732186452567139, 0.0, 0.42011946077495216, 0.2576342392674693, 0.0, 0.5090094423403475, 0.0, 0.0, 0.0, 0.0010952054350690443, 0.08086253983246877, 0.0, 0.0, 0.23985944027024297, 0.0, 0.09028722397131896, 0.0, 0.07674602267622682, 0.43900489287844074, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3006474050100551, 0.0, 0.0, 0.0709455536446502, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24893625570967048, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2768131690025365, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0014853584531852684, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2394367041087018, 0.8202130158779322, 0.0, 0.0, 0.28871220094126887, 0.0, 0.0, 0.04358483751824937, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.052964062286445145, 0.0, 0.2958896434064324, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.695162332188878, 0.037163387811150035, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0679762361139716, 0.0, 0.0, 0.24678121036961095, 0.0, 0.0, 0.2964710587865061, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0759598903032082, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07295585235760724, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0603439559536301, 0.0, 0.0, 0.0, 0.17528000283667142, 0.0, 0.12675745187805368, 0.328557971512483, 0.028687306018592266, 0.0, 0.0, 0.8516002254500735, 0.0, 0.4371253184691764, 0.13991121920676916, 0.0, 0.3475458448096685, 0.46894433815651543, 0.0, 0.0, 0.6068029321085694, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.28015080493647854, 0.3107571390829928, 0.0, 0.0, 0.0, 0.0, 0.006563618369995558, 0.5906679530337167, 0.0, 0.0, 0.0, 0.6525869879262292, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00921986700494424, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04479484649111107, 0.0, 0.3151409942990884, 0.021951930030038837, 0.0, 0.2505595957731255, 0.0, 0.0, 0.0, 0.03191831493444459, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22403715744289487, 0.0, 0.0, 0.0, 0.0, 0.0, 0.027940093628006875, 0.0, 0.0, 0.0, 0.26553429437558146, 0.0, 0.030379801994009328, 0.0, 1.223521302648351, 0.3114612281119979, 0.3934859798468234, 0.0, 0.3688885410084021, 0.0, 0.5211677391443227, 0.318605826264122, 0.11794887163110916, 0.0, 0.0, 0.4256936617495534, 0.0, 0.49172025370622324, 0.48430956473476544, 0.0, 1.3234474260067457, 0.28650182105087124, 0.006913853673799038, 0.28826288884375384, 0.3033256150127764, 0.0, 0.19416551553442815, 0.19479473776455275, 0.0, 0.2201952762677155, 0.0, 0.0, 0.34956927181897907, 0.0, 0.0, 0.0, 0.5335997378219544, 0.1831214497933391, 0.5101375543135913, 0.0, 0.7417718286797346, 0.0, 0.23966647500006097, 0.8693502490764229, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21247306643180602, 0.1378389271943791, 0.0, 0.0, 0.2853901797463675, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20343586472727235, 0.29392458170687635, 0.011188169832657642, 0.0, 0.0, 0.28953305486076913, 0.0, 0.0, 0.07223789467137894, 0.0, 0.33051308113923733, 0.4540345661588786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9537370190824367, 0.0, 0.6089477015288718, 0.0, 0.07722630190963325, 0.0, 0.0, 1.0000222254545443, 0.8637206744494375, 0.0, 0.7751920658363071, 0.524298363554463, 0.0, 0.0, 0.01676078910810196, 0.0, 0.0, 0.07604278960261779, 0.0, 0.0, 0.0, 0.0, 0.40940877803475156, 0.0, 0.0, 0.0, 0.0, 0.09252661041066143, 0.44765043171933794, 0.0, 0.24055976047324873, 0.0, 0.15100552643910237, 0.35800810608226774]), 42), 42)),) +(CR = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.08838669783079417, 0.24540062578718655, 0.0, 0.0, 0.0, 0.0, 0.2598139726110033, 0.0, 0.0, 0.008999058499533074, 0.10561231293601407, 0.018993358540021866, 0.3713088213439608, 0.1272213104915037, 0.0, 0.04569648380052932, 0.0, 0.6778277114032399, 0.0, 1.0116444857173326, 0.1419594034849179, 0.849786220982489, 0.1853715018708835, 0.0, 0.41575027296468353, 0.027919812909200686, 0.38129764067914484, 0.0, 0.010472223603003109, 0.32765224234190193, 0.0, 0.0, 0.0, 0.27657062580546904, 0.018635375946533275, 0.0, 0.6553105493426397, 0.1806768240966126, 0.0, 0.0, 0.13022235819683495, 0.0, 0.0, 0.0096207645890863, 0.0, 0.0, 0.0, 0.0, 0.0027620603050478813, 0.0, 0.0, 0.0, 0.0, 0.06777735948867263, 0.16424694314849322, 0.05466156243395641, 0.0, 0.3550122664783007, 0.0, 0.16598631348758813, 0.0, 0.09916577661749644, 0.0, 0.0, 0.017171766504479664, 0.14883499722913907, 0.14454297081157494, 0.0, 0.0, 0.0, 0.08135785354072747, 0.18934501987281463, 0.0, 0.0, 0.0, 0.043171173549343585, 0.04442771737900286, 0.0, 0.0, 0.16847976307679274, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4519419326045341, 0.0022494085401006682, 0.0, 0.09264806290445121, 0.0, 0.0, 0.5779259042074504, 0.0, 0.0, 0.0, 0.01319039039025495, 0.0, 0.0, 0.05821123759190987, 0.008570313787111606, 0.12498925860233108, 0.3161944438230963, 0.0, 0.0, 0.0, 0.0, 0.03428001709676162, 0.0, 0.0, 0.0, 0.4239046512601812, 0.0, 0.0, 0.0, 0.0, 0.006439869364205756, 0.0, 0.19268641103781292, 0.0, 0.0, 0.0, 0.13842608775449636, 0.7754112567712441, 0.5650474898241402, 0.16678352690096504, 0.0, 0.0, 0.26721012017234747, 0.0, 0.0, 0.40379612390902914, 0.0, 0.5616249905190419, 0.0, 0.0, 0.0, 0.05914491909738165, 0.0, 0.0, 0.5796881176474965, 0.0, 0.0, 0.0, 0.0, 0.19259492607938428, 0.5396680351153355, 0.1002017616669876, 0.0, 0.0, 0.07018769309449151, 0.0, 0.0, 0.0, 0.8890997886610695, 0.01580855669802033, 0.07592126473643429, 0.0, 0.0, 0.5327597008182733, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26650628783183555, 0.0, 0.0, 0.4177758368274485, 0.01847646120309497, 0.2474671864399932, 0.030137257707486417, 0.0, 0.0, 0.0, 0.0, 0.4333965515966774, 0.0, 0.025363517487659904, 0.0, 0.0, 0.28727696476738296, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.48463873218296616, 0.3619901497543638, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3095355097692787, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08881016246594031, 0.0864536634210502, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13334438240099766, 0.0, 0.2743296378950603, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21573236386631758, 0.138874394226427, 0.21526827303910834, 0.0, 0.8276738568887637, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13803323038392623, 0.0, 0.0, 0.18937725647626488, 0.0, 0.09756025088965181, 0.10247093349242449, 0.14247269057616566, 0.0, 0.4644170645216008, 0.0, 0.0, 0.0, 0.6396576582705668, 0.0, 0.14648223852485512, 0.0, 0.3845502326592231, 0.0, 0.0, 0.0, 0.0, 0.01873756402105984, 0.01865952833886222, 0.015020499411212522, 0.0, 0.11259829701043601, 0.13537240455394534, 0.18963280616455852, 0.0, 0.1732077631723114, 0.0, 0.009279305276553587, 0.0, 0.09430577452314615, 0.07566718263303025, 0.06172210939249301, 0.0, 0.0, 0.0017837976727260341, 0.0, 0.0, 0.06543462567823881, 0.0621898641418941, 0.0, 0.0, 0.0, 0.41468742426256355, 0.21475258071539002, 0.0, 0.0, 0.08728790458911416, 0.0, 0.0, 0.4956863169283368, 0.0, 0.0, 0.3312300382813116, 0.0, 0.6814401538748236, 0.017040189816468283, 0.0, 0.0, 0.0, 0.0, 0.1702496303089558, 0.04558027585085677, 0.0, 0.0, 0.05652088848846798, 0.0, 0.0, 0.039516412285590885, 0.04836078861030929, 0.0, 0.0, 0.0, 0.0066658135086557066, 0.28756231542228783, 0.0, 0.0, 0.005213055047386901, 0.0, 0.03077146873270733, 0.0, 0.18174661292486113, 0.011855817392138795, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2550943184597343, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19130663987033655, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08795782309469964, 0.4949588224757624, 0.10547057221471998, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0428147611319233, 0.0, 0.4336529209634745, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10981699391447328, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14060207841669792, 0.19125923680987167, 0.17120811796462362, 0.0, 0.0, 0.29682703146376954, 0.2309028098716656, 0.0, 0.3415808438027304, 0.5413871431291847, 0.19010077735847383, 0.0, 0.0, 0.0, 0.037176095928915485, 0.0, 0.0, 0.19621484736356867, 0.46400800412758475, 0.6251709107930822, 0.11840971377140953, 0.5297289566486542, 0.0, 0.0, 0.0629827610017505, 0.0, 0.30811879649367063, 0.0, 0.43390554368076734, 0.0, 0.3078202365484454, 0.0, 0.0, 0.06464271443386868, 0.0, 0.0, 0.7925386152607364, 0.0, 0.0, 0.0, 0.0, 0.4871987999416911, 0.0, 0.0, 0.0, 0.026241068751647587, 0.4048536827096608, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04667237073016084, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008398941803472277, 0.0, 0.3462604046867109, 0.0, 0.41520221547875746, 0.0, 0.0, 0.0, 0.49209502240450126, 0.6693906625198521, 0.19758221668125867, 0.008160985490142467, 0.2605302099636665, 0.0, 0.0, 0.0, 0.9022483783960523, 1.0694729952381887, 0.6653361553880242, 0.881281776229774, 0.001915716390555032, 0.022482711824403312, 0.0040432994483474245, 0.0, 0.3214035783779074, 0.6867348676262818, 0.0, 0.6858420722534031, 0.0, 0.5811377322397425, 0.04246482918579259, 0.11467932906673921, 0.09709202075873843, 0.0, 0.0, 0.0, 0.2200140216993193, 0.0, 0.7507517442378999, 0.0, 0.0, 0.7372603142185328, 0.0, 0.006741369353138395, 0.8069776586909365, 0.00396709224045839, 0.0, 0.0, 0.0, 0.6101879525945185, 0.0, 0.0, 0.026258353794755256, 0.4016774417320984, 0.014813931005383318, 0.6190727226045784, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11309418362565873, 0.0, 0.0, 0.0, 0.0, 0.0, 0.036526440507301174, 0.022956711251180283, 0.40907708831845013, 0.0012453094708774737, 0.0, 0.0, 0.0, 0.0, 0.014062827632021033, 0.0, 0.0, 0.0, 0.006394809610240893, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21784527989974428, 0.0, 0.0, 0.0, 0.3180108962002836, 0.2508741672819204, 0.17523704698611114, 0.13837147224686994, 0.27935616728122964, 0.1859955338163167, 0.0, 0.06462126637992056, 1.0008493550472979, 0.6004231261661688, 0.0, 0.3940831570768702, 0.0, 0.0, 0.1305734964236071, 0.0, 0.09786792103897592, 0.0, 0.11654231814191775, 0.46697515894469777, 0.5700094853415558, 0.1107417067979406, 0.346111937724667, 0.0, 0.1225882117910605, 0.0, 0.28673152989464684, 0.0, 0.12654022793408917, 0.0, 0.0, 0.45809293367016757, 0.3647743355850667, 0.817304098176075, 0.0036334642288677415, 0.0, 0.2669922423479005, 0.0, 0.0, 0.0, 0.32457729111200295, 0.5543705739187803, 0.8812247175026642, 0.16912005088903598, 0.5020073987686707, 0.0, 0.09252856828989332, 0.0, 0.0, 0.0, 0.06948083164247039, 0.2588335470174883, 0.23431107957691064, 0.0, 0.0, 0.4609326565956409, 0.0981996119487529, 0.0, 0.0, 0.0, 0.0, 0.41461953421729686, 0.2880401034246727, 0.0, 0.12878680297473977, 0.5528442548314576, 0.8638211211778427, 0.0, 0.19329232440572794, 0.07190135483727589, 0.0, 0.37985878824980135, 0.0, 0.0, 0.47943873587199365, 0.0, 0.1632157826430328, 0.028602417984395823, 0.12587604601890898, 0.20239239184313712, 0.0, 0.9957002205667365, 0.5403020941861382, 0.1731723605204449, 0.5984215188307392, 0.5906299727726914, 0.15421128542459664, 0.22417177182593684, 0.14760215442934868, 0.0, 0.0, 0.10452572448334531, 0.0, 0.0, 0.5192893646261969, 0.0, 0.0, 0.0, 0.03548389098440683, 0.0, 0.0, 0.5359908824860568, 0.0, 0.0, 0.4508397689271815, 0.17912612646003018, 0.05191685886593687, 0.015041105758856862, 0.0, 0.0, 0.07792048637164595, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16284516279577882, 0.07019827463547235, 0.0, 0.0017166852898648512, 0.022601665621833984, 0.0, 0.0, 0.0, 0.08820522946301469, 0.0, 0.0, 0.4597721334804677, 0.0, 0.01968862180697655, 0.1496625833744818, 0.0, 0.0, 0.0, 0.0, 0.042967175515187854, 0.0, 0.5925889649898668, 0.03501818713399176, 0.0, 0.23929946904107768, 0.0, 0.0, 0.0, 0.0, 0.0, 0.586042846539397, 0.0, 0.35012160211964255, 0.0, 0.0, 0.2671275149044985, 0.5254872140248491, 0.0, 0.0, 0.0, 0.4346599048698998, 0.0, 0.6685147232492785, 0.0, 0.0, 0.006603260891096502, 0.41222164853295895, 0.691126666160783, 0.3115253982735278, 0.0, 0.5948463934358659, 0.0, 0.6104915934501508, 0.0, 0.10122959156761935, 0.0, 0.0, 0.4361142638019697, 0.0, 0.0, 0.022953207777356696, 0.01768983406390727, 0.0, 0.49300859199961644, 0.0, 0.45242065570193146, 0.0, 0.25296290668039206, 0.24913417193879323, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0036117281801281323, 0.37981219294125684, 0.0, 0.7813883080906168, 0.37787984308171674, 0.0, 0.3540795182413977, 0.0, 0.0, 0.024079641916532137, 0.0, 0.3372996465844834, 0.4587109366214878, 0.0, 0.0, 0.0, 0.0, 0.008167928328435794, 0.30985126085873477, 0.0, 0.1769552845849796, 0.01014740975340464, 0.3239445526321744, 0.2589119416659987, 0.30500724408067964, 0.0, 0.8521343659652334, 0.0, 0.12278148254603906, 0.0, 0.0, 0.7559317032710442, 0.0, 0.4639073457870384, 0.3375990135598286, 0.0, 0.09771802789528808, 0.0, 0.0, 0.0, 0.0, 0.14259284539732897, 0.0, 0.0, 0.0, 0.03978581978010784, 0.4979059043742451, 0.0, 0.0, 0.02239395579386129, 0.0, 0.0, 0.08552679542089565, 0.0, 0.28975782063069117, 0.4544199284136855, 0.4879966224465369, 0.0, 0.5198773678370044, 0.09074414747732065, 0.0, 0.0, 0.0, 0.08751115961530397, 0.0, 0.0, 0.0, 0.0, 0.01723069885490719, 0.005476104703094391, 0.0, 0.0, 0.0, 0.0, 0.0, 0.018363845689630152, 0.0, 0.0, 0.0, 0.03456818780211805, 0.16076784648973388, 0.1339929852951158, 0.12939203287442297, 0.6506668934574178, 0.07556479761019191, 0.0, 0.0, 0.1120835499344092, 0.004448105032597938, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.424200452243984, 0.21870476868551994, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04400733534916703, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5084860468121182, 0.0, 0.0, 0.0, 0.06613225218879751, 0.0, 0.0, 0.03227907593043655, 0.0, 0.01489513919323321, 0.0, 0.0, 0.0004903768608608706, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3709186680024144, 0.0057636955333438475, 0.0, 0.0, 0.0, 0.0, 0.05167292145382253, 0.03114794005970685, 0.0, 0.0, 0.0, 0.04406332427000894, 0.0, 0.28333618254852055, 0.0, 0.0, 0.08754290037370453, 0.0, 0.030717709851121017, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15375069919642081, 0.17266284464812964, 0.0, 0.0, 0.0, 0.0, 0.4591427931520538, 0.0, 0.0, 0.4080740928256236, 0.04867028613084824, 0.0, 0.0, 0.19198247076461217, 0.0, 0.0, 0.0, 0.04903912896069461, 0.0, 0.0, 0.0, 0.03565133307467186, 0.011864802664565318, 0.0, 0.0770587282490205, 0.06882991093352155, 0.0, 0.32659059563162995, 0.036557980918752765, 0.0, 0.0, 0.0, 0.0, 0.03137440184410096, 0.0, 0.0, 0.0, 0.18642661293603366, 0.0, 0.0, 0.0, 0.0, 0.06772257249589227, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21100355273002191, 0.0, 1.3416336420880526, 0.0, 0.0, 0.46161810723264507, 0.0, 0.4582995461192519, 0.05104879083246295, 0.5773364122618407, 0.57352236887648, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5640999064171196, 0.6666836020552119, 0.06886868779194379, 0.564904097158741, 0.0, 0.3210670084651615, 0.0, 0.0, 0.0, 0.9392890324745945, 0.0, 0.0, 0.2984250122811811, 0.0, 0.009405052137469182, 0.0, 0.39950267169818077, 0.07050196115427894, 0.824636783426293, 0.4953951141450468, 0.0, 0.0, 0.34635403119710667, 0.8798483938054087, 0.39347138128916365, 0.0, 0.0, 0.41085938784277987, 0.0, 0.7572672907360996, 0.0, 0.1918766456362537, 0.14775814623354722, 0.0, 0.0, 0.18414622884752666, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32881972797464193, 0.22733765531865868, 0.29775899283396906, 0.0, 0.0, 0.0, 0.0387256895819095, 0.5151993362991701, 0.0, 0.0, 0.0, 0.008722287803381279, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1780184121162673, 0.0, 0.0, 0.0, 0.0, 0.0511079535437104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05738054033260683, 0.0, 0.0, 0.3177388426930726, 0.0, 0.0, 0.0019725686702392773, 0.0, 0.0, 0.0, 0.0, 0.20770780211002965, 0.0, 0.0, 0.0, 0.8220710140576788, 0.0, 0.0, 0.0, 0.0, 0.9922981121231631, 0.19272059014741777, 0.18871634512759347, 0.009978475777936804, 0.5372065554785002, 0.0, 0.0, 0.17523452577386275, 1.0717089910255204, 0.5571949298413089, 0.0, 0.3237380570219946, 0.0, 1.1122472434174695, 0.10030606802210519, 0.0, 0.42164300445661296, 0.0, 0.2034243141927581, 0.0, 1.0210169552267845, 0.19689099390765805, 0.14675887656145528, 0.15859984719751974, 0.2247981968120587, 0.0, 0.22026608101531156, 0.5078755745015515, 0.2690121908665218, 0.0, 0.0, 0.0, 0.3746062674772627, 0.7584612913730437, 0.0, 0.0, 0.8749551201631387, 0.5887430555293698, 0.8247249363546676, 0.21469878981542115, 1.002630449124598, 0.2572736542055717, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005299432156408299, 0.06219376030445952, 0.011184949515597283, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11747014454387752, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1628689565677918, 0.010974138077104432, 0.0, 0.0, 0.0, 0.0, 1.0297896192318396, 0.0, 0.662355409415741, 0.5720482757502646, 0.3113118281374319, 0.0, 0.0, 0.25393001900118484, 0.02276308091998572, 0.03508485404358758, 0.45957926224802004, 0.0, 0.05036277933399867, 0.1447652248957086, 0.0, 0.0242600552046752, 0.005732716773973234, 0.0, 0.0, 0.04566723978074626, 0.007798132412071851, 0.435160826872351, 0.19099152935556227, 0.0, 0.09109198019072849, 0.0, 0.0, 0.0, 0.0, 0.040872817508571836, 0.0, 0.8816978299630381, 0.023385944730671186, 0.20852512378086208, 0.3265908462108258, 0.0, 0.8135187830099228, 0.5004561612521131, 0.5929930445509373, 0.07024535595608956, 0.4293153063068892, 0.33966138448698774, 0.0, 0.0, 0.219723330992236, 0.0, 0.0, 0.32087091161635517, 0.10046935863374477, 0.0, 0.21249664109114016, 0.0, 0.0, 0.5675920409330384, 0.0, 0.0, 0.02195446551553763, 0.0, 0.0, 0.0, 0.7828555360473642, 0.0, 0.0, 0.0, 0.539158201637973, 0.0, 0.037194676308406484, 0.0, 0.5899620450765102, 0.0, 1.064333300573155, 0.0, 0.4126616356723095, 0.0, 0.0, 0.0, 0.0, 0.005455259856546277, 0.06532462900349355, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6382915607944724, 0.0, 0.1058392854111573, 0.06419509685388734, 0.0, 0.0, 0.42600921169580896, 0.0, 0.6948705846598551, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7494592390120385, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.34703521803027376, 0.47959926529853425, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18954560408868362, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04058791510732469, 0.0, 0.0, 0.0, 0.026371559760006224, 0.46735915191246824, 0.9729562858716514, 0.0, 0.01593384874339247, 0.0, 0.0, 0.10548242945325798, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08182217469250767, 0.0, 0.0, 0.0, 0.0, 0.5929119201290493, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0028851424117770368, 0.14902256810885017, 0.0, 0.19393473922191487, 0.0010822975481770052, 0.10083006827906865, 0.005589290532560041, 0.0, 0.0377329438822351, 0.0, 0.0, 0.0, 0.0, 0.08622227292139113, 0.0, 0.0, 0.052960874748722735, 0.0, 0.0, 0.0, 0.040542431602682394, 0.0, 0.034748695303796415, 0.0, 0.0, 0.07778126624009696, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08990369242695052, 0.0, 0.0, 0.0, 0.0, 0.1714300400506459, 0.23319412483505944, 0.06883127399553583, 0.0, 0.0, 0.4520065142603474, 0.7559043080573538, 0.0, 0.9918256875421747, 0.34148047573693957, 0.23178166527267935, 0.1984049383893502, 0.0, 0.0, 0.0, 0.4618215114400494, 0.055660721213669, 0.23923628669541208, 0.0, 0.0, 0.39945045771087084, 0.3329245273531598, 0.25602890393383043, 0.0, 0.2574713970419185, 0.0, 0.0, 0.27848743576980106, 0.008801495971424074, 0.0, 0.0, 0.0, 0.0, 0.4961604274582618, 0.0, 0.0, 0.5434029369831717, 0.0, 0.0, 0.0, 0.0, 0.15767180411659634, 0.03460197933312267, 0.0, 0.0, 0.036131085316488384, 0.0, 0.0, 0.0, 0.016873683938744447, 0.019906225883667222, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.012507180486519448, 0.0, 0.02685500739865508, 0.028916495513405534, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029742024653825302, 1.0585077478673894, 0.0, 0.0, 0.10450313655197234, 0.0, 0.27087506529662764, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7518068036153462, 0.0, 0.2680435440340337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1316435251098364, 0.8078731280911045, 0.0, 0.0, 0.0, 0.10506968633342718, 0.23470506622896917, 0.0, 0.0, 0.607722294332459, 0.023665118775296444, 0.014839085130224942, 0.0, 0.0, 0.24386571546932873, 0.0, 0.0, 0.3502050356771847, 0.0, 0.0, 0.46379933676520235, 0.0, 0.08440789641107996, 0.04593440835303492, 0.021386035200774683, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7729032574550468, 0.0, 0.11781868003483978, 0.030607043037187642, 0.0, 0.1726108187023696, 0.09583059716129254, 0.5239548125179947, 0.4366934746091282, 0.0, 0.0, 0.24627150409293175, 0.0, 0.13007997889130285, 0.36528893478699903, 0.18318396866765946, 0.0, 0.011811348038501769, 0.0, 0.0, 0.0, 0.0, 0.0, 1.1723218684731558, 0.5524938653991974, 0.7739462295109258, 0.0, 0.7069108871009565, 0.0, 1.1639912229987677, 0.0, 0.0737216927746314, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.41689243790078717, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7826638975615551, 0.0, 0.0, 0.0, 0.1017910453533696, 0.0, 0.0, 0.0, 0.0, 0.022926661938484392, 0.0, 0.0, 0.24172521220469304, 0.33406187082542654, 0.0, 0.0, 0.31010342596966556, 0.0, 0.0, 1.1081747068991343, 0.7344335908166203, 0.16327913698089802, 0.7325151937485493, 0.17384385605370836, 0.08371482373128411, 0.0, 0.3420940653006234, 0.0, 0.04990946505718503, 0.5498243469410863, 0.0, 0.007722420577405236, 0.0906297807361463, 0.016298894248894004, 0.0, 0.17760842474448457, 0.7445477489471244, 0.0, 0.0, 0.23271741543898974, 0.5862478840032251, 0.38013450552556605, 0.0, 0.13625107884748244, 0.3102878234624971, 0.0, 0.0, 0.0613418632643825, 0.1222024301534575, 0.0, 0.0, 0.09768999149541487, 0.07432603695941839, 0.0, 0.0, 0.2373353492409029, 0.8187850328888507, 0.0, 0.1472545596990393, 0.08055057930039017, 0.0, 0.0, 0.0, 0.0, 0.022056121851574153, 0.7041166858972707, 0.0, 0.0, 0.0, 0.7708181971148897, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6591456110142444, 0.0, 0.0, 0.0, 0.5151326583061712, 0.4293405940090164, 0.0, 0.30993576190130123, 0.24212487706484054, 0.0, 0.0, 0.35913833699197834, 0.594616431743019, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7007742613782065, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07822848175716028, 0.0, 0.795037704009975, 0.0, 0.18176747614492506, 0.0, 0.0, 0.0, 0.0, 0.05218428597433502, 0.551641665900435, 0.0, 0.0, 0.0, 0.0, 0.4173251650328503, 0.13888627164939463, 0.0, 0.9020292850308806, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32443041606173034, 0.0, 0.3672605285185933, 0.0, 0.0, 0.0, 0.20671726976925492, 0.0, 0.0, 0.38426107037286794, 0.0, 0.0, 1.3158788906540237, 0.0, 0.0, 0.33314012692337136, 0.4077019730262151]), 42), 42)),) julia> @finch_code begin Ct .= 0 for i = parallel(_) @@ -246,7 +246,7 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.40798272794029244, 0.0, 0.05552236202954211, 0.0, 0.0, 0.0, 1.1508129348205518, 0.0, 0.19395356472348033, 0.2307481734593406, 0.0, 0.0, 0.0, 0.0, 0.7400687115958035, 0.0, 0.0, 0.4711198057610666, 0.0, 0.07015028050595504, 0.08663540769774136, 0.0, 0.0, 0.46359958748433167, 0.0, 0.035823254967012344, 0.0, 0.21605429332119105, 0.050389255833200065, 0.0, 0.0, 0.08982343514212215, 0.0, 0.11508828733565957, 0.4022461237733094, 0.0, 0.5232411380476881, 0.0, 0.17677960337865342, 0.6347058701128525, 0.0, 0.0, 0.0, 0.080760767105778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.530417945120141, 0.036947581649449654, 0.0, 0.42172014534542845, 0.0, 0.0, 0.0, 0.04046090790460827, 0.0, 0.0, 0.0, 0.0, 0.016730358390191713, 0.11216899138664496, 0.10090277285890621, 0.3770798811678483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06022016698365358, 0.0, 0.3347277070064448, 0.08319806447593037, 0.0, 0.0, 0.15734979027583865, 0.6034963214197537, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8559793301235343, 0.0, 0.0221818618958444, 0.0, 0.0, 0.0, 0.0, 0.6249640468245943, 0.0, 0.706457127780651, 0.8381987455683932, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05075027829145945, 0.0, 0.0, 0.28298860880763127, 0.0, 0.46775948880043733, 0.3276758676884306, 0.23162154119323575, 0.0, 0.0, 0.7097058534293814, 0.0, 0.01925480712564137, 0.6617464495997725, 0.5510119129346432, 0.9503030089786222, 0.19493828703065708, 0.4234771306495736, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11491839349038546, 0.0, 0.0, 0.0, 0.0, 0.0, 0.952344347120024, 0.31481029761912926, 0.0, 0.0, 0.3371532262514988, 0.0, 0.6461986748500718, 0.0, 0.20388394461232018, 0.6689077519036521, 0.008065708303756284, 0.026774581755143884, 0.0, 0.0, 0.0, 0.0, 0.20246692989511542, 0.0, 0.0, 0.0, 0.0, 0.6964472745009185, 0.0, 0.3001098015546565, 0.0, 0.002810485733837209, 0.0, 0.0, 0.2833439267406652, 0.0, 0.0, 0.0, 0.01365478232442864, 0.0, 0.07752931191170997, 0.005400497114468351, 0.01008472602077043, 0.7305457354717977, 0.0, 0.0, 0.3791767135274968, 0.009729638043940761, 0.14133243937397577, 0.0, 0.6050992861887972, 0.0, 0.0, 0.0, 0.0, 0.32748073574326575, 0.29782974023215064, 0.0, 0.0, 0.0, 0.0, 0.008516959572353846, 0.0, 0.0, 0.0, 0.5188617620854502, 0.0, 0.12960309538886133, 0.0, 0.2159060099855789, 0.0, 0.0, 0.0, 0.5916658876154497, 0.0, 0.08410324034674674, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7242114416300933, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.43295426032070555, 0.1879551877902947, 0.09140698995628445, 0.0, 0.0, 0.0, 0.0, 0.053834983759932134, 0.014210556502435533, 0.023024626002393696, 0.0, 0.0, 0.08510060429095491, 0.15442202399960203, 0.0, 0.5391171356753139, 0.0, 0.44855253786204935, 0.048493606647816025, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22138370024934187, 0.0, 0.08746644969030876, 0.0, 0.0, 0.0, 0.1616519416528851, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.035084084514750494, 0.0, 0.11688517594508105, 0.2089391042079727, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05598779403983851, 0.014778823268485956, 0.0, 0.0, 0.0, 0.0, 0.057780108315529474, 0.0, 0.201721527067654, 0.0, 0.3341648455181398, 0.0, 0.0, 0.7601477683176978, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8032144106029788, 0.0, 0.18178069418497272, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6936206835397086, 0.0, 0.36283080196789974, 0.4415514891805875, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.041591186808888826, 0.3770004419200786, 0.0, 0.0, 0.0, 0.17252416859375463, 0.0, 0.0, 0.6527400000425327, 0.0, 0.3340575108846618, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7763472218770214, 0.0, 0.0, 0.0, 0.0, 0.8376247582699287, 0.0, 0.014460886244840168, 0.6266762938745922, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.46397397404593055, 0.0, 0.23926875754339813, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.46347904589364963, 0.05902942262309747, 0.0, 0.03877718275846287, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2950495413884076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06597380264866397, 1.0898197013430582, 0.0, 0.012501862454917015, 0.0, 0.0, 0.05385941027253928, 0.0, 0.3522343881391282, 0.0, 0.398164495085241, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004630463685504157, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25876266416388005, 0.0, 0.0, 0.3103356146935319, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6074148238597709, 0.09425255656440318, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0032593418386170935, 0.0, 0.2297346969390008, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12055792386342427, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25324185315889564, 0.0, 0.05731281617489229, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21868854065637486, 0.0, 0.0, 0.13921477990069736, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.013113097926933236, 0.11886277100269102, 0.0, 0.0, 0.0, 0.0, 0.0, 0.52224991418746, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4173873832595858, 0.08858709037486684, 0.0, 0.0, 0.0, 0.0, 0.15667266254329507, 0.0, 0.40730912125206437, 0.5164653515440787, 0.0, 0.2032159032369745, 0.40587691627032874, 0.0, 0.0, 0.0, 0.0340034080482809, 0.0, 0.0, 0.15427161497649788, 0.44428262792688017, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.014262992619462008, 0.38024333666677773, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1612065141710269, 0.0, 0.03925137009723705, 0.0, 0.0078366311533161, 0.0, 0.014460397168610369, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06667255880132161, 0.0, 0.14952781464402123, 0.0, 0.0, 0.0, 0.0, 0.2779234999305725, 0.0, 0.008746314891451676, 0.0, 0.0, 0.06465282563196756, 0.0, 0.2464235137262255, 0.006899580599861792, 0.278556260330773, 0.007445268802069765, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18845739307946788, 0.01641249348500929, 0.5317378389887557, 0.0, 0.0, 0.14988438489574235, 0.0, 0.010375471289624015, 1.3557213333649594, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18808146093167488, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37253241298417417, 0.0, 0.1111794727253734, 0.16963583085055012, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10986305912788819, 0.0, 0.0, 0.11949895822624457, 0.0, 0.0, 0.15821760502340373, 0.0, 0.5523682427180556, 0.0, 0.4595776329669528, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.33581328744582783, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24138228903328196, 0.0, 0.3691306800612154, 0.0, 0.0, 0.0, 0.0, 0.0, 1.232394871494877, 0.0, 0.0, 0.0, 0.5293521525003586, 0.0, 0.48349454590588176, 0.0, 0.0, 0.6981988327823653, 0.0, 0.0, 0.0, 0.0, 0.0, 0.33600003819418794, 0.10493510524858034, 0.1002766625939797, 0.0, 0.4760848715940903, 0.30327936688968893, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15549653856407664, 0.053555423141422365, 0.33124643300151746, 0.1452133754699813, 0.29863037601205833, 0.5069679636197618, 0.0, 1.2650777504013886, 0.0, 0.0, 0.8010376870067246, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8336854027224526, 0.0, 0.0, 0.0, 0.0, 0.013135866634354858, 0.7693584995036987, 0.0, 0.0, 0.0, 0.1809386811488775, 0.18409266358857004, 0.0, 0.8209089663283375, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6269731623222802, 0.0, 0.0, 0.0, 0.0, 0.8578109001691112, 0.13549697762155272, 0.8892025809188543, 0.0, 0.17753144998442447, 0.0, 0.3275865900116729, 0.37045604078207667, 0.0, 0.0, 0.45942273296787417, 0.0, 0.0, 0.1496601554416231, 0.0, 0.4896166566389182, 0.09296161452877622, 0.0, 0.15295686770265157, 0.0, 0.0, 0.0, 0.18412880463476564, 0.0, 0.19671721658454625, 0.0, 0.0, 0.15630345798009787, 0.0, 0.16866550691184853, 0.0, 0.3962565901298767, 0.0, 0.0, 0.009054605400028368, 0.0, 0.0, 0.0, 0.0, 0.6323717354885464, 0.0, 0.27367929286054155, 1.074929147630902, 0.1458067334724375, 0.22417700682510228, 0.0, 0.10951695376531846, 0.0, 0.007581110002282966, 0.24931277842808883, 0.0, 0.6883954376611309, 0.6336690200937254, 0.2666286675338324, 0.0, 0.0, 0.0, 0.0, 0.2876738228687025, 0.0, 0.0, 0.21522568832904387, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0438812752886428, 0.6525143726026617, 0.0, 0.0, 0.0, 0.0, 0.0, 1.1869853573228195, 0.11631516482088484, 0.0, 0.0, 0.0, 0.0, 0.06506946683877823, 0.0, 0.22717008671076838, 0.10242247240104177, 0.18900849588618046, 0.11442201255265518, 0.5664450740439114, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019408932182682588, 0.20321698947174538, 1.233551723482737, 0.3258945612095407, 0.0, 0.13004560449904765, 0.0, 0.5146863326888748, 0.0, 0.0, 0.26506893163091566, 0.6961290235591785, 0.7308179758735578, 0.019108835994024305, 0.0, 0.0, 0.12318551581994355, 0.0, 0.6633736020985646, 0.09733981959320877, 0.6085861256804133, 0.0, 0.3702803270823883, 0.0, 0.31915877170632656, 0.0, 0.0048098299833409025, 0.08330917183364514, 0.03767139221212642, 0.0, 0.0, 0.7595521482230864, 0.0, 0.40492576086384785, 0.9767048148851073, 0.0, 0.7118250358317957, 1.4759259446598505, 0.6177251878074594, 0.0, 0.0, 0.5578474164235181, 0.0, 0.0, 0.0, 0.8466209961003106, 0.0, 0.0, 0.0, 0.0, 0.9134452822413822, 0.0, 0.0, 1.1506817448958997, 0.0, 0.0, 0.5717156136201251, 0.0, 0.0, 0.0, 0.0, 0.22301492152906585, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13134314230830874, 0.20762859161099162, 0.0, 0.4768286902241477, 0.0, 0.3252201513410915, 0.5728390197892637, 0.07274257736444308, 0.0946619273240044, 0.0, 0.08735695093663028, 0.0, 0.006047124502145837, 0.0, 0.0, 0.03396077178506113, 0.056902676891892164, 0.05446213354503342, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03284486748482166, 0.0, 0.03394228891521373, 0.0, 0.0, 0.0, 0.15913459349815823, 0.0988686644243417, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06403136572671528, 0.0008539041494970381, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4996043959310575, 0.03466871274471111, 0.0, 0.0, 0.0, 0.5916091668585121, 0.0, 0.0, 0.18522959478004286, 0.0, 0.0, 0.6748263739107161, 0.0, 0.0, 0.5617854630926186, 0.0, 0.7191769350887419, 0.22919875305609166, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07421634147547619, 0.2082330820676049, 0.0, 0.33671550924577986, 0.0, 0.0, 0.8216886233224614, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9288637557541211, 0.0, 0.0, 1.2410393190221276, 0.024834505618206743, 0.6697889027661909, 0.39618825585335343, 0.37106318592637155, 0.321662062811288, 0.0, 0.8625204846142658, 0.4737807718760894, 0.8171062776340833, 0.16785258111865808, 1.931465974538034, 0.1820623956052182, 0.0, 0.40831479446929375, 0.0, 1.6290713896950666, 0.0, 0.0, 1.0235643660149811, 0.0, 0.0, 0.0, 0.0, 0.996334540430692, 0.0, 0.0, 0.44156504893800563, 0.289897027676234, 0.0, 0.5556259307084835, 0.0, 0.0, 0.5751570179061616, 0.0, 0.15465163640644544, 0.0, 0.0, 0.0, 0.0, 0.1740886831542383, 0.8206341762594166, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8467869185435447, 0.05898504962060997, 0.03624481511042625, 0.6732560722166093, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.201694060644539, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4141926752107277, 0.14795154825402113, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21427949262749374, 0.46809092516056994, 0.0, 0.16828675961297507, 0.14194253863939424, 0.0, 0.46436829494386733, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13445486993921502, 0.019720618408469233, 0.2722006890254698, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06550905522135163, 0.04806777087710764, 0.0, 0.0, 0.0, 0.599761835300619, 0.0, 0.0, 0.5741431736534577, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17101973439245724, 0.0, 0.0, 0.0749875087919759, 0.0, 0.0, 0.28776812087676407, 0.8309016545414952, 0.0, 0.0, 0.0, 0.016199069272106216, 0.0, 0.0, 0.0, 0.0, 0.6545099569258361, 0.22702193109653576, 0.04569906480983916, 0.2833580027667076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11138860511768055, 0.062440751035711506, 0.5182620734767335, 0.0, 0.3481758497366363, 0.0, 0.4677994729760326, 0.6992526088901763, 0.01746909322126967, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4416823398234807, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08074443292335906, 0.005624454367769537, 0.4953841958649777, 0.06419759041251974, 0.0, 0.0, 0.0, 0.03378063280221251, 0.27793271609589054, 0.0, 0.0, 0.0, 0.013968102118739474, 0.0, 0.08424327814659714, 0.057402094804332435, 0.0, 0.0, 0.0333773112405404, 0.0, 0.0, 0.0, 0.020814415925578544, 0.050277550690626754, 0.07266714943835642, 0.05420980100927718, 0.1299217183065535, 0.0, 0.0, 0.3197221256849075, 0.0, 0.13800911480490768, 0.0, 0.0, 0.0, 0.0, 1.01268183989861, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7358814757212789, 0.30707785521832553, 0.5276131242565835, 0.0, 0.1743689886750783, 0.0, 0.25821885501181596, 0.5805464694386301, 0.7164948773890167, 0.0, 0.0, 0.0, 0.37021123955626156, 0.12525001349038106, 0.608077535649827, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0938347119534369, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17530069799945608, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6839828466860547, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0036702000371577168, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.030804733252794536, 0.6085396823865649, 0.3664826840226463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.052310575793324585, 0.23438841535865984, 0.027151249553211434, 0.42665810243765545, 0.060892623345148826, 0.0, 0.0, 0.08445468462850356, 0.05478879427510317, 0.5501718854551394, 0.0, 0.11343808432438283, 0.0, 0.09259962343643532, 0.2732186452567139, 0.0, 0.42011946077495216, 0.2576342392674693, 0.0, 0.5090094423403475, 0.0, 0.0, 0.0, 0.0010952054350690443, 0.08086253983246877, 0.0, 0.0, 0.23985944027024297, 0.0, 0.09028722397131896, 0.0, 0.07674602267622682, 0.43900489287844074, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3006474050100551, 0.0, 0.0, 0.0709455536446502, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24893625570967048, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2768131690025365, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0014853584531852684, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2394367041087018, 0.8202130158779322, 0.0, 0.0, 0.28871220094126887, 0.0, 0.0, 0.04358483751824937, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.052964062286445145, 0.0, 0.2958896434064324, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.695162332188878, 0.037163387811150035, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0679762361139716, 0.0, 0.0, 0.24678121036961095, 0.0, 0.0, 0.2964710587865061, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0759598903032082, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07295585235760724, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0603439559536301, 0.0, 0.0, 0.0, 0.17528000283667142, 0.0, 0.12675745187805368, 0.328557971512483, 0.028687306018592266, 0.0, 0.0, 0.8516002254500735, 0.0, 0.4371253184691764, 0.13991121920676916, 0.0, 0.3475458448096685, 0.46894433815651543, 0.0, 0.0, 0.6068029321085694, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.28015080493647854, 0.3107571390829928, 0.0, 0.0, 0.0, 0.0, 0.006563618369995558, 0.5906679530337167, 0.0, 0.0, 0.0, 0.6525869879262292, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00921986700494424, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04479484649111107, 0.0, 0.3151409942990884, 0.021951930030038837, 0.0, 0.2505595957731255, 0.0, 0.0, 0.0, 0.03191831493444459, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22403715744289487, 0.0, 0.0, 0.0, 0.0, 0.0, 0.027940093628006875, 0.0, 0.0, 0.0, 0.26553429437558146, 0.0, 0.030379801994009328, 0.0, 1.223521302648351, 0.3114612281119979, 0.3934859798468234, 0.0, 0.3688885410084021, 0.0, 0.5211677391443227, 0.318605826264122, 0.11794887163110916, 0.0, 0.0, 0.4256936617495534, 0.0, 0.49172025370622324, 0.48430956473476544, 0.0, 1.3234474260067457, 0.28650182105087124, 0.006913853673799038, 0.28826288884375384, 0.3033256150127764, 0.0, 0.19416551553442815, 0.19479473776455275, 0.0, 0.2201952762677155, 0.0, 0.0, 0.34956927181897907, 0.0, 0.0, 0.0, 0.5335997378219544, 0.1831214497933391, 0.5101375543135913, 0.0, 0.7417718286797346, 0.0, 0.23966647500006097, 0.8693502490764229, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21247306643180602, 0.1378389271943791, 0.0, 0.0, 0.2853901797463675, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20343586472727235, 0.29392458170687635, 0.011188169832657642, 0.0, 0.0, 0.28953305486076913, 0.0, 0.0, 0.07223789467137894, 0.0, 0.33051308113923733, 0.4540345661588786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9537370190824367, 0.0, 0.6089477015288718, 0.0, 0.07722630190963325, 0.0, 0.0, 1.0000222254545443, 0.8637206744494375, 0.0, 0.7751920658363071, 0.524298363554463, 0.0, 0.0, 0.01676078910810196, 0.0, 0.0, 0.07604278960261779, 0.0, 0.0, 0.0, 0.0, 0.40940877803475156, 0.0, 0.0, 0.0, 0.0, 0.09252661041066143, 0.44765043171933794, 0.0, 0.24055976047324873, 0.0, 0.15100552643910237, 0.35800810608226774]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.08838669783079417, 0.24540062578718655, 0.0, 0.0, 0.0, 0.0, 0.2598139726110033, 0.0, 0.0, 0.008999058499533074, 0.10561231293601407, 0.018993358540021866, 0.3713088213439608, 0.1272213104915037, 0.0, 0.04569648380052932, 0.0, 0.6778277114032399, 0.0, 1.0116444857173326, 0.1419594034849179, 0.849786220982489, 0.1853715018708835, 0.0, 0.41575027296468353, 0.027919812909200686, 0.38129764067914484, 0.0, 0.010472223603003109, 0.32765224234190193, 0.0, 0.0, 0.0, 0.27657062580546904, 0.018635375946533275, 0.0, 0.6553105493426397, 0.1806768240966126, 0.0, 0.0, 0.13022235819683495, 0.0, 0.0, 0.0096207645890863, 0.0, 0.0, 0.0, 0.0, 0.0027620603050478813, 0.0, 0.0, 0.0, 0.0, 0.06777735948867263, 0.16424694314849322, 0.05466156243395641, 0.0, 0.3550122664783007, 0.0, 0.16598631348758813, 0.0, 0.09916577661749644, 0.0, 0.0, 0.017171766504479664, 0.14883499722913907, 0.14454297081157494, 0.0, 0.0, 0.0, 0.08135785354072747, 0.18934501987281463, 0.0, 0.0, 0.0, 0.043171173549343585, 0.04442771737900286, 0.0, 0.0, 0.16847976307679274, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4519419326045341, 0.0022494085401006682, 0.0, 0.09264806290445121, 0.0, 0.0, 0.5779259042074504, 0.0, 0.0, 0.0, 0.01319039039025495, 0.0, 0.0, 0.05821123759190987, 0.008570313787111606, 0.12498925860233108, 0.3161944438230963, 0.0, 0.0, 0.0, 0.0, 0.03428001709676162, 0.0, 0.0, 0.0, 0.4239046512601812, 0.0, 0.0, 0.0, 0.0, 0.006439869364205756, 0.0, 0.19268641103781292, 0.0, 0.0, 0.0, 0.13842608775449636, 0.7754112567712441, 0.5650474898241402, 0.16678352690096504, 0.0, 0.0, 0.26721012017234747, 0.0, 0.0, 0.40379612390902914, 0.0, 0.5616249905190419, 0.0, 0.0, 0.0, 0.05914491909738165, 0.0, 0.0, 0.5796881176474965, 0.0, 0.0, 0.0, 0.0, 0.19259492607938428, 0.5396680351153355, 0.1002017616669876, 0.0, 0.0, 0.07018769309449151, 0.0, 0.0, 0.0, 0.8890997886610695, 0.01580855669802033, 0.07592126473643429, 0.0, 0.0, 0.5327597008182733, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26650628783183555, 0.0, 0.0, 0.4177758368274485, 0.01847646120309497, 0.2474671864399932, 0.030137257707486417, 0.0, 0.0, 0.0, 0.0, 0.4333965515966774, 0.0, 0.025363517487659904, 0.0, 0.0, 0.28727696476738296, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.48463873218296616, 0.3619901497543638, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3095355097692787, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08881016246594031, 0.0864536634210502, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13334438240099766, 0.0, 0.2743296378950603, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21573236386631758, 0.138874394226427, 0.21526827303910834, 0.0, 0.8276738568887637, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13803323038392623, 0.0, 0.0, 0.18937725647626488, 0.0, 0.09756025088965181, 0.10247093349242449, 0.14247269057616566, 0.0, 0.4644170645216008, 0.0, 0.0, 0.0, 0.6396576582705668, 0.0, 0.14648223852485512, 0.0, 0.3845502326592231, 0.0, 0.0, 0.0, 0.0, 0.01873756402105984, 0.01865952833886222, 0.015020499411212522, 0.0, 0.11259829701043601, 0.13537240455394534, 0.18963280616455852, 0.0, 0.1732077631723114, 0.0, 0.009279305276553587, 0.0, 0.09430577452314615, 0.07566718263303025, 0.06172210939249301, 0.0, 0.0, 0.0017837976727260341, 0.0, 0.0, 0.06543462567823881, 0.0621898641418941, 0.0, 0.0, 0.0, 0.41468742426256355, 0.21475258071539002, 0.0, 0.0, 0.08728790458911416, 0.0, 0.0, 0.4956863169283368, 0.0, 0.0, 0.3312300382813116, 0.0, 0.6814401538748236, 0.017040189816468283, 0.0, 0.0, 0.0, 0.0, 0.1702496303089558, 0.04558027585085677, 0.0, 0.0, 0.05652088848846798, 0.0, 0.0, 0.039516412285590885, 0.04836078861030929, 0.0, 0.0, 0.0, 0.0066658135086557066, 0.28756231542228783, 0.0, 0.0, 0.005213055047386901, 0.0, 0.03077146873270733, 0.0, 0.18174661292486113, 0.011855817392138795, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2550943184597343, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19130663987033655, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08795782309469964, 0.4949588224757624, 0.10547057221471998, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0428147611319233, 0.0, 0.4336529209634745, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10981699391447328, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14060207841669792, 0.19125923680987167, 0.17120811796462362, 0.0, 0.0, 0.29682703146376954, 0.2309028098716656, 0.0, 0.3415808438027304, 0.5413871431291847, 0.19010077735847383, 0.0, 0.0, 0.0, 0.037176095928915485, 0.0, 0.0, 0.19621484736356867, 0.46400800412758475, 0.6251709107930822, 0.11840971377140953, 0.5297289566486542, 0.0, 0.0, 0.0629827610017505, 0.0, 0.30811879649367063, 0.0, 0.43390554368076734, 0.0, 0.3078202365484454, 0.0, 0.0, 0.06464271443386868, 0.0, 0.0, 0.7925386152607364, 0.0, 0.0, 0.0, 0.0, 0.4871987999416911, 0.0, 0.0, 0.0, 0.026241068751647587, 0.4048536827096608, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04667237073016084, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008398941803472277, 0.0, 0.3462604046867109, 0.0, 0.41520221547875746, 0.0, 0.0, 0.0, 0.49209502240450126, 0.6693906625198521, 0.19758221668125867, 0.008160985490142467, 0.2605302099636665, 0.0, 0.0, 0.0, 0.9022483783960523, 1.0694729952381887, 0.6653361553880242, 0.881281776229774, 0.001915716390555032, 0.022482711824403312, 0.0040432994483474245, 0.0, 0.3214035783779074, 0.6867348676262818, 0.0, 0.6858420722534031, 0.0, 0.5811377322397425, 0.04246482918579259, 0.11467932906673921, 0.09709202075873843, 0.0, 0.0, 0.0, 0.2200140216993193, 0.0, 0.7507517442378999, 0.0, 0.0, 0.7372603142185328, 0.0, 0.006741369353138395, 0.8069776586909365, 0.00396709224045839, 0.0, 0.0, 0.0, 0.6101879525945185, 0.0, 0.0, 0.026258353794755256, 0.4016774417320984, 0.014813931005383318, 0.6190727226045784, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11309418362565873, 0.0, 0.0, 0.0, 0.0, 0.0, 0.036526440507301174, 0.022956711251180283, 0.40907708831845013, 0.0012453094708774737, 0.0, 0.0, 0.0, 0.0, 0.014062827632021033, 0.0, 0.0, 0.0, 0.006394809610240893, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21784527989974428, 0.0, 0.0, 0.0, 0.3180108962002836, 0.2508741672819204, 0.17523704698611114, 0.13837147224686994, 0.27935616728122964, 0.1859955338163167, 0.0, 0.06462126637992056, 1.0008493550472979, 0.6004231261661688, 0.0, 0.3940831570768702, 0.0, 0.0, 0.1305734964236071, 0.0, 0.09786792103897592, 0.0, 0.11654231814191775, 0.46697515894469777, 0.5700094853415558, 0.1107417067979406, 0.346111937724667, 0.0, 0.1225882117910605, 0.0, 0.28673152989464684, 0.0, 0.12654022793408917, 0.0, 0.0, 0.45809293367016757, 0.3647743355850667, 0.817304098176075, 0.0036334642288677415, 0.0, 0.2669922423479005, 0.0, 0.0, 0.0, 0.32457729111200295, 0.5543705739187803, 0.8812247175026642, 0.16912005088903598, 0.5020073987686707, 0.0, 0.09252856828989332, 0.0, 0.0, 0.0, 0.06948083164247039, 0.2588335470174883, 0.23431107957691064, 0.0, 0.0, 0.4609326565956409, 0.0981996119487529, 0.0, 0.0, 0.0, 0.0, 0.41461953421729686, 0.2880401034246727, 0.0, 0.12878680297473977, 0.5528442548314576, 0.8638211211778427, 0.0, 0.19329232440572794, 0.07190135483727589, 0.0, 0.37985878824980135, 0.0, 0.0, 0.47943873587199365, 0.0, 0.1632157826430328, 0.028602417984395823, 0.12587604601890898, 0.20239239184313712, 0.0, 0.9957002205667365, 0.5403020941861382, 0.1731723605204449, 0.5984215188307392, 0.5906299727726914, 0.15421128542459664, 0.22417177182593684, 0.14760215442934868, 0.0, 0.0, 0.10452572448334531, 0.0, 0.0, 0.5192893646261969, 0.0, 0.0, 0.0, 0.03548389098440683, 0.0, 0.0, 0.5359908824860568, 0.0, 0.0, 0.4508397689271815, 0.17912612646003018, 0.05191685886593687, 0.015041105758856862, 0.0, 0.0, 0.07792048637164595, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16284516279577882, 0.07019827463547235, 0.0, 0.0017166852898648512, 0.022601665621833984, 0.0, 0.0, 0.0, 0.08820522946301469, 0.0, 0.0, 0.4597721334804677, 0.0, 0.01968862180697655, 0.1496625833744818, 0.0, 0.0, 0.0, 0.0, 0.042967175515187854, 0.0, 0.5925889649898668, 0.03501818713399176, 0.0, 0.23929946904107768, 0.0, 0.0, 0.0, 0.0, 0.0, 0.586042846539397, 0.0, 0.35012160211964255, 0.0, 0.0, 0.2671275149044985, 0.5254872140248491, 0.0, 0.0, 0.0, 0.4346599048698998, 0.0, 0.6685147232492785, 0.0, 0.0, 0.006603260891096502, 0.41222164853295895, 0.691126666160783, 0.3115253982735278, 0.0, 0.5948463934358659, 0.0, 0.6104915934501508, 0.0, 0.10122959156761935, 0.0, 0.0, 0.4361142638019697, 0.0, 0.0, 0.022953207777356696, 0.01768983406390727, 0.0, 0.49300859199961644, 0.0, 0.45242065570193146, 0.0, 0.25296290668039206, 0.24913417193879323, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0036117281801281323, 0.37981219294125684, 0.0, 0.7813883080906168, 0.37787984308171674, 0.0, 0.3540795182413977, 0.0, 0.0, 0.024079641916532137, 0.0, 0.3372996465844834, 0.4587109366214878, 0.0, 0.0, 0.0, 0.0, 0.008167928328435794, 0.30985126085873477, 0.0, 0.1769552845849796, 0.01014740975340464, 0.3239445526321744, 0.2589119416659987, 0.30500724408067964, 0.0, 0.8521343659652334, 0.0, 0.12278148254603906, 0.0, 0.0, 0.7559317032710442, 0.0, 0.4639073457870384, 0.3375990135598286, 0.0, 0.09771802789528808, 0.0, 0.0, 0.0, 0.0, 0.14259284539732897, 0.0, 0.0, 0.0, 0.03978581978010784, 0.4979059043742451, 0.0, 0.0, 0.02239395579386129, 0.0, 0.0, 0.08552679542089565, 0.0, 0.28975782063069117, 0.4544199284136855, 0.4879966224465369, 0.0, 0.5198773678370044, 0.09074414747732065, 0.0, 0.0, 0.0, 0.08751115961530397, 0.0, 0.0, 0.0, 0.0, 0.01723069885490719, 0.005476104703094391, 0.0, 0.0, 0.0, 0.0, 0.0, 0.018363845689630152, 0.0, 0.0, 0.0, 0.03456818780211805, 0.16076784648973388, 0.1339929852951158, 0.12939203287442297, 0.6506668934574178, 0.07556479761019191, 0.0, 0.0, 0.1120835499344092, 0.004448105032597938, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.424200452243984, 0.21870476868551994, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04400733534916703, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5084860468121182, 0.0, 0.0, 0.0, 0.06613225218879751, 0.0, 0.0, 0.03227907593043655, 0.0, 0.01489513919323321, 0.0, 0.0, 0.0004903768608608706, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3709186680024144, 0.0057636955333438475, 0.0, 0.0, 0.0, 0.0, 0.05167292145382253, 0.03114794005970685, 0.0, 0.0, 0.0, 0.04406332427000894, 0.0, 0.28333618254852055, 0.0, 0.0, 0.08754290037370453, 0.0, 0.030717709851121017, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15375069919642081, 0.17266284464812964, 0.0, 0.0, 0.0, 0.0, 0.4591427931520538, 0.0, 0.0, 0.4080740928256236, 0.04867028613084824, 0.0, 0.0, 0.19198247076461217, 0.0, 0.0, 0.0, 0.04903912896069461, 0.0, 0.0, 0.0, 0.03565133307467186, 0.011864802664565318, 0.0, 0.0770587282490205, 0.06882991093352155, 0.0, 0.32659059563162995, 0.036557980918752765, 0.0, 0.0, 0.0, 0.0, 0.03137440184410096, 0.0, 0.0, 0.0, 0.18642661293603366, 0.0, 0.0, 0.0, 0.0, 0.06772257249589227, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21100355273002191, 0.0, 1.3416336420880526, 0.0, 0.0, 0.46161810723264507, 0.0, 0.4582995461192519, 0.05104879083246295, 0.5773364122618407, 0.57352236887648, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5640999064171196, 0.6666836020552119, 0.06886868779194379, 0.564904097158741, 0.0, 0.3210670084651615, 0.0, 0.0, 0.0, 0.9392890324745945, 0.0, 0.0, 0.2984250122811811, 0.0, 0.009405052137469182, 0.0, 0.39950267169818077, 0.07050196115427894, 0.824636783426293, 0.4953951141450468, 0.0, 0.0, 0.34635403119710667, 0.8798483938054087, 0.39347138128916365, 0.0, 0.0, 0.41085938784277987, 0.0, 0.7572672907360996, 0.0, 0.1918766456362537, 0.14775814623354722, 0.0, 0.0, 0.18414622884752666, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32881972797464193, 0.22733765531865868, 0.29775899283396906, 0.0, 0.0, 0.0, 0.0387256895819095, 0.5151993362991701, 0.0, 0.0, 0.0, 0.008722287803381279, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1780184121162673, 0.0, 0.0, 0.0, 0.0, 0.0511079535437104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05738054033260683, 0.0, 0.0, 0.3177388426930726, 0.0, 0.0, 0.0019725686702392773, 0.0, 0.0, 0.0, 0.0, 0.20770780211002965, 0.0, 0.0, 0.0, 0.8220710140576788, 0.0, 0.0, 0.0, 0.0, 0.9922981121231631, 0.19272059014741777, 0.18871634512759347, 0.009978475777936804, 0.5372065554785002, 0.0, 0.0, 0.17523452577386275, 1.0717089910255204, 0.5571949298413089, 0.0, 0.3237380570219946, 0.0, 1.1122472434174695, 0.10030606802210519, 0.0, 0.42164300445661296, 0.0, 0.2034243141927581, 0.0, 1.0210169552267845, 0.19689099390765805, 0.14675887656145528, 0.15859984719751974, 0.2247981968120587, 0.0, 0.22026608101531156, 0.5078755745015515, 0.2690121908665218, 0.0, 0.0, 0.0, 0.3746062674772627, 0.7584612913730437, 0.0, 0.0, 0.8749551201631387, 0.5887430555293698, 0.8247249363546676, 0.21469878981542115, 1.002630449124598, 0.2572736542055717, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005299432156408299, 0.06219376030445952, 0.011184949515597283, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11747014454387752, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1628689565677918, 0.010974138077104432, 0.0, 0.0, 0.0, 0.0, 1.0297896192318396, 0.0, 0.662355409415741, 0.5720482757502646, 0.3113118281374319, 0.0, 0.0, 0.25393001900118484, 0.02276308091998572, 0.03508485404358758, 0.45957926224802004, 0.0, 0.05036277933399867, 0.1447652248957086, 0.0, 0.0242600552046752, 0.005732716773973234, 0.0, 0.0, 0.04566723978074626, 0.007798132412071851, 0.435160826872351, 0.19099152935556227, 0.0, 0.09109198019072849, 0.0, 0.0, 0.0, 0.0, 0.040872817508571836, 0.0, 0.8816978299630381, 0.023385944730671186, 0.20852512378086208, 0.3265908462108258, 0.0, 0.8135187830099228, 0.5004561612521131, 0.5929930445509373, 0.07024535595608956, 0.4293153063068892, 0.33966138448698774, 0.0, 0.0, 0.219723330992236, 0.0, 0.0, 0.32087091161635517, 0.10046935863374477, 0.0, 0.21249664109114016, 0.0, 0.0, 0.5675920409330384, 0.0, 0.0, 0.02195446551553763, 0.0, 0.0, 0.0, 0.7828555360473642, 0.0, 0.0, 0.0, 0.539158201637973, 0.0, 0.037194676308406484, 0.0, 0.5899620450765102, 0.0, 1.064333300573155, 0.0, 0.4126616356723095, 0.0, 0.0, 0.0, 0.0, 0.005455259856546277, 0.06532462900349355, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6382915607944724, 0.0, 0.1058392854111573, 0.06419509685388734, 0.0, 0.0, 0.42600921169580896, 0.0, 0.6948705846598551, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7494592390120385, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.34703521803027376, 0.47959926529853425, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18954560408868362, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04058791510732469, 0.0, 0.0, 0.0, 0.026371559760006224, 0.46735915191246824, 0.9729562858716514, 0.0, 0.01593384874339247, 0.0, 0.0, 0.10548242945325798, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08182217469250767, 0.0, 0.0, 0.0, 0.0, 0.5929119201290493, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0028851424117770368, 0.14902256810885017, 0.0, 0.19393473922191487, 0.0010822975481770052, 0.10083006827906865, 0.005589290532560041, 0.0, 0.0377329438822351, 0.0, 0.0, 0.0, 0.0, 0.08622227292139113, 0.0, 0.0, 0.052960874748722735, 0.0, 0.0, 0.0, 0.040542431602682394, 0.0, 0.034748695303796415, 0.0, 0.0, 0.07778126624009696, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08990369242695052, 0.0, 0.0, 0.0, 0.0, 0.1714300400506459, 0.23319412483505944, 0.06883127399553583, 0.0, 0.0, 0.4520065142603474, 0.7559043080573538, 0.0, 0.9918256875421747, 0.34148047573693957, 0.23178166527267935, 0.1984049383893502, 0.0, 0.0, 0.0, 0.4618215114400494, 0.055660721213669, 0.23923628669541208, 0.0, 0.0, 0.39945045771087084, 0.3329245273531598, 0.25602890393383043, 0.0, 0.2574713970419185, 0.0, 0.0, 0.27848743576980106, 0.008801495971424074, 0.0, 0.0, 0.0, 0.0, 0.4961604274582618, 0.0, 0.0, 0.5434029369831717, 0.0, 0.0, 0.0, 0.0, 0.15767180411659634, 0.03460197933312267, 0.0, 0.0, 0.036131085316488384, 0.0, 0.0, 0.0, 0.016873683938744447, 0.019906225883667222, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.012507180486519448, 0.0, 0.02685500739865508, 0.028916495513405534, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029742024653825302, 1.0585077478673894, 0.0, 0.0, 0.10450313655197234, 0.0, 0.27087506529662764, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7518068036153462, 0.0, 0.2680435440340337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1316435251098364, 0.8078731280911045, 0.0, 0.0, 0.0, 0.10506968633342718, 0.23470506622896917, 0.0, 0.0, 0.607722294332459, 0.023665118775296444, 0.014839085130224942, 0.0, 0.0, 0.24386571546932873, 0.0, 0.0, 0.3502050356771847, 0.0, 0.0, 0.46379933676520235, 0.0, 0.08440789641107996, 0.04593440835303492, 0.021386035200774683, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7729032574550468, 0.0, 0.11781868003483978, 0.030607043037187642, 0.0, 0.1726108187023696, 0.09583059716129254, 0.5239548125179947, 0.4366934746091282, 0.0, 0.0, 0.24627150409293175, 0.0, 0.13007997889130285, 0.36528893478699903, 0.18318396866765946, 0.0, 0.011811348038501769, 0.0, 0.0, 0.0, 0.0, 0.0, 1.1723218684731558, 0.5524938653991974, 0.7739462295109258, 0.0, 0.7069108871009565, 0.0, 1.1639912229987677, 0.0, 0.0737216927746314, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.41689243790078717, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7826638975615551, 0.0, 0.0, 0.0, 0.1017910453533696, 0.0, 0.0, 0.0, 0.0, 0.022926661938484392, 0.0, 0.0, 0.24172521220469304, 0.33406187082542654, 0.0, 0.0, 0.31010342596966556, 0.0, 0.0, 1.1081747068991343, 0.7344335908166203, 0.16327913698089802, 0.7325151937485493, 0.17384385605370836, 0.08371482373128411, 0.0, 0.3420940653006234, 0.0, 0.04990946505718503, 0.5498243469410863, 0.0, 0.007722420577405236, 0.0906297807361463, 0.016298894248894004, 0.0, 0.17760842474448457, 0.7445477489471244, 0.0, 0.0, 0.23271741543898974, 0.5862478840032251, 0.38013450552556605, 0.0, 0.13625107884748244, 0.3102878234624971, 0.0, 0.0, 0.0613418632643825, 0.1222024301534575, 0.0, 0.0, 0.09768999149541487, 0.07432603695941839, 0.0, 0.0, 0.2373353492409029, 0.8187850328888507, 0.0, 0.1472545596990393, 0.08055057930039017, 0.0, 0.0, 0.0, 0.0, 0.022056121851574153, 0.7041166858972707, 0.0, 0.0, 0.0, 0.7708181971148897, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6591456110142444, 0.0, 0.0, 0.0, 0.5151326583061712, 0.4293405940090164, 0.0, 0.30993576190130123, 0.24212487706484054, 0.0, 0.0, 0.35913833699197834, 0.594616431743019, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7007742613782065, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07822848175716028, 0.0, 0.795037704009975, 0.0, 0.18176747614492506, 0.0, 0.0, 0.0, 0.0, 0.05218428597433502, 0.551641665900435, 0.0, 0.0, 0.0, 0.0, 0.4173251650328503, 0.13888627164939463, 0.0, 0.9020292850308806, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32443041606173034, 0.0, 0.3672605285185933, 0.0, 0.0, 0.0, 0.20671726976925492, 0.0, 0.0, 0.38426107037286794, 0.0, 0.0, 1.3158788906540237, 0.0, 0.0, 0.33314012692337136, 0.4077019730262151]), 42), 42)),) julia> @finch_code begin Ct .= 0 for i = _ @@ -498,7 +498,7 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.40798272794029244, 0.0, 0.05552236202954211, 0.0, 0.0, 0.0, 1.1508129348205518, 0.0, 0.19395356472348033, 0.2307481734593406, 0.0, 0.0, 0.0, 0.0, 0.7400687115958035, 0.0, 0.0, 0.4711198057610666, 0.0, 0.07015028050595504, 0.08663540769774136, 0.0, 0.0, 0.46359958748433167, 0.0, 0.035823254967012344, 0.0, 0.21605429332119105, 0.050389255833200065, 0.0, 0.0, 0.08982343514212215, 0.0, 0.11508828733565957, 0.4022461237733094, 0.0, 0.5232411380476881, 0.0, 0.17677960337865342, 0.6347058701128525, 0.0, 0.0, 0.0, 0.080760767105778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.530417945120141, 0.036947581649449654, 0.0, 0.42172014534542845, 0.0, 0.0, 0.0, 0.04046090790460827, 0.0, 0.0, 0.0, 0.0, 0.016730358390191713, 0.11216899138664496, 0.10090277285890621, 0.3770798811678483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06022016698365358, 0.0, 0.3347277070064448, 0.08319806447593037, 0.0, 0.0, 0.15734979027583865, 0.6034963214197537, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8559793301235343, 0.0, 0.0221818618958444, 0.0, 0.0, 0.0, 0.0, 0.6249640468245943, 0.0, 0.706457127780651, 0.8381987455683932, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05075027829145945, 0.0, 0.0, 0.28298860880763127, 0.0, 0.46775948880043733, 0.3276758676884306, 0.23162154119323575, 0.0, 0.0, 0.7097058534293814, 0.0, 0.01925480712564137, 0.6617464495997725, 0.5510119129346432, 0.9503030089786222, 0.19493828703065708, 0.4234771306495736, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11491839349038546, 0.0, 0.0, 0.0, 0.0, 0.0, 0.952344347120024, 0.31481029761912926, 0.0, 0.0, 0.3371532262514988, 0.0, 0.6461986748500718, 0.0, 0.20388394461232018, 0.6689077519036521, 0.008065708303756284, 0.026774581755143884, 0.0, 0.0, 0.0, 0.0, 0.20246692989511542, 0.0, 0.0, 0.0, 0.0, 0.6964472745009185, 0.0, 0.3001098015546565, 0.0, 0.002810485733837209, 0.0, 0.0, 0.2833439267406652, 0.0, 0.0, 0.0, 0.01365478232442864, 0.0, 0.07752931191170997, 0.005400497114468351, 0.01008472602077043, 0.7305457354717977, 0.0, 0.0, 0.3791767135274968, 0.009729638043940761, 0.14133243937397577, 0.0, 0.6050992861887972, 0.0, 0.0, 0.0, 0.0, 0.32748073574326575, 0.29782974023215064, 0.0, 0.0, 0.0, 0.0, 0.008516959572353846, 0.0, 0.0, 0.0, 0.5188617620854502, 0.0, 0.12960309538886133, 0.0, 0.2159060099855789, 0.0, 0.0, 0.0, 0.5916658876154497, 0.0, 0.08410324034674674, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7242114416300933, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.43295426032070555, 0.1879551877902947, 0.09140698995628445, 0.0, 0.0, 0.0, 0.0, 0.053834983759932134, 0.014210556502435533, 0.023024626002393696, 0.0, 0.0, 0.08510060429095491, 0.15442202399960203, 0.0, 0.5391171356753139, 0.0, 0.44855253786204935, 0.048493606647816025, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22138370024934187, 0.0, 0.08746644969030876, 0.0, 0.0, 0.0, 0.1616519416528851, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.035084084514750494, 0.0, 0.11688517594508105, 0.2089391042079727, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05598779403983851, 0.014778823268485956, 0.0, 0.0, 0.0, 0.0, 0.057780108315529474, 0.0, 0.201721527067654, 0.0, 0.3341648455181398, 0.0, 0.0, 0.7601477683176978, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8032144106029788, 0.0, 0.18178069418497272, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6936206835397086, 0.0, 0.36283080196789974, 0.4415514891805875, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.041591186808888826, 0.3770004419200786, 0.0, 0.0, 0.0, 0.17252416859375463, 0.0, 0.0, 0.6527400000425327, 0.0, 0.3340575108846618, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7763472218770214, 0.0, 0.0, 0.0, 0.0, 0.8376247582699287, 0.0, 0.014460886244840168, 0.6266762938745922, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.46397397404593055, 0.0, 0.23926875754339813, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.46347904589364963, 0.05902942262309747, 0.0, 0.03877718275846287, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2950495413884076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06597380264866397, 1.0898197013430582, 0.0, 0.012501862454917015, 0.0, 0.0, 0.05385941027253928, 0.0, 0.3522343881391282, 0.0, 0.398164495085241, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004630463685504157, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25876266416388005, 0.0, 0.0, 0.3103356146935319, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6074148238597709, 0.09425255656440318, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0032593418386170935, 0.0, 0.2297346969390008, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12055792386342427, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25324185315889564, 0.0, 0.05731281617489229, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21868854065637486, 0.0, 0.0, 0.13921477990069736, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.013113097926933236, 0.11886277100269102, 0.0, 0.0, 0.0, 0.0, 0.0, 0.52224991418746, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4173873832595858, 0.08858709037486684, 0.0, 0.0, 0.0, 0.0, 0.15667266254329507, 0.0, 0.40730912125206437, 0.5164653515440787, 0.0, 0.2032159032369745, 0.40587691627032874, 0.0, 0.0, 0.0, 0.0340034080482809, 0.0, 0.0, 0.15427161497649788, 0.44428262792688017, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.014262992619462008, 0.38024333666677773, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1612065141710269, 0.0, 0.03925137009723705, 0.0, 0.0078366311533161, 0.0, 0.014460397168610369, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06667255880132161, 0.0, 0.14952781464402123, 0.0, 0.0, 0.0, 0.0, 0.2779234999305725, 0.0, 0.008746314891451676, 0.0, 0.0, 0.06465282563196756, 0.0, 0.2464235137262255, 0.006899580599861792, 0.278556260330773, 0.007445268802069765, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18845739307946788, 0.01641249348500929, 0.5317378389887557, 0.0, 0.0, 0.14988438489574235, 0.0, 0.010375471289624015, 1.3557213333649594, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18808146093167488, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37253241298417417, 0.0, 0.1111794727253734, 0.16963583085055012, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10986305912788819, 0.0, 0.0, 0.11949895822624457, 0.0, 0.0, 0.15821760502340373, 0.0, 0.5523682427180556, 0.0, 0.4595776329669528, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.33581328744582783, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24138228903328196, 0.0, 0.3691306800612154, 0.0, 0.0, 0.0, 0.0, 0.0, 1.232394871494877, 0.0, 0.0, 0.0, 0.5293521525003586, 0.0, 0.48349454590588176, 0.0, 0.0, 0.6981988327823653, 0.0, 0.0, 0.0, 0.0, 0.0, 0.33600003819418794, 0.10493510524858034, 0.1002766625939797, 0.0, 0.4760848715940903, 0.30327936688968893, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15549653856407664, 0.053555423141422365, 0.33124643300151746, 0.1452133754699813, 0.29863037601205833, 0.5069679636197618, 0.0, 1.2650777504013886, 0.0, 0.0, 0.8010376870067246, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8336854027224526, 0.0, 0.0, 0.0, 0.0, 0.013135866634354858, 0.7693584995036987, 0.0, 0.0, 0.0, 0.1809386811488775, 0.18409266358857004, 0.0, 0.8209089663283375, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6269731623222802, 0.0, 0.0, 0.0, 0.0, 0.8578109001691112, 0.13549697762155272, 0.8892025809188543, 0.0, 0.17753144998442447, 0.0, 0.3275865900116729, 0.37045604078207667, 0.0, 0.0, 0.45942273296787417, 0.0, 0.0, 0.1496601554416231, 0.0, 0.4896166566389182, 0.09296161452877622, 0.0, 0.15295686770265157, 0.0, 0.0, 0.0, 0.18412880463476564, 0.0, 0.19671721658454625, 0.0, 0.0, 0.15630345798009787, 0.0, 0.16866550691184853, 0.0, 0.3962565901298767, 0.0, 0.0, 0.009054605400028368, 0.0, 0.0, 0.0, 0.0, 0.6323717354885464, 0.0, 0.27367929286054155, 1.074929147630902, 0.1458067334724375, 0.22417700682510228, 0.0, 0.10951695376531846, 0.0, 0.007581110002282966, 0.24931277842808883, 0.0, 0.6883954376611309, 0.6336690200937254, 0.2666286675338324, 0.0, 0.0, 0.0, 0.0, 0.2876738228687025, 0.0, 0.0, 0.21522568832904387, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0438812752886428, 0.6525143726026617, 0.0, 0.0, 0.0, 0.0, 0.0, 1.1869853573228195, 0.11631516482088484, 0.0, 0.0, 0.0, 0.0, 0.06506946683877823, 0.0, 0.22717008671076838, 0.10242247240104177, 0.18900849588618046, 0.11442201255265518, 0.5664450740439114, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019408932182682588, 0.20321698947174538, 1.233551723482737, 0.3258945612095407, 0.0, 0.13004560449904765, 0.0, 0.5146863326888748, 0.0, 0.0, 0.26506893163091566, 0.6961290235591785, 0.7308179758735578, 0.019108835994024305, 0.0, 0.0, 0.12318551581994355, 0.0, 0.6633736020985646, 0.09733981959320877, 0.6085861256804133, 0.0, 0.3702803270823883, 0.0, 0.31915877170632656, 0.0, 0.0048098299833409025, 0.08330917183364514, 0.03767139221212642, 0.0, 0.0, 0.7595521482230864, 0.0, 0.40492576086384785, 0.9767048148851073, 0.0, 0.7118250358317957, 1.4759259446598505, 0.6177251878074594, 0.0, 0.0, 0.5578474164235181, 0.0, 0.0, 0.0, 0.8466209961003106, 0.0, 0.0, 0.0, 0.0, 0.9134452822413822, 0.0, 0.0, 1.1506817448958997, 0.0, 0.0, 0.5717156136201251, 0.0, 0.0, 0.0, 0.0, 0.22301492152906585, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13134314230830874, 0.20762859161099162, 0.0, 0.4768286902241477, 0.0, 0.3252201513410915, 0.5728390197892637, 0.07274257736444308, 0.0946619273240044, 0.0, 0.08735695093663028, 0.0, 0.006047124502145837, 0.0, 0.0, 0.03396077178506113, 0.056902676891892164, 0.05446213354503342, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03284486748482166, 0.0, 0.03394228891521373, 0.0, 0.0, 0.0, 0.15913459349815823, 0.0988686644243417, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06403136572671528, 0.0008539041494970381, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4996043959310575, 0.03466871274471111, 0.0, 0.0, 0.0, 0.5916091668585121, 0.0, 0.0, 0.18522959478004286, 0.0, 0.0, 0.6748263739107161, 0.0, 0.0, 0.5617854630926186, 0.0, 0.7191769350887419, 0.22919875305609166, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07421634147547619, 0.2082330820676049, 0.0, 0.33671550924577986, 0.0, 0.0, 0.8216886233224614, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9288637557541211, 0.0, 0.0, 1.2410393190221276, 0.024834505618206743, 0.6697889027661909, 0.39618825585335343, 0.37106318592637155, 0.321662062811288, 0.0, 0.8625204846142658, 0.4737807718760894, 0.8171062776340833, 0.16785258111865808, 1.931465974538034, 0.1820623956052182, 0.0, 0.40831479446929375, 0.0, 1.6290713896950666, 0.0, 0.0, 1.0235643660149811, 0.0, 0.0, 0.0, 0.0, 0.996334540430692, 0.0, 0.0, 0.44156504893800563, 0.289897027676234, 0.0, 0.5556259307084835, 0.0, 0.0, 0.5751570179061616, 0.0, 0.15465163640644544, 0.0, 0.0, 0.0, 0.0, 0.1740886831542383, 0.8206341762594166, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8467869185435447, 0.05898504962060997, 0.03624481511042625, 0.6732560722166093, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.201694060644539, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4141926752107277, 0.14795154825402113, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21427949262749374, 0.46809092516056994, 0.0, 0.16828675961297507, 0.14194253863939424, 0.0, 0.46436829494386733, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13445486993921502, 0.019720618408469233, 0.2722006890254698, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06550905522135163, 0.04806777087710764, 0.0, 0.0, 0.0, 0.599761835300619, 0.0, 0.0, 0.5741431736534577, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17101973439245724, 0.0, 0.0, 0.0749875087919759, 0.0, 0.0, 0.28776812087676407, 0.8309016545414952, 0.0, 0.0, 0.0, 0.016199069272106216, 0.0, 0.0, 0.0, 0.0, 0.6545099569258361, 0.22702193109653576, 0.04569906480983916, 0.2833580027667076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11138860511768055, 0.062440751035711506, 0.5182620734767335, 0.0, 0.3481758497366363, 0.0, 0.4677994729760326, 0.6992526088901763, 0.01746909322126967, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4416823398234807, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08074443292335906, 0.005624454367769537, 0.4953841958649777, 0.06419759041251974, 0.0, 0.0, 0.0, 0.03378063280221251, 0.27793271609589054, 0.0, 0.0, 0.0, 0.013968102118739474, 0.0, 0.08424327814659714, 0.057402094804332435, 0.0, 0.0, 0.0333773112405404, 0.0, 0.0, 0.0, 0.020814415925578544, 0.050277550690626754, 0.07266714943835642, 0.05420980100927718, 0.1299217183065535, 0.0, 0.0, 0.3197221256849075, 0.0, 0.13800911480490768, 0.0, 0.0, 0.0, 0.0, 1.01268183989861, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7358814757212789, 0.30707785521832553, 0.5276131242565835, 0.0, 0.1743689886750783, 0.0, 0.25821885501181596, 0.5805464694386301, 0.7164948773890167, 0.0, 0.0, 0.0, 0.37021123955626156, 0.12525001349038106, 0.608077535649827, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0938347119534369, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17530069799945608, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6839828466860547, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0036702000371577168, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.030804733252794536, 0.6085396823865649, 0.3664826840226463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.052310575793324585, 0.23438841535865984, 0.027151249553211434, 0.42665810243765545, 0.060892623345148826, 0.0, 0.0, 0.08445468462850356, 0.05478879427510317, 0.5501718854551394, 0.0, 0.11343808432438283, 0.0, 0.09259962343643532, 0.2732186452567139, 0.0, 0.42011946077495216, 0.2576342392674693, 0.0, 0.5090094423403475, 0.0, 0.0, 0.0, 0.0010952054350690443, 0.08086253983246877, 0.0, 0.0, 0.23985944027024297, 0.0, 0.09028722397131896, 0.0, 0.07674602267622682, 0.43900489287844074, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3006474050100551, 0.0, 0.0, 0.0709455536446502, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24893625570967048, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2768131690025365, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0014853584531852684, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2394367041087018, 0.8202130158779322, 0.0, 0.0, 0.28871220094126887, 0.0, 0.0, 0.04358483751824937, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.052964062286445145, 0.0, 0.2958896434064324, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.695162332188878, 0.037163387811150035, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0679762361139716, 0.0, 0.0, 0.24678121036961095, 0.0, 0.0, 0.2964710587865061, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0759598903032082, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07295585235760724, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0603439559536301, 0.0, 0.0, 0.0, 0.17528000283667142, 0.0, 0.12675745187805368, 0.328557971512483, 0.028687306018592266, 0.0, 0.0, 0.8516002254500735, 0.0, 0.4371253184691764, 0.13991121920676916, 0.0, 0.3475458448096685, 0.46894433815651543, 0.0, 0.0, 0.6068029321085694, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.28015080493647854, 0.3107571390829928, 0.0, 0.0, 0.0, 0.0, 0.006563618369995558, 0.5906679530337167, 0.0, 0.0, 0.0, 0.6525869879262292, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00921986700494424, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04479484649111107, 0.0, 0.3151409942990884, 0.021951930030038837, 0.0, 0.2505595957731255, 0.0, 0.0, 0.0, 0.03191831493444459, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22403715744289487, 0.0, 0.0, 0.0, 0.0, 0.0, 0.027940093628006875, 0.0, 0.0, 0.0, 0.26553429437558146, 0.0, 0.030379801994009328, 0.0, 1.223521302648351, 0.3114612281119979, 0.3934859798468234, 0.0, 0.3688885410084021, 0.0, 0.5211677391443227, 0.318605826264122, 0.11794887163110916, 0.0, 0.0, 0.4256936617495534, 0.0, 0.49172025370622324, 0.48430956473476544, 0.0, 1.3234474260067457, 0.28650182105087124, 0.006913853673799038, 0.28826288884375384, 0.3033256150127764, 0.0, 0.19416551553442815, 0.19479473776455275, 0.0, 0.2201952762677155, 0.0, 0.0, 0.34956927181897907, 0.0, 0.0, 0.0, 0.5335997378219544, 0.1831214497933391, 0.5101375543135913, 0.0, 0.7417718286797346, 0.0, 0.23966647500006097, 0.8693502490764229, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21247306643180602, 0.1378389271943791, 0.0, 0.0, 0.2853901797463675, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20343586472727235, 0.29392458170687635, 0.011188169832657642, 0.0, 0.0, 0.28953305486076913, 0.0, 0.0, 0.07223789467137894, 0.0, 0.33051308113923733, 0.4540345661588786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9537370190824367, 0.0, 0.6089477015288718, 0.0, 0.07722630190963325, 0.0, 0.0, 1.0000222254545443, 0.8637206744494375, 0.0, 0.7751920658363071, 0.524298363554463, 0.0, 0.0, 0.01676078910810196, 0.0, 0.0, 0.07604278960261779, 0.0, 0.0, 0.0, 0.0, 0.40940877803475156, 0.0, 0.0, 0.0, 0.0, 0.09252661041066143, 0.44765043171933794, 0.0, 0.24055976047324873, 0.0, 0.15100552643910237, 0.35800810608226774]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.08838669783079417, 0.24540062578718655, 0.0, 0.0, 0.0, 0.0, 0.2598139726110033, 0.0, 0.0, 0.008999058499533074, 0.10561231293601407, 0.018993358540021866, 0.3713088213439608, 0.1272213104915037, 0.0, 0.04569648380052932, 0.0, 0.6778277114032399, 0.0, 1.0116444857173326, 0.1419594034849179, 0.849786220982489, 0.1853715018708835, 0.0, 0.41575027296468353, 0.027919812909200686, 0.38129764067914484, 0.0, 0.010472223603003109, 0.32765224234190193, 0.0, 0.0, 0.0, 0.27657062580546904, 0.018635375946533275, 0.0, 0.6553105493426397, 0.1806768240966126, 0.0, 0.0, 0.13022235819683495, 0.0, 0.0, 0.0096207645890863, 0.0, 0.0, 0.0, 0.0, 0.0027620603050478813, 0.0, 0.0, 0.0, 0.0, 0.06777735948867263, 0.16424694314849322, 0.05466156243395641, 0.0, 0.3550122664783007, 0.0, 0.16598631348758813, 0.0, 0.09916577661749644, 0.0, 0.0, 0.017171766504479664, 0.14883499722913907, 0.14454297081157494, 0.0, 0.0, 0.0, 0.08135785354072747, 0.18934501987281463, 0.0, 0.0, 0.0, 0.043171173549343585, 0.04442771737900286, 0.0, 0.0, 0.16847976307679274, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4519419326045341, 0.0022494085401006682, 0.0, 0.09264806290445121, 0.0, 0.0, 0.5779259042074504, 0.0, 0.0, 0.0, 0.01319039039025495, 0.0, 0.0, 0.05821123759190987, 0.008570313787111606, 0.12498925860233108, 0.3161944438230963, 0.0, 0.0, 0.0, 0.0, 0.03428001709676162, 0.0, 0.0, 0.0, 0.4239046512601812, 0.0, 0.0, 0.0, 0.0, 0.006439869364205756, 0.0, 0.19268641103781292, 0.0, 0.0, 0.0, 0.13842608775449636, 0.7754112567712441, 0.5650474898241402, 0.16678352690096504, 0.0, 0.0, 0.26721012017234747, 0.0, 0.0, 0.40379612390902914, 0.0, 0.5616249905190419, 0.0, 0.0, 0.0, 0.05914491909738165, 0.0, 0.0, 0.5796881176474965, 0.0, 0.0, 0.0, 0.0, 0.19259492607938428, 0.5396680351153355, 0.1002017616669876, 0.0, 0.0, 0.07018769309449151, 0.0, 0.0, 0.0, 0.8890997886610695, 0.01580855669802033, 0.07592126473643429, 0.0, 0.0, 0.5327597008182733, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26650628783183555, 0.0, 0.0, 0.4177758368274485, 0.01847646120309497, 0.2474671864399932, 0.030137257707486417, 0.0, 0.0, 0.0, 0.0, 0.4333965515966774, 0.0, 0.025363517487659904, 0.0, 0.0, 0.28727696476738296, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.48463873218296616, 0.3619901497543638, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3095355097692787, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08881016246594031, 0.0864536634210502, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13334438240099766, 0.0, 0.2743296378950603, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21573236386631758, 0.138874394226427, 0.21526827303910834, 0.0, 0.8276738568887637, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13803323038392623, 0.0, 0.0, 0.18937725647626488, 0.0, 0.09756025088965181, 0.10247093349242449, 0.14247269057616566, 0.0, 0.4644170645216008, 0.0, 0.0, 0.0, 0.6396576582705668, 0.0, 0.14648223852485512, 0.0, 0.3845502326592231, 0.0, 0.0, 0.0, 0.0, 0.01873756402105984, 0.01865952833886222, 0.015020499411212522, 0.0, 0.11259829701043601, 0.13537240455394534, 0.18963280616455852, 0.0, 0.1732077631723114, 0.0, 0.009279305276553587, 0.0, 0.09430577452314615, 0.07566718263303025, 0.06172210939249301, 0.0, 0.0, 0.0017837976727260341, 0.0, 0.0, 0.06543462567823881, 0.0621898641418941, 0.0, 0.0, 0.0, 0.41468742426256355, 0.21475258071539002, 0.0, 0.0, 0.08728790458911416, 0.0, 0.0, 0.4956863169283368, 0.0, 0.0, 0.3312300382813116, 0.0, 0.6814401538748236, 0.017040189816468283, 0.0, 0.0, 0.0, 0.0, 0.1702496303089558, 0.04558027585085677, 0.0, 0.0, 0.05652088848846798, 0.0, 0.0, 0.039516412285590885, 0.04836078861030929, 0.0, 0.0, 0.0, 0.0066658135086557066, 0.28756231542228783, 0.0, 0.0, 0.005213055047386901, 0.0, 0.03077146873270733, 0.0, 0.18174661292486113, 0.011855817392138795, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2550943184597343, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19130663987033655, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08795782309469964, 0.4949588224757624, 0.10547057221471998, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0428147611319233, 0.0, 0.4336529209634745, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10981699391447328, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14060207841669792, 0.19125923680987167, 0.17120811796462362, 0.0, 0.0, 0.29682703146376954, 0.2309028098716656, 0.0, 0.3415808438027304, 0.5413871431291847, 0.19010077735847383, 0.0, 0.0, 0.0, 0.037176095928915485, 0.0, 0.0, 0.19621484736356867, 0.46400800412758475, 0.6251709107930822, 0.11840971377140953, 0.5297289566486542, 0.0, 0.0, 0.0629827610017505, 0.0, 0.30811879649367063, 0.0, 0.43390554368076734, 0.0, 0.3078202365484454, 0.0, 0.0, 0.06464271443386868, 0.0, 0.0, 0.7925386152607364, 0.0, 0.0, 0.0, 0.0, 0.4871987999416911, 0.0, 0.0, 0.0, 0.026241068751647587, 0.4048536827096608, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04667237073016084, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008398941803472277, 0.0, 0.3462604046867109, 0.0, 0.41520221547875746, 0.0, 0.0, 0.0, 0.49209502240450126, 0.6693906625198521, 0.19758221668125867, 0.008160985490142467, 0.2605302099636665, 0.0, 0.0, 0.0, 0.9022483783960523, 1.0694729952381887, 0.6653361553880242, 0.881281776229774, 0.001915716390555032, 0.022482711824403312, 0.0040432994483474245, 0.0, 0.3214035783779074, 0.6867348676262818, 0.0, 0.6858420722534031, 0.0, 0.5811377322397425, 0.04246482918579259, 0.11467932906673921, 0.09709202075873843, 0.0, 0.0, 0.0, 0.2200140216993193, 0.0, 0.7507517442378999, 0.0, 0.0, 0.7372603142185328, 0.0, 0.006741369353138395, 0.8069776586909365, 0.00396709224045839, 0.0, 0.0, 0.0, 0.6101879525945185, 0.0, 0.0, 0.026258353794755256, 0.4016774417320984, 0.014813931005383318, 0.6190727226045784, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11309418362565873, 0.0, 0.0, 0.0, 0.0, 0.0, 0.036526440507301174, 0.022956711251180283, 0.40907708831845013, 0.0012453094708774737, 0.0, 0.0, 0.0, 0.0, 0.014062827632021033, 0.0, 0.0, 0.0, 0.006394809610240893, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21784527989974428, 0.0, 0.0, 0.0, 0.3180108962002836, 0.2508741672819204, 0.17523704698611114, 0.13837147224686994, 0.27935616728122964, 0.1859955338163167, 0.0, 0.06462126637992056, 1.0008493550472979, 0.6004231261661688, 0.0, 0.3940831570768702, 0.0, 0.0, 0.1305734964236071, 0.0, 0.09786792103897592, 0.0, 0.11654231814191775, 0.46697515894469777, 0.5700094853415558, 0.1107417067979406, 0.346111937724667, 0.0, 0.1225882117910605, 0.0, 0.28673152989464684, 0.0, 0.12654022793408917, 0.0, 0.0, 0.45809293367016757, 0.3647743355850667, 0.817304098176075, 0.0036334642288677415, 0.0, 0.2669922423479005, 0.0, 0.0, 0.0, 0.32457729111200295, 0.5543705739187803, 0.8812247175026642, 0.16912005088903598, 0.5020073987686707, 0.0, 0.09252856828989332, 0.0, 0.0, 0.0, 0.06948083164247039, 0.2588335470174883, 0.23431107957691064, 0.0, 0.0, 0.4609326565956409, 0.0981996119487529, 0.0, 0.0, 0.0, 0.0, 0.41461953421729686, 0.2880401034246727, 0.0, 0.12878680297473977, 0.5528442548314576, 0.8638211211778427, 0.0, 0.19329232440572794, 0.07190135483727589, 0.0, 0.37985878824980135, 0.0, 0.0, 0.47943873587199365, 0.0, 0.1632157826430328, 0.028602417984395823, 0.12587604601890898, 0.20239239184313712, 0.0, 0.9957002205667365, 0.5403020941861382, 0.1731723605204449, 0.5984215188307392, 0.5906299727726914, 0.15421128542459664, 0.22417177182593684, 0.14760215442934868, 0.0, 0.0, 0.10452572448334531, 0.0, 0.0, 0.5192893646261969, 0.0, 0.0, 0.0, 0.03548389098440683, 0.0, 0.0, 0.5359908824860568, 0.0, 0.0, 0.4508397689271815, 0.17912612646003018, 0.05191685886593687, 0.015041105758856862, 0.0, 0.0, 0.07792048637164595, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16284516279577882, 0.07019827463547235, 0.0, 0.0017166852898648512, 0.022601665621833984, 0.0, 0.0, 0.0, 0.08820522946301469, 0.0, 0.0, 0.4597721334804677, 0.0, 0.01968862180697655, 0.1496625833744818, 0.0, 0.0, 0.0, 0.0, 0.042967175515187854, 0.0, 0.5925889649898668, 0.03501818713399176, 0.0, 0.23929946904107768, 0.0, 0.0, 0.0, 0.0, 0.0, 0.586042846539397, 0.0, 0.35012160211964255, 0.0, 0.0, 0.2671275149044985, 0.5254872140248491, 0.0, 0.0, 0.0, 0.4346599048698998, 0.0, 0.6685147232492785, 0.0, 0.0, 0.006603260891096502, 0.41222164853295895, 0.691126666160783, 0.3115253982735278, 0.0, 0.5948463934358659, 0.0, 0.6104915934501508, 0.0, 0.10122959156761935, 0.0, 0.0, 0.4361142638019697, 0.0, 0.0, 0.022953207777356696, 0.01768983406390727, 0.0, 0.49300859199961644, 0.0, 0.45242065570193146, 0.0, 0.25296290668039206, 0.24913417193879323, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0036117281801281323, 0.37981219294125684, 0.0, 0.7813883080906168, 0.37787984308171674, 0.0, 0.3540795182413977, 0.0, 0.0, 0.024079641916532137, 0.0, 0.3372996465844834, 0.4587109366214878, 0.0, 0.0, 0.0, 0.0, 0.008167928328435794, 0.30985126085873477, 0.0, 0.1769552845849796, 0.01014740975340464, 0.3239445526321744, 0.2589119416659987, 0.30500724408067964, 0.0, 0.8521343659652334, 0.0, 0.12278148254603906, 0.0, 0.0, 0.7559317032710442, 0.0, 0.4639073457870384, 0.3375990135598286, 0.0, 0.09771802789528808, 0.0, 0.0, 0.0, 0.0, 0.14259284539732897, 0.0, 0.0, 0.0, 0.03978581978010784, 0.4979059043742451, 0.0, 0.0, 0.02239395579386129, 0.0, 0.0, 0.08552679542089565, 0.0, 0.28975782063069117, 0.4544199284136855, 0.4879966224465369, 0.0, 0.5198773678370044, 0.09074414747732065, 0.0, 0.0, 0.0, 0.08751115961530397, 0.0, 0.0, 0.0, 0.0, 0.01723069885490719, 0.005476104703094391, 0.0, 0.0, 0.0, 0.0, 0.0, 0.018363845689630152, 0.0, 0.0, 0.0, 0.03456818780211805, 0.16076784648973388, 0.1339929852951158, 0.12939203287442297, 0.6506668934574178, 0.07556479761019191, 0.0, 0.0, 0.1120835499344092, 0.004448105032597938, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.424200452243984, 0.21870476868551994, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04400733534916703, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5084860468121182, 0.0, 0.0, 0.0, 0.06613225218879751, 0.0, 0.0, 0.03227907593043655, 0.0, 0.01489513919323321, 0.0, 0.0, 0.0004903768608608706, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3709186680024144, 0.0057636955333438475, 0.0, 0.0, 0.0, 0.0, 0.05167292145382253, 0.03114794005970685, 0.0, 0.0, 0.0, 0.04406332427000894, 0.0, 0.28333618254852055, 0.0, 0.0, 0.08754290037370453, 0.0, 0.030717709851121017, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15375069919642081, 0.17266284464812964, 0.0, 0.0, 0.0, 0.0, 0.4591427931520538, 0.0, 0.0, 0.4080740928256236, 0.04867028613084824, 0.0, 0.0, 0.19198247076461217, 0.0, 0.0, 0.0, 0.04903912896069461, 0.0, 0.0, 0.0, 0.03565133307467186, 0.011864802664565318, 0.0, 0.0770587282490205, 0.06882991093352155, 0.0, 0.32659059563162995, 0.036557980918752765, 0.0, 0.0, 0.0, 0.0, 0.03137440184410096, 0.0, 0.0, 0.0, 0.18642661293603366, 0.0, 0.0, 0.0, 0.0, 0.06772257249589227, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21100355273002191, 0.0, 1.3416336420880526, 0.0, 0.0, 0.46161810723264507, 0.0, 0.4582995461192519, 0.05104879083246295, 0.5773364122618407, 0.57352236887648, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5640999064171196, 0.6666836020552119, 0.06886868779194379, 0.564904097158741, 0.0, 0.3210670084651615, 0.0, 0.0, 0.0, 0.9392890324745945, 0.0, 0.0, 0.2984250122811811, 0.0, 0.009405052137469182, 0.0, 0.39950267169818077, 0.07050196115427894, 0.824636783426293, 0.4953951141450468, 0.0, 0.0, 0.34635403119710667, 0.8798483938054087, 0.39347138128916365, 0.0, 0.0, 0.41085938784277987, 0.0, 0.7572672907360996, 0.0, 0.1918766456362537, 0.14775814623354722, 0.0, 0.0, 0.18414622884752666, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32881972797464193, 0.22733765531865868, 0.29775899283396906, 0.0, 0.0, 0.0, 0.0387256895819095, 0.5151993362991701, 0.0, 0.0, 0.0, 0.008722287803381279, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1780184121162673, 0.0, 0.0, 0.0, 0.0, 0.0511079535437104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05738054033260683, 0.0, 0.0, 0.3177388426930726, 0.0, 0.0, 0.0019725686702392773, 0.0, 0.0, 0.0, 0.0, 0.20770780211002965, 0.0, 0.0, 0.0, 0.8220710140576788, 0.0, 0.0, 0.0, 0.0, 0.9922981121231631, 0.19272059014741777, 0.18871634512759347, 0.009978475777936804, 0.5372065554785002, 0.0, 0.0, 0.17523452577386275, 1.0717089910255204, 0.5571949298413089, 0.0, 0.3237380570219946, 0.0, 1.1122472434174695, 0.10030606802210519, 0.0, 0.42164300445661296, 0.0, 0.2034243141927581, 0.0, 1.0210169552267845, 0.19689099390765805, 0.14675887656145528, 0.15859984719751974, 0.2247981968120587, 0.0, 0.22026608101531156, 0.5078755745015515, 0.2690121908665218, 0.0, 0.0, 0.0, 0.3746062674772627, 0.7584612913730437, 0.0, 0.0, 0.8749551201631387, 0.5887430555293698, 0.8247249363546676, 0.21469878981542115, 1.002630449124598, 0.2572736542055717, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005299432156408299, 0.06219376030445952, 0.011184949515597283, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11747014454387752, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1628689565677918, 0.010974138077104432, 0.0, 0.0, 0.0, 0.0, 1.0297896192318396, 0.0, 0.662355409415741, 0.5720482757502646, 0.3113118281374319, 0.0, 0.0, 0.25393001900118484, 0.02276308091998572, 0.03508485404358758, 0.45957926224802004, 0.0, 0.05036277933399867, 0.1447652248957086, 0.0, 0.0242600552046752, 0.005732716773973234, 0.0, 0.0, 0.04566723978074626, 0.007798132412071851, 0.435160826872351, 0.19099152935556227, 0.0, 0.09109198019072849, 0.0, 0.0, 0.0, 0.0, 0.040872817508571836, 0.0, 0.8816978299630381, 0.023385944730671186, 0.20852512378086208, 0.3265908462108258, 0.0, 0.8135187830099228, 0.5004561612521131, 0.5929930445509373, 0.07024535595608956, 0.4293153063068892, 0.33966138448698774, 0.0, 0.0, 0.219723330992236, 0.0, 0.0, 0.32087091161635517, 0.10046935863374477, 0.0, 0.21249664109114016, 0.0, 0.0, 0.5675920409330384, 0.0, 0.0, 0.02195446551553763, 0.0, 0.0, 0.0, 0.7828555360473642, 0.0, 0.0, 0.0, 0.539158201637973, 0.0, 0.037194676308406484, 0.0, 0.5899620450765102, 0.0, 1.064333300573155, 0.0, 0.4126616356723095, 0.0, 0.0, 0.0, 0.0, 0.005455259856546277, 0.06532462900349355, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6382915607944724, 0.0, 0.1058392854111573, 0.06419509685388734, 0.0, 0.0, 0.42600921169580896, 0.0, 0.6948705846598551, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7494592390120385, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.34703521803027376, 0.47959926529853425, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18954560408868362, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04058791510732469, 0.0, 0.0, 0.0, 0.026371559760006224, 0.46735915191246824, 0.9729562858716514, 0.0, 0.01593384874339247, 0.0, 0.0, 0.10548242945325798, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08182217469250767, 0.0, 0.0, 0.0, 0.0, 0.5929119201290493, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0028851424117770368, 0.14902256810885017, 0.0, 0.19393473922191487, 0.0010822975481770052, 0.10083006827906865, 0.005589290532560041, 0.0, 0.0377329438822351, 0.0, 0.0, 0.0, 0.0, 0.08622227292139113, 0.0, 0.0, 0.052960874748722735, 0.0, 0.0, 0.0, 0.040542431602682394, 0.0, 0.034748695303796415, 0.0, 0.0, 0.07778126624009696, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08990369242695052, 0.0, 0.0, 0.0, 0.0, 0.1714300400506459, 0.23319412483505944, 0.06883127399553583, 0.0, 0.0, 0.4520065142603474, 0.7559043080573538, 0.0, 0.9918256875421747, 0.34148047573693957, 0.23178166527267935, 0.1984049383893502, 0.0, 0.0, 0.0, 0.4618215114400494, 0.055660721213669, 0.23923628669541208, 0.0, 0.0, 0.39945045771087084, 0.3329245273531598, 0.25602890393383043, 0.0, 0.2574713970419185, 0.0, 0.0, 0.27848743576980106, 0.008801495971424074, 0.0, 0.0, 0.0, 0.0, 0.4961604274582618, 0.0, 0.0, 0.5434029369831717, 0.0, 0.0, 0.0, 0.0, 0.15767180411659634, 0.03460197933312267, 0.0, 0.0, 0.036131085316488384, 0.0, 0.0, 0.0, 0.016873683938744447, 0.019906225883667222, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.012507180486519448, 0.0, 0.02685500739865508, 0.028916495513405534, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029742024653825302, 1.0585077478673894, 0.0, 0.0, 0.10450313655197234, 0.0, 0.27087506529662764, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7518068036153462, 0.0, 0.2680435440340337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1316435251098364, 0.8078731280911045, 0.0, 0.0, 0.0, 0.10506968633342718, 0.23470506622896917, 0.0, 0.0, 0.607722294332459, 0.023665118775296444, 0.014839085130224942, 0.0, 0.0, 0.24386571546932873, 0.0, 0.0, 0.3502050356771847, 0.0, 0.0, 0.46379933676520235, 0.0, 0.08440789641107996, 0.04593440835303492, 0.021386035200774683, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7729032574550468, 0.0, 0.11781868003483978, 0.030607043037187642, 0.0, 0.1726108187023696, 0.09583059716129254, 0.5239548125179947, 0.4366934746091282, 0.0, 0.0, 0.24627150409293175, 0.0, 0.13007997889130285, 0.36528893478699903, 0.18318396866765946, 0.0, 0.011811348038501769, 0.0, 0.0, 0.0, 0.0, 0.0, 1.1723218684731558, 0.5524938653991974, 0.7739462295109258, 0.0, 0.7069108871009565, 0.0, 1.1639912229987677, 0.0, 0.0737216927746314, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.41689243790078717, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7826638975615551, 0.0, 0.0, 0.0, 0.1017910453533696, 0.0, 0.0, 0.0, 0.0, 0.022926661938484392, 0.0, 0.0, 0.24172521220469304, 0.33406187082542654, 0.0, 0.0, 0.31010342596966556, 0.0, 0.0, 1.1081747068991343, 0.7344335908166203, 0.16327913698089802, 0.7325151937485493, 0.17384385605370836, 0.08371482373128411, 0.0, 0.3420940653006234, 0.0, 0.04990946505718503, 0.5498243469410863, 0.0, 0.007722420577405236, 0.0906297807361463, 0.016298894248894004, 0.0, 0.17760842474448457, 0.7445477489471244, 0.0, 0.0, 0.23271741543898974, 0.5862478840032251, 0.38013450552556605, 0.0, 0.13625107884748244, 0.3102878234624971, 0.0, 0.0, 0.0613418632643825, 0.1222024301534575, 0.0, 0.0, 0.09768999149541487, 0.07432603695941839, 0.0, 0.0, 0.2373353492409029, 0.8187850328888507, 0.0, 0.1472545596990393, 0.08055057930039017, 0.0, 0.0, 0.0, 0.0, 0.022056121851574153, 0.7041166858972707, 0.0, 0.0, 0.0, 0.7708181971148897, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6591456110142444, 0.0, 0.0, 0.0, 0.5151326583061712, 0.4293405940090164, 0.0, 0.30993576190130123, 0.24212487706484054, 0.0, 0.0, 0.35913833699197834, 0.594616431743019, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7007742613782065, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07822848175716028, 0.0, 0.795037704009975, 0.0, 0.18176747614492506, 0.0, 0.0, 0.0, 0.0, 0.05218428597433502, 0.551641665900435, 0.0, 0.0, 0.0, 0.0, 0.4173251650328503, 0.13888627164939463, 0.0, 0.9020292850308806, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32443041606173034, 0.0, 0.3672605285185933, 0.0, 0.0, 0.0, 0.20671726976925492, 0.0, 0.0, 0.38426107037286794, 0.0, 0.0, 1.3158788906540237, 0.0, 0.0, 0.33314012692337136, 0.4077019730262151]), 42), 42)),) julia> @finch_code begin Ct .= 0 for j = parallel(_) @@ -734,7 +734,7 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.40798272794029244, 0.0, 0.05552236202954211, 0.0, 0.0, 0.0, 1.1508129348205518, 0.0, 0.19395356472348033, 0.2307481734593406, 0.0, 0.0, 0.0, 0.0, 0.7400687115958035, 0.0, 0.0, 0.4711198057610666, 0.0, 0.07015028050595504, 0.08663540769774136, 0.0, 0.0, 0.46359958748433167, 0.0, 0.035823254967012344, 0.0, 0.21605429332119105, 0.050389255833200065, 0.0, 0.0, 0.08982343514212215, 0.0, 0.11508828733565957, 0.4022461237733094, 0.0, 0.5232411380476881, 0.0, 0.17677960337865342, 0.6347058701128525, 0.0, 0.0, 0.0, 0.080760767105778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.530417945120141, 0.036947581649449654, 0.0, 0.42172014534542845, 0.0, 0.0, 0.0, 0.04046090790460827, 0.0, 0.0, 0.0, 0.0, 0.016730358390191713, 0.11216899138664496, 0.10090277285890621, 0.3770798811678483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06022016698365358, 0.0, 0.3347277070064448, 0.08319806447593037, 0.0, 0.0, 0.15734979027583865, 0.6034963214197537, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8559793301235343, 0.0, 0.0221818618958444, 0.0, 0.0, 0.0, 0.0, 0.6249640468245943, 0.0, 0.706457127780651, 0.8381987455683932, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05075027829145945, 0.0, 0.0, 0.28298860880763127, 0.0, 0.46775948880043733, 0.3276758676884306, 0.23162154119323575, 0.0, 0.0, 0.7097058534293814, 0.0, 0.01925480712564137, 0.6617464495997725, 0.5510119129346432, 0.9503030089786222, 0.19493828703065708, 0.4234771306495736, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11491839349038546, 0.0, 0.0, 0.0, 0.0, 0.0, 0.952344347120024, 0.31481029761912926, 0.0, 0.0, 0.3371532262514988, 0.0, 0.6461986748500718, 0.0, 0.20388394461232018, 0.6689077519036521, 0.008065708303756284, 0.026774581755143884, 0.0, 0.0, 0.0, 0.0, 0.20246692989511542, 0.0, 0.0, 0.0, 0.0, 0.6964472745009185, 0.0, 0.3001098015546565, 0.0, 0.002810485733837209, 0.0, 0.0, 0.2833439267406652, 0.0, 0.0, 0.0, 0.01365478232442864, 0.0, 0.07752931191170997, 0.005400497114468351, 0.01008472602077043, 0.7305457354717977, 0.0, 0.0, 0.3791767135274968, 0.009729638043940761, 0.14133243937397577, 0.0, 0.6050992861887972, 0.0, 0.0, 0.0, 0.0, 0.32748073574326575, 0.29782974023215064, 0.0, 0.0, 0.0, 0.0, 0.008516959572353846, 0.0, 0.0, 0.0, 0.5188617620854502, 0.0, 0.12960309538886133, 0.0, 0.2159060099855789, 0.0, 0.0, 0.0, 0.5916658876154497, 0.0, 0.08410324034674674, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7242114416300933, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.43295426032070555, 0.1879551877902947, 0.09140698995628445, 0.0, 0.0, 0.0, 0.0, 0.053834983759932134, 0.014210556502435533, 0.023024626002393696, 0.0, 0.0, 0.08510060429095491, 0.15442202399960203, 0.0, 0.5391171356753139, 0.0, 0.44855253786204935, 0.048493606647816025, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22138370024934187, 0.0, 0.08746644969030876, 0.0, 0.0, 0.0, 0.1616519416528851, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.035084084514750494, 0.0, 0.11688517594508105, 0.2089391042079727, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05598779403983851, 0.014778823268485956, 0.0, 0.0, 0.0, 0.0, 0.057780108315529474, 0.0, 0.201721527067654, 0.0, 0.3341648455181398, 0.0, 0.0, 0.7601477683176978, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8032144106029788, 0.0, 0.18178069418497272, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6936206835397086, 0.0, 0.36283080196789974, 0.4415514891805875, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.041591186808888826, 0.3770004419200786, 0.0, 0.0, 0.0, 0.17252416859375463, 0.0, 0.0, 0.6527400000425327, 0.0, 0.3340575108846618, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7763472218770214, 0.0, 0.0, 0.0, 0.0, 0.8376247582699287, 0.0, 0.014460886244840168, 0.6266762938745922, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.46397397404593055, 0.0, 0.23926875754339813, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.46347904589364963, 0.05902942262309747, 0.0, 0.03877718275846287, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2950495413884076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06597380264866397, 1.0898197013430582, 0.0, 0.012501862454917015, 0.0, 0.0, 0.05385941027253928, 0.0, 0.3522343881391282, 0.0, 0.398164495085241, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004630463685504157, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25876266416388005, 0.0, 0.0, 0.3103356146935319, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6074148238597709, 0.09425255656440318, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0032593418386170935, 0.0, 0.2297346969390008, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12055792386342427, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25324185315889564, 0.0, 0.05731281617489229, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21868854065637486, 0.0, 0.0, 0.13921477990069736, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.013113097926933236, 0.11886277100269102, 0.0, 0.0, 0.0, 0.0, 0.0, 0.52224991418746, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4173873832595858, 0.08858709037486684, 0.0, 0.0, 0.0, 0.0, 0.15667266254329507, 0.0, 0.40730912125206437, 0.5164653515440787, 0.0, 0.2032159032369745, 0.40587691627032874, 0.0, 0.0, 0.0, 0.0340034080482809, 0.0, 0.0, 0.15427161497649788, 0.44428262792688017, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.014262992619462008, 0.38024333666677773, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1612065141710269, 0.0, 0.03925137009723705, 0.0, 0.0078366311533161, 0.0, 0.014460397168610369, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06667255880132161, 0.0, 0.14952781464402123, 0.0, 0.0, 0.0, 0.0, 0.2779234999305725, 0.0, 0.008746314891451676, 0.0, 0.0, 0.06465282563196756, 0.0, 0.2464235137262255, 0.006899580599861792, 0.278556260330773, 0.007445268802069765, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18845739307946788, 0.01641249348500929, 0.5317378389887557, 0.0, 0.0, 0.14988438489574235, 0.0, 0.010375471289624015, 1.3557213333649594, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18808146093167488, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37253241298417417, 0.0, 0.1111794727253734, 0.16963583085055012, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10986305912788819, 0.0, 0.0, 0.11949895822624457, 0.0, 0.0, 0.15821760502340373, 0.0, 0.5523682427180556, 0.0, 0.4595776329669528, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.33581328744582783, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24138228903328196, 0.0, 0.3691306800612154, 0.0, 0.0, 0.0, 0.0, 0.0, 1.232394871494877, 0.0, 0.0, 0.0, 0.5293521525003586, 0.0, 0.48349454590588176, 0.0, 0.0, 0.6981988327823653, 0.0, 0.0, 0.0, 0.0, 0.0, 0.33600003819418794, 0.10493510524858034, 0.1002766625939797, 0.0, 0.4760848715940903, 0.30327936688968893, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15549653856407664, 0.053555423141422365, 0.33124643300151746, 0.1452133754699813, 0.29863037601205833, 0.5069679636197618, 0.0, 1.2650777504013886, 0.0, 0.0, 0.8010376870067246, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8336854027224526, 0.0, 0.0, 0.0, 0.0, 0.013135866634354858, 0.7693584995036987, 0.0, 0.0, 0.0, 0.1809386811488775, 0.18409266358857004, 0.0, 0.8209089663283375, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6269731623222802, 0.0, 0.0, 0.0, 0.0, 0.8578109001691112, 0.13549697762155272, 0.8892025809188543, 0.0, 0.17753144998442447, 0.0, 0.3275865900116729, 0.37045604078207667, 0.0, 0.0, 0.45942273296787417, 0.0, 0.0, 0.1496601554416231, 0.0, 0.4896166566389182, 0.09296161452877622, 0.0, 0.15295686770265157, 0.0, 0.0, 0.0, 0.18412880463476564, 0.0, 0.19671721658454625, 0.0, 0.0, 0.15630345798009787, 0.0, 0.16866550691184853, 0.0, 0.3962565901298767, 0.0, 0.0, 0.009054605400028368, 0.0, 0.0, 0.0, 0.0, 0.6323717354885464, 0.0, 0.27367929286054155, 1.074929147630902, 0.1458067334724375, 0.22417700682510228, 0.0, 0.10951695376531846, 0.0, 0.007581110002282966, 0.24931277842808883, 0.0, 0.6883954376611309, 0.6336690200937254, 0.2666286675338324, 0.0, 0.0, 0.0, 0.0, 0.2876738228687025, 0.0, 0.0, 0.21522568832904387, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0438812752886428, 0.6525143726026617, 0.0, 0.0, 0.0, 0.0, 0.0, 1.1869853573228195, 0.11631516482088484, 0.0, 0.0, 0.0, 0.0, 0.06506946683877823, 0.0, 0.22717008671076838, 0.10242247240104177, 0.18900849588618046, 0.11442201255265518, 0.5664450740439114, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019408932182682588, 0.20321698947174538, 1.233551723482737, 0.3258945612095407, 0.0, 0.13004560449904765, 0.0, 0.5146863326888748, 0.0, 0.0, 0.26506893163091566, 0.6961290235591785, 0.7308179758735578, 0.019108835994024305, 0.0, 0.0, 0.12318551581994355, 0.0, 0.6633736020985646, 0.09733981959320877, 0.6085861256804133, 0.0, 0.3702803270823883, 0.0, 0.31915877170632656, 0.0, 0.0048098299833409025, 0.08330917183364514, 0.03767139221212642, 0.0, 0.0, 0.7595521482230864, 0.0, 0.40492576086384785, 0.9767048148851073, 0.0, 0.7118250358317957, 1.4759259446598505, 0.6177251878074594, 0.0, 0.0, 0.5578474164235181, 0.0, 0.0, 0.0, 0.8466209961003106, 0.0, 0.0, 0.0, 0.0, 0.9134452822413822, 0.0, 0.0, 1.1506817448958997, 0.0, 0.0, 0.5717156136201251, 0.0, 0.0, 0.0, 0.0, 0.22301492152906585, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13134314230830874, 0.20762859161099162, 0.0, 0.4768286902241477, 0.0, 0.3252201513410915, 0.5728390197892637, 0.07274257736444308, 0.0946619273240044, 0.0, 0.08735695093663028, 0.0, 0.006047124502145837, 0.0, 0.0, 0.03396077178506113, 0.056902676891892164, 0.05446213354503342, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03284486748482166, 0.0, 0.03394228891521373, 0.0, 0.0, 0.0, 0.15913459349815823, 0.0988686644243417, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06403136572671528, 0.0008539041494970381, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4996043959310575, 0.03466871274471111, 0.0, 0.0, 0.0, 0.5916091668585121, 0.0, 0.0, 0.18522959478004286, 0.0, 0.0, 0.6748263739107161, 0.0, 0.0, 0.5617854630926186, 0.0, 0.7191769350887419, 0.22919875305609166, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07421634147547619, 0.2082330820676049, 0.0, 0.33671550924577986, 0.0, 0.0, 0.8216886233224614, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9288637557541211, 0.0, 0.0, 1.2410393190221276, 0.024834505618206743, 0.6697889027661909, 0.39618825585335343, 0.37106318592637155, 0.321662062811288, 0.0, 0.8625204846142658, 0.4737807718760894, 0.8171062776340833, 0.16785258111865808, 1.931465974538034, 0.1820623956052182, 0.0, 0.40831479446929375, 0.0, 1.6290713896950666, 0.0, 0.0, 1.0235643660149811, 0.0, 0.0, 0.0, 0.0, 0.996334540430692, 0.0, 0.0, 0.44156504893800563, 0.289897027676234, 0.0, 0.5556259307084835, 0.0, 0.0, 0.5751570179061616, 0.0, 0.15465163640644544, 0.0, 0.0, 0.0, 0.0, 0.1740886831542383, 0.8206341762594166, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8467869185435447, 0.05898504962060997, 0.03624481511042625, 0.6732560722166093, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.201694060644539, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4141926752107277, 0.14795154825402113, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21427949262749374, 0.46809092516056994, 0.0, 0.16828675961297507, 0.14194253863939424, 0.0, 0.46436829494386733, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13445486993921502, 0.019720618408469233, 0.2722006890254698, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06550905522135163, 0.04806777087710764, 0.0, 0.0, 0.0, 0.599761835300619, 0.0, 0.0, 0.5741431736534577, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17101973439245724, 0.0, 0.0, 0.0749875087919759, 0.0, 0.0, 0.28776812087676407, 0.8309016545414952, 0.0, 0.0, 0.0, 0.016199069272106216, 0.0, 0.0, 0.0, 0.0, 0.6545099569258361, 0.22702193109653576, 0.04569906480983916, 0.2833580027667076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11138860511768055, 0.062440751035711506, 0.5182620734767335, 0.0, 0.3481758497366363, 0.0, 0.4677994729760326, 0.6992526088901763, 0.01746909322126967, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4416823398234807, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08074443292335906, 0.005624454367769537, 0.4953841958649777, 0.06419759041251974, 0.0, 0.0, 0.0, 0.03378063280221251, 0.27793271609589054, 0.0, 0.0, 0.0, 0.013968102118739474, 0.0, 0.08424327814659714, 0.057402094804332435, 0.0, 0.0, 0.0333773112405404, 0.0, 0.0, 0.0, 0.020814415925578544, 0.050277550690626754, 0.07266714943835642, 0.05420980100927718, 0.1299217183065535, 0.0, 0.0, 0.3197221256849075, 0.0, 0.13800911480490768, 0.0, 0.0, 0.0, 0.0, 1.01268183989861, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7358814757212789, 0.30707785521832553, 0.5276131242565835, 0.0, 0.1743689886750783, 0.0, 0.25821885501181596, 0.5805464694386301, 0.7164948773890167, 0.0, 0.0, 0.0, 0.37021123955626156, 0.12525001349038106, 0.608077535649827, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0938347119534369, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17530069799945608, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6839828466860547, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0036702000371577168, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.030804733252794536, 0.6085396823865649, 0.3664826840226463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.052310575793324585, 0.23438841535865984, 0.027151249553211434, 0.42665810243765545, 0.060892623345148826, 0.0, 0.0, 0.08445468462850356, 0.05478879427510317, 0.5501718854551394, 0.0, 0.11343808432438283, 0.0, 0.09259962343643532, 0.2732186452567139, 0.0, 0.42011946077495216, 0.2576342392674693, 0.0, 0.5090094423403475, 0.0, 0.0, 0.0, 0.0010952054350690443, 0.08086253983246877, 0.0, 0.0, 0.23985944027024297, 0.0, 0.09028722397131896, 0.0, 0.07674602267622682, 0.43900489287844074, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3006474050100551, 0.0, 0.0, 0.0709455536446502, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24893625570967048, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2768131690025365, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0014853584531852684, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2394367041087018, 0.8202130158779322, 0.0, 0.0, 0.28871220094126887, 0.0, 0.0, 0.04358483751824937, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.052964062286445145, 0.0, 0.2958896434064324, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.695162332188878, 0.037163387811150035, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0679762361139716, 0.0, 0.0, 0.24678121036961095, 0.0, 0.0, 0.2964710587865061, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0759598903032082, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07295585235760724, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0603439559536301, 0.0, 0.0, 0.0, 0.17528000283667142, 0.0, 0.12675745187805368, 0.328557971512483, 0.028687306018592266, 0.0, 0.0, 0.8516002254500735, 0.0, 0.4371253184691764, 0.13991121920676916, 0.0, 0.3475458448096685, 0.46894433815651543, 0.0, 0.0, 0.6068029321085694, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.28015080493647854, 0.3107571390829928, 0.0, 0.0, 0.0, 0.0, 0.006563618369995558, 0.5906679530337167, 0.0, 0.0, 0.0, 0.6525869879262292, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00921986700494424, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04479484649111107, 0.0, 0.3151409942990884, 0.021951930030038837, 0.0, 0.2505595957731255, 0.0, 0.0, 0.0, 0.03191831493444459, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22403715744289487, 0.0, 0.0, 0.0, 0.0, 0.0, 0.027940093628006875, 0.0, 0.0, 0.0, 0.26553429437558146, 0.0, 0.030379801994009328, 0.0, 1.223521302648351, 0.3114612281119979, 0.3934859798468234, 0.0, 0.3688885410084021, 0.0, 0.5211677391443227, 0.318605826264122, 0.11794887163110916, 0.0, 0.0, 0.4256936617495534, 0.0, 0.49172025370622324, 0.48430956473476544, 0.0, 1.3234474260067457, 0.28650182105087124, 0.006913853673799038, 0.28826288884375384, 0.3033256150127764, 0.0, 0.19416551553442815, 0.19479473776455275, 0.0, 0.2201952762677155, 0.0, 0.0, 0.34956927181897907, 0.0, 0.0, 0.0, 0.5335997378219544, 0.1831214497933391, 0.5101375543135913, 0.0, 0.7417718286797346, 0.0, 0.23966647500006097, 0.8693502490764229, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21247306643180602, 0.1378389271943791, 0.0, 0.0, 0.2853901797463675, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20343586472727235, 0.29392458170687635, 0.011188169832657642, 0.0, 0.0, 0.28953305486076913, 0.0, 0.0, 0.07223789467137894, 0.0, 0.33051308113923733, 0.4540345661588786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9537370190824367, 0.0, 0.6089477015288718, 0.0, 0.07722630190963325, 0.0, 0.0, 1.0000222254545443, 0.8637206744494375, 0.0, 0.7751920658363071, 0.524298363554463, 0.0, 0.0, 0.01676078910810196, 0.0, 0.0, 0.07604278960261779, 0.0, 0.0, 0.0, 0.0, 0.40940877803475156, 0.0, 0.0, 0.0, 0.0, 0.09252661041066143, 0.44765043171933794, 0.0, 0.24055976047324873, 0.0, 0.15100552643910237, 0.35800810608226774]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.08838669783079417, 0.24540062578718655, 0.0, 0.0, 0.0, 0.0, 0.2598139726110033, 0.0, 0.0, 0.008999058499533074, 0.10561231293601407, 0.018993358540021866, 0.3713088213439608, 0.1272213104915037, 0.0, 0.04569648380052932, 0.0, 0.6778277114032399, 0.0, 1.0116444857173326, 0.1419594034849179, 0.849786220982489, 0.1853715018708835, 0.0, 0.41575027296468353, 0.027919812909200686, 0.38129764067914484, 0.0, 0.010472223603003109, 0.32765224234190193, 0.0, 0.0, 0.0, 0.27657062580546904, 0.018635375946533275, 0.0, 0.6553105493426397, 0.1806768240966126, 0.0, 0.0, 0.13022235819683495, 0.0, 0.0, 0.0096207645890863, 0.0, 0.0, 0.0, 0.0, 0.0027620603050478813, 0.0, 0.0, 0.0, 0.0, 0.06777735948867263, 0.16424694314849322, 0.05466156243395641, 0.0, 0.3550122664783007, 0.0, 0.16598631348758813, 0.0, 0.09916577661749644, 0.0, 0.0, 0.017171766504479664, 0.14883499722913907, 0.14454297081157494, 0.0, 0.0, 0.0, 0.08135785354072747, 0.18934501987281463, 0.0, 0.0, 0.0, 0.043171173549343585, 0.04442771737900286, 0.0, 0.0, 0.16847976307679274, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4519419326045341, 0.0022494085401006682, 0.0, 0.09264806290445121, 0.0, 0.0, 0.5779259042074504, 0.0, 0.0, 0.0, 0.01319039039025495, 0.0, 0.0, 0.05821123759190987, 0.008570313787111606, 0.12498925860233108, 0.3161944438230963, 0.0, 0.0, 0.0, 0.0, 0.03428001709676162, 0.0, 0.0, 0.0, 0.4239046512601812, 0.0, 0.0, 0.0, 0.0, 0.006439869364205756, 0.0, 0.19268641103781292, 0.0, 0.0, 0.0, 0.13842608775449636, 0.7754112567712441, 0.5650474898241402, 0.16678352690096504, 0.0, 0.0, 0.26721012017234747, 0.0, 0.0, 0.40379612390902914, 0.0, 0.5616249905190419, 0.0, 0.0, 0.0, 0.05914491909738165, 0.0, 0.0, 0.5796881176474965, 0.0, 0.0, 0.0, 0.0, 0.19259492607938428, 0.5396680351153355, 0.1002017616669876, 0.0, 0.0, 0.07018769309449151, 0.0, 0.0, 0.0, 0.8890997886610695, 0.01580855669802033, 0.07592126473643429, 0.0, 0.0, 0.5327597008182733, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26650628783183555, 0.0, 0.0, 0.4177758368274485, 0.01847646120309497, 0.2474671864399932, 0.030137257707486417, 0.0, 0.0, 0.0, 0.0, 0.4333965515966774, 0.0, 0.025363517487659904, 0.0, 0.0, 0.28727696476738296, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.48463873218296616, 0.3619901497543638, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3095355097692787, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08881016246594031, 0.0864536634210502, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13334438240099766, 0.0, 0.2743296378950603, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21573236386631758, 0.138874394226427, 0.21526827303910834, 0.0, 0.8276738568887637, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13803323038392623, 0.0, 0.0, 0.18937725647626488, 0.0, 0.09756025088965181, 0.10247093349242449, 0.14247269057616566, 0.0, 0.4644170645216008, 0.0, 0.0, 0.0, 0.6396576582705668, 0.0, 0.14648223852485512, 0.0, 0.3845502326592231, 0.0, 0.0, 0.0, 0.0, 0.01873756402105984, 0.01865952833886222, 0.015020499411212522, 0.0, 0.11259829701043601, 0.13537240455394534, 0.18963280616455852, 0.0, 0.1732077631723114, 0.0, 0.009279305276553587, 0.0, 0.09430577452314615, 0.07566718263303025, 0.06172210939249301, 0.0, 0.0, 0.0017837976727260341, 0.0, 0.0, 0.06543462567823881, 0.0621898641418941, 0.0, 0.0, 0.0, 0.41468742426256355, 0.21475258071539002, 0.0, 0.0, 0.08728790458911416, 0.0, 0.0, 0.4956863169283368, 0.0, 0.0, 0.3312300382813116, 0.0, 0.6814401538748236, 0.017040189816468283, 0.0, 0.0, 0.0, 0.0, 0.1702496303089558, 0.04558027585085677, 0.0, 0.0, 0.05652088848846798, 0.0, 0.0, 0.039516412285590885, 0.04836078861030929, 0.0, 0.0, 0.0, 0.0066658135086557066, 0.28756231542228783, 0.0, 0.0, 0.005213055047386901, 0.0, 0.03077146873270733, 0.0, 0.18174661292486113, 0.011855817392138795, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2550943184597343, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19130663987033655, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08795782309469964, 0.4949588224757624, 0.10547057221471998, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0428147611319233, 0.0, 0.4336529209634745, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10981699391447328, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14060207841669792, 0.19125923680987167, 0.17120811796462362, 0.0, 0.0, 0.29682703146376954, 0.2309028098716656, 0.0, 0.3415808438027304, 0.5413871431291847, 0.19010077735847383, 0.0, 0.0, 0.0, 0.037176095928915485, 0.0, 0.0, 0.19621484736356867, 0.46400800412758475, 0.6251709107930822, 0.11840971377140953, 0.5297289566486542, 0.0, 0.0, 0.0629827610017505, 0.0, 0.30811879649367063, 0.0, 0.43390554368076734, 0.0, 0.3078202365484454, 0.0, 0.0, 0.06464271443386868, 0.0, 0.0, 0.7925386152607364, 0.0, 0.0, 0.0, 0.0, 0.4871987999416911, 0.0, 0.0, 0.0, 0.026241068751647587, 0.4048536827096608, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04667237073016084, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008398941803472277, 0.0, 0.3462604046867109, 0.0, 0.41520221547875746, 0.0, 0.0, 0.0, 0.49209502240450126, 0.6693906625198521, 0.19758221668125867, 0.008160985490142467, 0.2605302099636665, 0.0, 0.0, 0.0, 0.9022483783960523, 1.0694729952381887, 0.6653361553880242, 0.881281776229774, 0.001915716390555032, 0.022482711824403312, 0.0040432994483474245, 0.0, 0.3214035783779074, 0.6867348676262818, 0.0, 0.6858420722534031, 0.0, 0.5811377322397425, 0.04246482918579259, 0.11467932906673921, 0.09709202075873843, 0.0, 0.0, 0.0, 0.2200140216993193, 0.0, 0.7507517442378999, 0.0, 0.0, 0.7372603142185328, 0.0, 0.006741369353138395, 0.8069776586909365, 0.00396709224045839, 0.0, 0.0, 0.0, 0.6101879525945185, 0.0, 0.0, 0.026258353794755256, 0.4016774417320984, 0.014813931005383318, 0.6190727226045784, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11309418362565873, 0.0, 0.0, 0.0, 0.0, 0.0, 0.036526440507301174, 0.022956711251180283, 0.40907708831845013, 0.0012453094708774737, 0.0, 0.0, 0.0, 0.0, 0.014062827632021033, 0.0, 0.0, 0.0, 0.006394809610240893, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21784527989974428, 0.0, 0.0, 0.0, 0.3180108962002836, 0.2508741672819204, 0.17523704698611114, 0.13837147224686994, 0.27935616728122964, 0.1859955338163167, 0.0, 0.06462126637992056, 1.0008493550472979, 0.6004231261661688, 0.0, 0.3940831570768702, 0.0, 0.0, 0.1305734964236071, 0.0, 0.09786792103897592, 0.0, 0.11654231814191775, 0.46697515894469777, 0.5700094853415558, 0.1107417067979406, 0.346111937724667, 0.0, 0.1225882117910605, 0.0, 0.28673152989464684, 0.0, 0.12654022793408917, 0.0, 0.0, 0.45809293367016757, 0.3647743355850667, 0.817304098176075, 0.0036334642288677415, 0.0, 0.2669922423479005, 0.0, 0.0, 0.0, 0.32457729111200295, 0.5543705739187803, 0.8812247175026642, 0.16912005088903598, 0.5020073987686707, 0.0, 0.09252856828989332, 0.0, 0.0, 0.0, 0.06948083164247039, 0.2588335470174883, 0.23431107957691064, 0.0, 0.0, 0.4609326565956409, 0.0981996119487529, 0.0, 0.0, 0.0, 0.0, 0.41461953421729686, 0.2880401034246727, 0.0, 0.12878680297473977, 0.5528442548314576, 0.8638211211778427, 0.0, 0.19329232440572794, 0.07190135483727589, 0.0, 0.37985878824980135, 0.0, 0.0, 0.47943873587199365, 0.0, 0.1632157826430328, 0.028602417984395823, 0.12587604601890898, 0.20239239184313712, 0.0, 0.9957002205667365, 0.5403020941861382, 0.1731723605204449, 0.5984215188307392, 0.5906299727726914, 0.15421128542459664, 0.22417177182593684, 0.14760215442934868, 0.0, 0.0, 0.10452572448334531, 0.0, 0.0, 0.5192893646261969, 0.0, 0.0, 0.0, 0.03548389098440683, 0.0, 0.0, 0.5359908824860568, 0.0, 0.0, 0.4508397689271815, 0.17912612646003018, 0.05191685886593687, 0.015041105758856862, 0.0, 0.0, 0.07792048637164595, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16284516279577882, 0.07019827463547235, 0.0, 0.0017166852898648512, 0.022601665621833984, 0.0, 0.0, 0.0, 0.08820522946301469, 0.0, 0.0, 0.4597721334804677, 0.0, 0.01968862180697655, 0.1496625833744818, 0.0, 0.0, 0.0, 0.0, 0.042967175515187854, 0.0, 0.5925889649898668, 0.03501818713399176, 0.0, 0.23929946904107768, 0.0, 0.0, 0.0, 0.0, 0.0, 0.586042846539397, 0.0, 0.35012160211964255, 0.0, 0.0, 0.2671275149044985, 0.5254872140248491, 0.0, 0.0, 0.0, 0.4346599048698998, 0.0, 0.6685147232492785, 0.0, 0.0, 0.006603260891096502, 0.41222164853295895, 0.691126666160783, 0.3115253982735278, 0.0, 0.5948463934358659, 0.0, 0.6104915934501508, 0.0, 0.10122959156761935, 0.0, 0.0, 0.4361142638019697, 0.0, 0.0, 0.022953207777356696, 0.01768983406390727, 0.0, 0.49300859199961644, 0.0, 0.45242065570193146, 0.0, 0.25296290668039206, 0.24913417193879323, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0036117281801281323, 0.37981219294125684, 0.0, 0.7813883080906168, 0.37787984308171674, 0.0, 0.3540795182413977, 0.0, 0.0, 0.024079641916532137, 0.0, 0.3372996465844834, 0.4587109366214878, 0.0, 0.0, 0.0, 0.0, 0.008167928328435794, 0.30985126085873477, 0.0, 0.1769552845849796, 0.01014740975340464, 0.3239445526321744, 0.2589119416659987, 0.30500724408067964, 0.0, 0.8521343659652334, 0.0, 0.12278148254603906, 0.0, 0.0, 0.7559317032710442, 0.0, 0.4639073457870384, 0.3375990135598286, 0.0, 0.09771802789528808, 0.0, 0.0, 0.0, 0.0, 0.14259284539732897, 0.0, 0.0, 0.0, 0.03978581978010784, 0.4979059043742451, 0.0, 0.0, 0.02239395579386129, 0.0, 0.0, 0.08552679542089565, 0.0, 0.28975782063069117, 0.4544199284136855, 0.4879966224465369, 0.0, 0.5198773678370044, 0.09074414747732065, 0.0, 0.0, 0.0, 0.08751115961530397, 0.0, 0.0, 0.0, 0.0, 0.01723069885490719, 0.005476104703094391, 0.0, 0.0, 0.0, 0.0, 0.0, 0.018363845689630152, 0.0, 0.0, 0.0, 0.03456818780211805, 0.16076784648973388, 0.1339929852951158, 0.12939203287442297, 0.6506668934574178, 0.07556479761019191, 0.0, 0.0, 0.1120835499344092, 0.004448105032597938, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.424200452243984, 0.21870476868551994, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04400733534916703, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5084860468121182, 0.0, 0.0, 0.0, 0.06613225218879751, 0.0, 0.0, 0.03227907593043655, 0.0, 0.01489513919323321, 0.0, 0.0, 0.0004903768608608706, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3709186680024144, 0.0057636955333438475, 0.0, 0.0, 0.0, 0.0, 0.05167292145382253, 0.03114794005970685, 0.0, 0.0, 0.0, 0.04406332427000894, 0.0, 0.28333618254852055, 0.0, 0.0, 0.08754290037370453, 0.0, 0.030717709851121017, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15375069919642081, 0.17266284464812964, 0.0, 0.0, 0.0, 0.0, 0.4591427931520538, 0.0, 0.0, 0.4080740928256236, 0.04867028613084824, 0.0, 0.0, 0.19198247076461217, 0.0, 0.0, 0.0, 0.04903912896069461, 0.0, 0.0, 0.0, 0.03565133307467186, 0.011864802664565318, 0.0, 0.0770587282490205, 0.06882991093352155, 0.0, 0.32659059563162995, 0.036557980918752765, 0.0, 0.0, 0.0, 0.0, 0.03137440184410096, 0.0, 0.0, 0.0, 0.18642661293603366, 0.0, 0.0, 0.0, 0.0, 0.06772257249589227, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21100355273002191, 0.0, 1.3416336420880526, 0.0, 0.0, 0.46161810723264507, 0.0, 0.4582995461192519, 0.05104879083246295, 0.5773364122618407, 0.57352236887648, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5640999064171196, 0.6666836020552119, 0.06886868779194379, 0.564904097158741, 0.0, 0.3210670084651615, 0.0, 0.0, 0.0, 0.9392890324745945, 0.0, 0.0, 0.2984250122811811, 0.0, 0.009405052137469182, 0.0, 0.39950267169818077, 0.07050196115427894, 0.824636783426293, 0.4953951141450468, 0.0, 0.0, 0.34635403119710667, 0.8798483938054087, 0.39347138128916365, 0.0, 0.0, 0.41085938784277987, 0.0, 0.7572672907360996, 0.0, 0.1918766456362537, 0.14775814623354722, 0.0, 0.0, 0.18414622884752666, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32881972797464193, 0.22733765531865868, 0.29775899283396906, 0.0, 0.0, 0.0, 0.0387256895819095, 0.5151993362991701, 0.0, 0.0, 0.0, 0.008722287803381279, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1780184121162673, 0.0, 0.0, 0.0, 0.0, 0.0511079535437104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05738054033260683, 0.0, 0.0, 0.3177388426930726, 0.0, 0.0, 0.0019725686702392773, 0.0, 0.0, 0.0, 0.0, 0.20770780211002965, 0.0, 0.0, 0.0, 0.8220710140576788, 0.0, 0.0, 0.0, 0.0, 0.9922981121231631, 0.19272059014741777, 0.18871634512759347, 0.009978475777936804, 0.5372065554785002, 0.0, 0.0, 0.17523452577386275, 1.0717089910255204, 0.5571949298413089, 0.0, 0.3237380570219946, 0.0, 1.1122472434174695, 0.10030606802210519, 0.0, 0.42164300445661296, 0.0, 0.2034243141927581, 0.0, 1.0210169552267845, 0.19689099390765805, 0.14675887656145528, 0.15859984719751974, 0.2247981968120587, 0.0, 0.22026608101531156, 0.5078755745015515, 0.2690121908665218, 0.0, 0.0, 0.0, 0.3746062674772627, 0.7584612913730437, 0.0, 0.0, 0.8749551201631387, 0.5887430555293698, 0.8247249363546676, 0.21469878981542115, 1.002630449124598, 0.2572736542055717, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005299432156408299, 0.06219376030445952, 0.011184949515597283, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11747014454387752, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1628689565677918, 0.010974138077104432, 0.0, 0.0, 0.0, 0.0, 1.0297896192318396, 0.0, 0.662355409415741, 0.5720482757502646, 0.3113118281374319, 0.0, 0.0, 0.25393001900118484, 0.02276308091998572, 0.03508485404358758, 0.45957926224802004, 0.0, 0.05036277933399867, 0.1447652248957086, 0.0, 0.0242600552046752, 0.005732716773973234, 0.0, 0.0, 0.04566723978074626, 0.007798132412071851, 0.435160826872351, 0.19099152935556227, 0.0, 0.09109198019072849, 0.0, 0.0, 0.0, 0.0, 0.040872817508571836, 0.0, 0.8816978299630381, 0.023385944730671186, 0.20852512378086208, 0.3265908462108258, 0.0, 0.8135187830099228, 0.5004561612521131, 0.5929930445509373, 0.07024535595608956, 0.4293153063068892, 0.33966138448698774, 0.0, 0.0, 0.219723330992236, 0.0, 0.0, 0.32087091161635517, 0.10046935863374477, 0.0, 0.21249664109114016, 0.0, 0.0, 0.5675920409330384, 0.0, 0.0, 0.02195446551553763, 0.0, 0.0, 0.0, 0.7828555360473642, 0.0, 0.0, 0.0, 0.539158201637973, 0.0, 0.037194676308406484, 0.0, 0.5899620450765102, 0.0, 1.064333300573155, 0.0, 0.4126616356723095, 0.0, 0.0, 0.0, 0.0, 0.005455259856546277, 0.06532462900349355, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6382915607944724, 0.0, 0.1058392854111573, 0.06419509685388734, 0.0, 0.0, 0.42600921169580896, 0.0, 0.6948705846598551, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7494592390120385, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.34703521803027376, 0.47959926529853425, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18954560408868362, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04058791510732469, 0.0, 0.0, 0.0, 0.026371559760006224, 0.46735915191246824, 0.9729562858716514, 0.0, 0.01593384874339247, 0.0, 0.0, 0.10548242945325798, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08182217469250767, 0.0, 0.0, 0.0, 0.0, 0.5929119201290493, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0028851424117770368, 0.14902256810885017, 0.0, 0.19393473922191487, 0.0010822975481770052, 0.10083006827906865, 0.005589290532560041, 0.0, 0.0377329438822351, 0.0, 0.0, 0.0, 0.0, 0.08622227292139113, 0.0, 0.0, 0.052960874748722735, 0.0, 0.0, 0.0, 0.040542431602682394, 0.0, 0.034748695303796415, 0.0, 0.0, 0.07778126624009696, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08990369242695052, 0.0, 0.0, 0.0, 0.0, 0.1714300400506459, 0.23319412483505944, 0.06883127399553583, 0.0, 0.0, 0.4520065142603474, 0.7559043080573538, 0.0, 0.9918256875421747, 0.34148047573693957, 0.23178166527267935, 0.1984049383893502, 0.0, 0.0, 0.0, 0.4618215114400494, 0.055660721213669, 0.23923628669541208, 0.0, 0.0, 0.39945045771087084, 0.3329245273531598, 0.25602890393383043, 0.0, 0.2574713970419185, 0.0, 0.0, 0.27848743576980106, 0.008801495971424074, 0.0, 0.0, 0.0, 0.0, 0.4961604274582618, 0.0, 0.0, 0.5434029369831717, 0.0, 0.0, 0.0, 0.0, 0.15767180411659634, 0.03460197933312267, 0.0, 0.0, 0.036131085316488384, 0.0, 0.0, 0.0, 0.016873683938744447, 0.019906225883667222, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.012507180486519448, 0.0, 0.02685500739865508, 0.028916495513405534, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029742024653825302, 1.0585077478673894, 0.0, 0.0, 0.10450313655197234, 0.0, 0.27087506529662764, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7518068036153462, 0.0, 0.2680435440340337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1316435251098364, 0.8078731280911045, 0.0, 0.0, 0.0, 0.10506968633342718, 0.23470506622896917, 0.0, 0.0, 0.607722294332459, 0.023665118775296444, 0.014839085130224942, 0.0, 0.0, 0.24386571546932873, 0.0, 0.0, 0.3502050356771847, 0.0, 0.0, 0.46379933676520235, 0.0, 0.08440789641107996, 0.04593440835303492, 0.021386035200774683, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7729032574550468, 0.0, 0.11781868003483978, 0.030607043037187642, 0.0, 0.1726108187023696, 0.09583059716129254, 0.5239548125179947, 0.4366934746091282, 0.0, 0.0, 0.24627150409293175, 0.0, 0.13007997889130285, 0.36528893478699903, 0.18318396866765946, 0.0, 0.011811348038501769, 0.0, 0.0, 0.0, 0.0, 0.0, 1.1723218684731558, 0.5524938653991974, 0.7739462295109258, 0.0, 0.7069108871009565, 0.0, 1.1639912229987677, 0.0, 0.0737216927746314, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.41689243790078717, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7826638975615551, 0.0, 0.0, 0.0, 0.1017910453533696, 0.0, 0.0, 0.0, 0.0, 0.022926661938484392, 0.0, 0.0, 0.24172521220469304, 0.33406187082542654, 0.0, 0.0, 0.31010342596966556, 0.0, 0.0, 1.1081747068991343, 0.7344335908166203, 0.16327913698089802, 0.7325151937485493, 0.17384385605370836, 0.08371482373128411, 0.0, 0.3420940653006234, 0.0, 0.04990946505718503, 0.5498243469410863, 0.0, 0.007722420577405236, 0.0906297807361463, 0.016298894248894004, 0.0, 0.17760842474448457, 0.7445477489471244, 0.0, 0.0, 0.23271741543898974, 0.5862478840032251, 0.38013450552556605, 0.0, 0.13625107884748244, 0.3102878234624971, 0.0, 0.0, 0.0613418632643825, 0.1222024301534575, 0.0, 0.0, 0.09768999149541487, 0.07432603695941839, 0.0, 0.0, 0.2373353492409029, 0.8187850328888507, 0.0, 0.1472545596990393, 0.08055057930039017, 0.0, 0.0, 0.0, 0.0, 0.022056121851574153, 0.7041166858972707, 0.0, 0.0, 0.0, 0.7708181971148897, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6591456110142444, 0.0, 0.0, 0.0, 0.5151326583061712, 0.4293405940090164, 0.0, 0.30993576190130123, 0.24212487706484054, 0.0, 0.0, 0.35913833699197834, 0.594616431743019, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7007742613782065, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07822848175716028, 0.0, 0.795037704009975, 0.0, 0.18176747614492506, 0.0, 0.0, 0.0, 0.0, 0.05218428597433502, 0.551641665900435, 0.0, 0.0, 0.0, 0.0, 0.4173251650328503, 0.13888627164939463, 0.0, 0.9020292850308806, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32443041606173034, 0.0, 0.3672605285185933, 0.0, 0.0, 0.0, 0.20671726976925492, 0.0, 0.0, 0.38426107037286794, 0.0, 0.0, 1.3158788906540237, 0.0, 0.0, 0.33314012692337136, 0.4077019730262151]), 42), 42)),) julia> @finch_code begin Ct .= 0 for j = _ @@ -1015,7 +1015,7 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.40798272794029244, 0.0, 0.05552236202954211, 0.0, 0.0, 0.0, 1.1508129348205518, 0.0, 0.19395356472348033, 0.2307481734593406, 0.0, 0.0, 0.0, 0.0, 0.7400687115958035, 0.0, 0.0, 0.4711198057610666, 0.0, 0.07015028050595504, 0.08663540769774136, 0.0, 0.0, 0.46359958748433167, 0.0, 0.035823254967012344, 0.0, 0.21605429332119105, 0.050389255833200065, 0.0, 0.0, 0.08982343514212215, 0.0, 0.11508828733565957, 0.4022461237733094, 0.0, 0.5232411380476881, 0.0, 0.17677960337865342, 0.6347058701128525, 0.0, 0.0, 0.0, 0.080760767105778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.530417945120141, 0.036947581649449654, 0.0, 0.42172014534542845, 0.0, 0.0, 0.0, 0.04046090790460827, 0.0, 0.0, 0.0, 0.0, 0.016730358390191713, 0.11216899138664496, 0.10090277285890621, 0.3770798811678483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06022016698365358, 0.0, 0.3347277070064448, 0.08319806447593037, 0.0, 0.0, 0.15734979027583865, 0.6034963214197537, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8559793301235343, 0.0, 0.0221818618958444, 0.0, 0.0, 0.0, 0.0, 0.6249640468245943, 0.0, 0.706457127780651, 0.8381987455683932, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05075027829145945, 0.0, 0.0, 0.28298860880763127, 0.0, 0.46775948880043733, 0.3276758676884306, 0.23162154119323575, 0.0, 0.0, 0.7097058534293814, 0.0, 0.01925480712564137, 0.6617464495997725, 0.5510119129346432, 0.9503030089786222, 0.19493828703065708, 0.4234771306495736, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11491839349038546, 0.0, 0.0, 0.0, 0.0, 0.0, 0.952344347120024, 0.31481029761912926, 0.0, 0.0, 0.3371532262514988, 0.0, 0.6461986748500718, 0.0, 0.20388394461232018, 0.6689077519036521, 0.008065708303756284, 0.026774581755143884, 0.0, 0.0, 0.0, 0.0, 0.20246692989511542, 0.0, 0.0, 0.0, 0.0, 0.6964472745009185, 0.0, 0.3001098015546565, 0.0, 0.002810485733837209, 0.0, 0.0, 0.2833439267406652, 0.0, 0.0, 0.0, 0.01365478232442864, 0.0, 0.07752931191170997, 0.005400497114468351, 0.01008472602077043, 0.7305457354717977, 0.0, 0.0, 0.3791767135274968, 0.009729638043940761, 0.14133243937397577, 0.0, 0.6050992861887972, 0.0, 0.0, 0.0, 0.0, 0.32748073574326575, 0.29782974023215064, 0.0, 0.0, 0.0, 0.0, 0.008516959572353846, 0.0, 0.0, 0.0, 0.5188617620854502, 0.0, 0.12960309538886133, 0.0, 0.2159060099855789, 0.0, 0.0, 0.0, 0.5916658876154497, 0.0, 0.08410324034674674, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7242114416300933, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.43295426032070555, 0.1879551877902947, 0.09140698995628445, 0.0, 0.0, 0.0, 0.0, 0.053834983759932134, 0.014210556502435533, 0.023024626002393696, 0.0, 0.0, 0.08510060429095491, 0.15442202399960203, 0.0, 0.5391171356753139, 0.0, 0.44855253786204935, 0.048493606647816025, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22138370024934187, 0.0, 0.08746644969030876, 0.0, 0.0, 0.0, 0.1616519416528851, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.035084084514750494, 0.0, 0.11688517594508105, 0.2089391042079727, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05598779403983851, 0.014778823268485956, 0.0, 0.0, 0.0, 0.0, 0.057780108315529474, 0.0, 0.201721527067654, 0.0, 0.3341648455181398, 0.0, 0.0, 0.7601477683176978, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8032144106029788, 0.0, 0.18178069418497272, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6936206835397086, 0.0, 0.36283080196789974, 0.4415514891805875, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.041591186808888826, 0.3770004419200786, 0.0, 0.0, 0.0, 0.17252416859375463, 0.0, 0.0, 0.6527400000425327, 0.0, 0.3340575108846618, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7763472218770214, 0.0, 0.0, 0.0, 0.0, 0.8376247582699287, 0.0, 0.014460886244840168, 0.6266762938745922, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.46397397404593055, 0.0, 0.23926875754339813, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.46347904589364963, 0.05902942262309747, 0.0, 0.03877718275846287, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2950495413884076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06597380264866397, 1.0898197013430582, 0.0, 0.012501862454917015, 0.0, 0.0, 0.05385941027253928, 0.0, 0.3522343881391282, 0.0, 0.398164495085241, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004630463685504157, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25876266416388005, 0.0, 0.0, 0.3103356146935319, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6074148238597709, 0.09425255656440318, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0032593418386170935, 0.0, 0.2297346969390008, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12055792386342427, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25324185315889564, 0.0, 0.05731281617489229, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21868854065637486, 0.0, 0.0, 0.13921477990069736, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.013113097926933236, 0.11886277100269102, 0.0, 0.0, 0.0, 0.0, 0.0, 0.52224991418746, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4173873832595858, 0.08858709037486684, 0.0, 0.0, 0.0, 0.0, 0.15667266254329507, 0.0, 0.40730912125206437, 0.5164653515440787, 0.0, 0.2032159032369745, 0.40587691627032874, 0.0, 0.0, 0.0, 0.0340034080482809, 0.0, 0.0, 0.15427161497649788, 0.44428262792688017, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.014262992619462008, 0.38024333666677773, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1612065141710269, 0.0, 0.03925137009723705, 0.0, 0.0078366311533161, 0.0, 0.014460397168610369, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06667255880132161, 0.0, 0.14952781464402123, 0.0, 0.0, 0.0, 0.0, 0.2779234999305725, 0.0, 0.008746314891451676, 0.0, 0.0, 0.06465282563196756, 0.0, 0.2464235137262255, 0.006899580599861792, 0.278556260330773, 0.007445268802069765, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18845739307946788, 0.01641249348500929, 0.5317378389887557, 0.0, 0.0, 0.14988438489574235, 0.0, 0.010375471289624015, 1.3557213333649594, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18808146093167488, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37253241298417417, 0.0, 0.1111794727253734, 0.16963583085055012, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10986305912788819, 0.0, 0.0, 0.11949895822624457, 0.0, 0.0, 0.15821760502340373, 0.0, 0.5523682427180556, 0.0, 0.4595776329669528, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.33581328744582783, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24138228903328196, 0.0, 0.3691306800612154, 0.0, 0.0, 0.0, 0.0, 0.0, 1.232394871494877, 0.0, 0.0, 0.0, 0.5293521525003586, 0.0, 0.48349454590588176, 0.0, 0.0, 0.6981988327823653, 0.0, 0.0, 0.0, 0.0, 0.0, 0.33600003819418794, 0.10493510524858034, 0.1002766625939797, 0.0, 0.4760848715940903, 0.30327936688968893, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15549653856407664, 0.053555423141422365, 0.33124643300151746, 0.1452133754699813, 0.29863037601205833, 0.5069679636197618, 0.0, 1.2650777504013886, 0.0, 0.0, 0.8010376870067246, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8336854027224526, 0.0, 0.0, 0.0, 0.0, 0.013135866634354858, 0.7693584995036987, 0.0, 0.0, 0.0, 0.1809386811488775, 0.18409266358857004, 0.0, 0.8209089663283375, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6269731623222802, 0.0, 0.0, 0.0, 0.0, 0.8578109001691112, 0.13549697762155272, 0.8892025809188543, 0.0, 0.17753144998442447, 0.0, 0.3275865900116729, 0.37045604078207667, 0.0, 0.0, 0.45942273296787417, 0.0, 0.0, 0.1496601554416231, 0.0, 0.4896166566389182, 0.09296161452877622, 0.0, 0.15295686770265157, 0.0, 0.0, 0.0, 0.18412880463476564, 0.0, 0.19671721658454625, 0.0, 0.0, 0.15630345798009787, 0.0, 0.16866550691184853, 0.0, 0.3962565901298767, 0.0, 0.0, 0.009054605400028368, 0.0, 0.0, 0.0, 0.0, 0.6323717354885464, 0.0, 0.27367929286054155, 1.074929147630902, 0.1458067334724375, 0.22417700682510228, 0.0, 0.10951695376531846, 0.0, 0.007581110002282966, 0.24931277842808883, 0.0, 0.6883954376611309, 0.6336690200937254, 0.2666286675338324, 0.0, 0.0, 0.0, 0.0, 0.2876738228687025, 0.0, 0.0, 0.21522568832904387, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0438812752886428, 0.6525143726026617, 0.0, 0.0, 0.0, 0.0, 0.0, 1.1869853573228195, 0.11631516482088484, 0.0, 0.0, 0.0, 0.0, 0.06506946683877823, 0.0, 0.22717008671076838, 0.10242247240104177, 0.18900849588618046, 0.11442201255265518, 0.5664450740439114, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019408932182682588, 0.20321698947174538, 1.233551723482737, 0.3258945612095407, 0.0, 0.13004560449904765, 0.0, 0.5146863326888748, 0.0, 0.0, 0.26506893163091566, 0.6961290235591785, 0.7308179758735578, 0.019108835994024305, 0.0, 0.0, 0.12318551581994355, 0.0, 0.6633736020985646, 0.09733981959320877, 0.6085861256804133, 0.0, 0.3702803270823883, 0.0, 0.31915877170632656, 0.0, 0.0048098299833409025, 0.08330917183364514, 0.03767139221212642, 0.0, 0.0, 0.7595521482230864, 0.0, 0.40492576086384785, 0.9767048148851073, 0.0, 0.7118250358317957, 1.4759259446598505, 0.6177251878074594, 0.0, 0.0, 0.5578474164235181, 0.0, 0.0, 0.0, 0.8466209961003106, 0.0, 0.0, 0.0, 0.0, 0.9134452822413822, 0.0, 0.0, 1.1506817448958997, 0.0, 0.0, 0.5717156136201251, 0.0, 0.0, 0.0, 0.0, 0.22301492152906585, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13134314230830874, 0.20762859161099162, 0.0, 0.4768286902241477, 0.0, 0.3252201513410915, 0.5728390197892637, 0.07274257736444308, 0.0946619273240044, 0.0, 0.08735695093663028, 0.0, 0.006047124502145837, 0.0, 0.0, 0.03396077178506113, 0.056902676891892164, 0.05446213354503342, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03284486748482166, 0.0, 0.03394228891521373, 0.0, 0.0, 0.0, 0.15913459349815823, 0.0988686644243417, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06403136572671528, 0.0008539041494970381, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4996043959310575, 0.03466871274471111, 0.0, 0.0, 0.0, 0.5916091668585121, 0.0, 0.0, 0.18522959478004286, 0.0, 0.0, 0.6748263739107161, 0.0, 0.0, 0.5617854630926186, 0.0, 0.7191769350887419, 0.22919875305609166, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07421634147547619, 0.2082330820676049, 0.0, 0.33671550924577986, 0.0, 0.0, 0.8216886233224614, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9288637557541211, 0.0, 0.0, 1.2410393190221276, 0.024834505618206743, 0.6697889027661909, 0.39618825585335343, 0.37106318592637155, 0.321662062811288, 0.0, 0.8625204846142658, 0.4737807718760894, 0.8171062776340833, 0.16785258111865808, 1.931465974538034, 0.1820623956052182, 0.0, 0.40831479446929375, 0.0, 1.6290713896950666, 0.0, 0.0, 1.0235643660149811, 0.0, 0.0, 0.0, 0.0, 0.996334540430692, 0.0, 0.0, 0.44156504893800563, 0.289897027676234, 0.0, 0.5556259307084835, 0.0, 0.0, 0.5751570179061616, 0.0, 0.15465163640644544, 0.0, 0.0, 0.0, 0.0, 0.1740886831542383, 0.8206341762594166, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8467869185435447, 0.05898504962060997, 0.03624481511042625, 0.6732560722166093, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.201694060644539, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4141926752107277, 0.14795154825402113, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21427949262749374, 0.46809092516056994, 0.0, 0.16828675961297507, 0.14194253863939424, 0.0, 0.46436829494386733, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13445486993921502, 0.019720618408469233, 0.2722006890254698, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06550905522135163, 0.04806777087710764, 0.0, 0.0, 0.0, 0.599761835300619, 0.0, 0.0, 0.5741431736534577, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17101973439245724, 0.0, 0.0, 0.0749875087919759, 0.0, 0.0, 0.28776812087676407, 0.8309016545414952, 0.0, 0.0, 0.0, 0.016199069272106216, 0.0, 0.0, 0.0, 0.0, 0.6545099569258361, 0.22702193109653576, 0.04569906480983916, 0.2833580027667076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11138860511768055, 0.062440751035711506, 0.5182620734767335, 0.0, 0.3481758497366363, 0.0, 0.4677994729760326, 0.6992526088901763, 0.01746909322126967, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4416823398234807, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08074443292335906, 0.005624454367769537, 0.4953841958649777, 0.06419759041251974, 0.0, 0.0, 0.0, 0.03378063280221251, 0.27793271609589054, 0.0, 0.0, 0.0, 0.013968102118739474, 0.0, 0.08424327814659714, 0.057402094804332435, 0.0, 0.0, 0.0333773112405404, 0.0, 0.0, 0.0, 0.020814415925578544, 0.050277550690626754, 0.07266714943835642, 0.05420980100927718, 0.1299217183065535, 0.0, 0.0, 0.3197221256849075, 0.0, 0.13800911480490768, 0.0, 0.0, 0.0, 0.0, 1.01268183989861, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7358814757212789, 0.30707785521832553, 0.5276131242565835, 0.0, 0.1743689886750783, 0.0, 0.25821885501181596, 0.5805464694386301, 0.7164948773890167, 0.0, 0.0, 0.0, 0.37021123955626156, 0.12525001349038106, 0.608077535649827, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0938347119534369, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17530069799945608, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6839828466860547, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0036702000371577168, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.030804733252794536, 0.6085396823865649, 0.3664826840226463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.052310575793324585, 0.23438841535865984, 0.027151249553211434, 0.42665810243765545, 0.060892623345148826, 0.0, 0.0, 0.08445468462850356, 0.05478879427510317, 0.5501718854551394, 0.0, 0.11343808432438283, 0.0, 0.09259962343643532, 0.2732186452567139, 0.0, 0.42011946077495216, 0.2576342392674693, 0.0, 0.5090094423403475, 0.0, 0.0, 0.0, 0.0010952054350690443, 0.08086253983246877, 0.0, 0.0, 0.23985944027024297, 0.0, 0.09028722397131896, 0.0, 0.07674602267622682, 0.43900489287844074, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3006474050100551, 0.0, 0.0, 0.0709455536446502, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24893625570967048, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2768131690025365, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0014853584531852684, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2394367041087018, 0.8202130158779322, 0.0, 0.0, 0.28871220094126887, 0.0, 0.0, 0.04358483751824937, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.052964062286445145, 0.0, 0.2958896434064324, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.695162332188878, 0.037163387811150035, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0679762361139716, 0.0, 0.0, 0.24678121036961095, 0.0, 0.0, 0.2964710587865061, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0759598903032082, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07295585235760724, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0603439559536301, 0.0, 0.0, 0.0, 0.17528000283667142, 0.0, 0.12675745187805368, 0.328557971512483, 0.028687306018592266, 0.0, 0.0, 0.8516002254500735, 0.0, 0.4371253184691764, 0.13991121920676916, 0.0, 0.3475458448096685, 0.46894433815651543, 0.0, 0.0, 0.6068029321085694, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.28015080493647854, 0.3107571390829928, 0.0, 0.0, 0.0, 0.0, 0.006563618369995558, 0.5906679530337167, 0.0, 0.0, 0.0, 0.6525869879262292, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00921986700494424, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04479484649111107, 0.0, 0.3151409942990884, 0.021951930030038837, 0.0, 0.2505595957731255, 0.0, 0.0, 0.0, 0.03191831493444459, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22403715744289487, 0.0, 0.0, 0.0, 0.0, 0.0, 0.027940093628006875, 0.0, 0.0, 0.0, 0.26553429437558146, 0.0, 0.030379801994009328, 0.0, 1.223521302648351, 0.3114612281119979, 0.3934859798468234, 0.0, 0.3688885410084021, 0.0, 0.5211677391443227, 0.318605826264122, 0.11794887163110916, 0.0, 0.0, 0.4256936617495534, 0.0, 0.49172025370622324, 0.48430956473476544, 0.0, 1.3234474260067457, 0.28650182105087124, 0.006913853673799038, 0.28826288884375384, 0.3033256150127764, 0.0, 0.19416551553442815, 0.19479473776455275, 0.0, 0.2201952762677155, 0.0, 0.0, 0.34956927181897907, 0.0, 0.0, 0.0, 0.5335997378219544, 0.1831214497933391, 0.5101375543135913, 0.0, 0.7417718286797346, 0.0, 0.23966647500006097, 0.8693502490764229, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21247306643180602, 0.1378389271943791, 0.0, 0.0, 0.2853901797463675, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20343586472727235, 0.29392458170687635, 0.011188169832657642, 0.0, 0.0, 0.28953305486076913, 0.0, 0.0, 0.07223789467137894, 0.0, 0.33051308113923733, 0.4540345661588786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9537370190824367, 0.0, 0.6089477015288718, 0.0, 0.07722630190963325, 0.0, 0.0, 1.0000222254545443, 0.8637206744494375, 0.0, 0.7751920658363071, 0.524298363554463, 0.0, 0.0, 0.01676078910810196, 0.0, 0.0, 0.07604278960261779, 0.0, 0.0, 0.0, 0.0, 0.40940877803475156, 0.0, 0.0, 0.0, 0.0, 0.09252661041066143, 0.44765043171933794, 0.0, 0.24055976047324873, 0.0, 0.15100552643910237, 0.35800810608226774]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.08838669783079417, 0.24540062578718655, 0.0, 0.0, 0.0, 0.0, 0.2598139726110033, 0.0, 0.0, 0.008999058499533074, 0.10561231293601407, 0.018993358540021866, 0.3713088213439608, 0.1272213104915037, 0.0, 0.04569648380052932, 0.0, 0.6778277114032399, 0.0, 1.0116444857173326, 0.1419594034849179, 0.849786220982489, 0.1853715018708835, 0.0, 0.41575027296468353, 0.027919812909200686, 0.38129764067914484, 0.0, 0.010472223603003109, 0.32765224234190193, 0.0, 0.0, 0.0, 0.27657062580546904, 0.018635375946533275, 0.0, 0.6553105493426397, 0.1806768240966126, 0.0, 0.0, 0.13022235819683495, 0.0, 0.0, 0.0096207645890863, 0.0, 0.0, 0.0, 0.0, 0.0027620603050478813, 0.0, 0.0, 0.0, 0.0, 0.06777735948867263, 0.16424694314849322, 0.05466156243395641, 0.0, 0.3550122664783007, 0.0, 0.16598631348758813, 0.0, 0.09916577661749644, 0.0, 0.0, 0.017171766504479664, 0.14883499722913907, 0.14454297081157494, 0.0, 0.0, 0.0, 0.08135785354072747, 0.18934501987281463, 0.0, 0.0, 0.0, 0.043171173549343585, 0.04442771737900286, 0.0, 0.0, 0.16847976307679274, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4519419326045341, 0.0022494085401006682, 0.0, 0.09264806290445121, 0.0, 0.0, 0.5779259042074504, 0.0, 0.0, 0.0, 0.01319039039025495, 0.0, 0.0, 0.05821123759190987, 0.008570313787111606, 0.12498925860233108, 0.3161944438230963, 0.0, 0.0, 0.0, 0.0, 0.03428001709676162, 0.0, 0.0, 0.0, 0.4239046512601812, 0.0, 0.0, 0.0, 0.0, 0.006439869364205756, 0.0, 0.19268641103781292, 0.0, 0.0, 0.0, 0.13842608775449636, 0.7754112567712441, 0.5650474898241402, 0.16678352690096504, 0.0, 0.0, 0.26721012017234747, 0.0, 0.0, 0.40379612390902914, 0.0, 0.5616249905190419, 0.0, 0.0, 0.0, 0.05914491909738165, 0.0, 0.0, 0.5796881176474965, 0.0, 0.0, 0.0, 0.0, 0.19259492607938428, 0.5396680351153355, 0.1002017616669876, 0.0, 0.0, 0.07018769309449151, 0.0, 0.0, 0.0, 0.8890997886610695, 0.01580855669802033, 0.07592126473643429, 0.0, 0.0, 0.5327597008182733, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26650628783183555, 0.0, 0.0, 0.4177758368274485, 0.01847646120309497, 0.2474671864399932, 0.030137257707486417, 0.0, 0.0, 0.0, 0.0, 0.4333965515966774, 0.0, 0.025363517487659904, 0.0, 0.0, 0.28727696476738296, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.48463873218296616, 0.3619901497543638, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3095355097692787, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08881016246594031, 0.0864536634210502, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13334438240099766, 0.0, 0.2743296378950603, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21573236386631758, 0.138874394226427, 0.21526827303910834, 0.0, 0.8276738568887637, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13803323038392623, 0.0, 0.0, 0.18937725647626488, 0.0, 0.09756025088965181, 0.10247093349242449, 0.14247269057616566, 0.0, 0.4644170645216008, 0.0, 0.0, 0.0, 0.6396576582705668, 0.0, 0.14648223852485512, 0.0, 0.3845502326592231, 0.0, 0.0, 0.0, 0.0, 0.01873756402105984, 0.01865952833886222, 0.015020499411212522, 0.0, 0.11259829701043601, 0.13537240455394534, 0.18963280616455852, 0.0, 0.1732077631723114, 0.0, 0.009279305276553587, 0.0, 0.09430577452314615, 0.07566718263303025, 0.06172210939249301, 0.0, 0.0, 0.0017837976727260341, 0.0, 0.0, 0.06543462567823881, 0.0621898641418941, 0.0, 0.0, 0.0, 0.41468742426256355, 0.21475258071539002, 0.0, 0.0, 0.08728790458911416, 0.0, 0.0, 0.4956863169283368, 0.0, 0.0, 0.3312300382813116, 0.0, 0.6814401538748236, 0.017040189816468283, 0.0, 0.0, 0.0, 0.0, 0.1702496303089558, 0.04558027585085677, 0.0, 0.0, 0.05652088848846798, 0.0, 0.0, 0.039516412285590885, 0.04836078861030929, 0.0, 0.0, 0.0, 0.0066658135086557066, 0.28756231542228783, 0.0, 0.0, 0.005213055047386901, 0.0, 0.03077146873270733, 0.0, 0.18174661292486113, 0.011855817392138795, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2550943184597343, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19130663987033655, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08795782309469964, 0.4949588224757624, 0.10547057221471998, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0428147611319233, 0.0, 0.4336529209634745, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10981699391447328, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14060207841669792, 0.19125923680987167, 0.17120811796462362, 0.0, 0.0, 0.29682703146376954, 0.2309028098716656, 0.0, 0.3415808438027304, 0.5413871431291847, 0.19010077735847383, 0.0, 0.0, 0.0, 0.037176095928915485, 0.0, 0.0, 0.19621484736356867, 0.46400800412758475, 0.6251709107930822, 0.11840971377140953, 0.5297289566486542, 0.0, 0.0, 0.0629827610017505, 0.0, 0.30811879649367063, 0.0, 0.43390554368076734, 0.0, 0.3078202365484454, 0.0, 0.0, 0.06464271443386868, 0.0, 0.0, 0.7925386152607364, 0.0, 0.0, 0.0, 0.0, 0.4871987999416911, 0.0, 0.0, 0.0, 0.026241068751647587, 0.4048536827096608, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04667237073016084, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008398941803472277, 0.0, 0.3462604046867109, 0.0, 0.41520221547875746, 0.0, 0.0, 0.0, 0.49209502240450126, 0.6693906625198521, 0.19758221668125867, 0.008160985490142467, 0.2605302099636665, 0.0, 0.0, 0.0, 0.9022483783960523, 1.0694729952381887, 0.6653361553880242, 0.881281776229774, 0.001915716390555032, 0.022482711824403312, 0.0040432994483474245, 0.0, 0.3214035783779074, 0.6867348676262818, 0.0, 0.6858420722534031, 0.0, 0.5811377322397425, 0.04246482918579259, 0.11467932906673921, 0.09709202075873843, 0.0, 0.0, 0.0, 0.2200140216993193, 0.0, 0.7507517442378999, 0.0, 0.0, 0.7372603142185328, 0.0, 0.006741369353138395, 0.8069776586909365, 0.00396709224045839, 0.0, 0.0, 0.0, 0.6101879525945185, 0.0, 0.0, 0.026258353794755256, 0.4016774417320984, 0.014813931005383318, 0.6190727226045784, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11309418362565873, 0.0, 0.0, 0.0, 0.0, 0.0, 0.036526440507301174, 0.022956711251180283, 0.40907708831845013, 0.0012453094708774737, 0.0, 0.0, 0.0, 0.0, 0.014062827632021033, 0.0, 0.0, 0.0, 0.006394809610240893, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21784527989974428, 0.0, 0.0, 0.0, 0.3180108962002836, 0.2508741672819204, 0.17523704698611114, 0.13837147224686994, 0.27935616728122964, 0.1859955338163167, 0.0, 0.06462126637992056, 1.0008493550472979, 0.6004231261661688, 0.0, 0.3940831570768702, 0.0, 0.0, 0.1305734964236071, 0.0, 0.09786792103897592, 0.0, 0.11654231814191775, 0.46697515894469777, 0.5700094853415558, 0.1107417067979406, 0.346111937724667, 0.0, 0.1225882117910605, 0.0, 0.28673152989464684, 0.0, 0.12654022793408917, 0.0, 0.0, 0.45809293367016757, 0.3647743355850667, 0.817304098176075, 0.0036334642288677415, 0.0, 0.2669922423479005, 0.0, 0.0, 0.0, 0.32457729111200295, 0.5543705739187803, 0.8812247175026642, 0.16912005088903598, 0.5020073987686707, 0.0, 0.09252856828989332, 0.0, 0.0, 0.0, 0.06948083164247039, 0.2588335470174883, 0.23431107957691064, 0.0, 0.0, 0.4609326565956409, 0.0981996119487529, 0.0, 0.0, 0.0, 0.0, 0.41461953421729686, 0.2880401034246727, 0.0, 0.12878680297473977, 0.5528442548314576, 0.8638211211778427, 0.0, 0.19329232440572794, 0.07190135483727589, 0.0, 0.37985878824980135, 0.0, 0.0, 0.47943873587199365, 0.0, 0.1632157826430328, 0.028602417984395823, 0.12587604601890898, 0.20239239184313712, 0.0, 0.9957002205667365, 0.5403020941861382, 0.1731723605204449, 0.5984215188307392, 0.5906299727726914, 0.15421128542459664, 0.22417177182593684, 0.14760215442934868, 0.0, 0.0, 0.10452572448334531, 0.0, 0.0, 0.5192893646261969, 0.0, 0.0, 0.0, 0.03548389098440683, 0.0, 0.0, 0.5359908824860568, 0.0, 0.0, 0.4508397689271815, 0.17912612646003018, 0.05191685886593687, 0.015041105758856862, 0.0, 0.0, 0.07792048637164595, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16284516279577882, 0.07019827463547235, 0.0, 0.0017166852898648512, 0.022601665621833984, 0.0, 0.0, 0.0, 0.08820522946301469, 0.0, 0.0, 0.4597721334804677, 0.0, 0.01968862180697655, 0.1496625833744818, 0.0, 0.0, 0.0, 0.0, 0.042967175515187854, 0.0, 0.5925889649898668, 0.03501818713399176, 0.0, 0.23929946904107768, 0.0, 0.0, 0.0, 0.0, 0.0, 0.586042846539397, 0.0, 0.35012160211964255, 0.0, 0.0, 0.2671275149044985, 0.5254872140248491, 0.0, 0.0, 0.0, 0.4346599048698998, 0.0, 0.6685147232492785, 0.0, 0.0, 0.006603260891096502, 0.41222164853295895, 0.691126666160783, 0.3115253982735278, 0.0, 0.5948463934358659, 0.0, 0.6104915934501508, 0.0, 0.10122959156761935, 0.0, 0.0, 0.4361142638019697, 0.0, 0.0, 0.022953207777356696, 0.01768983406390727, 0.0, 0.49300859199961644, 0.0, 0.45242065570193146, 0.0, 0.25296290668039206, 0.24913417193879323, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0036117281801281323, 0.37981219294125684, 0.0, 0.7813883080906168, 0.37787984308171674, 0.0, 0.3540795182413977, 0.0, 0.0, 0.024079641916532137, 0.0, 0.3372996465844834, 0.4587109366214878, 0.0, 0.0, 0.0, 0.0, 0.008167928328435794, 0.30985126085873477, 0.0, 0.1769552845849796, 0.01014740975340464, 0.3239445526321744, 0.2589119416659987, 0.30500724408067964, 0.0, 0.8521343659652334, 0.0, 0.12278148254603906, 0.0, 0.0, 0.7559317032710442, 0.0, 0.4639073457870384, 0.3375990135598286, 0.0, 0.09771802789528808, 0.0, 0.0, 0.0, 0.0, 0.14259284539732897, 0.0, 0.0, 0.0, 0.03978581978010784, 0.4979059043742451, 0.0, 0.0, 0.02239395579386129, 0.0, 0.0, 0.08552679542089565, 0.0, 0.28975782063069117, 0.4544199284136855, 0.4879966224465369, 0.0, 0.5198773678370044, 0.09074414747732065, 0.0, 0.0, 0.0, 0.08751115961530397, 0.0, 0.0, 0.0, 0.0, 0.01723069885490719, 0.005476104703094391, 0.0, 0.0, 0.0, 0.0, 0.0, 0.018363845689630152, 0.0, 0.0, 0.0, 0.03456818780211805, 0.16076784648973388, 0.1339929852951158, 0.12939203287442297, 0.6506668934574178, 0.07556479761019191, 0.0, 0.0, 0.1120835499344092, 0.004448105032597938, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.424200452243984, 0.21870476868551994, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04400733534916703, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5084860468121182, 0.0, 0.0, 0.0, 0.06613225218879751, 0.0, 0.0, 0.03227907593043655, 0.0, 0.01489513919323321, 0.0, 0.0, 0.0004903768608608706, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3709186680024144, 0.0057636955333438475, 0.0, 0.0, 0.0, 0.0, 0.05167292145382253, 0.03114794005970685, 0.0, 0.0, 0.0, 0.04406332427000894, 0.0, 0.28333618254852055, 0.0, 0.0, 0.08754290037370453, 0.0, 0.030717709851121017, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15375069919642081, 0.17266284464812964, 0.0, 0.0, 0.0, 0.0, 0.4591427931520538, 0.0, 0.0, 0.4080740928256236, 0.04867028613084824, 0.0, 0.0, 0.19198247076461217, 0.0, 0.0, 0.0, 0.04903912896069461, 0.0, 0.0, 0.0, 0.03565133307467186, 0.011864802664565318, 0.0, 0.0770587282490205, 0.06882991093352155, 0.0, 0.32659059563162995, 0.036557980918752765, 0.0, 0.0, 0.0, 0.0, 0.03137440184410096, 0.0, 0.0, 0.0, 0.18642661293603366, 0.0, 0.0, 0.0, 0.0, 0.06772257249589227, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21100355273002191, 0.0, 1.3416336420880526, 0.0, 0.0, 0.46161810723264507, 0.0, 0.4582995461192519, 0.05104879083246295, 0.5773364122618407, 0.57352236887648, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5640999064171196, 0.6666836020552119, 0.06886868779194379, 0.564904097158741, 0.0, 0.3210670084651615, 0.0, 0.0, 0.0, 0.9392890324745945, 0.0, 0.0, 0.2984250122811811, 0.0, 0.009405052137469182, 0.0, 0.39950267169818077, 0.07050196115427894, 0.824636783426293, 0.4953951141450468, 0.0, 0.0, 0.34635403119710667, 0.8798483938054087, 0.39347138128916365, 0.0, 0.0, 0.41085938784277987, 0.0, 0.7572672907360996, 0.0, 0.1918766456362537, 0.14775814623354722, 0.0, 0.0, 0.18414622884752666, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32881972797464193, 0.22733765531865868, 0.29775899283396906, 0.0, 0.0, 0.0, 0.0387256895819095, 0.5151993362991701, 0.0, 0.0, 0.0, 0.008722287803381279, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1780184121162673, 0.0, 0.0, 0.0, 0.0, 0.0511079535437104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05738054033260683, 0.0, 0.0, 0.3177388426930726, 0.0, 0.0, 0.0019725686702392773, 0.0, 0.0, 0.0, 0.0, 0.20770780211002965, 0.0, 0.0, 0.0, 0.8220710140576788, 0.0, 0.0, 0.0, 0.0, 0.9922981121231631, 0.19272059014741777, 0.18871634512759347, 0.009978475777936804, 0.5372065554785002, 0.0, 0.0, 0.17523452577386275, 1.0717089910255204, 0.5571949298413089, 0.0, 0.3237380570219946, 0.0, 1.1122472434174695, 0.10030606802210519, 0.0, 0.42164300445661296, 0.0, 0.2034243141927581, 0.0, 1.0210169552267845, 0.19689099390765805, 0.14675887656145528, 0.15859984719751974, 0.2247981968120587, 0.0, 0.22026608101531156, 0.5078755745015515, 0.2690121908665218, 0.0, 0.0, 0.0, 0.3746062674772627, 0.7584612913730437, 0.0, 0.0, 0.8749551201631387, 0.5887430555293698, 0.8247249363546676, 0.21469878981542115, 1.002630449124598, 0.2572736542055717, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005299432156408299, 0.06219376030445952, 0.011184949515597283, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11747014454387752, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1628689565677918, 0.010974138077104432, 0.0, 0.0, 0.0, 0.0, 1.0297896192318396, 0.0, 0.662355409415741, 0.5720482757502646, 0.3113118281374319, 0.0, 0.0, 0.25393001900118484, 0.02276308091998572, 0.03508485404358758, 0.45957926224802004, 0.0, 0.05036277933399867, 0.1447652248957086, 0.0, 0.0242600552046752, 0.005732716773973234, 0.0, 0.0, 0.04566723978074626, 0.007798132412071851, 0.435160826872351, 0.19099152935556227, 0.0, 0.09109198019072849, 0.0, 0.0, 0.0, 0.0, 0.040872817508571836, 0.0, 0.8816978299630381, 0.023385944730671186, 0.20852512378086208, 0.3265908462108258, 0.0, 0.8135187830099228, 0.5004561612521131, 0.5929930445509373, 0.07024535595608956, 0.4293153063068892, 0.33966138448698774, 0.0, 0.0, 0.219723330992236, 0.0, 0.0, 0.32087091161635517, 0.10046935863374477, 0.0, 0.21249664109114016, 0.0, 0.0, 0.5675920409330384, 0.0, 0.0, 0.02195446551553763, 0.0, 0.0, 0.0, 0.7828555360473642, 0.0, 0.0, 0.0, 0.539158201637973, 0.0, 0.037194676308406484, 0.0, 0.5899620450765102, 0.0, 1.064333300573155, 0.0, 0.4126616356723095, 0.0, 0.0, 0.0, 0.0, 0.005455259856546277, 0.06532462900349355, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6382915607944724, 0.0, 0.1058392854111573, 0.06419509685388734, 0.0, 0.0, 0.42600921169580896, 0.0, 0.6948705846598551, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7494592390120385, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.34703521803027376, 0.47959926529853425, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18954560408868362, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04058791510732469, 0.0, 0.0, 0.0, 0.026371559760006224, 0.46735915191246824, 0.9729562858716514, 0.0, 0.01593384874339247, 0.0, 0.0, 0.10548242945325798, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08182217469250767, 0.0, 0.0, 0.0, 0.0, 0.5929119201290493, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0028851424117770368, 0.14902256810885017, 0.0, 0.19393473922191487, 0.0010822975481770052, 0.10083006827906865, 0.005589290532560041, 0.0, 0.0377329438822351, 0.0, 0.0, 0.0, 0.0, 0.08622227292139113, 0.0, 0.0, 0.052960874748722735, 0.0, 0.0, 0.0, 0.040542431602682394, 0.0, 0.034748695303796415, 0.0, 0.0, 0.07778126624009696, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08990369242695052, 0.0, 0.0, 0.0, 0.0, 0.1714300400506459, 0.23319412483505944, 0.06883127399553583, 0.0, 0.0, 0.4520065142603474, 0.7559043080573538, 0.0, 0.9918256875421747, 0.34148047573693957, 0.23178166527267935, 0.1984049383893502, 0.0, 0.0, 0.0, 0.4618215114400494, 0.055660721213669, 0.23923628669541208, 0.0, 0.0, 0.39945045771087084, 0.3329245273531598, 0.25602890393383043, 0.0, 0.2574713970419185, 0.0, 0.0, 0.27848743576980106, 0.008801495971424074, 0.0, 0.0, 0.0, 0.0, 0.4961604274582618, 0.0, 0.0, 0.5434029369831717, 0.0, 0.0, 0.0, 0.0, 0.15767180411659634, 0.03460197933312267, 0.0, 0.0, 0.036131085316488384, 0.0, 0.0, 0.0, 0.016873683938744447, 0.019906225883667222, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.012507180486519448, 0.0, 0.02685500739865508, 0.028916495513405534, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029742024653825302, 1.0585077478673894, 0.0, 0.0, 0.10450313655197234, 0.0, 0.27087506529662764, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7518068036153462, 0.0, 0.2680435440340337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1316435251098364, 0.8078731280911045, 0.0, 0.0, 0.0, 0.10506968633342718, 0.23470506622896917, 0.0, 0.0, 0.607722294332459, 0.023665118775296444, 0.014839085130224942, 0.0, 0.0, 0.24386571546932873, 0.0, 0.0, 0.3502050356771847, 0.0, 0.0, 0.46379933676520235, 0.0, 0.08440789641107996, 0.04593440835303492, 0.021386035200774683, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7729032574550468, 0.0, 0.11781868003483978, 0.030607043037187642, 0.0, 0.1726108187023696, 0.09583059716129254, 0.5239548125179947, 0.4366934746091282, 0.0, 0.0, 0.24627150409293175, 0.0, 0.13007997889130285, 0.36528893478699903, 0.18318396866765946, 0.0, 0.011811348038501769, 0.0, 0.0, 0.0, 0.0, 0.0, 1.1723218684731558, 0.5524938653991974, 0.7739462295109258, 0.0, 0.7069108871009565, 0.0, 1.1639912229987677, 0.0, 0.0737216927746314, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.41689243790078717, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7826638975615551, 0.0, 0.0, 0.0, 0.1017910453533696, 0.0, 0.0, 0.0, 0.0, 0.022926661938484392, 0.0, 0.0, 0.24172521220469304, 0.33406187082542654, 0.0, 0.0, 0.31010342596966556, 0.0, 0.0, 1.1081747068991343, 0.7344335908166203, 0.16327913698089802, 0.7325151937485493, 0.17384385605370836, 0.08371482373128411, 0.0, 0.3420940653006234, 0.0, 0.04990946505718503, 0.5498243469410863, 0.0, 0.007722420577405236, 0.0906297807361463, 0.016298894248894004, 0.0, 0.17760842474448457, 0.7445477489471244, 0.0, 0.0, 0.23271741543898974, 0.5862478840032251, 0.38013450552556605, 0.0, 0.13625107884748244, 0.3102878234624971, 0.0, 0.0, 0.0613418632643825, 0.1222024301534575, 0.0, 0.0, 0.09768999149541487, 0.07432603695941839, 0.0, 0.0, 0.2373353492409029, 0.8187850328888507, 0.0, 0.1472545596990393, 0.08055057930039017, 0.0, 0.0, 0.0, 0.0, 0.022056121851574153, 0.7041166858972707, 0.0, 0.0, 0.0, 0.7708181971148897, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6591456110142444, 0.0, 0.0, 0.0, 0.5151326583061712, 0.4293405940090164, 0.0, 0.30993576190130123, 0.24212487706484054, 0.0, 0.0, 0.35913833699197834, 0.594616431743019, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7007742613782065, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07822848175716028, 0.0, 0.795037704009975, 0.0, 0.18176747614492506, 0.0, 0.0, 0.0, 0.0, 0.05218428597433502, 0.551641665900435, 0.0, 0.0, 0.0, 0.0, 0.4173251650328503, 0.13888627164939463, 0.0, 0.9020292850308806, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32443041606173034, 0.0, 0.3672605285185933, 0.0, 0.0, 0.0, 0.20671726976925492, 0.0, 0.0, 0.38426107037286794, 0.0, 0.0, 1.3158788906540237, 0.0, 0.0, 0.33314012692337136, 0.4077019730262151]), 42), 42)),) julia> @finch_code begin Ct .= 0 for j = parallel(_) @@ -1313,5 +1313,5 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.40798272794029244, 0.0, 0.05552236202954211, 0.0, 0.0, 0.0, 1.1508129348205518, 0.0, 0.19395356472348033, 0.2307481734593406, 0.0, 0.0, 0.0, 0.0, 0.7400687115958035, 0.0, 0.0, 0.4711198057610666, 0.0, 0.07015028050595504, 0.08663540769774136, 0.0, 0.0, 0.46359958748433167, 0.0, 0.035823254967012344, 0.0, 0.21605429332119105, 0.050389255833200065, 0.0, 0.0, 0.08982343514212215, 0.0, 0.11508828733565957, 0.4022461237733094, 0.0, 0.5232411380476881, 0.0, 0.17677960337865342, 0.6347058701128525, 0.0, 0.0, 0.0, 0.080760767105778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.530417945120141, 0.036947581649449654, 0.0, 0.42172014534542845, 0.0, 0.0, 0.0, 0.04046090790460827, 0.0, 0.0, 0.0, 0.0, 0.016730358390191713, 0.11216899138664496, 0.10090277285890621, 0.3770798811678483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06022016698365358, 0.0, 0.3347277070064448, 0.08319806447593037, 0.0, 0.0, 0.15734979027583865, 0.6034963214197537, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8559793301235343, 0.0, 0.0221818618958444, 0.0, 0.0, 0.0, 0.0, 0.6249640468245943, 0.0, 0.706457127780651, 0.8381987455683932, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05075027829145945, 0.0, 0.0, 0.28298860880763127, 0.0, 0.46775948880043733, 0.3276758676884306, 0.23162154119323575, 0.0, 0.0, 0.7097058534293814, 0.0, 0.01925480712564137, 0.6617464495997725, 0.5510119129346432, 0.9503030089786222, 0.19493828703065708, 0.4234771306495736, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11491839349038546, 0.0, 0.0, 0.0, 0.0, 0.0, 0.952344347120024, 0.31481029761912926, 0.0, 0.0, 0.3371532262514988, 0.0, 0.6461986748500718, 0.0, 0.20388394461232018, 0.6689077519036521, 0.008065708303756284, 0.026774581755143884, 0.0, 0.0, 0.0, 0.0, 0.20246692989511542, 0.0, 0.0, 0.0, 0.0, 0.6964472745009185, 0.0, 0.3001098015546565, 0.0, 0.002810485733837209, 0.0, 0.0, 0.2833439267406652, 0.0, 0.0, 0.0, 0.01365478232442864, 0.0, 0.07752931191170997, 0.005400497114468351, 0.01008472602077043, 0.7305457354717977, 0.0, 0.0, 0.3791767135274968, 0.009729638043940761, 0.14133243937397577, 0.0, 0.6050992861887972, 0.0, 0.0, 0.0, 0.0, 0.32748073574326575, 0.29782974023215064, 0.0, 0.0, 0.0, 0.0, 0.008516959572353846, 0.0, 0.0, 0.0, 0.5188617620854502, 0.0, 0.12960309538886133, 0.0, 0.2159060099855789, 0.0, 0.0, 0.0, 0.5916658876154497, 0.0, 0.08410324034674674, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7242114416300933, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.43295426032070555, 0.1879551877902947, 0.09140698995628445, 0.0, 0.0, 0.0, 0.0, 0.053834983759932134, 0.014210556502435533, 0.023024626002393696, 0.0, 0.0, 0.08510060429095491, 0.15442202399960203, 0.0, 0.5391171356753139, 0.0, 0.44855253786204935, 0.048493606647816025, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22138370024934187, 0.0, 0.08746644969030876, 0.0, 0.0, 0.0, 0.1616519416528851, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.035084084514750494, 0.0, 0.11688517594508105, 0.2089391042079727, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05598779403983851, 0.014778823268485956, 0.0, 0.0, 0.0, 0.0, 0.057780108315529474, 0.0, 0.201721527067654, 0.0, 0.3341648455181398, 0.0, 0.0, 0.7601477683176978, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8032144106029788, 0.0, 0.18178069418497272, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6936206835397086, 0.0, 0.36283080196789974, 0.4415514891805875, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.041591186808888826, 0.3770004419200786, 0.0, 0.0, 0.0, 0.17252416859375463, 0.0, 0.0, 0.6527400000425327, 0.0, 0.3340575108846618, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7763472218770214, 0.0, 0.0, 0.0, 0.0, 0.8376247582699287, 0.0, 0.014460886244840168, 0.6266762938745922, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.46397397404593055, 0.0, 0.23926875754339813, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.46347904589364963, 0.05902942262309747, 0.0, 0.03877718275846287, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2950495413884076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06597380264866397, 1.0898197013430582, 0.0, 0.012501862454917015, 0.0, 0.0, 0.05385941027253928, 0.0, 0.3522343881391282, 0.0, 0.398164495085241, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004630463685504157, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25876266416388005, 0.0, 0.0, 0.3103356146935319, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6074148238597709, 0.09425255656440318, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0032593418386170935, 0.0, 0.2297346969390008, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12055792386342427, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25324185315889564, 0.0, 0.05731281617489229, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21868854065637486, 0.0, 0.0, 0.13921477990069736, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.013113097926933236, 0.11886277100269102, 0.0, 0.0, 0.0, 0.0, 0.0, 0.52224991418746, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4173873832595858, 0.08858709037486684, 0.0, 0.0, 0.0, 0.0, 0.15667266254329507, 0.0, 0.40730912125206437, 0.5164653515440787, 0.0, 0.2032159032369745, 0.40587691627032874, 0.0, 0.0, 0.0, 0.0340034080482809, 0.0, 0.0, 0.15427161497649788, 0.44428262792688017, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.014262992619462008, 0.38024333666677773, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1612065141710269, 0.0, 0.03925137009723705, 0.0, 0.0078366311533161, 0.0, 0.014460397168610369, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06667255880132161, 0.0, 0.14952781464402123, 0.0, 0.0, 0.0, 0.0, 0.2779234999305725, 0.0, 0.008746314891451676, 0.0, 0.0, 0.06465282563196756, 0.0, 0.2464235137262255, 0.006899580599861792, 0.278556260330773, 0.007445268802069765, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18845739307946788, 0.01641249348500929, 0.5317378389887557, 0.0, 0.0, 0.14988438489574235, 0.0, 0.010375471289624015, 1.3557213333649594, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18808146093167488, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37253241298417417, 0.0, 0.1111794727253734, 0.16963583085055012, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10986305912788819, 0.0, 0.0, 0.11949895822624457, 0.0, 0.0, 0.15821760502340373, 0.0, 0.5523682427180556, 0.0, 0.4595776329669528, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.33581328744582783, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24138228903328196, 0.0, 0.3691306800612154, 0.0, 0.0, 0.0, 0.0, 0.0, 1.232394871494877, 0.0, 0.0, 0.0, 0.5293521525003586, 0.0, 0.48349454590588176, 0.0, 0.0, 0.6981988327823653, 0.0, 0.0, 0.0, 0.0, 0.0, 0.33600003819418794, 0.10493510524858034, 0.1002766625939797, 0.0, 0.4760848715940903, 0.30327936688968893, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15549653856407664, 0.053555423141422365, 0.33124643300151746, 0.1452133754699813, 0.29863037601205833, 0.5069679636197618, 0.0, 1.2650777504013886, 0.0, 0.0, 0.8010376870067246, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8336854027224526, 0.0, 0.0, 0.0, 0.0, 0.013135866634354858, 0.7693584995036987, 0.0, 0.0, 0.0, 0.1809386811488775, 0.18409266358857004, 0.0, 0.8209089663283375, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6269731623222802, 0.0, 0.0, 0.0, 0.0, 0.8578109001691112, 0.13549697762155272, 0.8892025809188543, 0.0, 0.17753144998442447, 0.0, 0.3275865900116729, 0.37045604078207667, 0.0, 0.0, 0.45942273296787417, 0.0, 0.0, 0.1496601554416231, 0.0, 0.4896166566389182, 0.09296161452877622, 0.0, 0.15295686770265157, 0.0, 0.0, 0.0, 0.18412880463476564, 0.0, 0.19671721658454625, 0.0, 0.0, 0.15630345798009787, 0.0, 0.16866550691184853, 0.0, 0.3962565901298767, 0.0, 0.0, 0.009054605400028368, 0.0, 0.0, 0.0, 0.0, 0.6323717354885464, 0.0, 0.27367929286054155, 1.074929147630902, 0.1458067334724375, 0.22417700682510228, 0.0, 0.10951695376531846, 0.0, 0.007581110002282966, 0.24931277842808883, 0.0, 0.6883954376611309, 0.6336690200937254, 0.2666286675338324, 0.0, 0.0, 0.0, 0.0, 0.2876738228687025, 0.0, 0.0, 0.21522568832904387, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0438812752886428, 0.6525143726026617, 0.0, 0.0, 0.0, 0.0, 0.0, 1.1869853573228195, 0.11631516482088484, 0.0, 0.0, 0.0, 0.0, 0.06506946683877823, 0.0, 0.22717008671076838, 0.10242247240104177, 0.18900849588618046, 0.11442201255265518, 0.5664450740439114, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019408932182682588, 0.20321698947174538, 1.233551723482737, 0.3258945612095407, 0.0, 0.13004560449904765, 0.0, 0.5146863326888748, 0.0, 0.0, 0.26506893163091566, 0.6961290235591785, 0.7308179758735578, 0.019108835994024305, 0.0, 0.0, 0.12318551581994355, 0.0, 0.6633736020985646, 0.09733981959320877, 0.6085861256804133, 0.0, 0.3702803270823883, 0.0, 0.31915877170632656, 0.0, 0.0048098299833409025, 0.08330917183364514, 0.03767139221212642, 0.0, 0.0, 0.7595521482230864, 0.0, 0.40492576086384785, 0.9767048148851073, 0.0, 0.7118250358317957, 1.4759259446598505, 0.6177251878074594, 0.0, 0.0, 0.5578474164235181, 0.0, 0.0, 0.0, 0.8466209961003106, 0.0, 0.0, 0.0, 0.0, 0.9134452822413822, 0.0, 0.0, 1.1506817448958997, 0.0, 0.0, 0.5717156136201251, 0.0, 0.0, 0.0, 0.0, 0.22301492152906585, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13134314230830874, 0.20762859161099162, 0.0, 0.4768286902241477, 0.0, 0.3252201513410915, 0.5728390197892637, 0.07274257736444308, 0.0946619273240044, 0.0, 0.08735695093663028, 0.0, 0.006047124502145837, 0.0, 0.0, 0.03396077178506113, 0.056902676891892164, 0.05446213354503342, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03284486748482166, 0.0, 0.03394228891521373, 0.0, 0.0, 0.0, 0.15913459349815823, 0.0988686644243417, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06403136572671528, 0.0008539041494970381, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4996043959310575, 0.03466871274471111, 0.0, 0.0, 0.0, 0.5916091668585121, 0.0, 0.0, 0.18522959478004286, 0.0, 0.0, 0.6748263739107161, 0.0, 0.0, 0.5617854630926186, 0.0, 0.7191769350887419, 0.22919875305609166, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07421634147547619, 0.2082330820676049, 0.0, 0.33671550924577986, 0.0, 0.0, 0.8216886233224614, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9288637557541211, 0.0, 0.0, 1.2410393190221276, 0.024834505618206743, 0.6697889027661909, 0.39618825585335343, 0.37106318592637155, 0.321662062811288, 0.0, 0.8625204846142658, 0.4737807718760894, 0.8171062776340833, 0.16785258111865808, 1.931465974538034, 0.1820623956052182, 0.0, 0.40831479446929375, 0.0, 1.6290713896950666, 0.0, 0.0, 1.0235643660149811, 0.0, 0.0, 0.0, 0.0, 0.996334540430692, 0.0, 0.0, 0.44156504893800563, 0.289897027676234, 0.0, 0.5556259307084835, 0.0, 0.0, 0.5751570179061616, 0.0, 0.15465163640644544, 0.0, 0.0, 0.0, 0.0, 0.1740886831542383, 0.8206341762594166, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8467869185435447, 0.05898504962060997, 0.03624481511042625, 0.6732560722166093, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.201694060644539, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4141926752107277, 0.14795154825402113, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21427949262749374, 0.46809092516056994, 0.0, 0.16828675961297507, 0.14194253863939424, 0.0, 0.46436829494386733, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13445486993921502, 0.019720618408469233, 0.2722006890254698, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06550905522135163, 0.04806777087710764, 0.0, 0.0, 0.0, 0.599761835300619, 0.0, 0.0, 0.5741431736534577, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17101973439245724, 0.0, 0.0, 0.0749875087919759, 0.0, 0.0, 0.28776812087676407, 0.8309016545414952, 0.0, 0.0, 0.0, 0.016199069272106216, 0.0, 0.0, 0.0, 0.0, 0.6545099569258361, 0.22702193109653576, 0.04569906480983916, 0.2833580027667076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11138860511768055, 0.062440751035711506, 0.5182620734767335, 0.0, 0.3481758497366363, 0.0, 0.4677994729760326, 0.6992526088901763, 0.01746909322126967, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4416823398234807, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08074443292335906, 0.005624454367769537, 0.4953841958649777, 0.06419759041251974, 0.0, 0.0, 0.0, 0.03378063280221251, 0.27793271609589054, 0.0, 0.0, 0.0, 0.013968102118739474, 0.0, 0.08424327814659714, 0.057402094804332435, 0.0, 0.0, 0.0333773112405404, 0.0, 0.0, 0.0, 0.020814415925578544, 0.050277550690626754, 0.07266714943835642, 0.05420980100927718, 0.1299217183065535, 0.0, 0.0, 0.3197221256849075, 0.0, 0.13800911480490768, 0.0, 0.0, 0.0, 0.0, 1.01268183989861, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7358814757212789, 0.30707785521832553, 0.5276131242565835, 0.0, 0.1743689886750783, 0.0, 0.25821885501181596, 0.5805464694386301, 0.7164948773890167, 0.0, 0.0, 0.0, 0.37021123955626156, 0.12525001349038106, 0.608077535649827, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0938347119534369, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17530069799945608, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6839828466860547, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0036702000371577168, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.030804733252794536, 0.6085396823865649, 0.3664826840226463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.052310575793324585, 0.23438841535865984, 0.027151249553211434, 0.42665810243765545, 0.060892623345148826, 0.0, 0.0, 0.08445468462850356, 0.05478879427510317, 0.5501718854551394, 0.0, 0.11343808432438283, 0.0, 0.09259962343643532, 0.2732186452567139, 0.0, 0.42011946077495216, 0.2576342392674693, 0.0, 0.5090094423403475, 0.0, 0.0, 0.0, 0.0010952054350690443, 0.08086253983246877, 0.0, 0.0, 0.23985944027024297, 0.0, 0.09028722397131896, 0.0, 0.07674602267622682, 0.43900489287844074, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3006474050100551, 0.0, 0.0, 0.0709455536446502, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24893625570967048, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2768131690025365, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0014853584531852684, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2394367041087018, 0.8202130158779322, 0.0, 0.0, 0.28871220094126887, 0.0, 0.0, 0.04358483751824937, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.052964062286445145, 0.0, 0.2958896434064324, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.695162332188878, 0.037163387811150035, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0679762361139716, 0.0, 0.0, 0.24678121036961095, 0.0, 0.0, 0.2964710587865061, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0759598903032082, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07295585235760724, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0603439559536301, 0.0, 0.0, 0.0, 0.17528000283667142, 0.0, 0.12675745187805368, 0.328557971512483, 0.028687306018592266, 0.0, 0.0, 0.8516002254500735, 0.0, 0.4371253184691764, 0.13991121920676916, 0.0, 0.3475458448096685, 0.46894433815651543, 0.0, 0.0, 0.6068029321085694, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.28015080493647854, 0.3107571390829928, 0.0, 0.0, 0.0, 0.0, 0.006563618369995558, 0.5906679530337167, 0.0, 0.0, 0.0, 0.6525869879262292, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00921986700494424, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04479484649111107, 0.0, 0.3151409942990884, 0.021951930030038837, 0.0, 0.2505595957731255, 0.0, 0.0, 0.0, 0.03191831493444459, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22403715744289487, 0.0, 0.0, 0.0, 0.0, 0.0, 0.027940093628006875, 0.0, 0.0, 0.0, 0.26553429437558146, 0.0, 0.030379801994009328, 0.0, 1.223521302648351, 0.3114612281119979, 0.3934859798468234, 0.0, 0.3688885410084021, 0.0, 0.5211677391443227, 0.318605826264122, 0.11794887163110916, 0.0, 0.0, 0.4256936617495534, 0.0, 0.49172025370622324, 0.48430956473476544, 0.0, 1.3234474260067457, 0.28650182105087124, 0.006913853673799038, 0.28826288884375384, 0.3033256150127764, 0.0, 0.19416551553442815, 0.19479473776455275, 0.0, 0.2201952762677155, 0.0, 0.0, 0.34956927181897907, 0.0, 0.0, 0.0, 0.5335997378219544, 0.1831214497933391, 0.5101375543135913, 0.0, 0.7417718286797346, 0.0, 0.23966647500006097, 0.8693502490764229, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21247306643180602, 0.1378389271943791, 0.0, 0.0, 0.2853901797463675, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20343586472727235, 0.29392458170687635, 0.011188169832657642, 0.0, 0.0, 0.28953305486076913, 0.0, 0.0, 0.07223789467137894, 0.0, 0.33051308113923733, 0.4540345661588786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9537370190824367, 0.0, 0.6089477015288718, 0.0, 0.07722630190963325, 0.0, 0.0, 1.0000222254545443, 0.8637206744494375, 0.0, 0.7751920658363071, 0.524298363554463, 0.0, 0.0, 0.01676078910810196, 0.0, 0.0, 0.07604278960261779, 0.0, 0.0, 0.0, 0.0, 0.40940877803475156, 0.0, 0.0, 0.0, 0.0, 0.09252661041066143, 0.44765043171933794, 0.0, 0.24055976047324873, 0.0, 0.15100552643910237, 0.35800810608226774]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.08838669783079417, 0.24540062578718655, 0.0, 0.0, 0.0, 0.0, 0.2598139726110033, 0.0, 0.0, 0.008999058499533074, 0.10561231293601407, 0.018993358540021866, 0.3713088213439608, 0.1272213104915037, 0.0, 0.04569648380052932, 0.0, 0.6778277114032399, 0.0, 1.0116444857173326, 0.1419594034849179, 0.849786220982489, 0.1853715018708835, 0.0, 0.41575027296468353, 0.027919812909200686, 0.38129764067914484, 0.0, 0.010472223603003109, 0.32765224234190193, 0.0, 0.0, 0.0, 0.27657062580546904, 0.018635375946533275, 0.0, 0.6553105493426397, 0.1806768240966126, 0.0, 0.0, 0.13022235819683495, 0.0, 0.0, 0.0096207645890863, 0.0, 0.0, 0.0, 0.0, 0.0027620603050478813, 0.0, 0.0, 0.0, 0.0, 0.06777735948867263, 0.16424694314849322, 0.05466156243395641, 0.0, 0.3550122664783007, 0.0, 0.16598631348758813, 0.0, 0.09916577661749644, 0.0, 0.0, 0.017171766504479664, 0.14883499722913907, 0.14454297081157494, 0.0, 0.0, 0.0, 0.08135785354072747, 0.18934501987281463, 0.0, 0.0, 0.0, 0.043171173549343585, 0.04442771737900286, 0.0, 0.0, 0.16847976307679274, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4519419326045341, 0.0022494085401006682, 0.0, 0.09264806290445121, 0.0, 0.0, 0.5779259042074504, 0.0, 0.0, 0.0, 0.01319039039025495, 0.0, 0.0, 0.05821123759190987, 0.008570313787111606, 0.12498925860233108, 0.3161944438230963, 0.0, 0.0, 0.0, 0.0, 0.03428001709676162, 0.0, 0.0, 0.0, 0.4239046512601812, 0.0, 0.0, 0.0, 0.0, 0.006439869364205756, 0.0, 0.19268641103781292, 0.0, 0.0, 0.0, 0.13842608775449636, 0.7754112567712441, 0.5650474898241402, 0.16678352690096504, 0.0, 0.0, 0.26721012017234747, 0.0, 0.0, 0.40379612390902914, 0.0, 0.5616249905190419, 0.0, 0.0, 0.0, 0.05914491909738165, 0.0, 0.0, 0.5796881176474965, 0.0, 0.0, 0.0, 0.0, 0.19259492607938428, 0.5396680351153355, 0.1002017616669876, 0.0, 0.0, 0.07018769309449151, 0.0, 0.0, 0.0, 0.8890997886610695, 0.01580855669802033, 0.07592126473643429, 0.0, 0.0, 0.5327597008182733, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26650628783183555, 0.0, 0.0, 0.4177758368274485, 0.01847646120309497, 0.2474671864399932, 0.030137257707486417, 0.0, 0.0, 0.0, 0.0, 0.4333965515966774, 0.0, 0.025363517487659904, 0.0, 0.0, 0.28727696476738296, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.48463873218296616, 0.3619901497543638, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3095355097692787, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08881016246594031, 0.0864536634210502, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13334438240099766, 0.0, 0.2743296378950603, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21573236386631758, 0.138874394226427, 0.21526827303910834, 0.0, 0.8276738568887637, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13803323038392623, 0.0, 0.0, 0.18937725647626488, 0.0, 0.09756025088965181, 0.10247093349242449, 0.14247269057616566, 0.0, 0.4644170645216008, 0.0, 0.0, 0.0, 0.6396576582705668, 0.0, 0.14648223852485512, 0.0, 0.3845502326592231, 0.0, 0.0, 0.0, 0.0, 0.01873756402105984, 0.01865952833886222, 0.015020499411212522, 0.0, 0.11259829701043601, 0.13537240455394534, 0.18963280616455852, 0.0, 0.1732077631723114, 0.0, 0.009279305276553587, 0.0, 0.09430577452314615, 0.07566718263303025, 0.06172210939249301, 0.0, 0.0, 0.0017837976727260341, 0.0, 0.0, 0.06543462567823881, 0.0621898641418941, 0.0, 0.0, 0.0, 0.41468742426256355, 0.21475258071539002, 0.0, 0.0, 0.08728790458911416, 0.0, 0.0, 0.4956863169283368, 0.0, 0.0, 0.3312300382813116, 0.0, 0.6814401538748236, 0.017040189816468283, 0.0, 0.0, 0.0, 0.0, 0.1702496303089558, 0.04558027585085677, 0.0, 0.0, 0.05652088848846798, 0.0, 0.0, 0.039516412285590885, 0.04836078861030929, 0.0, 0.0, 0.0, 0.0066658135086557066, 0.28756231542228783, 0.0, 0.0, 0.005213055047386901, 0.0, 0.03077146873270733, 0.0, 0.18174661292486113, 0.011855817392138795, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2550943184597343, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19130663987033655, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08795782309469964, 0.4949588224757624, 0.10547057221471998, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0428147611319233, 0.0, 0.4336529209634745, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10981699391447328, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14060207841669792, 0.19125923680987167, 0.17120811796462362, 0.0, 0.0, 0.29682703146376954, 0.2309028098716656, 0.0, 0.3415808438027304, 0.5413871431291847, 0.19010077735847383, 0.0, 0.0, 0.0, 0.037176095928915485, 0.0, 0.0, 0.19621484736356867, 0.46400800412758475, 0.6251709107930822, 0.11840971377140953, 0.5297289566486542, 0.0, 0.0, 0.0629827610017505, 0.0, 0.30811879649367063, 0.0, 0.43390554368076734, 0.0, 0.3078202365484454, 0.0, 0.0, 0.06464271443386868, 0.0, 0.0, 0.7925386152607364, 0.0, 0.0, 0.0, 0.0, 0.4871987999416911, 0.0, 0.0, 0.0, 0.026241068751647587, 0.4048536827096608, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04667237073016084, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008398941803472277, 0.0, 0.3462604046867109, 0.0, 0.41520221547875746, 0.0, 0.0, 0.0, 0.49209502240450126, 0.6693906625198521, 0.19758221668125867, 0.008160985490142467, 0.2605302099636665, 0.0, 0.0, 0.0, 0.9022483783960523, 1.0694729952381887, 0.6653361553880242, 0.881281776229774, 0.001915716390555032, 0.022482711824403312, 0.0040432994483474245, 0.0, 0.3214035783779074, 0.6867348676262818, 0.0, 0.6858420722534031, 0.0, 0.5811377322397425, 0.04246482918579259, 0.11467932906673921, 0.09709202075873843, 0.0, 0.0, 0.0, 0.2200140216993193, 0.0, 0.7507517442378999, 0.0, 0.0, 0.7372603142185328, 0.0, 0.006741369353138395, 0.8069776586909365, 0.00396709224045839, 0.0, 0.0, 0.0, 0.6101879525945185, 0.0, 0.0, 0.026258353794755256, 0.4016774417320984, 0.014813931005383318, 0.6190727226045784, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11309418362565873, 0.0, 0.0, 0.0, 0.0, 0.0, 0.036526440507301174, 0.022956711251180283, 0.40907708831845013, 0.0012453094708774737, 0.0, 0.0, 0.0, 0.0, 0.014062827632021033, 0.0, 0.0, 0.0, 0.006394809610240893, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21784527989974428, 0.0, 0.0, 0.0, 0.3180108962002836, 0.2508741672819204, 0.17523704698611114, 0.13837147224686994, 0.27935616728122964, 0.1859955338163167, 0.0, 0.06462126637992056, 1.0008493550472979, 0.6004231261661688, 0.0, 0.3940831570768702, 0.0, 0.0, 0.1305734964236071, 0.0, 0.09786792103897592, 0.0, 0.11654231814191775, 0.46697515894469777, 0.5700094853415558, 0.1107417067979406, 0.346111937724667, 0.0, 0.1225882117910605, 0.0, 0.28673152989464684, 0.0, 0.12654022793408917, 0.0, 0.0, 0.45809293367016757, 0.3647743355850667, 0.817304098176075, 0.0036334642288677415, 0.0, 0.2669922423479005, 0.0, 0.0, 0.0, 0.32457729111200295, 0.5543705739187803, 0.8812247175026642, 0.16912005088903598, 0.5020073987686707, 0.0, 0.09252856828989332, 0.0, 0.0, 0.0, 0.06948083164247039, 0.2588335470174883, 0.23431107957691064, 0.0, 0.0, 0.4609326565956409, 0.0981996119487529, 0.0, 0.0, 0.0, 0.0, 0.41461953421729686, 0.2880401034246727, 0.0, 0.12878680297473977, 0.5528442548314576, 0.8638211211778427, 0.0, 0.19329232440572794, 0.07190135483727589, 0.0, 0.37985878824980135, 0.0, 0.0, 0.47943873587199365, 0.0, 0.1632157826430328, 0.028602417984395823, 0.12587604601890898, 0.20239239184313712, 0.0, 0.9957002205667365, 0.5403020941861382, 0.1731723605204449, 0.5984215188307392, 0.5906299727726914, 0.15421128542459664, 0.22417177182593684, 0.14760215442934868, 0.0, 0.0, 0.10452572448334531, 0.0, 0.0, 0.5192893646261969, 0.0, 0.0, 0.0, 0.03548389098440683, 0.0, 0.0, 0.5359908824860568, 0.0, 0.0, 0.4508397689271815, 0.17912612646003018, 0.05191685886593687, 0.015041105758856862, 0.0, 0.0, 0.07792048637164595, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16284516279577882, 0.07019827463547235, 0.0, 0.0017166852898648512, 0.022601665621833984, 0.0, 0.0, 0.0, 0.08820522946301469, 0.0, 0.0, 0.4597721334804677, 0.0, 0.01968862180697655, 0.1496625833744818, 0.0, 0.0, 0.0, 0.0, 0.042967175515187854, 0.0, 0.5925889649898668, 0.03501818713399176, 0.0, 0.23929946904107768, 0.0, 0.0, 0.0, 0.0, 0.0, 0.586042846539397, 0.0, 0.35012160211964255, 0.0, 0.0, 0.2671275149044985, 0.5254872140248491, 0.0, 0.0, 0.0, 0.4346599048698998, 0.0, 0.6685147232492785, 0.0, 0.0, 0.006603260891096502, 0.41222164853295895, 0.691126666160783, 0.3115253982735278, 0.0, 0.5948463934358659, 0.0, 0.6104915934501508, 0.0, 0.10122959156761935, 0.0, 0.0, 0.4361142638019697, 0.0, 0.0, 0.022953207777356696, 0.01768983406390727, 0.0, 0.49300859199961644, 0.0, 0.45242065570193146, 0.0, 0.25296290668039206, 0.24913417193879323, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0036117281801281323, 0.37981219294125684, 0.0, 0.7813883080906168, 0.37787984308171674, 0.0, 0.3540795182413977, 0.0, 0.0, 0.024079641916532137, 0.0, 0.3372996465844834, 0.4587109366214878, 0.0, 0.0, 0.0, 0.0, 0.008167928328435794, 0.30985126085873477, 0.0, 0.1769552845849796, 0.01014740975340464, 0.3239445526321744, 0.2589119416659987, 0.30500724408067964, 0.0, 0.8521343659652334, 0.0, 0.12278148254603906, 0.0, 0.0, 0.7559317032710442, 0.0, 0.4639073457870384, 0.3375990135598286, 0.0, 0.09771802789528808, 0.0, 0.0, 0.0, 0.0, 0.14259284539732897, 0.0, 0.0, 0.0, 0.03978581978010784, 0.4979059043742451, 0.0, 0.0, 0.02239395579386129, 0.0, 0.0, 0.08552679542089565, 0.0, 0.28975782063069117, 0.4544199284136855, 0.4879966224465369, 0.0, 0.5198773678370044, 0.09074414747732065, 0.0, 0.0, 0.0, 0.08751115961530397, 0.0, 0.0, 0.0, 0.0, 0.01723069885490719, 0.005476104703094391, 0.0, 0.0, 0.0, 0.0, 0.0, 0.018363845689630152, 0.0, 0.0, 0.0, 0.03456818780211805, 0.16076784648973388, 0.1339929852951158, 0.12939203287442297, 0.6506668934574178, 0.07556479761019191, 0.0, 0.0, 0.1120835499344092, 0.004448105032597938, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.424200452243984, 0.21870476868551994, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04400733534916703, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5084860468121182, 0.0, 0.0, 0.0, 0.06613225218879751, 0.0, 0.0, 0.03227907593043655, 0.0, 0.01489513919323321, 0.0, 0.0, 0.0004903768608608706, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3709186680024144, 0.0057636955333438475, 0.0, 0.0, 0.0, 0.0, 0.05167292145382253, 0.03114794005970685, 0.0, 0.0, 0.0, 0.04406332427000894, 0.0, 0.28333618254852055, 0.0, 0.0, 0.08754290037370453, 0.0, 0.030717709851121017, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15375069919642081, 0.17266284464812964, 0.0, 0.0, 0.0, 0.0, 0.4591427931520538, 0.0, 0.0, 0.4080740928256236, 0.04867028613084824, 0.0, 0.0, 0.19198247076461217, 0.0, 0.0, 0.0, 0.04903912896069461, 0.0, 0.0, 0.0, 0.03565133307467186, 0.011864802664565318, 0.0, 0.0770587282490205, 0.06882991093352155, 0.0, 0.32659059563162995, 0.036557980918752765, 0.0, 0.0, 0.0, 0.0, 0.03137440184410096, 0.0, 0.0, 0.0, 0.18642661293603366, 0.0, 0.0, 0.0, 0.0, 0.06772257249589227, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21100355273002191, 0.0, 1.3416336420880526, 0.0, 0.0, 0.46161810723264507, 0.0, 0.4582995461192519, 0.05104879083246295, 0.5773364122618407, 0.57352236887648, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5640999064171196, 0.6666836020552119, 0.06886868779194379, 0.564904097158741, 0.0, 0.3210670084651615, 0.0, 0.0, 0.0, 0.9392890324745945, 0.0, 0.0, 0.2984250122811811, 0.0, 0.009405052137469182, 0.0, 0.39950267169818077, 0.07050196115427894, 0.824636783426293, 0.4953951141450468, 0.0, 0.0, 0.34635403119710667, 0.8798483938054087, 0.39347138128916365, 0.0, 0.0, 0.41085938784277987, 0.0, 0.7572672907360996, 0.0, 0.1918766456362537, 0.14775814623354722, 0.0, 0.0, 0.18414622884752666, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32881972797464193, 0.22733765531865868, 0.29775899283396906, 0.0, 0.0, 0.0, 0.0387256895819095, 0.5151993362991701, 0.0, 0.0, 0.0, 0.008722287803381279, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1780184121162673, 0.0, 0.0, 0.0, 0.0, 0.0511079535437104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05738054033260683, 0.0, 0.0, 0.3177388426930726, 0.0, 0.0, 0.0019725686702392773, 0.0, 0.0, 0.0, 0.0, 0.20770780211002965, 0.0, 0.0, 0.0, 0.8220710140576788, 0.0, 0.0, 0.0, 0.0, 0.9922981121231631, 0.19272059014741777, 0.18871634512759347, 0.009978475777936804, 0.5372065554785002, 0.0, 0.0, 0.17523452577386275, 1.0717089910255204, 0.5571949298413089, 0.0, 0.3237380570219946, 0.0, 1.1122472434174695, 0.10030606802210519, 0.0, 0.42164300445661296, 0.0, 0.2034243141927581, 0.0, 1.0210169552267845, 0.19689099390765805, 0.14675887656145528, 0.15859984719751974, 0.2247981968120587, 0.0, 0.22026608101531156, 0.5078755745015515, 0.2690121908665218, 0.0, 0.0, 0.0, 0.3746062674772627, 0.7584612913730437, 0.0, 0.0, 0.8749551201631387, 0.5887430555293698, 0.8247249363546676, 0.21469878981542115, 1.002630449124598, 0.2572736542055717, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005299432156408299, 0.06219376030445952, 0.011184949515597283, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11747014454387752, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1628689565677918, 0.010974138077104432, 0.0, 0.0, 0.0, 0.0, 1.0297896192318396, 0.0, 0.662355409415741, 0.5720482757502646, 0.3113118281374319, 0.0, 0.0, 0.25393001900118484, 0.02276308091998572, 0.03508485404358758, 0.45957926224802004, 0.0, 0.05036277933399867, 0.1447652248957086, 0.0, 0.0242600552046752, 0.005732716773973234, 0.0, 0.0, 0.04566723978074626, 0.007798132412071851, 0.435160826872351, 0.19099152935556227, 0.0, 0.09109198019072849, 0.0, 0.0, 0.0, 0.0, 0.040872817508571836, 0.0, 0.8816978299630381, 0.023385944730671186, 0.20852512378086208, 0.3265908462108258, 0.0, 0.8135187830099228, 0.5004561612521131, 0.5929930445509373, 0.07024535595608956, 0.4293153063068892, 0.33966138448698774, 0.0, 0.0, 0.219723330992236, 0.0, 0.0, 0.32087091161635517, 0.10046935863374477, 0.0, 0.21249664109114016, 0.0, 0.0, 0.5675920409330384, 0.0, 0.0, 0.02195446551553763, 0.0, 0.0, 0.0, 0.7828555360473642, 0.0, 0.0, 0.0, 0.539158201637973, 0.0, 0.037194676308406484, 0.0, 0.5899620450765102, 0.0, 1.064333300573155, 0.0, 0.4126616356723095, 0.0, 0.0, 0.0, 0.0, 0.005455259856546277, 0.06532462900349355, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6382915607944724, 0.0, 0.1058392854111573, 0.06419509685388734, 0.0, 0.0, 0.42600921169580896, 0.0, 0.6948705846598551, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7494592390120385, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.34703521803027376, 0.47959926529853425, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18954560408868362, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04058791510732469, 0.0, 0.0, 0.0, 0.026371559760006224, 0.46735915191246824, 0.9729562858716514, 0.0, 0.01593384874339247, 0.0, 0.0, 0.10548242945325798, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08182217469250767, 0.0, 0.0, 0.0, 0.0, 0.5929119201290493, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0028851424117770368, 0.14902256810885017, 0.0, 0.19393473922191487, 0.0010822975481770052, 0.10083006827906865, 0.005589290532560041, 0.0, 0.0377329438822351, 0.0, 0.0, 0.0, 0.0, 0.08622227292139113, 0.0, 0.0, 0.052960874748722735, 0.0, 0.0, 0.0, 0.040542431602682394, 0.0, 0.034748695303796415, 0.0, 0.0, 0.07778126624009696, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08990369242695052, 0.0, 0.0, 0.0, 0.0, 0.1714300400506459, 0.23319412483505944, 0.06883127399553583, 0.0, 0.0, 0.4520065142603474, 0.7559043080573538, 0.0, 0.9918256875421747, 0.34148047573693957, 0.23178166527267935, 0.1984049383893502, 0.0, 0.0, 0.0, 0.4618215114400494, 0.055660721213669, 0.23923628669541208, 0.0, 0.0, 0.39945045771087084, 0.3329245273531598, 0.25602890393383043, 0.0, 0.2574713970419185, 0.0, 0.0, 0.27848743576980106, 0.008801495971424074, 0.0, 0.0, 0.0, 0.0, 0.4961604274582618, 0.0, 0.0, 0.5434029369831717, 0.0, 0.0, 0.0, 0.0, 0.15767180411659634, 0.03460197933312267, 0.0, 0.0, 0.036131085316488384, 0.0, 0.0, 0.0, 0.016873683938744447, 0.019906225883667222, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.012507180486519448, 0.0, 0.02685500739865508, 0.028916495513405534, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029742024653825302, 1.0585077478673894, 0.0, 0.0, 0.10450313655197234, 0.0, 0.27087506529662764, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7518068036153462, 0.0, 0.2680435440340337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1316435251098364, 0.8078731280911045, 0.0, 0.0, 0.0, 0.10506968633342718, 0.23470506622896917, 0.0, 0.0, 0.607722294332459, 0.023665118775296444, 0.014839085130224942, 0.0, 0.0, 0.24386571546932873, 0.0, 0.0, 0.3502050356771847, 0.0, 0.0, 0.46379933676520235, 0.0, 0.08440789641107996, 0.04593440835303492, 0.021386035200774683, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7729032574550468, 0.0, 0.11781868003483978, 0.030607043037187642, 0.0, 0.1726108187023696, 0.09583059716129254, 0.5239548125179947, 0.4366934746091282, 0.0, 0.0, 0.24627150409293175, 0.0, 0.13007997889130285, 0.36528893478699903, 0.18318396866765946, 0.0, 0.011811348038501769, 0.0, 0.0, 0.0, 0.0, 0.0, 1.1723218684731558, 0.5524938653991974, 0.7739462295109258, 0.0, 0.7069108871009565, 0.0, 1.1639912229987677, 0.0, 0.0737216927746314, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.41689243790078717, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7826638975615551, 0.0, 0.0, 0.0, 0.1017910453533696, 0.0, 0.0, 0.0, 0.0, 0.022926661938484392, 0.0, 0.0, 0.24172521220469304, 0.33406187082542654, 0.0, 0.0, 0.31010342596966556, 0.0, 0.0, 1.1081747068991343, 0.7344335908166203, 0.16327913698089802, 0.7325151937485493, 0.17384385605370836, 0.08371482373128411, 0.0, 0.3420940653006234, 0.0, 0.04990946505718503, 0.5498243469410863, 0.0, 0.007722420577405236, 0.0906297807361463, 0.016298894248894004, 0.0, 0.17760842474448457, 0.7445477489471244, 0.0, 0.0, 0.23271741543898974, 0.5862478840032251, 0.38013450552556605, 0.0, 0.13625107884748244, 0.3102878234624971, 0.0, 0.0, 0.0613418632643825, 0.1222024301534575, 0.0, 0.0, 0.09768999149541487, 0.07432603695941839, 0.0, 0.0, 0.2373353492409029, 0.8187850328888507, 0.0, 0.1472545596990393, 0.08055057930039017, 0.0, 0.0, 0.0, 0.0, 0.022056121851574153, 0.7041166858972707, 0.0, 0.0, 0.0, 0.7708181971148897, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6591456110142444, 0.0, 0.0, 0.0, 0.5151326583061712, 0.4293405940090164, 0.0, 0.30993576190130123, 0.24212487706484054, 0.0, 0.0, 0.35913833699197834, 0.594616431743019, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7007742613782065, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07822848175716028, 0.0, 0.795037704009975, 0.0, 0.18176747614492506, 0.0, 0.0, 0.0, 0.0, 0.05218428597433502, 0.551641665900435, 0.0, 0.0, 0.0, 0.0, 0.4173251650328503, 0.13888627164939463, 0.0, 0.9020292850308806, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32443041606173034, 0.0, 0.3672605285185933, 0.0, 0.0, 0.0, 0.20671726976925492, 0.0, 0.0, 0.38426107037286794, 0.0, 0.0, 1.3158788906540237, 0.0, 0.0, 0.33314012692337136, 0.4077019730262151]), 42), 42)),) diff --git a/test/test_parallel.jl b/test/test_parallel.jl index 5802f57ec..ccf06b582 100644 --- a/test/test_parallel.jl +++ b/test/test_parallel.jl @@ -304,8 +304,7 @@ Ct = Tensor(Dense(Dense(Atomic(Element(0.0)))), zeros(42, 42)) CBad = Tensor(Dense(Dense((Element(0.0)))), zeros(42, 42)) - @test_throws Finch.FinchConcurrencyError - begin + @test_throws Finch.FinchConcurrencyError begin @finch_code begin Ct .= 0 for i = _ From cc66fc4bac7cbbe77c520166d733fc79ec8a3d87 Mon Sep 17 00:00:00 2001 From: teocollin1995 Date: Mon, 19 Feb 2024 15:20:37 -0500 Subject: [PATCH 06/41] more tests --- src/tensors/levels/atomiclevel.jl | 25 +++++---- .../debug_parallel_spmms_no_atomics.txt | 12 ++--- test/test_parallel.jl | 52 ++++++++++++++++++- 3 files changed, 72 insertions(+), 17 deletions(-) diff --git a/src/tensors/levels/atomiclevel.jl b/src/tensors/levels/atomiclevel.jl index 46eb28797..b20e54250 100644 --- a/src/tensors/levels/atomiclevel.jl +++ b/src/tensors/levels/atomiclevel.jl @@ -209,17 +209,21 @@ function instantiate(fbr::VirtualSubFiber{VirtualAtomicLevel}, ctx, mode::Update lockVal = freshen(ctx.code, lvl.ex, :lockVal) dev = lower(virtual_get_device(ctx.code.task), ctx, DefaultStyle()) return Thunk( + + body = (ctx) -> begin preamble = quote $atomicData = get_lock($dev, $(lvl.locks), $(ctx(pos)), eltype($(lvl.AVal))) $lockVal = aquire_lock!($dev, $atomicData) - end, - body = (ctx) -> begin + end + epilogue = quote + release_lock!($dev, $atomicData) end + push!(ctx.code.preamble, preamble) + push!(ctx.code.epilogue, epilogue) lvl_2 = lvl.lvl update = instantiate(VirtualSubFiber(lvl_2, pos), ctx, mode, protos) return update end, - epilogue = quote - release_lock!($dev, $atomicData) end + ) end function instantiate(fbr::VirtualHollowSubFiber{VirtualAtomicLevel}, ctx, mode::Updater, protos) @@ -229,16 +233,19 @@ function instantiate(fbr::VirtualHollowSubFiber{VirtualAtomicLevel}, ctx, mode:: lockVal = freshen(ctx.code, lvl.ex, :lockVal) dev = lower(virtual_get_device(ctx.code.task), ctx, DefaultStyle()) return Thunk( + + body = (ctx) -> begin preamble = quote $atomicData = get_lock($dev, $(lvl.locks), $(ctx(pos)), eltype($(lvl.AVal))) $lockVal = aquire_lock!($dev, $atomicData) - end, - body = (ctx) -> begin + end + epilogue = quote + release_lock!($dev, $atomicData) end + push!(ctx.code.preamble, preamble) + push!(ctx.code.epilogue, epilogue) lvl_2 = lvl.lvl update = instantiate(VirtualHollowSubFiber(lvl_2, pos, fbr.dirty), ctx, mode, protos) return update - end, - epilogue = quote - release_lock!($dev, $atomicData) end + end ) end \ No newline at end of file diff --git a/test/reference64/debug_parallel_spmms_no_atomics.txt b/test/reference64/debug_parallel_spmms_no_atomics.txt index bfc366dac..7039f631a 100644 --- a/test/reference64/debug_parallel_spmms_no_atomics.txt +++ b/test/reference64/debug_parallel_spmms_no_atomics.txt @@ -8,7 +8,7 @@ julia> @finch begin end end end -(CR = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.08838669783079417, 0.24540062578718655, 0.0, 0.0, 0.0, 0.0, 0.2598139726110033, 0.0, 0.0, 0.008999058499533074, 0.10561231293601407, 0.018993358540021866, 0.3713088213439608, 0.1272213104915037, 0.0, 0.04569648380052932, 0.0, 0.6778277114032399, 0.0, 1.0116444857173326, 0.1419594034849179, 0.849786220982489, 0.1853715018708835, 0.0, 0.41575027296468353, 0.027919812909200686, 0.38129764067914484, 0.0, 0.010472223603003109, 0.32765224234190193, 0.0, 0.0, 0.0, 0.27657062580546904, 0.018635375946533275, 0.0, 0.6553105493426397, 0.1806768240966126, 0.0, 0.0, 0.13022235819683495, 0.0, 0.0, 0.0096207645890863, 0.0, 0.0, 0.0, 0.0, 0.0027620603050478813, 0.0, 0.0, 0.0, 0.0, 0.06777735948867263, 0.16424694314849322, 0.05466156243395641, 0.0, 0.3550122664783007, 0.0, 0.16598631348758813, 0.0, 0.09916577661749644, 0.0, 0.0, 0.017171766504479664, 0.14883499722913907, 0.14454297081157494, 0.0, 0.0, 0.0, 0.08135785354072747, 0.18934501987281463, 0.0, 0.0, 0.0, 0.043171173549343585, 0.04442771737900286, 0.0, 0.0, 0.16847976307679274, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4519419326045341, 0.0022494085401006682, 0.0, 0.09264806290445121, 0.0, 0.0, 0.5779259042074504, 0.0, 0.0, 0.0, 0.01319039039025495, 0.0, 0.0, 0.05821123759190987, 0.008570313787111606, 0.12498925860233108, 0.3161944438230963, 0.0, 0.0, 0.0, 0.0, 0.03428001709676162, 0.0, 0.0, 0.0, 0.4239046512601812, 0.0, 0.0, 0.0, 0.0, 0.006439869364205756, 0.0, 0.19268641103781292, 0.0, 0.0, 0.0, 0.13842608775449636, 0.7754112567712441, 0.5650474898241402, 0.16678352690096504, 0.0, 0.0, 0.26721012017234747, 0.0, 0.0, 0.40379612390902914, 0.0, 0.5616249905190419, 0.0, 0.0, 0.0, 0.05914491909738165, 0.0, 0.0, 0.5796881176474965, 0.0, 0.0, 0.0, 0.0, 0.19259492607938428, 0.5396680351153355, 0.1002017616669876, 0.0, 0.0, 0.07018769309449151, 0.0, 0.0, 0.0, 0.8890997886610695, 0.01580855669802033, 0.07592126473643429, 0.0, 0.0, 0.5327597008182733, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26650628783183555, 0.0, 0.0, 0.4177758368274485, 0.01847646120309497, 0.2474671864399932, 0.030137257707486417, 0.0, 0.0, 0.0, 0.0, 0.4333965515966774, 0.0, 0.025363517487659904, 0.0, 0.0, 0.28727696476738296, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.48463873218296616, 0.3619901497543638, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3095355097692787, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08881016246594031, 0.0864536634210502, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13334438240099766, 0.0, 0.2743296378950603, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21573236386631758, 0.138874394226427, 0.21526827303910834, 0.0, 0.8276738568887637, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13803323038392623, 0.0, 0.0, 0.18937725647626488, 0.0, 0.09756025088965181, 0.10247093349242449, 0.14247269057616566, 0.0, 0.4644170645216008, 0.0, 0.0, 0.0, 0.6396576582705668, 0.0, 0.14648223852485512, 0.0, 0.3845502326592231, 0.0, 0.0, 0.0, 0.0, 0.01873756402105984, 0.01865952833886222, 0.015020499411212522, 0.0, 0.11259829701043601, 0.13537240455394534, 0.18963280616455852, 0.0, 0.1732077631723114, 0.0, 0.009279305276553587, 0.0, 0.09430577452314615, 0.07566718263303025, 0.06172210939249301, 0.0, 0.0, 0.0017837976727260341, 0.0, 0.0, 0.06543462567823881, 0.0621898641418941, 0.0, 0.0, 0.0, 0.41468742426256355, 0.21475258071539002, 0.0, 0.0, 0.08728790458911416, 0.0, 0.0, 0.4956863169283368, 0.0, 0.0, 0.3312300382813116, 0.0, 0.6814401538748236, 0.017040189816468283, 0.0, 0.0, 0.0, 0.0, 0.1702496303089558, 0.04558027585085677, 0.0, 0.0, 0.05652088848846798, 0.0, 0.0, 0.039516412285590885, 0.04836078861030929, 0.0, 0.0, 0.0, 0.0066658135086557066, 0.28756231542228783, 0.0, 0.0, 0.005213055047386901, 0.0, 0.03077146873270733, 0.0, 0.18174661292486113, 0.011855817392138795, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2550943184597343, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19130663987033655, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08795782309469964, 0.4949588224757624, 0.10547057221471998, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0428147611319233, 0.0, 0.4336529209634745, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10981699391447328, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14060207841669792, 0.19125923680987167, 0.17120811796462362, 0.0, 0.0, 0.29682703146376954, 0.2309028098716656, 0.0, 0.3415808438027304, 0.5413871431291847, 0.19010077735847383, 0.0, 0.0, 0.0, 0.037176095928915485, 0.0, 0.0, 0.19621484736356867, 0.46400800412758475, 0.6251709107930822, 0.11840971377140953, 0.5297289566486542, 0.0, 0.0, 0.0629827610017505, 0.0, 0.30811879649367063, 0.0, 0.43390554368076734, 0.0, 0.3078202365484454, 0.0, 0.0, 0.06464271443386868, 0.0, 0.0, 0.7925386152607364, 0.0, 0.0, 0.0, 0.0, 0.4871987999416911, 0.0, 0.0, 0.0, 0.026241068751647587, 0.4048536827096608, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04667237073016084, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008398941803472277, 0.0, 0.3462604046867109, 0.0, 0.41520221547875746, 0.0, 0.0, 0.0, 0.49209502240450126, 0.6693906625198521, 0.19758221668125867, 0.008160985490142467, 0.2605302099636665, 0.0, 0.0, 0.0, 0.9022483783960523, 1.0694729952381887, 0.6653361553880242, 0.881281776229774, 0.001915716390555032, 0.022482711824403312, 0.0040432994483474245, 0.0, 0.3214035783779074, 0.6867348676262818, 0.0, 0.6858420722534031, 0.0, 0.5811377322397425, 0.04246482918579259, 0.11467932906673921, 0.09709202075873843, 0.0, 0.0, 0.0, 0.2200140216993193, 0.0, 0.7507517442378999, 0.0, 0.0, 0.7372603142185328, 0.0, 0.006741369353138395, 0.8069776586909365, 0.00396709224045839, 0.0, 0.0, 0.0, 0.6101879525945185, 0.0, 0.0, 0.026258353794755256, 0.4016774417320984, 0.014813931005383318, 0.6190727226045784, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11309418362565873, 0.0, 0.0, 0.0, 0.0, 0.0, 0.036526440507301174, 0.022956711251180283, 0.40907708831845013, 0.0012453094708774737, 0.0, 0.0, 0.0, 0.0, 0.014062827632021033, 0.0, 0.0, 0.0, 0.006394809610240893, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21784527989974428, 0.0, 0.0, 0.0, 0.3180108962002836, 0.2508741672819204, 0.17523704698611114, 0.13837147224686994, 0.27935616728122964, 0.1859955338163167, 0.0, 0.06462126637992056, 1.0008493550472979, 0.6004231261661688, 0.0, 0.3940831570768702, 0.0, 0.0, 0.1305734964236071, 0.0, 0.09786792103897592, 0.0, 0.11654231814191775, 0.46697515894469777, 0.5700094853415558, 0.1107417067979406, 0.346111937724667, 0.0, 0.1225882117910605, 0.0, 0.28673152989464684, 0.0, 0.12654022793408917, 0.0, 0.0, 0.45809293367016757, 0.3647743355850667, 0.817304098176075, 0.0036334642288677415, 0.0, 0.2669922423479005, 0.0, 0.0, 0.0, 0.32457729111200295, 0.5543705739187803, 0.8812247175026642, 0.16912005088903598, 0.5020073987686707, 0.0, 0.09252856828989332, 0.0, 0.0, 0.0, 0.06948083164247039, 0.2588335470174883, 0.23431107957691064, 0.0, 0.0, 0.4609326565956409, 0.0981996119487529, 0.0, 0.0, 0.0, 0.0, 0.41461953421729686, 0.2880401034246727, 0.0, 0.12878680297473977, 0.5528442548314576, 0.8638211211778427, 0.0, 0.19329232440572794, 0.07190135483727589, 0.0, 0.37985878824980135, 0.0, 0.0, 0.47943873587199365, 0.0, 0.1632157826430328, 0.028602417984395823, 0.12587604601890898, 0.20239239184313712, 0.0, 0.9957002205667365, 0.5403020941861382, 0.1731723605204449, 0.5984215188307392, 0.5906299727726914, 0.15421128542459664, 0.22417177182593684, 0.14760215442934868, 0.0, 0.0, 0.10452572448334531, 0.0, 0.0, 0.5192893646261969, 0.0, 0.0, 0.0, 0.03548389098440683, 0.0, 0.0, 0.5359908824860568, 0.0, 0.0, 0.4508397689271815, 0.17912612646003018, 0.05191685886593687, 0.015041105758856862, 0.0, 0.0, 0.07792048637164595, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16284516279577882, 0.07019827463547235, 0.0, 0.0017166852898648512, 0.022601665621833984, 0.0, 0.0, 0.0, 0.08820522946301469, 0.0, 0.0, 0.4597721334804677, 0.0, 0.01968862180697655, 0.1496625833744818, 0.0, 0.0, 0.0, 0.0, 0.042967175515187854, 0.0, 0.5925889649898668, 0.03501818713399176, 0.0, 0.23929946904107768, 0.0, 0.0, 0.0, 0.0, 0.0, 0.586042846539397, 0.0, 0.35012160211964255, 0.0, 0.0, 0.2671275149044985, 0.5254872140248491, 0.0, 0.0, 0.0, 0.4346599048698998, 0.0, 0.6685147232492785, 0.0, 0.0, 0.006603260891096502, 0.41222164853295895, 0.691126666160783, 0.3115253982735278, 0.0, 0.5948463934358659, 0.0, 0.6104915934501508, 0.0, 0.10122959156761935, 0.0, 0.0, 0.4361142638019697, 0.0, 0.0, 0.022953207777356696, 0.01768983406390727, 0.0, 0.49300859199961644, 0.0, 0.45242065570193146, 0.0, 0.25296290668039206, 0.24913417193879323, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0036117281801281323, 0.37981219294125684, 0.0, 0.7813883080906168, 0.37787984308171674, 0.0, 0.3540795182413977, 0.0, 0.0, 0.024079641916532137, 0.0, 0.3372996465844834, 0.4587109366214878, 0.0, 0.0, 0.0, 0.0, 0.008167928328435794, 0.30985126085873477, 0.0, 0.1769552845849796, 0.01014740975340464, 0.3239445526321744, 0.2589119416659987, 0.30500724408067964, 0.0, 0.8521343659652334, 0.0, 0.12278148254603906, 0.0, 0.0, 0.7559317032710442, 0.0, 0.4639073457870384, 0.3375990135598286, 0.0, 0.09771802789528808, 0.0, 0.0, 0.0, 0.0, 0.14259284539732897, 0.0, 0.0, 0.0, 0.03978581978010784, 0.4979059043742451, 0.0, 0.0, 0.02239395579386129, 0.0, 0.0, 0.08552679542089565, 0.0, 0.28975782063069117, 0.4544199284136855, 0.4879966224465369, 0.0, 0.5198773678370044, 0.09074414747732065, 0.0, 0.0, 0.0, 0.08751115961530397, 0.0, 0.0, 0.0, 0.0, 0.01723069885490719, 0.005476104703094391, 0.0, 0.0, 0.0, 0.0, 0.0, 0.018363845689630152, 0.0, 0.0, 0.0, 0.03456818780211805, 0.16076784648973388, 0.1339929852951158, 0.12939203287442297, 0.6506668934574178, 0.07556479761019191, 0.0, 0.0, 0.1120835499344092, 0.004448105032597938, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.424200452243984, 0.21870476868551994, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04400733534916703, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5084860468121182, 0.0, 0.0, 0.0, 0.06613225218879751, 0.0, 0.0, 0.03227907593043655, 0.0, 0.01489513919323321, 0.0, 0.0, 0.0004903768608608706, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3709186680024144, 0.0057636955333438475, 0.0, 0.0, 0.0, 0.0, 0.05167292145382253, 0.03114794005970685, 0.0, 0.0, 0.0, 0.04406332427000894, 0.0, 0.28333618254852055, 0.0, 0.0, 0.08754290037370453, 0.0, 0.030717709851121017, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15375069919642081, 0.17266284464812964, 0.0, 0.0, 0.0, 0.0, 0.4591427931520538, 0.0, 0.0, 0.4080740928256236, 0.04867028613084824, 0.0, 0.0, 0.19198247076461217, 0.0, 0.0, 0.0, 0.04903912896069461, 0.0, 0.0, 0.0, 0.03565133307467186, 0.011864802664565318, 0.0, 0.0770587282490205, 0.06882991093352155, 0.0, 0.32659059563162995, 0.036557980918752765, 0.0, 0.0, 0.0, 0.0, 0.03137440184410096, 0.0, 0.0, 0.0, 0.18642661293603366, 0.0, 0.0, 0.0, 0.0, 0.06772257249589227, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21100355273002191, 0.0, 1.3416336420880526, 0.0, 0.0, 0.46161810723264507, 0.0, 0.4582995461192519, 0.05104879083246295, 0.5773364122618407, 0.57352236887648, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5640999064171196, 0.6666836020552119, 0.06886868779194379, 0.564904097158741, 0.0, 0.3210670084651615, 0.0, 0.0, 0.0, 0.9392890324745945, 0.0, 0.0, 0.2984250122811811, 0.0, 0.009405052137469182, 0.0, 0.39950267169818077, 0.07050196115427894, 0.824636783426293, 0.4953951141450468, 0.0, 0.0, 0.34635403119710667, 0.8798483938054087, 0.39347138128916365, 0.0, 0.0, 0.41085938784277987, 0.0, 0.7572672907360996, 0.0, 0.1918766456362537, 0.14775814623354722, 0.0, 0.0, 0.18414622884752666, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32881972797464193, 0.22733765531865868, 0.29775899283396906, 0.0, 0.0, 0.0, 0.0387256895819095, 0.5151993362991701, 0.0, 0.0, 0.0, 0.008722287803381279, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1780184121162673, 0.0, 0.0, 0.0, 0.0, 0.0511079535437104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05738054033260683, 0.0, 0.0, 0.3177388426930726, 0.0, 0.0, 0.0019725686702392773, 0.0, 0.0, 0.0, 0.0, 0.20770780211002965, 0.0, 0.0, 0.0, 0.8220710140576788, 0.0, 0.0, 0.0, 0.0, 0.9922981121231631, 0.19272059014741777, 0.18871634512759347, 0.009978475777936804, 0.5372065554785002, 0.0, 0.0, 0.17523452577386275, 1.0717089910255204, 0.5571949298413089, 0.0, 0.3237380570219946, 0.0, 1.1122472434174695, 0.10030606802210519, 0.0, 0.42164300445661296, 0.0, 0.2034243141927581, 0.0, 1.0210169552267845, 0.19689099390765805, 0.14675887656145528, 0.15859984719751974, 0.2247981968120587, 0.0, 0.22026608101531156, 0.5078755745015515, 0.2690121908665218, 0.0, 0.0, 0.0, 0.3746062674772627, 0.7584612913730437, 0.0, 0.0, 0.8749551201631387, 0.5887430555293698, 0.8247249363546676, 0.21469878981542115, 1.002630449124598, 0.2572736542055717, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005299432156408299, 0.06219376030445952, 0.011184949515597283, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11747014454387752, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1628689565677918, 0.010974138077104432, 0.0, 0.0, 0.0, 0.0, 1.0297896192318396, 0.0, 0.662355409415741, 0.5720482757502646, 0.3113118281374319, 0.0, 0.0, 0.25393001900118484, 0.02276308091998572, 0.03508485404358758, 0.45957926224802004, 0.0, 0.05036277933399867, 0.1447652248957086, 0.0, 0.0242600552046752, 0.005732716773973234, 0.0, 0.0, 0.04566723978074626, 0.007798132412071851, 0.435160826872351, 0.19099152935556227, 0.0, 0.09109198019072849, 0.0, 0.0, 0.0, 0.0, 0.040872817508571836, 0.0, 0.8816978299630381, 0.023385944730671186, 0.20852512378086208, 0.3265908462108258, 0.0, 0.8135187830099228, 0.5004561612521131, 0.5929930445509373, 0.07024535595608956, 0.4293153063068892, 0.33966138448698774, 0.0, 0.0, 0.219723330992236, 0.0, 0.0, 0.32087091161635517, 0.10046935863374477, 0.0, 0.21249664109114016, 0.0, 0.0, 0.5675920409330384, 0.0, 0.0, 0.02195446551553763, 0.0, 0.0, 0.0, 0.7828555360473642, 0.0, 0.0, 0.0, 0.539158201637973, 0.0, 0.037194676308406484, 0.0, 0.5899620450765102, 0.0, 1.064333300573155, 0.0, 0.4126616356723095, 0.0, 0.0, 0.0, 0.0, 0.005455259856546277, 0.06532462900349355, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6382915607944724, 0.0, 0.1058392854111573, 0.06419509685388734, 0.0, 0.0, 0.42600921169580896, 0.0, 0.6948705846598551, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7494592390120385, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.34703521803027376, 0.47959926529853425, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18954560408868362, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04058791510732469, 0.0, 0.0, 0.0, 0.026371559760006224, 0.46735915191246824, 0.9729562858716514, 0.0, 0.01593384874339247, 0.0, 0.0, 0.10548242945325798, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08182217469250767, 0.0, 0.0, 0.0, 0.0, 0.5929119201290493, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0028851424117770368, 0.14902256810885017, 0.0, 0.19393473922191487, 0.0010822975481770052, 0.10083006827906865, 0.005589290532560041, 0.0, 0.0377329438822351, 0.0, 0.0, 0.0, 0.0, 0.08622227292139113, 0.0, 0.0, 0.052960874748722735, 0.0, 0.0, 0.0, 0.040542431602682394, 0.0, 0.034748695303796415, 0.0, 0.0, 0.07778126624009696, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08990369242695052, 0.0, 0.0, 0.0, 0.0, 0.1714300400506459, 0.23319412483505944, 0.06883127399553583, 0.0, 0.0, 0.4520065142603474, 0.7559043080573538, 0.0, 0.9918256875421747, 0.34148047573693957, 0.23178166527267935, 0.1984049383893502, 0.0, 0.0, 0.0, 0.4618215114400494, 0.055660721213669, 0.23923628669541208, 0.0, 0.0, 0.39945045771087084, 0.3329245273531598, 0.25602890393383043, 0.0, 0.2574713970419185, 0.0, 0.0, 0.27848743576980106, 0.008801495971424074, 0.0, 0.0, 0.0, 0.0, 0.4961604274582618, 0.0, 0.0, 0.5434029369831717, 0.0, 0.0, 0.0, 0.0, 0.15767180411659634, 0.03460197933312267, 0.0, 0.0, 0.036131085316488384, 0.0, 0.0, 0.0, 0.016873683938744447, 0.019906225883667222, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.012507180486519448, 0.0, 0.02685500739865508, 0.028916495513405534, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029742024653825302, 1.0585077478673894, 0.0, 0.0, 0.10450313655197234, 0.0, 0.27087506529662764, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7518068036153462, 0.0, 0.2680435440340337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1316435251098364, 0.8078731280911045, 0.0, 0.0, 0.0, 0.10506968633342718, 0.23470506622896917, 0.0, 0.0, 0.607722294332459, 0.023665118775296444, 0.014839085130224942, 0.0, 0.0, 0.24386571546932873, 0.0, 0.0, 0.3502050356771847, 0.0, 0.0, 0.46379933676520235, 0.0, 0.08440789641107996, 0.04593440835303492, 0.021386035200774683, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7729032574550468, 0.0, 0.11781868003483978, 0.030607043037187642, 0.0, 0.1726108187023696, 0.09583059716129254, 0.5239548125179947, 0.4366934746091282, 0.0, 0.0, 0.24627150409293175, 0.0, 0.13007997889130285, 0.36528893478699903, 0.18318396866765946, 0.0, 0.011811348038501769, 0.0, 0.0, 0.0, 0.0, 0.0, 1.1723218684731558, 0.5524938653991974, 0.7739462295109258, 0.0, 0.7069108871009565, 0.0, 1.1639912229987677, 0.0, 0.0737216927746314, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.41689243790078717, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7826638975615551, 0.0, 0.0, 0.0, 0.1017910453533696, 0.0, 0.0, 0.0, 0.0, 0.022926661938484392, 0.0, 0.0, 0.24172521220469304, 0.33406187082542654, 0.0, 0.0, 0.31010342596966556, 0.0, 0.0, 1.1081747068991343, 0.7344335908166203, 0.16327913698089802, 0.7325151937485493, 0.17384385605370836, 0.08371482373128411, 0.0, 0.3420940653006234, 0.0, 0.04990946505718503, 0.5498243469410863, 0.0, 0.007722420577405236, 0.0906297807361463, 0.016298894248894004, 0.0, 0.17760842474448457, 0.7445477489471244, 0.0, 0.0, 0.23271741543898974, 0.5862478840032251, 0.38013450552556605, 0.0, 0.13625107884748244, 0.3102878234624971, 0.0, 0.0, 0.0613418632643825, 0.1222024301534575, 0.0, 0.0, 0.09768999149541487, 0.07432603695941839, 0.0, 0.0, 0.2373353492409029, 0.8187850328888507, 0.0, 0.1472545596990393, 0.08055057930039017, 0.0, 0.0, 0.0, 0.0, 0.022056121851574153, 0.7041166858972707, 0.0, 0.0, 0.0, 0.7708181971148897, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6591456110142444, 0.0, 0.0, 0.0, 0.5151326583061712, 0.4293405940090164, 0.0, 0.30993576190130123, 0.24212487706484054, 0.0, 0.0, 0.35913833699197834, 0.594616431743019, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7007742613782065, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07822848175716028, 0.0, 0.795037704009975, 0.0, 0.18176747614492506, 0.0, 0.0, 0.0, 0.0, 0.05218428597433502, 0.551641665900435, 0.0, 0.0, 0.0, 0.0, 0.4173251650328503, 0.13888627164939463, 0.0, 0.9020292850308806, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32443041606173034, 0.0, 0.3672605285185933, 0.0, 0.0, 0.0, 0.20671726976925492, 0.0, 0.0, 0.38426107037286794, 0.0, 0.0, 1.3158788906540237, 0.0, 0.0, 0.33314012692337136, 0.4077019730262151]), 42), 42)),) +(CR = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.1187145765025676, 0.0, 0.16555522612551515, 0.0, 0.0, 0.0, 0.0, 0.43509113842452285, 0.0, 0.0, 0.25672403787937165, 0.43862663884873543, 0.0, 0.0, 0.3519631419607619, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051120283482812334, 0.15945060967882835, 0.42044865267857073, 0.0, 0.019744477387695688, 0.0, 0.0, 0.0, 0.12726604148160792, 0.4480285054137333, 0.0, 0.41393771366257825, 0.0, 0.0, 0.1372243591915985, 0.12863434970716192, 0.0, 0.019238858430486484, 0.0, 0.2371659747040811, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.39682924637787165, 0.0, 0.8480118921637517, 0.0, 0.0, 0.0195483866997798, 0.0, 0.5990836331247341, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2618925497434801, 0.26117339231230247, 0.0, 0.0, 0.16216152735698644, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06997554550840408, 0.0, 0.0, 0.002400768013297612, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.4157511852632345, 0.5793963874059174, 0.0, 0.26436870752857605, 0.4172786501470117, 0.0, 0.0, 0.8079649846339338, 0.0, 0.0, 0.5764550461815096, 0.4229367652966696, 0.05379340446506314, 0.0, 0.0, 0.5795406808621261, 0.5877094760316834, 0.0, 0.0, 0.0, 0.0, 0.284387943824113, 0.0, 0.0, 0.0, 0.035174745039109515, 0.0, 0.0, 0.011970205674471077, 0.0, 0.0, 0.0, 0.0, 0.5436476197350472, 0.920039513761917, 0.0, 0.6198132723204128, 0.16799442509225773, 0.5753026732101696, 0.2043616977009669, 0.5065806869454675, 0.0, 0.0, 0.39160092945826996, 0.0, 0.11054447981865345, 0.0, 0.0, 0.9189729667337664, 0.0, 0.0, 0.6507053761422986, 0.6970188689802168, 0.0, 0.08297492397617155, 0.9062181287136433, 0.0, 0.059530976608982995, 0.012438951345378766, 0.0, 0.0, 0.0, 0.0, 0.2533819740366263, 0.9473531228336374, 0.06450793068804792, 0.0, 0.41573543153630554, 0.0, 0.0, 0.0, 0.7238062468593162, 0.0, 0.0, 0.3590904912393951, 0.07774042001084827, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6251886494903025, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44684741712517223, 0.0, 0.0, 0.0, 0.0, 0.010812740091707317, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8163131959379999, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2672156592426391, 0.0, 0.028807779838791864, 0.0, 0.0, 0.0, 0.025506753620224757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.022871104613233297, 0.0, 0.6057451127777128, 0.0, 0.0, 0.05122083512724408, 0.0, 0.0, 0.26967234588040656, 0.0, 0.0, 0.6655341287456478, 0.0, 0.41411417571013454, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29998038732284904, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06750566800337324, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3426210978919867, 0.3800174489235809, 0.0, 0.6531468239127369, 1.5341196475571879, 0.0, 0.0, 0.5993450019914057, 0.0, 0.0, 0.318944682359523, 0.0, 0.0, 0.0, 1.2766961856974943, 0.0, 0.47028907930153113, 0.46890260973852405, 0.0, 0.2635141940642454, 0.0, 0.06844040704623247, 0.6776383700271937, 0.08344450181255293, 0.0, 0.0, 0.13135428676134797, 0.1357944044209692, 0.0, 0.0, 0.0, 0.38624172924075223, 0.0, 0.0, 0.0, 0.23564395924169773, 0.0, 0.7014291092208349, 0.11139739784790205, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008393202836106917, 0.0, 0.22229541093446364, 0.2882110765245937, 0.0, 0.2931292388749959, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24423669216579333, 0.0, 0.07507242489058646, 0.0, 0.0, 0.14176191313790465, 0.0, 0.0, 0.0, 0.054753508738442806, 0.11008634170637227, 0.0, 0.0, 0.0, 0.0, 0.0, 0.024773126340884036, 0.0, 0.0, 0.38053755501306186, 0.0, 0.6713587667580375, 0.05335137428594376, 0.0, 0.0, 0.009224220899634665, 0.0, 0.07390888522469428, 0.1992308489896435, 0.12678608744717204, 0.0, 0.0546923223511062, 0.11313411705958114, 0.0, 0.0, 0.0, 0.0, 0.05169899432402749, 0.019742405777142896, 0.1769782400741126, 0.0, 0.0, 0.09297789149141053, 0.028906196325416873, 0.0, 0.0, 0.012919011582055164, 0.0, 0.0, 0.3208972845059436, 0.0, 0.0, 0.0046103209297173, 0.0, 0.0, 0.00416876885269193, 0.0729081194704697, 0.0, 0.0, 0.0, 0.07125538498910843, 0.0, 0.0, 0.03513444799266689, 0.0, 0.07540438323786366, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04369081060273281, 0.0, 0.0, 0.0, 0.014769980988042226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.017283118828420634, 0.006620940647292606, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006092931164902776, 0.0, 0.16137232276465496, 0.0, 0.15262637216887753, 0.013645384773351038, 0.16271613196948126, 0.0, 0.0, 0.0, 0.0, 0.17730029672438757, 0.41874765425641397, 0.054497803302564006, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10045113292307115, 0.27028417756519546, 0.07991567883089672, 0.0, 0.0, 0.0, 0.0, 0.0, 0.01798371330728596, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5859834957136911, 0.5086687281653502, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07646258969830243, 0.0, 0.0, 0.02773130153308066, 0.07708391588594585, 0.0, 0.0, 0.06185373806995992, 0.0, 0.0, 0.033137714842779345, 0.0, 0.0, 0.0, 0.0, 0.028021730318764978, 0.07388933025705045, 0.0, 0.021389015345232583, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046371970770837774, 0.04025364462832554, 0.2181921153062336, 0.4335185189335439, 0.0, 0.0, 1.0038009425423415, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4280152293034966, 0.0, 0.08414972142221414, 0.0, 0.3712598089597713, 0.0, 0.06370844553850769, 0.0, 0.0, 0.0, 0.0, 0.5083497561860121, 0.0, 0.0, 0.0, 0.17350738400022994, 0.0, 0.0, 0.0, 0.0, 0.5680638629882098, 0.4512837677833129, 0.036928112404588626, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6736518032785722, 0.0, 0.0, 0.0, 0.0, 0.3438277430889845, 0.1331574579932683, 0.8185600695730958, 0.0, 0.0, 0.017261448593960855, 0.0, 0.5289976863810653, 0.0, 0.0, 0.0, 0.0, 0.13826565194431473, 0.0, 0.12839377709982103, 0.8277070113616852, 0.0, 0.0, 0.3904546499995126, 0.08179569775458351, 0.0, 0.0, 0.0, 0.0, 0.16848803520369499, 0.0, 0.0, 0.005780600674157121, 0.0, 0.0, 0.0, 0.0, 0.042429105563066505, 0.0, 0.0, 0.5671026868317051, 0.5831842436077501, 0.0, 0.0, 0.5203885995071309, 0.0, 0.0, 0.0, 0.0, 0.03279957809056344, 0.20563143706052323, 0.8140555730584957, 0.0, 0.11735707443596549, 0.0, 0.0, 0.0, 0.0, 0.05942421719401875, 0.13531075914415133, 0.0, 0.22862377269710113, 0.0, 0.0, 0.0, 0.0, 0.009783289930470927, 0.0, 0.49666013194599, 0.01297478801242045, 0.004970474495620279, 0.0, 0.0, 0.0, 0.0, 0.18702095525297172, 0.0, 0.0, 0.49027730046536305, 0.0, 0.0, 0.0, 0.3100811795242501, 0.0, 0.5172830310180929, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5147075854808417, 0.0, 0.23506445593598685, 0.0, 0.0, 0.0984177418166802, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6597667532607603, 0.0, 0.7531258126074596, 0.0, 0.0, 0.0, 0.0, 0.009060495116628974, 0.0, 0.14938403565323904, 0.23931891774764502, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17320374473408556, 0.0, 0.0, 0.8859260157921318, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2593451028242532, 0.13535058061487634, 0.0, 0.17876385946442425, 0.5885021691653141, 0.4462993508157936, 0.0, 0.38646137613385273, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08841279830908562, 0.0, 0.0, 0.4090685041141252, 0.2385779614705672, 0.0, 0.32657075289021537, 0.0, 0.3891842232348578, 0.46695749861500585, 0.0, 0.20033954304824086, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6140772326336235, 0.21962331732895995, 0.0, 0.0, 0.21665980127772702, 0.0, 0.10259951624992725, 0.0040997688735825025, 0.0, 0.0, 0.0178257297768441, 0.0025383566681682393, 0.21683531480545457, 0.0, 0.027677402398657985, 0.0, 0.1880826476230884, 0.3419147609793875, 0.03227511522566195, 0.19053492425855037, 0.0, 0.06432217258278244, 0.0026780235214896283, 0.0, 0.0, 0.464125489835237, 0.09967606965443436, 0.0, 0.0, 0.0, 0.011788389508631971, 0.03206041622309702, 0.0, 0.0060682844433003185, 0.0, 0.0, 0.0, 0.010791956772858862, 0.0, 0.0, 0.0, 0.0, 0.4329905527364345, 0.14376890418721155, 0.6930376581272882, 0.0, 0.611818052941564, 0.6291676211651914, 0.0, 0.0, 0.5614206159067703, 0.48216800990329456, 0.0, 0.0, 0.4507229848159907, 0.0, 0.0, 0.8782428778065052, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06410974538727675, 0.23291225157991716, 0.08679043179604816, 0.0, 0.0, 0.08995902157278039, 0.8808378297797503, 0.0, 0.0, 0.0, 0.3618017482397369, 0.07709259450646033, 0.0, 0.22347789493902354, 0.0, 1.4151156566032244, 0.0, 0.0, 0.0876553401034732, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.35023812146064465, 0.10119869206094158, 0.0, 0.0, 0.0, 0.03421091843192662, 0.0, 0.18934530571059222, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.040031965441735276, 0.015335731346610126, 0.0, 0.0, 0.0, 0.0, 0.5012279391934354, 0.14361151525658541, 0.0, 0.05781748261134272, 0.17152855777668224, 0.0, 0.498484457540378, 0.0, 0.0, 0.7074889608036871, 0.0, 0.0, 0.0, 0.0, 0.0, 0.36413161255211174, 0.10650975776468122, 0.0027919607805886224, 0.1717164070699339, 0.0, 0.0, 0.0, 0.31636490805397033, 0.0, 0.0, 0.0, 0.3781004501122092, 0.1664160983543511, 0.0, 0.10894483484211534, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06899783350353156, 0.1313910038295779, 0.5458205926873976, 0.0, 0.2058361256028114, 0.0983057734206431, 0.006586106310131405, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13715236217863272, 0.026867165999227966, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0035515304259612105, 0.0, 0.0, 0.5329776529167246, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.397719517913955, 0.20668056810136554, 0.1307286941015916, 0.0, 0.19979734260211207, 0.13509882393613562, 0.0, 0.0, 0.0, 0.4428910220796438, 0.0, 0.10971922982381796, 0.20405686697329703, 0.0, 0.0, 0.0, 0.4155385933508652, 0.0, 0.030373091671251427, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02870549966274466, 0.0, 2.221236796150802e-5, 0.04518680503118196, 0.8557997812159583, 0.0, 0.0, 0.0, 0.33295230926411423, 0.0, 0.0, 0.1651823382455281, 0.0, 0.0, 0.10987547938954217, 0.038321493889877094, 0.0, 0.0, 0.9167265220224268, 0.0, 0.41223669995910156, 0.0062879102301798264, 0.006460790579658201, 0.0, 0.015093288171720337, 0.004653032070207847, 0.0, 0.0, 0.21192982566516394, 0.0, 0.5265530542756913, 0.004398370159579225, 0.3103332077675556, 0.0, 0.0, 0.21886457786346297, 0.058793164358353744, 0.24052003353974485, 0.5039916994286584, 0.08865805888962155, 0.0, 1.2109591957845456, 0.0, 0.4576423956337198, 0.13738787883657938, 0.3665641879979031, 0.00039223002823340837, 0.0, 0.6257753572135888, 0.0, 1.0620388990418166, 0.04837586177991647, 0.05564954721706949, 0.23699310888410263, 0.0060621596830514254, 1.2406804285104875, 0.0, 0.6055788924273563, 0.1024025590217045, 0.41360202805293217, 0.5476995216716073, 0.17831079467145505, 0.0, 0.0, 0.0, 0.14728996725917032, 0.19581503373322434, 0.10219463649126194, 0.0, 0.0, 1.213270546019433, 0.06327342954871182, 0.0, 0.0, 0.34855390390603164, 0.0, 0.0, 0.2854684709047343, 0.28462687503630496, 0.0, 0.0, 0.0, 0.06675489490570531, 0.4113308129658067, 0.0, 0.049609846106367136, 0.0, 0.0, 0.0, 0.0, 0.2938483162830928, 0.35256998241930354, 0.0, 0.15126367898557985, 0.0, 0.0, 0.1430373863296425, 0.0, 0.11979050068949273, 0.0, 0.0, 0.0, 0.2174719417996252, 0.18492143615091797, 0.5613745989840638, 0.0, 0.1269084936189851, 0.13050728832210684, 0.0, 0.008090983120695843, 0.11645462945856581, 0.45646266655488743, 0.0, 0.0, 0.018120109170533364, 0.0, 0.0, 0.18217259219167142, 0.0, 0.0, 0.23544229686275722, 0.0, 0.072369241454098, 0.0, 0.013298187548207349, 0.0, 0.15536962738337737, 0.0, 0.0, 0.0, 0.5485281455413065, 0.0, 0.0, 0.0, 0.07504798957314487, 0.13800884999205565, 0.023881103672210243, 0.4000634234277266, 0.0, 0.63983454521553, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1274757935226854, 0.0, 0.060340389443721644, 0.0, 0.0, 0.0, 0.0, 0.046886662511488715, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4105919579209241, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17717763704599515, 0.0, 0.0, 0.006078729370399735, 0.0, 0.0, 0.0, 0.4419304781486809, 0.004498905638339938, 0.0, 0.0, 0.06013187036225827, 0.061837053761552255, 0.158000195476362, 0.08245930986204707, 0.055178613203866224, 0.0, 0.3921588247960043, 0.051054375379452996, 0.0, 0.3113852203955569, 0.0, 0.08631714383210826, 0.016249403505819805, 0.0, 0.5064243516388502, 0.0, 0.0799687272151233, 0.0, 0.06016447367008715, 0.0, 0.0, 0.12723000596711698, 0.0, 0.0, 0.0, 0.0, 0.3344116617465516, 0.28448339782348236, 0.03555929040895464, 0.12972821265302345, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05771825347353467, 0.0, 0.06101920493228206, 0.0, 0.1422424089220273, 0.0, 0.0, 0.0850349690926388, 0.0, 0.6465489235087094, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9592391331341867, 0.0, 0.0, 0.0, 0.07533170200640231, 0.3935757364788316, 0.41733426606664215, 0.0, 0.0, 0.0, 0.0, 0.8096836326115127, 0.0, 0.0, 0.15672712010482948, 0.08471008784973191, 0.0, 0.0, 0.021315681001762884, 0.0, 0.0, 0.0, 0.6515686149424397, 0.0, 0.04354065349809789, 0.5887361460115157, 0.0, 0.3314629690186724, 0.08254082170798169, 0.0, 0.5363022284331493, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20539826744479112, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20437563182844645, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08512737043917705, 0.0, 0.0, 0.0, 0.21221590140088104, 0.0, 0.5922163084848736, 0.0, 0.054946173604955253, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11912480847073124, 0.10340745987043, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22405559305996067, 0.04389088686607588, 0.0, 0.8369237022137216, 0.0, 0.0, 0.303533841030579, 0.8437244477194209, 0.0, 0.0, 0.6770220530788269, 0.0, 0.08868596150524616, 0.0, 0.0, 0.0, 0.005801870585523199, 0.0, 0.3067127385215406, 1.9980597464483445, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1818471988215991, 0.0, 0.0, 0.0, 0.0, 0.09250846502860006, 0.0, 0.0, 0.0, 0.14804755431292183, 0.0, 0.3797383608658618, 0.39017892030987883, 0.0, 0.035065009177551926, 0.28100508860898343, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2656255916096575, 0.01029999428072384, 0.026319871200300066, 0.0, 0.0, 0.35174701729018143, 0.019026589888644814, 0.0, 0.0, 0.0, 0.0, 0.10260912587786382, 0.0, 0.0204467738415142, 0.0, 0.023687486390763176, 0.0, 0.0, 0.002174927201126577, 0.0, 0.09114373059640297, 0.0, 0.2642096712527522, 0.3907643461384895, 0.0, 0.0, 0.18051818330232947, 0.0, 0.3874221185422575, 0.6531078672631825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15551832566217896, 0.0, 0.1916820827839075, 0.0, 0.0, 0.08276135601321193, 0.0, 0.10030127909330487, 0.0, 0.0, 0.0, 0.10537887040654752, 0.0, 0.17805025311577488, 0.0, 0.010472659941918684, 0.0, 0.0, 0.007619143135798, 0.0, 0.12561988447587705, 0.0, 0.0, 0.7794014171836517, 0.0, 0.08402510727068294, 0.0, 0.3682135686649267, 0.08647369259665981, 0.09410614716697653, 0.611021014238459, 0.0, 0.0, 0.023955493193970948, 0.0, 0.0, 0.007434430348560844, 0.0, 0.0, 0.0, 0.24285369100807747, 0.0, 0.0, 0.0051185021691807515, 0.0, 0.0015127483220163092, 0.0, 0.0, 0.06096785123225053, 0.014193124550026902, 0.5775319451121608, 0.0, 0.0, 0.0, 0.007997400222196374, 0.6747251647940697, 0.0, 0.0, 0.0, 0.0, 0.7027693457851822, 0.0, 0.0, 0.055434654145900264, 0.0, 0.0, 0.0, 0.02587284155878174, 0.0, 0.42673143134824615, 0.004724246163513554, 0.4406790171730267, 0.0, 1.0342538585019783, 0.5747154140513469, 0.0, 0.9363482803339344, 0.7135280098555865, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9563104993907826, 0.0, 0.0, 0.0, 0.8295023845011231, 0.10509888461130146, 0.2471322355632557, 0.3801044173906537, 0.0, 0.0, 0.0, 0.1514367226333477, 0.0, 0.0, 0.0, 0.24534157695942965, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.052661051195310594, 0.6550399256456869, 0.5803102488724085, 0.0, 0.5319072548222628, 0.46172731619827034, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.026741428574906606, 0.0, 0.7082513040743756, 0.0, 0.0, 0.4418255985655133, 0.1449878921305842, 0.3039326972841545, 0.0, 0.0, 0.0, 1.198252644211342, 0.44500849169967277, 0.23918686672510267, 0.0, 0.0, 0.19736692078049992, 0.0, 0.0, 0.0, 0.0762301466058952, 0.3507440605568865, 0.4669973871873196, 0.0, 0.06417785026076955, 0.0, 0.0, 0.07892920039677795, 0.20151756987027533, 0.0, 0.5298004507120764, 0.006913800133275409, 0.0, 0.0742780358218034, 0.0, 0.6026732223863505, 0.0, 0.0, 0.5351202277676342, 0.0, 0.0, 0.9548891902757952, 0.02916984862304253, 0.0, 0.4970347785792808, 0.12683003730681902, 0.0180604034141702, 0.0, 0.2650052427173023, 0.0, 0.033791924886614616, 0.0, 0.04181580147667587, 0.0, 0.4621910495164758, 0.0, 0.0, 0.0190541328400638, 0.0, 0.17864673433347314, 0.014160348828667728, 0.8165447001064132, 0.09368415058058097, 0.9079968531646069, 0.08687864486537158, 0.19492858047186096, 0.10063554575175, 0.0, 0.09210666608746948, 0.01874477292287561, 0.03748966025771319, 0.0, 0.5779501492966836, 0.0012862204434733993, 0.220963909203652, 0.3086404911712966, 0.17631145912557372, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032159896791554, 0.0, 0.1846953640258127, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07139034913327573, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37871083555251084, 0.0, 0.0, 0.0, 0.0, 0.19265602282403793, 0.0, 0.0, 0.606424267788203, 0.011600938808477314, 0.0, 0.63655122023184, 0.8091094673344561, 0.15945386155042648, 0.21681046587583439, 0.5841977471111124, 0.14228431684797266, 0.0, 0.4919831840901785, 0.07005765326837811, 0.0, 0.4452652454663618, 0.0, 0.2225785522561698, 0.0, 0.0, 0.565764962530824, 0.0, 0.0, 0.0, 0.09016013522690633, 0.0, 0.0, 0.054929050345560504, 0.0, 0.0, 0.0397070718161962, 0.0, 0.3253549491861982, 0.39037279561642807, 0.09169366625332782, 0.16748228205826332, 0.0, 0.0, 0.6136975564576865, 0.0, 0.0, 0.3026006369046373, 0.0, 0.649431418360159, 0.08211939816658421, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8259750138040276, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5145740577075524, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.45723140022915015, 0.0, 0.0, 0.9202097992461084, 0.168004673879535, 0.0, 0.0, 0.1251531867765232, 0.0, 0.2137981131137785, 0.0, 0.013898368242301713, 0.0, 0.0, 0.7137867360685719, 0.0, 0.0, 0.1000729174155476, 0.0, 0.0, 0.03483089759667312, 0.12636252602014256, 0.0, 0.6417666786106352, 0.47874755782682904, 0.0, 0.0, 0.42719736321019475, 0.0, 0.269711179183823, 0.0, 0.0, 0.0, 0.0, 0.668274429237161, 0.0, 0.0, 0.19736413928693208, 0.0, 0.64140191275638, 0.0, 0.04878252313782071, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7804894714968978, 0.1354649020531392, 0.7521947991243342, 0.061565240681645095, 0.7064549771516211, 0.0, 0.0, 0.0, 0.1369213608036062, 0.598180503319145, 0.0, 0.4894142513129519, 0.14663698801711797, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14418506746458087, 0.027360830334206502, 0.0, 0.0, 0.11896445459410832, 0.016940356460817766, 0.08867849541915622, 0.0, 0.0, 0.0, 0.0, 0.014527597186767355, 0.0, 0.0, 0.0, 0.0, 0.017872458048705516, 0.09208038488681886, 0.0, 0.01328217046242409, 0.0, 0.0, 0.0, 0.0, 0.07867275819804301, 0.09439445944634833, 0.0, 0.040498210068061674, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), 42), 42)),) julia> @finch_code begin Ct .= 0 for i = parallel(_) @@ -246,7 +246,7 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.08838669783079417, 0.24540062578718655, 0.0, 0.0, 0.0, 0.0, 0.2598139726110033, 0.0, 0.0, 0.008999058499533074, 0.10561231293601407, 0.018993358540021866, 0.3713088213439608, 0.1272213104915037, 0.0, 0.04569648380052932, 0.0, 0.6778277114032399, 0.0, 1.0116444857173326, 0.1419594034849179, 0.849786220982489, 0.1853715018708835, 0.0, 0.41575027296468353, 0.027919812909200686, 0.38129764067914484, 0.0, 0.010472223603003109, 0.32765224234190193, 0.0, 0.0, 0.0, 0.27657062580546904, 0.018635375946533275, 0.0, 0.6553105493426397, 0.1806768240966126, 0.0, 0.0, 0.13022235819683495, 0.0, 0.0, 0.0096207645890863, 0.0, 0.0, 0.0, 0.0, 0.0027620603050478813, 0.0, 0.0, 0.0, 0.0, 0.06777735948867263, 0.16424694314849322, 0.05466156243395641, 0.0, 0.3550122664783007, 0.0, 0.16598631348758813, 0.0, 0.09916577661749644, 0.0, 0.0, 0.017171766504479664, 0.14883499722913907, 0.14454297081157494, 0.0, 0.0, 0.0, 0.08135785354072747, 0.18934501987281463, 0.0, 0.0, 0.0, 0.043171173549343585, 0.04442771737900286, 0.0, 0.0, 0.16847976307679274, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4519419326045341, 0.0022494085401006682, 0.0, 0.09264806290445121, 0.0, 0.0, 0.5779259042074504, 0.0, 0.0, 0.0, 0.01319039039025495, 0.0, 0.0, 0.05821123759190987, 0.008570313787111606, 0.12498925860233108, 0.3161944438230963, 0.0, 0.0, 0.0, 0.0, 0.03428001709676162, 0.0, 0.0, 0.0, 0.4239046512601812, 0.0, 0.0, 0.0, 0.0, 0.006439869364205756, 0.0, 0.19268641103781292, 0.0, 0.0, 0.0, 0.13842608775449636, 0.7754112567712441, 0.5650474898241402, 0.16678352690096504, 0.0, 0.0, 0.26721012017234747, 0.0, 0.0, 0.40379612390902914, 0.0, 0.5616249905190419, 0.0, 0.0, 0.0, 0.05914491909738165, 0.0, 0.0, 0.5796881176474965, 0.0, 0.0, 0.0, 0.0, 0.19259492607938428, 0.5396680351153355, 0.1002017616669876, 0.0, 0.0, 0.07018769309449151, 0.0, 0.0, 0.0, 0.8890997886610695, 0.01580855669802033, 0.07592126473643429, 0.0, 0.0, 0.5327597008182733, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26650628783183555, 0.0, 0.0, 0.4177758368274485, 0.01847646120309497, 0.2474671864399932, 0.030137257707486417, 0.0, 0.0, 0.0, 0.0, 0.4333965515966774, 0.0, 0.025363517487659904, 0.0, 0.0, 0.28727696476738296, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.48463873218296616, 0.3619901497543638, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3095355097692787, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08881016246594031, 0.0864536634210502, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13334438240099766, 0.0, 0.2743296378950603, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21573236386631758, 0.138874394226427, 0.21526827303910834, 0.0, 0.8276738568887637, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13803323038392623, 0.0, 0.0, 0.18937725647626488, 0.0, 0.09756025088965181, 0.10247093349242449, 0.14247269057616566, 0.0, 0.4644170645216008, 0.0, 0.0, 0.0, 0.6396576582705668, 0.0, 0.14648223852485512, 0.0, 0.3845502326592231, 0.0, 0.0, 0.0, 0.0, 0.01873756402105984, 0.01865952833886222, 0.015020499411212522, 0.0, 0.11259829701043601, 0.13537240455394534, 0.18963280616455852, 0.0, 0.1732077631723114, 0.0, 0.009279305276553587, 0.0, 0.09430577452314615, 0.07566718263303025, 0.06172210939249301, 0.0, 0.0, 0.0017837976727260341, 0.0, 0.0, 0.06543462567823881, 0.0621898641418941, 0.0, 0.0, 0.0, 0.41468742426256355, 0.21475258071539002, 0.0, 0.0, 0.08728790458911416, 0.0, 0.0, 0.4956863169283368, 0.0, 0.0, 0.3312300382813116, 0.0, 0.6814401538748236, 0.017040189816468283, 0.0, 0.0, 0.0, 0.0, 0.1702496303089558, 0.04558027585085677, 0.0, 0.0, 0.05652088848846798, 0.0, 0.0, 0.039516412285590885, 0.04836078861030929, 0.0, 0.0, 0.0, 0.0066658135086557066, 0.28756231542228783, 0.0, 0.0, 0.005213055047386901, 0.0, 0.03077146873270733, 0.0, 0.18174661292486113, 0.011855817392138795, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2550943184597343, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19130663987033655, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08795782309469964, 0.4949588224757624, 0.10547057221471998, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0428147611319233, 0.0, 0.4336529209634745, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10981699391447328, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14060207841669792, 0.19125923680987167, 0.17120811796462362, 0.0, 0.0, 0.29682703146376954, 0.2309028098716656, 0.0, 0.3415808438027304, 0.5413871431291847, 0.19010077735847383, 0.0, 0.0, 0.0, 0.037176095928915485, 0.0, 0.0, 0.19621484736356867, 0.46400800412758475, 0.6251709107930822, 0.11840971377140953, 0.5297289566486542, 0.0, 0.0, 0.0629827610017505, 0.0, 0.30811879649367063, 0.0, 0.43390554368076734, 0.0, 0.3078202365484454, 0.0, 0.0, 0.06464271443386868, 0.0, 0.0, 0.7925386152607364, 0.0, 0.0, 0.0, 0.0, 0.4871987999416911, 0.0, 0.0, 0.0, 0.026241068751647587, 0.4048536827096608, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04667237073016084, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008398941803472277, 0.0, 0.3462604046867109, 0.0, 0.41520221547875746, 0.0, 0.0, 0.0, 0.49209502240450126, 0.6693906625198521, 0.19758221668125867, 0.008160985490142467, 0.2605302099636665, 0.0, 0.0, 0.0, 0.9022483783960523, 1.0694729952381887, 0.6653361553880242, 0.881281776229774, 0.001915716390555032, 0.022482711824403312, 0.0040432994483474245, 0.0, 0.3214035783779074, 0.6867348676262818, 0.0, 0.6858420722534031, 0.0, 0.5811377322397425, 0.04246482918579259, 0.11467932906673921, 0.09709202075873843, 0.0, 0.0, 0.0, 0.2200140216993193, 0.0, 0.7507517442378999, 0.0, 0.0, 0.7372603142185328, 0.0, 0.006741369353138395, 0.8069776586909365, 0.00396709224045839, 0.0, 0.0, 0.0, 0.6101879525945185, 0.0, 0.0, 0.026258353794755256, 0.4016774417320984, 0.014813931005383318, 0.6190727226045784, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11309418362565873, 0.0, 0.0, 0.0, 0.0, 0.0, 0.036526440507301174, 0.022956711251180283, 0.40907708831845013, 0.0012453094708774737, 0.0, 0.0, 0.0, 0.0, 0.014062827632021033, 0.0, 0.0, 0.0, 0.006394809610240893, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21784527989974428, 0.0, 0.0, 0.0, 0.3180108962002836, 0.2508741672819204, 0.17523704698611114, 0.13837147224686994, 0.27935616728122964, 0.1859955338163167, 0.0, 0.06462126637992056, 1.0008493550472979, 0.6004231261661688, 0.0, 0.3940831570768702, 0.0, 0.0, 0.1305734964236071, 0.0, 0.09786792103897592, 0.0, 0.11654231814191775, 0.46697515894469777, 0.5700094853415558, 0.1107417067979406, 0.346111937724667, 0.0, 0.1225882117910605, 0.0, 0.28673152989464684, 0.0, 0.12654022793408917, 0.0, 0.0, 0.45809293367016757, 0.3647743355850667, 0.817304098176075, 0.0036334642288677415, 0.0, 0.2669922423479005, 0.0, 0.0, 0.0, 0.32457729111200295, 0.5543705739187803, 0.8812247175026642, 0.16912005088903598, 0.5020073987686707, 0.0, 0.09252856828989332, 0.0, 0.0, 0.0, 0.06948083164247039, 0.2588335470174883, 0.23431107957691064, 0.0, 0.0, 0.4609326565956409, 0.0981996119487529, 0.0, 0.0, 0.0, 0.0, 0.41461953421729686, 0.2880401034246727, 0.0, 0.12878680297473977, 0.5528442548314576, 0.8638211211778427, 0.0, 0.19329232440572794, 0.07190135483727589, 0.0, 0.37985878824980135, 0.0, 0.0, 0.47943873587199365, 0.0, 0.1632157826430328, 0.028602417984395823, 0.12587604601890898, 0.20239239184313712, 0.0, 0.9957002205667365, 0.5403020941861382, 0.1731723605204449, 0.5984215188307392, 0.5906299727726914, 0.15421128542459664, 0.22417177182593684, 0.14760215442934868, 0.0, 0.0, 0.10452572448334531, 0.0, 0.0, 0.5192893646261969, 0.0, 0.0, 0.0, 0.03548389098440683, 0.0, 0.0, 0.5359908824860568, 0.0, 0.0, 0.4508397689271815, 0.17912612646003018, 0.05191685886593687, 0.015041105758856862, 0.0, 0.0, 0.07792048637164595, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16284516279577882, 0.07019827463547235, 0.0, 0.0017166852898648512, 0.022601665621833984, 0.0, 0.0, 0.0, 0.08820522946301469, 0.0, 0.0, 0.4597721334804677, 0.0, 0.01968862180697655, 0.1496625833744818, 0.0, 0.0, 0.0, 0.0, 0.042967175515187854, 0.0, 0.5925889649898668, 0.03501818713399176, 0.0, 0.23929946904107768, 0.0, 0.0, 0.0, 0.0, 0.0, 0.586042846539397, 0.0, 0.35012160211964255, 0.0, 0.0, 0.2671275149044985, 0.5254872140248491, 0.0, 0.0, 0.0, 0.4346599048698998, 0.0, 0.6685147232492785, 0.0, 0.0, 0.006603260891096502, 0.41222164853295895, 0.691126666160783, 0.3115253982735278, 0.0, 0.5948463934358659, 0.0, 0.6104915934501508, 0.0, 0.10122959156761935, 0.0, 0.0, 0.4361142638019697, 0.0, 0.0, 0.022953207777356696, 0.01768983406390727, 0.0, 0.49300859199961644, 0.0, 0.45242065570193146, 0.0, 0.25296290668039206, 0.24913417193879323, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0036117281801281323, 0.37981219294125684, 0.0, 0.7813883080906168, 0.37787984308171674, 0.0, 0.3540795182413977, 0.0, 0.0, 0.024079641916532137, 0.0, 0.3372996465844834, 0.4587109366214878, 0.0, 0.0, 0.0, 0.0, 0.008167928328435794, 0.30985126085873477, 0.0, 0.1769552845849796, 0.01014740975340464, 0.3239445526321744, 0.2589119416659987, 0.30500724408067964, 0.0, 0.8521343659652334, 0.0, 0.12278148254603906, 0.0, 0.0, 0.7559317032710442, 0.0, 0.4639073457870384, 0.3375990135598286, 0.0, 0.09771802789528808, 0.0, 0.0, 0.0, 0.0, 0.14259284539732897, 0.0, 0.0, 0.0, 0.03978581978010784, 0.4979059043742451, 0.0, 0.0, 0.02239395579386129, 0.0, 0.0, 0.08552679542089565, 0.0, 0.28975782063069117, 0.4544199284136855, 0.4879966224465369, 0.0, 0.5198773678370044, 0.09074414747732065, 0.0, 0.0, 0.0, 0.08751115961530397, 0.0, 0.0, 0.0, 0.0, 0.01723069885490719, 0.005476104703094391, 0.0, 0.0, 0.0, 0.0, 0.0, 0.018363845689630152, 0.0, 0.0, 0.0, 0.03456818780211805, 0.16076784648973388, 0.1339929852951158, 0.12939203287442297, 0.6506668934574178, 0.07556479761019191, 0.0, 0.0, 0.1120835499344092, 0.004448105032597938, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.424200452243984, 0.21870476868551994, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04400733534916703, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5084860468121182, 0.0, 0.0, 0.0, 0.06613225218879751, 0.0, 0.0, 0.03227907593043655, 0.0, 0.01489513919323321, 0.0, 0.0, 0.0004903768608608706, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3709186680024144, 0.0057636955333438475, 0.0, 0.0, 0.0, 0.0, 0.05167292145382253, 0.03114794005970685, 0.0, 0.0, 0.0, 0.04406332427000894, 0.0, 0.28333618254852055, 0.0, 0.0, 0.08754290037370453, 0.0, 0.030717709851121017, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15375069919642081, 0.17266284464812964, 0.0, 0.0, 0.0, 0.0, 0.4591427931520538, 0.0, 0.0, 0.4080740928256236, 0.04867028613084824, 0.0, 0.0, 0.19198247076461217, 0.0, 0.0, 0.0, 0.04903912896069461, 0.0, 0.0, 0.0, 0.03565133307467186, 0.011864802664565318, 0.0, 0.0770587282490205, 0.06882991093352155, 0.0, 0.32659059563162995, 0.036557980918752765, 0.0, 0.0, 0.0, 0.0, 0.03137440184410096, 0.0, 0.0, 0.0, 0.18642661293603366, 0.0, 0.0, 0.0, 0.0, 0.06772257249589227, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21100355273002191, 0.0, 1.3416336420880526, 0.0, 0.0, 0.46161810723264507, 0.0, 0.4582995461192519, 0.05104879083246295, 0.5773364122618407, 0.57352236887648, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5640999064171196, 0.6666836020552119, 0.06886868779194379, 0.564904097158741, 0.0, 0.3210670084651615, 0.0, 0.0, 0.0, 0.9392890324745945, 0.0, 0.0, 0.2984250122811811, 0.0, 0.009405052137469182, 0.0, 0.39950267169818077, 0.07050196115427894, 0.824636783426293, 0.4953951141450468, 0.0, 0.0, 0.34635403119710667, 0.8798483938054087, 0.39347138128916365, 0.0, 0.0, 0.41085938784277987, 0.0, 0.7572672907360996, 0.0, 0.1918766456362537, 0.14775814623354722, 0.0, 0.0, 0.18414622884752666, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32881972797464193, 0.22733765531865868, 0.29775899283396906, 0.0, 0.0, 0.0, 0.0387256895819095, 0.5151993362991701, 0.0, 0.0, 0.0, 0.008722287803381279, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1780184121162673, 0.0, 0.0, 0.0, 0.0, 0.0511079535437104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05738054033260683, 0.0, 0.0, 0.3177388426930726, 0.0, 0.0, 0.0019725686702392773, 0.0, 0.0, 0.0, 0.0, 0.20770780211002965, 0.0, 0.0, 0.0, 0.8220710140576788, 0.0, 0.0, 0.0, 0.0, 0.9922981121231631, 0.19272059014741777, 0.18871634512759347, 0.009978475777936804, 0.5372065554785002, 0.0, 0.0, 0.17523452577386275, 1.0717089910255204, 0.5571949298413089, 0.0, 0.3237380570219946, 0.0, 1.1122472434174695, 0.10030606802210519, 0.0, 0.42164300445661296, 0.0, 0.2034243141927581, 0.0, 1.0210169552267845, 0.19689099390765805, 0.14675887656145528, 0.15859984719751974, 0.2247981968120587, 0.0, 0.22026608101531156, 0.5078755745015515, 0.2690121908665218, 0.0, 0.0, 0.0, 0.3746062674772627, 0.7584612913730437, 0.0, 0.0, 0.8749551201631387, 0.5887430555293698, 0.8247249363546676, 0.21469878981542115, 1.002630449124598, 0.2572736542055717, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005299432156408299, 0.06219376030445952, 0.011184949515597283, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11747014454387752, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1628689565677918, 0.010974138077104432, 0.0, 0.0, 0.0, 0.0, 1.0297896192318396, 0.0, 0.662355409415741, 0.5720482757502646, 0.3113118281374319, 0.0, 0.0, 0.25393001900118484, 0.02276308091998572, 0.03508485404358758, 0.45957926224802004, 0.0, 0.05036277933399867, 0.1447652248957086, 0.0, 0.0242600552046752, 0.005732716773973234, 0.0, 0.0, 0.04566723978074626, 0.007798132412071851, 0.435160826872351, 0.19099152935556227, 0.0, 0.09109198019072849, 0.0, 0.0, 0.0, 0.0, 0.040872817508571836, 0.0, 0.8816978299630381, 0.023385944730671186, 0.20852512378086208, 0.3265908462108258, 0.0, 0.8135187830099228, 0.5004561612521131, 0.5929930445509373, 0.07024535595608956, 0.4293153063068892, 0.33966138448698774, 0.0, 0.0, 0.219723330992236, 0.0, 0.0, 0.32087091161635517, 0.10046935863374477, 0.0, 0.21249664109114016, 0.0, 0.0, 0.5675920409330384, 0.0, 0.0, 0.02195446551553763, 0.0, 0.0, 0.0, 0.7828555360473642, 0.0, 0.0, 0.0, 0.539158201637973, 0.0, 0.037194676308406484, 0.0, 0.5899620450765102, 0.0, 1.064333300573155, 0.0, 0.4126616356723095, 0.0, 0.0, 0.0, 0.0, 0.005455259856546277, 0.06532462900349355, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6382915607944724, 0.0, 0.1058392854111573, 0.06419509685388734, 0.0, 0.0, 0.42600921169580896, 0.0, 0.6948705846598551, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7494592390120385, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.34703521803027376, 0.47959926529853425, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18954560408868362, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04058791510732469, 0.0, 0.0, 0.0, 0.026371559760006224, 0.46735915191246824, 0.9729562858716514, 0.0, 0.01593384874339247, 0.0, 0.0, 0.10548242945325798, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08182217469250767, 0.0, 0.0, 0.0, 0.0, 0.5929119201290493, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0028851424117770368, 0.14902256810885017, 0.0, 0.19393473922191487, 0.0010822975481770052, 0.10083006827906865, 0.005589290532560041, 0.0, 0.0377329438822351, 0.0, 0.0, 0.0, 0.0, 0.08622227292139113, 0.0, 0.0, 0.052960874748722735, 0.0, 0.0, 0.0, 0.040542431602682394, 0.0, 0.034748695303796415, 0.0, 0.0, 0.07778126624009696, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08990369242695052, 0.0, 0.0, 0.0, 0.0, 0.1714300400506459, 0.23319412483505944, 0.06883127399553583, 0.0, 0.0, 0.4520065142603474, 0.7559043080573538, 0.0, 0.9918256875421747, 0.34148047573693957, 0.23178166527267935, 0.1984049383893502, 0.0, 0.0, 0.0, 0.4618215114400494, 0.055660721213669, 0.23923628669541208, 0.0, 0.0, 0.39945045771087084, 0.3329245273531598, 0.25602890393383043, 0.0, 0.2574713970419185, 0.0, 0.0, 0.27848743576980106, 0.008801495971424074, 0.0, 0.0, 0.0, 0.0, 0.4961604274582618, 0.0, 0.0, 0.5434029369831717, 0.0, 0.0, 0.0, 0.0, 0.15767180411659634, 0.03460197933312267, 0.0, 0.0, 0.036131085316488384, 0.0, 0.0, 0.0, 0.016873683938744447, 0.019906225883667222, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.012507180486519448, 0.0, 0.02685500739865508, 0.028916495513405534, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029742024653825302, 1.0585077478673894, 0.0, 0.0, 0.10450313655197234, 0.0, 0.27087506529662764, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7518068036153462, 0.0, 0.2680435440340337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1316435251098364, 0.8078731280911045, 0.0, 0.0, 0.0, 0.10506968633342718, 0.23470506622896917, 0.0, 0.0, 0.607722294332459, 0.023665118775296444, 0.014839085130224942, 0.0, 0.0, 0.24386571546932873, 0.0, 0.0, 0.3502050356771847, 0.0, 0.0, 0.46379933676520235, 0.0, 0.08440789641107996, 0.04593440835303492, 0.021386035200774683, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7729032574550468, 0.0, 0.11781868003483978, 0.030607043037187642, 0.0, 0.1726108187023696, 0.09583059716129254, 0.5239548125179947, 0.4366934746091282, 0.0, 0.0, 0.24627150409293175, 0.0, 0.13007997889130285, 0.36528893478699903, 0.18318396866765946, 0.0, 0.011811348038501769, 0.0, 0.0, 0.0, 0.0, 0.0, 1.1723218684731558, 0.5524938653991974, 0.7739462295109258, 0.0, 0.7069108871009565, 0.0, 1.1639912229987677, 0.0, 0.0737216927746314, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.41689243790078717, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7826638975615551, 0.0, 0.0, 0.0, 0.1017910453533696, 0.0, 0.0, 0.0, 0.0, 0.022926661938484392, 0.0, 0.0, 0.24172521220469304, 0.33406187082542654, 0.0, 0.0, 0.31010342596966556, 0.0, 0.0, 1.1081747068991343, 0.7344335908166203, 0.16327913698089802, 0.7325151937485493, 0.17384385605370836, 0.08371482373128411, 0.0, 0.3420940653006234, 0.0, 0.04990946505718503, 0.5498243469410863, 0.0, 0.007722420577405236, 0.0906297807361463, 0.016298894248894004, 0.0, 0.17760842474448457, 0.7445477489471244, 0.0, 0.0, 0.23271741543898974, 0.5862478840032251, 0.38013450552556605, 0.0, 0.13625107884748244, 0.3102878234624971, 0.0, 0.0, 0.0613418632643825, 0.1222024301534575, 0.0, 0.0, 0.09768999149541487, 0.07432603695941839, 0.0, 0.0, 0.2373353492409029, 0.8187850328888507, 0.0, 0.1472545596990393, 0.08055057930039017, 0.0, 0.0, 0.0, 0.0, 0.022056121851574153, 0.7041166858972707, 0.0, 0.0, 0.0, 0.7708181971148897, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6591456110142444, 0.0, 0.0, 0.0, 0.5151326583061712, 0.4293405940090164, 0.0, 0.30993576190130123, 0.24212487706484054, 0.0, 0.0, 0.35913833699197834, 0.594616431743019, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7007742613782065, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07822848175716028, 0.0, 0.795037704009975, 0.0, 0.18176747614492506, 0.0, 0.0, 0.0, 0.0, 0.05218428597433502, 0.551641665900435, 0.0, 0.0, 0.0, 0.0, 0.4173251650328503, 0.13888627164939463, 0.0, 0.9020292850308806, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32443041606173034, 0.0, 0.3672605285185933, 0.0, 0.0, 0.0, 0.20671726976925492, 0.0, 0.0, 0.38426107037286794, 0.0, 0.0, 1.3158788906540237, 0.0, 0.0, 0.33314012692337136, 0.4077019730262151]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.1187145765025676, 0.0, 0.16555522612551515, 0.0, 0.0, 0.0, 0.0, 0.43509113842452285, 0.0, 0.0, 0.25672403787937165, 0.43862663884873543, 0.0, 0.0, 0.3519631419607619, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051120283482812334, 0.15945060967882835, 0.42044865267857073, 0.0, 0.019744477387695688, 0.0, 0.0, 0.0, 0.12726604148160792, 0.4480285054137333, 0.0, 0.41393771366257825, 0.0, 0.0, 0.1372243591915985, 0.12863434970716192, 0.0, 0.019238858430486484, 0.0, 0.2371659747040811, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.39682924637787165, 0.0, 0.8480118921637517, 0.0, 0.0, 0.0195483866997798, 0.0, 0.5990836331247341, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2618925497434801, 0.26117339231230247, 0.0, 0.0, 0.16216152735698644, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06997554550840408, 0.0, 0.0, 0.002400768013297612, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.4157511852632345, 0.5793963874059174, 0.0, 0.26436870752857605, 0.4172786501470117, 0.0, 0.0, 0.8079649846339338, 0.0, 0.0, 0.5764550461815096, 0.4229367652966696, 0.05379340446506314, 0.0, 0.0, 0.5795406808621261, 0.5877094760316834, 0.0, 0.0, 0.0, 0.0, 0.284387943824113, 0.0, 0.0, 0.0, 0.035174745039109515, 0.0, 0.0, 0.011970205674471077, 0.0, 0.0, 0.0, 0.0, 0.5436476197350472, 0.920039513761917, 0.0, 0.6198132723204128, 0.16799442509225773, 0.5753026732101696, 0.2043616977009669, 0.5065806869454675, 0.0, 0.0, 0.39160092945826996, 0.0, 0.11054447981865345, 0.0, 0.0, 0.9189729667337664, 0.0, 0.0, 0.6507053761422986, 0.6970188689802168, 0.0, 0.08297492397617155, 0.9062181287136433, 0.0, 0.059530976608982995, 0.012438951345378766, 0.0, 0.0, 0.0, 0.0, 0.2533819740366263, 0.9473531228336374, 0.06450793068804792, 0.0, 0.41573543153630554, 0.0, 0.0, 0.0, 0.7238062468593162, 0.0, 0.0, 0.3590904912393951, 0.07774042001084827, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6251886494903025, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44684741712517223, 0.0, 0.0, 0.0, 0.0, 0.010812740091707317, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8163131959379999, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2672156592426391, 0.0, 0.028807779838791864, 0.0, 0.0, 0.0, 0.025506753620224757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.022871104613233297, 0.0, 0.6057451127777128, 0.0, 0.0, 0.05122083512724408, 0.0, 0.0, 0.26967234588040656, 0.0, 0.0, 0.6655341287456478, 0.0, 0.41411417571013454, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29998038732284904, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06750566800337324, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3426210978919867, 0.3800174489235809, 0.0, 0.6531468239127369, 1.5341196475571879, 0.0, 0.0, 0.5993450019914057, 0.0, 0.0, 0.318944682359523, 0.0, 0.0, 0.0, 1.2766961856974943, 0.0, 0.47028907930153113, 0.46890260973852405, 0.0, 0.2635141940642454, 0.0, 0.06844040704623247, 0.6776383700271937, 0.08344450181255293, 0.0, 0.0, 0.13135428676134797, 0.1357944044209692, 0.0, 0.0, 0.0, 0.38624172924075223, 0.0, 0.0, 0.0, 0.23564395924169773, 0.0, 0.7014291092208349, 0.11139739784790205, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008393202836106917, 0.0, 0.22229541093446364, 0.2882110765245937, 0.0, 0.2931292388749959, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24423669216579333, 0.0, 0.07507242489058646, 0.0, 0.0, 0.14176191313790465, 0.0, 0.0, 0.0, 0.054753508738442806, 0.11008634170637227, 0.0, 0.0, 0.0, 0.0, 0.0, 0.024773126340884036, 0.0, 0.0, 0.38053755501306186, 0.0, 0.6713587667580375, 0.05335137428594376, 0.0, 0.0, 0.009224220899634665, 0.0, 0.07390888522469428, 0.1992308489896435, 0.12678608744717204, 0.0, 0.0546923223511062, 0.11313411705958114, 0.0, 0.0, 0.0, 0.0, 0.05169899432402749, 0.019742405777142896, 0.1769782400741126, 0.0, 0.0, 0.09297789149141053, 0.028906196325416873, 0.0, 0.0, 0.012919011582055164, 0.0, 0.0, 0.3208972845059436, 0.0, 0.0, 0.0046103209297173, 0.0, 0.0, 0.00416876885269193, 0.0729081194704697, 0.0, 0.0, 0.0, 0.07125538498910843, 0.0, 0.0, 0.03513444799266689, 0.0, 0.07540438323786366, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04369081060273281, 0.0, 0.0, 0.0, 0.014769980988042226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.017283118828420634, 0.006620940647292606, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006092931164902776, 0.0, 0.16137232276465496, 0.0, 0.15262637216887753, 0.013645384773351038, 0.16271613196948126, 0.0, 0.0, 0.0, 0.0, 0.17730029672438757, 0.41874765425641397, 0.054497803302564006, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10045113292307115, 0.27028417756519546, 0.07991567883089672, 0.0, 0.0, 0.0, 0.0, 0.0, 0.01798371330728596, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5859834957136911, 0.5086687281653502, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07646258969830243, 0.0, 0.0, 0.02773130153308066, 0.07708391588594585, 0.0, 0.0, 0.06185373806995992, 0.0, 0.0, 0.033137714842779345, 0.0, 0.0, 0.0, 0.0, 0.028021730318764978, 0.07388933025705045, 0.0, 0.021389015345232583, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046371970770837774, 0.04025364462832554, 0.2181921153062336, 0.4335185189335439, 0.0, 0.0, 1.0038009425423415, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4280152293034966, 0.0, 0.08414972142221414, 0.0, 0.3712598089597713, 0.0, 0.06370844553850769, 0.0, 0.0, 0.0, 0.0, 0.5083497561860121, 0.0, 0.0, 0.0, 0.17350738400022994, 0.0, 0.0, 0.0, 0.0, 0.5680638629882098, 0.4512837677833129, 0.036928112404588626, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6736518032785722, 0.0, 0.0, 0.0, 0.0, 0.3438277430889845, 0.1331574579932683, 0.8185600695730958, 0.0, 0.0, 0.017261448593960855, 0.0, 0.5289976863810653, 0.0, 0.0, 0.0, 0.0, 0.13826565194431473, 0.0, 0.12839377709982103, 0.8277070113616852, 0.0, 0.0, 0.3904546499995126, 0.08179569775458351, 0.0, 0.0, 0.0, 0.0, 0.16848803520369499, 0.0, 0.0, 0.005780600674157121, 0.0, 0.0, 0.0, 0.0, 0.042429105563066505, 0.0, 0.0, 0.5671026868317051, 0.5831842436077501, 0.0, 0.0, 0.5203885995071309, 0.0, 0.0, 0.0, 0.0, 0.03279957809056344, 0.20563143706052323, 0.8140555730584957, 0.0, 0.11735707443596549, 0.0, 0.0, 0.0, 0.0, 0.05942421719401875, 0.13531075914415133, 0.0, 0.22862377269710113, 0.0, 0.0, 0.0, 0.0, 0.009783289930470927, 0.0, 0.49666013194599, 0.01297478801242045, 0.004970474495620279, 0.0, 0.0, 0.0, 0.0, 0.18702095525297172, 0.0, 0.0, 0.49027730046536305, 0.0, 0.0, 0.0, 0.3100811795242501, 0.0, 0.5172830310180929, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5147075854808417, 0.0, 0.23506445593598685, 0.0, 0.0, 0.0984177418166802, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6597667532607603, 0.0, 0.7531258126074596, 0.0, 0.0, 0.0, 0.0, 0.009060495116628974, 0.0, 0.14938403565323904, 0.23931891774764502, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17320374473408556, 0.0, 0.0, 0.8859260157921318, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2593451028242532, 0.13535058061487634, 0.0, 0.17876385946442425, 0.5885021691653141, 0.4462993508157936, 0.0, 0.38646137613385273, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08841279830908562, 0.0, 0.0, 0.4090685041141252, 0.2385779614705672, 0.0, 0.32657075289021537, 0.0, 0.3891842232348578, 0.46695749861500585, 0.0, 0.20033954304824086, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6140772326336235, 0.21962331732895995, 0.0, 0.0, 0.21665980127772702, 0.0, 0.10259951624992725, 0.0040997688735825025, 0.0, 0.0, 0.0178257297768441, 0.0025383566681682393, 0.21683531480545457, 0.0, 0.027677402398657985, 0.0, 0.1880826476230884, 0.3419147609793875, 0.03227511522566195, 0.19053492425855037, 0.0, 0.06432217258278244, 0.0026780235214896283, 0.0, 0.0, 0.464125489835237, 0.09967606965443436, 0.0, 0.0, 0.0, 0.011788389508631971, 0.03206041622309702, 0.0, 0.0060682844433003185, 0.0, 0.0, 0.0, 0.010791956772858862, 0.0, 0.0, 0.0, 0.0, 0.4329905527364345, 0.14376890418721155, 0.6930376581272882, 0.0, 0.611818052941564, 0.6291676211651914, 0.0, 0.0, 0.5614206159067703, 0.48216800990329456, 0.0, 0.0, 0.4507229848159907, 0.0, 0.0, 0.8782428778065052, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06410974538727675, 0.23291225157991716, 0.08679043179604816, 0.0, 0.0, 0.08995902157278039, 0.8808378297797503, 0.0, 0.0, 0.0, 0.3618017482397369, 0.07709259450646033, 0.0, 0.22347789493902354, 0.0, 1.4151156566032244, 0.0, 0.0, 0.0876553401034732, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.35023812146064465, 0.10119869206094158, 0.0, 0.0, 0.0, 0.03421091843192662, 0.0, 0.18934530571059222, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.040031965441735276, 0.015335731346610126, 0.0, 0.0, 0.0, 0.0, 0.5012279391934354, 0.14361151525658541, 0.0, 0.05781748261134272, 0.17152855777668224, 0.0, 0.498484457540378, 0.0, 0.0, 0.7074889608036871, 0.0, 0.0, 0.0, 0.0, 0.0, 0.36413161255211174, 0.10650975776468122, 0.0027919607805886224, 0.1717164070699339, 0.0, 0.0, 0.0, 0.31636490805397033, 0.0, 0.0, 0.0, 0.3781004501122092, 0.1664160983543511, 0.0, 0.10894483484211534, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06899783350353156, 0.1313910038295779, 0.5458205926873976, 0.0, 0.2058361256028114, 0.0983057734206431, 0.006586106310131405, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13715236217863272, 0.026867165999227966, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0035515304259612105, 0.0, 0.0, 0.5329776529167246, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.397719517913955, 0.20668056810136554, 0.1307286941015916, 0.0, 0.19979734260211207, 0.13509882393613562, 0.0, 0.0, 0.0, 0.4428910220796438, 0.0, 0.10971922982381796, 0.20405686697329703, 0.0, 0.0, 0.0, 0.4155385933508652, 0.0, 0.030373091671251427, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02870549966274466, 0.0, 2.221236796150802e-5, 0.04518680503118196, 0.8557997812159583, 0.0, 0.0, 0.0, 0.33295230926411423, 0.0, 0.0, 0.1651823382455281, 0.0, 0.0, 0.10987547938954217, 0.038321493889877094, 0.0, 0.0, 0.9167265220224268, 0.0, 0.41223669995910156, 0.0062879102301798264, 0.006460790579658201, 0.0, 0.015093288171720337, 0.004653032070207847, 0.0, 0.0, 0.21192982566516394, 0.0, 0.5265530542756913, 0.004398370159579225, 0.3103332077675556, 0.0, 0.0, 0.21886457786346297, 0.058793164358353744, 0.24052003353974485, 0.5039916994286584, 0.08865805888962155, 0.0, 1.2109591957845456, 0.0, 0.4576423956337198, 0.13738787883657938, 0.3665641879979031, 0.00039223002823340837, 0.0, 0.6257753572135888, 0.0, 1.0620388990418166, 0.04837586177991647, 0.05564954721706949, 0.23699310888410263, 0.0060621596830514254, 1.2406804285104875, 0.0, 0.6055788924273563, 0.1024025590217045, 0.41360202805293217, 0.5476995216716073, 0.17831079467145505, 0.0, 0.0, 0.0, 0.14728996725917032, 0.19581503373322434, 0.10219463649126194, 0.0, 0.0, 1.213270546019433, 0.06327342954871182, 0.0, 0.0, 0.34855390390603164, 0.0, 0.0, 0.2854684709047343, 0.28462687503630496, 0.0, 0.0, 0.0, 0.06675489490570531, 0.4113308129658067, 0.0, 0.049609846106367136, 0.0, 0.0, 0.0, 0.0, 0.2938483162830928, 0.35256998241930354, 0.0, 0.15126367898557985, 0.0, 0.0, 0.1430373863296425, 0.0, 0.11979050068949273, 0.0, 0.0, 0.0, 0.2174719417996252, 0.18492143615091797, 0.5613745989840638, 0.0, 0.1269084936189851, 0.13050728832210684, 0.0, 0.008090983120695843, 0.11645462945856581, 0.45646266655488743, 0.0, 0.0, 0.018120109170533364, 0.0, 0.0, 0.18217259219167142, 0.0, 0.0, 0.23544229686275722, 0.0, 0.072369241454098, 0.0, 0.013298187548207349, 0.0, 0.15536962738337737, 0.0, 0.0, 0.0, 0.5485281455413065, 0.0, 0.0, 0.0, 0.07504798957314487, 0.13800884999205565, 0.023881103672210243, 0.4000634234277266, 0.0, 0.63983454521553, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1274757935226854, 0.0, 0.060340389443721644, 0.0, 0.0, 0.0, 0.0, 0.046886662511488715, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4105919579209241, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17717763704599515, 0.0, 0.0, 0.006078729370399735, 0.0, 0.0, 0.0, 0.4419304781486809, 0.004498905638339938, 0.0, 0.0, 0.06013187036225827, 0.061837053761552255, 0.158000195476362, 0.08245930986204707, 0.055178613203866224, 0.0, 0.3921588247960043, 0.051054375379452996, 0.0, 0.3113852203955569, 0.0, 0.08631714383210826, 0.016249403505819805, 0.0, 0.5064243516388502, 0.0, 0.0799687272151233, 0.0, 0.06016447367008715, 0.0, 0.0, 0.12723000596711698, 0.0, 0.0, 0.0, 0.0, 0.3344116617465516, 0.28448339782348236, 0.03555929040895464, 0.12972821265302345, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05771825347353467, 0.0, 0.06101920493228206, 0.0, 0.1422424089220273, 0.0, 0.0, 0.0850349690926388, 0.0, 0.6465489235087094, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9592391331341867, 0.0, 0.0, 0.0, 0.07533170200640231, 0.3935757364788316, 0.41733426606664215, 0.0, 0.0, 0.0, 0.0, 0.8096836326115127, 0.0, 0.0, 0.15672712010482948, 0.08471008784973191, 0.0, 0.0, 0.021315681001762884, 0.0, 0.0, 0.0, 0.6515686149424397, 0.0, 0.04354065349809789, 0.5887361460115157, 0.0, 0.3314629690186724, 0.08254082170798169, 0.0, 0.5363022284331493, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20539826744479112, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20437563182844645, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08512737043917705, 0.0, 0.0, 0.0, 0.21221590140088104, 0.0, 0.5922163084848736, 0.0, 0.054946173604955253, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11912480847073124, 0.10340745987043, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22405559305996067, 0.04389088686607588, 0.0, 0.8369237022137216, 0.0, 0.0, 0.303533841030579, 0.8437244477194209, 0.0, 0.0, 0.6770220530788269, 0.0, 0.08868596150524616, 0.0, 0.0, 0.0, 0.005801870585523199, 0.0, 0.3067127385215406, 1.9980597464483445, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1818471988215991, 0.0, 0.0, 0.0, 0.0, 0.09250846502860006, 0.0, 0.0, 0.0, 0.14804755431292183, 0.0, 0.3797383608658618, 0.39017892030987883, 0.0, 0.035065009177551926, 0.28100508860898343, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2656255916096575, 0.01029999428072384, 0.026319871200300066, 0.0, 0.0, 0.35174701729018143, 0.019026589888644814, 0.0, 0.0, 0.0, 0.0, 0.10260912587786382, 0.0, 0.0204467738415142, 0.0, 0.023687486390763176, 0.0, 0.0, 0.002174927201126577, 0.0, 0.09114373059640297, 0.0, 0.2642096712527522, 0.3907643461384895, 0.0, 0.0, 0.18051818330232947, 0.0, 0.3874221185422575, 0.6531078672631825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15551832566217896, 0.0, 0.1916820827839075, 0.0, 0.0, 0.08276135601321193, 0.0, 0.10030127909330487, 0.0, 0.0, 0.0, 0.10537887040654752, 0.0, 0.17805025311577488, 0.0, 0.010472659941918684, 0.0, 0.0, 0.007619143135798, 0.0, 0.12561988447587705, 0.0, 0.0, 0.7794014171836517, 0.0, 0.08402510727068294, 0.0, 0.3682135686649267, 0.08647369259665981, 0.09410614716697653, 0.611021014238459, 0.0, 0.0, 0.023955493193970948, 0.0, 0.0, 0.007434430348560844, 0.0, 0.0, 0.0, 0.24285369100807747, 0.0, 0.0, 0.0051185021691807515, 0.0, 0.0015127483220163092, 0.0, 0.0, 0.06096785123225053, 0.014193124550026902, 0.5775319451121608, 0.0, 0.0, 0.0, 0.007997400222196374, 0.6747251647940697, 0.0, 0.0, 0.0, 0.0, 0.7027693457851822, 0.0, 0.0, 0.055434654145900264, 0.0, 0.0, 0.0, 0.02587284155878174, 0.0, 0.42673143134824615, 0.004724246163513554, 0.4406790171730267, 0.0, 1.0342538585019783, 0.5747154140513469, 0.0, 0.9363482803339344, 0.7135280098555865, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9563104993907826, 0.0, 0.0, 0.0, 0.8295023845011231, 0.10509888461130146, 0.2471322355632557, 0.3801044173906537, 0.0, 0.0, 0.0, 0.1514367226333477, 0.0, 0.0, 0.0, 0.24534157695942965, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.052661051195310594, 0.6550399256456869, 0.5803102488724085, 0.0, 0.5319072548222628, 0.46172731619827034, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.026741428574906606, 0.0, 0.7082513040743756, 0.0, 0.0, 0.4418255985655133, 0.1449878921305842, 0.3039326972841545, 0.0, 0.0, 0.0, 1.198252644211342, 0.44500849169967277, 0.23918686672510267, 0.0, 0.0, 0.19736692078049992, 0.0, 0.0, 0.0, 0.0762301466058952, 0.3507440605568865, 0.4669973871873196, 0.0, 0.06417785026076955, 0.0, 0.0, 0.07892920039677795, 0.20151756987027533, 0.0, 0.5298004507120764, 0.006913800133275409, 0.0, 0.0742780358218034, 0.0, 0.6026732223863505, 0.0, 0.0, 0.5351202277676342, 0.0, 0.0, 0.9548891902757952, 0.02916984862304253, 0.0, 0.4970347785792808, 0.12683003730681902, 0.0180604034141702, 0.0, 0.2650052427173023, 0.0, 0.033791924886614616, 0.0, 0.04181580147667587, 0.0, 0.4621910495164758, 0.0, 0.0, 0.0190541328400638, 0.0, 0.17864673433347314, 0.014160348828667728, 0.8165447001064132, 0.09368415058058097, 0.9079968531646069, 0.08687864486537158, 0.19492858047186096, 0.10063554575175, 0.0, 0.09210666608746948, 0.01874477292287561, 0.03748966025771319, 0.0, 0.5779501492966836, 0.0012862204434733993, 0.220963909203652, 0.3086404911712966, 0.17631145912557372, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032159896791554, 0.0, 0.1846953640258127, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07139034913327573, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37871083555251084, 0.0, 0.0, 0.0, 0.0, 0.19265602282403793, 0.0, 0.0, 0.606424267788203, 0.011600938808477314, 0.0, 0.63655122023184, 0.8091094673344561, 0.15945386155042648, 0.21681046587583439, 0.5841977471111124, 0.14228431684797266, 0.0, 0.4919831840901785, 0.07005765326837811, 0.0, 0.4452652454663618, 0.0, 0.2225785522561698, 0.0, 0.0, 0.565764962530824, 0.0, 0.0, 0.0, 0.09016013522690633, 0.0, 0.0, 0.054929050345560504, 0.0, 0.0, 0.0397070718161962, 0.0, 0.3253549491861982, 0.39037279561642807, 0.09169366625332782, 0.16748228205826332, 0.0, 0.0, 0.6136975564576865, 0.0, 0.0, 0.3026006369046373, 0.0, 0.649431418360159, 0.08211939816658421, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8259750138040276, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5145740577075524, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.45723140022915015, 0.0, 0.0, 0.9202097992461084, 0.168004673879535, 0.0, 0.0, 0.1251531867765232, 0.0, 0.2137981131137785, 0.0, 0.013898368242301713, 0.0, 0.0, 0.7137867360685719, 0.0, 0.0, 0.1000729174155476, 0.0, 0.0, 0.03483089759667312, 0.12636252602014256, 0.0, 0.6417666786106352, 0.47874755782682904, 0.0, 0.0, 0.42719736321019475, 0.0, 0.269711179183823, 0.0, 0.0, 0.0, 0.0, 0.668274429237161, 0.0, 0.0, 0.19736413928693208, 0.0, 0.64140191275638, 0.0, 0.04878252313782071, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7804894714968978, 0.1354649020531392, 0.7521947991243342, 0.061565240681645095, 0.7064549771516211, 0.0, 0.0, 0.0, 0.1369213608036062, 0.598180503319145, 0.0, 0.4894142513129519, 0.14663698801711797, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14418506746458087, 0.027360830334206502, 0.0, 0.0, 0.11896445459410832, 0.016940356460817766, 0.08867849541915622, 0.0, 0.0, 0.0, 0.0, 0.014527597186767355, 0.0, 0.0, 0.0, 0.0, 0.017872458048705516, 0.09208038488681886, 0.0, 0.01328217046242409, 0.0, 0.0, 0.0, 0.0, 0.07867275819804301, 0.09439445944634833, 0.0, 0.040498210068061674, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), 42), 42)),) julia> @finch_code begin Ct .= 0 for i = _ @@ -498,7 +498,7 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.08838669783079417, 0.24540062578718655, 0.0, 0.0, 0.0, 0.0, 0.2598139726110033, 0.0, 0.0, 0.008999058499533074, 0.10561231293601407, 0.018993358540021866, 0.3713088213439608, 0.1272213104915037, 0.0, 0.04569648380052932, 0.0, 0.6778277114032399, 0.0, 1.0116444857173326, 0.1419594034849179, 0.849786220982489, 0.1853715018708835, 0.0, 0.41575027296468353, 0.027919812909200686, 0.38129764067914484, 0.0, 0.010472223603003109, 0.32765224234190193, 0.0, 0.0, 0.0, 0.27657062580546904, 0.018635375946533275, 0.0, 0.6553105493426397, 0.1806768240966126, 0.0, 0.0, 0.13022235819683495, 0.0, 0.0, 0.0096207645890863, 0.0, 0.0, 0.0, 0.0, 0.0027620603050478813, 0.0, 0.0, 0.0, 0.0, 0.06777735948867263, 0.16424694314849322, 0.05466156243395641, 0.0, 0.3550122664783007, 0.0, 0.16598631348758813, 0.0, 0.09916577661749644, 0.0, 0.0, 0.017171766504479664, 0.14883499722913907, 0.14454297081157494, 0.0, 0.0, 0.0, 0.08135785354072747, 0.18934501987281463, 0.0, 0.0, 0.0, 0.043171173549343585, 0.04442771737900286, 0.0, 0.0, 0.16847976307679274, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4519419326045341, 0.0022494085401006682, 0.0, 0.09264806290445121, 0.0, 0.0, 0.5779259042074504, 0.0, 0.0, 0.0, 0.01319039039025495, 0.0, 0.0, 0.05821123759190987, 0.008570313787111606, 0.12498925860233108, 0.3161944438230963, 0.0, 0.0, 0.0, 0.0, 0.03428001709676162, 0.0, 0.0, 0.0, 0.4239046512601812, 0.0, 0.0, 0.0, 0.0, 0.006439869364205756, 0.0, 0.19268641103781292, 0.0, 0.0, 0.0, 0.13842608775449636, 0.7754112567712441, 0.5650474898241402, 0.16678352690096504, 0.0, 0.0, 0.26721012017234747, 0.0, 0.0, 0.40379612390902914, 0.0, 0.5616249905190419, 0.0, 0.0, 0.0, 0.05914491909738165, 0.0, 0.0, 0.5796881176474965, 0.0, 0.0, 0.0, 0.0, 0.19259492607938428, 0.5396680351153355, 0.1002017616669876, 0.0, 0.0, 0.07018769309449151, 0.0, 0.0, 0.0, 0.8890997886610695, 0.01580855669802033, 0.07592126473643429, 0.0, 0.0, 0.5327597008182733, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26650628783183555, 0.0, 0.0, 0.4177758368274485, 0.01847646120309497, 0.2474671864399932, 0.030137257707486417, 0.0, 0.0, 0.0, 0.0, 0.4333965515966774, 0.0, 0.025363517487659904, 0.0, 0.0, 0.28727696476738296, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.48463873218296616, 0.3619901497543638, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3095355097692787, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08881016246594031, 0.0864536634210502, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13334438240099766, 0.0, 0.2743296378950603, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21573236386631758, 0.138874394226427, 0.21526827303910834, 0.0, 0.8276738568887637, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13803323038392623, 0.0, 0.0, 0.18937725647626488, 0.0, 0.09756025088965181, 0.10247093349242449, 0.14247269057616566, 0.0, 0.4644170645216008, 0.0, 0.0, 0.0, 0.6396576582705668, 0.0, 0.14648223852485512, 0.0, 0.3845502326592231, 0.0, 0.0, 0.0, 0.0, 0.01873756402105984, 0.01865952833886222, 0.015020499411212522, 0.0, 0.11259829701043601, 0.13537240455394534, 0.18963280616455852, 0.0, 0.1732077631723114, 0.0, 0.009279305276553587, 0.0, 0.09430577452314615, 0.07566718263303025, 0.06172210939249301, 0.0, 0.0, 0.0017837976727260341, 0.0, 0.0, 0.06543462567823881, 0.0621898641418941, 0.0, 0.0, 0.0, 0.41468742426256355, 0.21475258071539002, 0.0, 0.0, 0.08728790458911416, 0.0, 0.0, 0.4956863169283368, 0.0, 0.0, 0.3312300382813116, 0.0, 0.6814401538748236, 0.017040189816468283, 0.0, 0.0, 0.0, 0.0, 0.1702496303089558, 0.04558027585085677, 0.0, 0.0, 0.05652088848846798, 0.0, 0.0, 0.039516412285590885, 0.04836078861030929, 0.0, 0.0, 0.0, 0.0066658135086557066, 0.28756231542228783, 0.0, 0.0, 0.005213055047386901, 0.0, 0.03077146873270733, 0.0, 0.18174661292486113, 0.011855817392138795, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2550943184597343, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19130663987033655, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08795782309469964, 0.4949588224757624, 0.10547057221471998, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0428147611319233, 0.0, 0.4336529209634745, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10981699391447328, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14060207841669792, 0.19125923680987167, 0.17120811796462362, 0.0, 0.0, 0.29682703146376954, 0.2309028098716656, 0.0, 0.3415808438027304, 0.5413871431291847, 0.19010077735847383, 0.0, 0.0, 0.0, 0.037176095928915485, 0.0, 0.0, 0.19621484736356867, 0.46400800412758475, 0.6251709107930822, 0.11840971377140953, 0.5297289566486542, 0.0, 0.0, 0.0629827610017505, 0.0, 0.30811879649367063, 0.0, 0.43390554368076734, 0.0, 0.3078202365484454, 0.0, 0.0, 0.06464271443386868, 0.0, 0.0, 0.7925386152607364, 0.0, 0.0, 0.0, 0.0, 0.4871987999416911, 0.0, 0.0, 0.0, 0.026241068751647587, 0.4048536827096608, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04667237073016084, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008398941803472277, 0.0, 0.3462604046867109, 0.0, 0.41520221547875746, 0.0, 0.0, 0.0, 0.49209502240450126, 0.6693906625198521, 0.19758221668125867, 0.008160985490142467, 0.2605302099636665, 0.0, 0.0, 0.0, 0.9022483783960523, 1.0694729952381887, 0.6653361553880242, 0.881281776229774, 0.001915716390555032, 0.022482711824403312, 0.0040432994483474245, 0.0, 0.3214035783779074, 0.6867348676262818, 0.0, 0.6858420722534031, 0.0, 0.5811377322397425, 0.04246482918579259, 0.11467932906673921, 0.09709202075873843, 0.0, 0.0, 0.0, 0.2200140216993193, 0.0, 0.7507517442378999, 0.0, 0.0, 0.7372603142185328, 0.0, 0.006741369353138395, 0.8069776586909365, 0.00396709224045839, 0.0, 0.0, 0.0, 0.6101879525945185, 0.0, 0.0, 0.026258353794755256, 0.4016774417320984, 0.014813931005383318, 0.6190727226045784, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11309418362565873, 0.0, 0.0, 0.0, 0.0, 0.0, 0.036526440507301174, 0.022956711251180283, 0.40907708831845013, 0.0012453094708774737, 0.0, 0.0, 0.0, 0.0, 0.014062827632021033, 0.0, 0.0, 0.0, 0.006394809610240893, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21784527989974428, 0.0, 0.0, 0.0, 0.3180108962002836, 0.2508741672819204, 0.17523704698611114, 0.13837147224686994, 0.27935616728122964, 0.1859955338163167, 0.0, 0.06462126637992056, 1.0008493550472979, 0.6004231261661688, 0.0, 0.3940831570768702, 0.0, 0.0, 0.1305734964236071, 0.0, 0.09786792103897592, 0.0, 0.11654231814191775, 0.46697515894469777, 0.5700094853415558, 0.1107417067979406, 0.346111937724667, 0.0, 0.1225882117910605, 0.0, 0.28673152989464684, 0.0, 0.12654022793408917, 0.0, 0.0, 0.45809293367016757, 0.3647743355850667, 0.817304098176075, 0.0036334642288677415, 0.0, 0.2669922423479005, 0.0, 0.0, 0.0, 0.32457729111200295, 0.5543705739187803, 0.8812247175026642, 0.16912005088903598, 0.5020073987686707, 0.0, 0.09252856828989332, 0.0, 0.0, 0.0, 0.06948083164247039, 0.2588335470174883, 0.23431107957691064, 0.0, 0.0, 0.4609326565956409, 0.0981996119487529, 0.0, 0.0, 0.0, 0.0, 0.41461953421729686, 0.2880401034246727, 0.0, 0.12878680297473977, 0.5528442548314576, 0.8638211211778427, 0.0, 0.19329232440572794, 0.07190135483727589, 0.0, 0.37985878824980135, 0.0, 0.0, 0.47943873587199365, 0.0, 0.1632157826430328, 0.028602417984395823, 0.12587604601890898, 0.20239239184313712, 0.0, 0.9957002205667365, 0.5403020941861382, 0.1731723605204449, 0.5984215188307392, 0.5906299727726914, 0.15421128542459664, 0.22417177182593684, 0.14760215442934868, 0.0, 0.0, 0.10452572448334531, 0.0, 0.0, 0.5192893646261969, 0.0, 0.0, 0.0, 0.03548389098440683, 0.0, 0.0, 0.5359908824860568, 0.0, 0.0, 0.4508397689271815, 0.17912612646003018, 0.05191685886593687, 0.015041105758856862, 0.0, 0.0, 0.07792048637164595, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16284516279577882, 0.07019827463547235, 0.0, 0.0017166852898648512, 0.022601665621833984, 0.0, 0.0, 0.0, 0.08820522946301469, 0.0, 0.0, 0.4597721334804677, 0.0, 0.01968862180697655, 0.1496625833744818, 0.0, 0.0, 0.0, 0.0, 0.042967175515187854, 0.0, 0.5925889649898668, 0.03501818713399176, 0.0, 0.23929946904107768, 0.0, 0.0, 0.0, 0.0, 0.0, 0.586042846539397, 0.0, 0.35012160211964255, 0.0, 0.0, 0.2671275149044985, 0.5254872140248491, 0.0, 0.0, 0.0, 0.4346599048698998, 0.0, 0.6685147232492785, 0.0, 0.0, 0.006603260891096502, 0.41222164853295895, 0.691126666160783, 0.3115253982735278, 0.0, 0.5948463934358659, 0.0, 0.6104915934501508, 0.0, 0.10122959156761935, 0.0, 0.0, 0.4361142638019697, 0.0, 0.0, 0.022953207777356696, 0.01768983406390727, 0.0, 0.49300859199961644, 0.0, 0.45242065570193146, 0.0, 0.25296290668039206, 0.24913417193879323, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0036117281801281323, 0.37981219294125684, 0.0, 0.7813883080906168, 0.37787984308171674, 0.0, 0.3540795182413977, 0.0, 0.0, 0.024079641916532137, 0.0, 0.3372996465844834, 0.4587109366214878, 0.0, 0.0, 0.0, 0.0, 0.008167928328435794, 0.30985126085873477, 0.0, 0.1769552845849796, 0.01014740975340464, 0.3239445526321744, 0.2589119416659987, 0.30500724408067964, 0.0, 0.8521343659652334, 0.0, 0.12278148254603906, 0.0, 0.0, 0.7559317032710442, 0.0, 0.4639073457870384, 0.3375990135598286, 0.0, 0.09771802789528808, 0.0, 0.0, 0.0, 0.0, 0.14259284539732897, 0.0, 0.0, 0.0, 0.03978581978010784, 0.4979059043742451, 0.0, 0.0, 0.02239395579386129, 0.0, 0.0, 0.08552679542089565, 0.0, 0.28975782063069117, 0.4544199284136855, 0.4879966224465369, 0.0, 0.5198773678370044, 0.09074414747732065, 0.0, 0.0, 0.0, 0.08751115961530397, 0.0, 0.0, 0.0, 0.0, 0.01723069885490719, 0.005476104703094391, 0.0, 0.0, 0.0, 0.0, 0.0, 0.018363845689630152, 0.0, 0.0, 0.0, 0.03456818780211805, 0.16076784648973388, 0.1339929852951158, 0.12939203287442297, 0.6506668934574178, 0.07556479761019191, 0.0, 0.0, 0.1120835499344092, 0.004448105032597938, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.424200452243984, 0.21870476868551994, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04400733534916703, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5084860468121182, 0.0, 0.0, 0.0, 0.06613225218879751, 0.0, 0.0, 0.03227907593043655, 0.0, 0.01489513919323321, 0.0, 0.0, 0.0004903768608608706, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3709186680024144, 0.0057636955333438475, 0.0, 0.0, 0.0, 0.0, 0.05167292145382253, 0.03114794005970685, 0.0, 0.0, 0.0, 0.04406332427000894, 0.0, 0.28333618254852055, 0.0, 0.0, 0.08754290037370453, 0.0, 0.030717709851121017, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15375069919642081, 0.17266284464812964, 0.0, 0.0, 0.0, 0.0, 0.4591427931520538, 0.0, 0.0, 0.4080740928256236, 0.04867028613084824, 0.0, 0.0, 0.19198247076461217, 0.0, 0.0, 0.0, 0.04903912896069461, 0.0, 0.0, 0.0, 0.03565133307467186, 0.011864802664565318, 0.0, 0.0770587282490205, 0.06882991093352155, 0.0, 0.32659059563162995, 0.036557980918752765, 0.0, 0.0, 0.0, 0.0, 0.03137440184410096, 0.0, 0.0, 0.0, 0.18642661293603366, 0.0, 0.0, 0.0, 0.0, 0.06772257249589227, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21100355273002191, 0.0, 1.3416336420880526, 0.0, 0.0, 0.46161810723264507, 0.0, 0.4582995461192519, 0.05104879083246295, 0.5773364122618407, 0.57352236887648, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5640999064171196, 0.6666836020552119, 0.06886868779194379, 0.564904097158741, 0.0, 0.3210670084651615, 0.0, 0.0, 0.0, 0.9392890324745945, 0.0, 0.0, 0.2984250122811811, 0.0, 0.009405052137469182, 0.0, 0.39950267169818077, 0.07050196115427894, 0.824636783426293, 0.4953951141450468, 0.0, 0.0, 0.34635403119710667, 0.8798483938054087, 0.39347138128916365, 0.0, 0.0, 0.41085938784277987, 0.0, 0.7572672907360996, 0.0, 0.1918766456362537, 0.14775814623354722, 0.0, 0.0, 0.18414622884752666, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32881972797464193, 0.22733765531865868, 0.29775899283396906, 0.0, 0.0, 0.0, 0.0387256895819095, 0.5151993362991701, 0.0, 0.0, 0.0, 0.008722287803381279, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1780184121162673, 0.0, 0.0, 0.0, 0.0, 0.0511079535437104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05738054033260683, 0.0, 0.0, 0.3177388426930726, 0.0, 0.0, 0.0019725686702392773, 0.0, 0.0, 0.0, 0.0, 0.20770780211002965, 0.0, 0.0, 0.0, 0.8220710140576788, 0.0, 0.0, 0.0, 0.0, 0.9922981121231631, 0.19272059014741777, 0.18871634512759347, 0.009978475777936804, 0.5372065554785002, 0.0, 0.0, 0.17523452577386275, 1.0717089910255204, 0.5571949298413089, 0.0, 0.3237380570219946, 0.0, 1.1122472434174695, 0.10030606802210519, 0.0, 0.42164300445661296, 0.0, 0.2034243141927581, 0.0, 1.0210169552267845, 0.19689099390765805, 0.14675887656145528, 0.15859984719751974, 0.2247981968120587, 0.0, 0.22026608101531156, 0.5078755745015515, 0.2690121908665218, 0.0, 0.0, 0.0, 0.3746062674772627, 0.7584612913730437, 0.0, 0.0, 0.8749551201631387, 0.5887430555293698, 0.8247249363546676, 0.21469878981542115, 1.002630449124598, 0.2572736542055717, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005299432156408299, 0.06219376030445952, 0.011184949515597283, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11747014454387752, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1628689565677918, 0.010974138077104432, 0.0, 0.0, 0.0, 0.0, 1.0297896192318396, 0.0, 0.662355409415741, 0.5720482757502646, 0.3113118281374319, 0.0, 0.0, 0.25393001900118484, 0.02276308091998572, 0.03508485404358758, 0.45957926224802004, 0.0, 0.05036277933399867, 0.1447652248957086, 0.0, 0.0242600552046752, 0.005732716773973234, 0.0, 0.0, 0.04566723978074626, 0.007798132412071851, 0.435160826872351, 0.19099152935556227, 0.0, 0.09109198019072849, 0.0, 0.0, 0.0, 0.0, 0.040872817508571836, 0.0, 0.8816978299630381, 0.023385944730671186, 0.20852512378086208, 0.3265908462108258, 0.0, 0.8135187830099228, 0.5004561612521131, 0.5929930445509373, 0.07024535595608956, 0.4293153063068892, 0.33966138448698774, 0.0, 0.0, 0.219723330992236, 0.0, 0.0, 0.32087091161635517, 0.10046935863374477, 0.0, 0.21249664109114016, 0.0, 0.0, 0.5675920409330384, 0.0, 0.0, 0.02195446551553763, 0.0, 0.0, 0.0, 0.7828555360473642, 0.0, 0.0, 0.0, 0.539158201637973, 0.0, 0.037194676308406484, 0.0, 0.5899620450765102, 0.0, 1.064333300573155, 0.0, 0.4126616356723095, 0.0, 0.0, 0.0, 0.0, 0.005455259856546277, 0.06532462900349355, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6382915607944724, 0.0, 0.1058392854111573, 0.06419509685388734, 0.0, 0.0, 0.42600921169580896, 0.0, 0.6948705846598551, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7494592390120385, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.34703521803027376, 0.47959926529853425, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18954560408868362, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04058791510732469, 0.0, 0.0, 0.0, 0.026371559760006224, 0.46735915191246824, 0.9729562858716514, 0.0, 0.01593384874339247, 0.0, 0.0, 0.10548242945325798, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08182217469250767, 0.0, 0.0, 0.0, 0.0, 0.5929119201290493, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0028851424117770368, 0.14902256810885017, 0.0, 0.19393473922191487, 0.0010822975481770052, 0.10083006827906865, 0.005589290532560041, 0.0, 0.0377329438822351, 0.0, 0.0, 0.0, 0.0, 0.08622227292139113, 0.0, 0.0, 0.052960874748722735, 0.0, 0.0, 0.0, 0.040542431602682394, 0.0, 0.034748695303796415, 0.0, 0.0, 0.07778126624009696, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08990369242695052, 0.0, 0.0, 0.0, 0.0, 0.1714300400506459, 0.23319412483505944, 0.06883127399553583, 0.0, 0.0, 0.4520065142603474, 0.7559043080573538, 0.0, 0.9918256875421747, 0.34148047573693957, 0.23178166527267935, 0.1984049383893502, 0.0, 0.0, 0.0, 0.4618215114400494, 0.055660721213669, 0.23923628669541208, 0.0, 0.0, 0.39945045771087084, 0.3329245273531598, 0.25602890393383043, 0.0, 0.2574713970419185, 0.0, 0.0, 0.27848743576980106, 0.008801495971424074, 0.0, 0.0, 0.0, 0.0, 0.4961604274582618, 0.0, 0.0, 0.5434029369831717, 0.0, 0.0, 0.0, 0.0, 0.15767180411659634, 0.03460197933312267, 0.0, 0.0, 0.036131085316488384, 0.0, 0.0, 0.0, 0.016873683938744447, 0.019906225883667222, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.012507180486519448, 0.0, 0.02685500739865508, 0.028916495513405534, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029742024653825302, 1.0585077478673894, 0.0, 0.0, 0.10450313655197234, 0.0, 0.27087506529662764, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7518068036153462, 0.0, 0.2680435440340337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1316435251098364, 0.8078731280911045, 0.0, 0.0, 0.0, 0.10506968633342718, 0.23470506622896917, 0.0, 0.0, 0.607722294332459, 0.023665118775296444, 0.014839085130224942, 0.0, 0.0, 0.24386571546932873, 0.0, 0.0, 0.3502050356771847, 0.0, 0.0, 0.46379933676520235, 0.0, 0.08440789641107996, 0.04593440835303492, 0.021386035200774683, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7729032574550468, 0.0, 0.11781868003483978, 0.030607043037187642, 0.0, 0.1726108187023696, 0.09583059716129254, 0.5239548125179947, 0.4366934746091282, 0.0, 0.0, 0.24627150409293175, 0.0, 0.13007997889130285, 0.36528893478699903, 0.18318396866765946, 0.0, 0.011811348038501769, 0.0, 0.0, 0.0, 0.0, 0.0, 1.1723218684731558, 0.5524938653991974, 0.7739462295109258, 0.0, 0.7069108871009565, 0.0, 1.1639912229987677, 0.0, 0.0737216927746314, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.41689243790078717, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7826638975615551, 0.0, 0.0, 0.0, 0.1017910453533696, 0.0, 0.0, 0.0, 0.0, 0.022926661938484392, 0.0, 0.0, 0.24172521220469304, 0.33406187082542654, 0.0, 0.0, 0.31010342596966556, 0.0, 0.0, 1.1081747068991343, 0.7344335908166203, 0.16327913698089802, 0.7325151937485493, 0.17384385605370836, 0.08371482373128411, 0.0, 0.3420940653006234, 0.0, 0.04990946505718503, 0.5498243469410863, 0.0, 0.007722420577405236, 0.0906297807361463, 0.016298894248894004, 0.0, 0.17760842474448457, 0.7445477489471244, 0.0, 0.0, 0.23271741543898974, 0.5862478840032251, 0.38013450552556605, 0.0, 0.13625107884748244, 0.3102878234624971, 0.0, 0.0, 0.0613418632643825, 0.1222024301534575, 0.0, 0.0, 0.09768999149541487, 0.07432603695941839, 0.0, 0.0, 0.2373353492409029, 0.8187850328888507, 0.0, 0.1472545596990393, 0.08055057930039017, 0.0, 0.0, 0.0, 0.0, 0.022056121851574153, 0.7041166858972707, 0.0, 0.0, 0.0, 0.7708181971148897, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6591456110142444, 0.0, 0.0, 0.0, 0.5151326583061712, 0.4293405940090164, 0.0, 0.30993576190130123, 0.24212487706484054, 0.0, 0.0, 0.35913833699197834, 0.594616431743019, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7007742613782065, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07822848175716028, 0.0, 0.795037704009975, 0.0, 0.18176747614492506, 0.0, 0.0, 0.0, 0.0, 0.05218428597433502, 0.551641665900435, 0.0, 0.0, 0.0, 0.0, 0.4173251650328503, 0.13888627164939463, 0.0, 0.9020292850308806, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32443041606173034, 0.0, 0.3672605285185933, 0.0, 0.0, 0.0, 0.20671726976925492, 0.0, 0.0, 0.38426107037286794, 0.0, 0.0, 1.3158788906540237, 0.0, 0.0, 0.33314012692337136, 0.4077019730262151]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.1187145765025676, 0.0, 0.16555522612551515, 0.0, 0.0, 0.0, 0.0, 0.43509113842452285, 0.0, 0.0, 0.25672403787937165, 0.43862663884873543, 0.0, 0.0, 0.3519631419607619, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051120283482812334, 0.15945060967882835, 0.42044865267857073, 0.0, 0.019744477387695688, 0.0, 0.0, 0.0, 0.12726604148160792, 0.4480285054137333, 0.0, 0.41393771366257825, 0.0, 0.0, 0.1372243591915985, 0.12863434970716192, 0.0, 0.019238858430486484, 0.0, 0.2371659747040811, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.39682924637787165, 0.0, 0.8480118921637517, 0.0, 0.0, 0.0195483866997798, 0.0, 0.5990836331247341, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2618925497434801, 0.26117339231230247, 0.0, 0.0, 0.16216152735698644, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06997554550840408, 0.0, 0.0, 0.002400768013297612, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.4157511852632345, 0.5793963874059174, 0.0, 0.26436870752857605, 0.4172786501470117, 0.0, 0.0, 0.8079649846339338, 0.0, 0.0, 0.5764550461815096, 0.4229367652966696, 0.05379340446506314, 0.0, 0.0, 0.5795406808621261, 0.5877094760316834, 0.0, 0.0, 0.0, 0.0, 0.284387943824113, 0.0, 0.0, 0.0, 0.035174745039109515, 0.0, 0.0, 0.011970205674471077, 0.0, 0.0, 0.0, 0.0, 0.5436476197350472, 0.920039513761917, 0.0, 0.6198132723204128, 0.16799442509225773, 0.5753026732101696, 0.2043616977009669, 0.5065806869454675, 0.0, 0.0, 0.39160092945826996, 0.0, 0.11054447981865345, 0.0, 0.0, 0.9189729667337664, 0.0, 0.0, 0.6507053761422986, 0.6970188689802168, 0.0, 0.08297492397617155, 0.9062181287136433, 0.0, 0.059530976608982995, 0.012438951345378766, 0.0, 0.0, 0.0, 0.0, 0.2533819740366263, 0.9473531228336374, 0.06450793068804792, 0.0, 0.41573543153630554, 0.0, 0.0, 0.0, 0.7238062468593162, 0.0, 0.0, 0.3590904912393951, 0.07774042001084827, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6251886494903025, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44684741712517223, 0.0, 0.0, 0.0, 0.0, 0.010812740091707317, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8163131959379999, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2672156592426391, 0.0, 0.028807779838791864, 0.0, 0.0, 0.0, 0.025506753620224757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.022871104613233297, 0.0, 0.6057451127777128, 0.0, 0.0, 0.05122083512724408, 0.0, 0.0, 0.26967234588040656, 0.0, 0.0, 0.6655341287456478, 0.0, 0.41411417571013454, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29998038732284904, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06750566800337324, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3426210978919867, 0.3800174489235809, 0.0, 0.6531468239127369, 1.5341196475571879, 0.0, 0.0, 0.5993450019914057, 0.0, 0.0, 0.318944682359523, 0.0, 0.0, 0.0, 1.2766961856974943, 0.0, 0.47028907930153113, 0.46890260973852405, 0.0, 0.2635141940642454, 0.0, 0.06844040704623247, 0.6776383700271937, 0.08344450181255293, 0.0, 0.0, 0.13135428676134797, 0.1357944044209692, 0.0, 0.0, 0.0, 0.38624172924075223, 0.0, 0.0, 0.0, 0.23564395924169773, 0.0, 0.7014291092208349, 0.11139739784790205, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008393202836106917, 0.0, 0.22229541093446364, 0.2882110765245937, 0.0, 0.2931292388749959, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24423669216579333, 0.0, 0.07507242489058646, 0.0, 0.0, 0.14176191313790465, 0.0, 0.0, 0.0, 0.054753508738442806, 0.11008634170637227, 0.0, 0.0, 0.0, 0.0, 0.0, 0.024773126340884036, 0.0, 0.0, 0.38053755501306186, 0.0, 0.6713587667580375, 0.05335137428594376, 0.0, 0.0, 0.009224220899634665, 0.0, 0.07390888522469428, 0.1992308489896435, 0.12678608744717204, 0.0, 0.0546923223511062, 0.11313411705958114, 0.0, 0.0, 0.0, 0.0, 0.05169899432402749, 0.019742405777142896, 0.1769782400741126, 0.0, 0.0, 0.09297789149141053, 0.028906196325416873, 0.0, 0.0, 0.012919011582055164, 0.0, 0.0, 0.3208972845059436, 0.0, 0.0, 0.0046103209297173, 0.0, 0.0, 0.00416876885269193, 0.0729081194704697, 0.0, 0.0, 0.0, 0.07125538498910843, 0.0, 0.0, 0.03513444799266689, 0.0, 0.07540438323786366, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04369081060273281, 0.0, 0.0, 0.0, 0.014769980988042226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.017283118828420634, 0.006620940647292606, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006092931164902776, 0.0, 0.16137232276465496, 0.0, 0.15262637216887753, 0.013645384773351038, 0.16271613196948126, 0.0, 0.0, 0.0, 0.0, 0.17730029672438757, 0.41874765425641397, 0.054497803302564006, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10045113292307115, 0.27028417756519546, 0.07991567883089672, 0.0, 0.0, 0.0, 0.0, 0.0, 0.01798371330728596, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5859834957136911, 0.5086687281653502, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07646258969830243, 0.0, 0.0, 0.02773130153308066, 0.07708391588594585, 0.0, 0.0, 0.06185373806995992, 0.0, 0.0, 0.033137714842779345, 0.0, 0.0, 0.0, 0.0, 0.028021730318764978, 0.07388933025705045, 0.0, 0.021389015345232583, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046371970770837774, 0.04025364462832554, 0.2181921153062336, 0.4335185189335439, 0.0, 0.0, 1.0038009425423415, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4280152293034966, 0.0, 0.08414972142221414, 0.0, 0.3712598089597713, 0.0, 0.06370844553850769, 0.0, 0.0, 0.0, 0.0, 0.5083497561860121, 0.0, 0.0, 0.0, 0.17350738400022994, 0.0, 0.0, 0.0, 0.0, 0.5680638629882098, 0.4512837677833129, 0.036928112404588626, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6736518032785722, 0.0, 0.0, 0.0, 0.0, 0.3438277430889845, 0.1331574579932683, 0.8185600695730958, 0.0, 0.0, 0.017261448593960855, 0.0, 0.5289976863810653, 0.0, 0.0, 0.0, 0.0, 0.13826565194431473, 0.0, 0.12839377709982103, 0.8277070113616852, 0.0, 0.0, 0.3904546499995126, 0.08179569775458351, 0.0, 0.0, 0.0, 0.0, 0.16848803520369499, 0.0, 0.0, 0.005780600674157121, 0.0, 0.0, 0.0, 0.0, 0.042429105563066505, 0.0, 0.0, 0.5671026868317051, 0.5831842436077501, 0.0, 0.0, 0.5203885995071309, 0.0, 0.0, 0.0, 0.0, 0.03279957809056344, 0.20563143706052323, 0.8140555730584957, 0.0, 0.11735707443596549, 0.0, 0.0, 0.0, 0.0, 0.05942421719401875, 0.13531075914415133, 0.0, 0.22862377269710113, 0.0, 0.0, 0.0, 0.0, 0.009783289930470927, 0.0, 0.49666013194599, 0.01297478801242045, 0.004970474495620279, 0.0, 0.0, 0.0, 0.0, 0.18702095525297172, 0.0, 0.0, 0.49027730046536305, 0.0, 0.0, 0.0, 0.3100811795242501, 0.0, 0.5172830310180929, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5147075854808417, 0.0, 0.23506445593598685, 0.0, 0.0, 0.0984177418166802, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6597667532607603, 0.0, 0.7531258126074596, 0.0, 0.0, 0.0, 0.0, 0.009060495116628974, 0.0, 0.14938403565323904, 0.23931891774764502, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17320374473408556, 0.0, 0.0, 0.8859260157921318, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2593451028242532, 0.13535058061487634, 0.0, 0.17876385946442425, 0.5885021691653141, 0.4462993508157936, 0.0, 0.38646137613385273, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08841279830908562, 0.0, 0.0, 0.4090685041141252, 0.2385779614705672, 0.0, 0.32657075289021537, 0.0, 0.3891842232348578, 0.46695749861500585, 0.0, 0.20033954304824086, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6140772326336235, 0.21962331732895995, 0.0, 0.0, 0.21665980127772702, 0.0, 0.10259951624992725, 0.0040997688735825025, 0.0, 0.0, 0.0178257297768441, 0.0025383566681682393, 0.21683531480545457, 0.0, 0.027677402398657985, 0.0, 0.1880826476230884, 0.3419147609793875, 0.03227511522566195, 0.19053492425855037, 0.0, 0.06432217258278244, 0.0026780235214896283, 0.0, 0.0, 0.464125489835237, 0.09967606965443436, 0.0, 0.0, 0.0, 0.011788389508631971, 0.03206041622309702, 0.0, 0.0060682844433003185, 0.0, 0.0, 0.0, 0.010791956772858862, 0.0, 0.0, 0.0, 0.0, 0.4329905527364345, 0.14376890418721155, 0.6930376581272882, 0.0, 0.611818052941564, 0.6291676211651914, 0.0, 0.0, 0.5614206159067703, 0.48216800990329456, 0.0, 0.0, 0.4507229848159907, 0.0, 0.0, 0.8782428778065052, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06410974538727675, 0.23291225157991716, 0.08679043179604816, 0.0, 0.0, 0.08995902157278039, 0.8808378297797503, 0.0, 0.0, 0.0, 0.3618017482397369, 0.07709259450646033, 0.0, 0.22347789493902354, 0.0, 1.4151156566032244, 0.0, 0.0, 0.0876553401034732, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.35023812146064465, 0.10119869206094158, 0.0, 0.0, 0.0, 0.03421091843192662, 0.0, 0.18934530571059222, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.040031965441735276, 0.015335731346610126, 0.0, 0.0, 0.0, 0.0, 0.5012279391934354, 0.14361151525658541, 0.0, 0.05781748261134272, 0.17152855777668224, 0.0, 0.498484457540378, 0.0, 0.0, 0.7074889608036871, 0.0, 0.0, 0.0, 0.0, 0.0, 0.36413161255211174, 0.10650975776468122, 0.0027919607805886224, 0.1717164070699339, 0.0, 0.0, 0.0, 0.31636490805397033, 0.0, 0.0, 0.0, 0.3781004501122092, 0.1664160983543511, 0.0, 0.10894483484211534, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06899783350353156, 0.1313910038295779, 0.5458205926873976, 0.0, 0.2058361256028114, 0.0983057734206431, 0.006586106310131405, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13715236217863272, 0.026867165999227966, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0035515304259612105, 0.0, 0.0, 0.5329776529167246, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.397719517913955, 0.20668056810136554, 0.1307286941015916, 0.0, 0.19979734260211207, 0.13509882393613562, 0.0, 0.0, 0.0, 0.4428910220796438, 0.0, 0.10971922982381796, 0.20405686697329703, 0.0, 0.0, 0.0, 0.4155385933508652, 0.0, 0.030373091671251427, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02870549966274466, 0.0, 2.221236796150802e-5, 0.04518680503118196, 0.8557997812159583, 0.0, 0.0, 0.0, 0.33295230926411423, 0.0, 0.0, 0.1651823382455281, 0.0, 0.0, 0.10987547938954217, 0.038321493889877094, 0.0, 0.0, 0.9167265220224268, 0.0, 0.41223669995910156, 0.0062879102301798264, 0.006460790579658201, 0.0, 0.015093288171720337, 0.004653032070207847, 0.0, 0.0, 0.21192982566516394, 0.0, 0.5265530542756913, 0.004398370159579225, 0.3103332077675556, 0.0, 0.0, 0.21886457786346297, 0.058793164358353744, 0.24052003353974485, 0.5039916994286584, 0.08865805888962155, 0.0, 1.2109591957845456, 0.0, 0.4576423956337198, 0.13738787883657938, 0.3665641879979031, 0.00039223002823340837, 0.0, 0.6257753572135888, 0.0, 1.0620388990418166, 0.04837586177991647, 0.05564954721706949, 0.23699310888410263, 0.0060621596830514254, 1.2406804285104875, 0.0, 0.6055788924273563, 0.1024025590217045, 0.41360202805293217, 0.5476995216716073, 0.17831079467145505, 0.0, 0.0, 0.0, 0.14728996725917032, 0.19581503373322434, 0.10219463649126194, 0.0, 0.0, 1.213270546019433, 0.06327342954871182, 0.0, 0.0, 0.34855390390603164, 0.0, 0.0, 0.2854684709047343, 0.28462687503630496, 0.0, 0.0, 0.0, 0.06675489490570531, 0.4113308129658067, 0.0, 0.049609846106367136, 0.0, 0.0, 0.0, 0.0, 0.2938483162830928, 0.35256998241930354, 0.0, 0.15126367898557985, 0.0, 0.0, 0.1430373863296425, 0.0, 0.11979050068949273, 0.0, 0.0, 0.0, 0.2174719417996252, 0.18492143615091797, 0.5613745989840638, 0.0, 0.1269084936189851, 0.13050728832210684, 0.0, 0.008090983120695843, 0.11645462945856581, 0.45646266655488743, 0.0, 0.0, 0.018120109170533364, 0.0, 0.0, 0.18217259219167142, 0.0, 0.0, 0.23544229686275722, 0.0, 0.072369241454098, 0.0, 0.013298187548207349, 0.0, 0.15536962738337737, 0.0, 0.0, 0.0, 0.5485281455413065, 0.0, 0.0, 0.0, 0.07504798957314487, 0.13800884999205565, 0.023881103672210243, 0.4000634234277266, 0.0, 0.63983454521553, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1274757935226854, 0.0, 0.060340389443721644, 0.0, 0.0, 0.0, 0.0, 0.046886662511488715, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4105919579209241, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17717763704599515, 0.0, 0.0, 0.006078729370399735, 0.0, 0.0, 0.0, 0.4419304781486809, 0.004498905638339938, 0.0, 0.0, 0.06013187036225827, 0.061837053761552255, 0.158000195476362, 0.08245930986204707, 0.055178613203866224, 0.0, 0.3921588247960043, 0.051054375379452996, 0.0, 0.3113852203955569, 0.0, 0.08631714383210826, 0.016249403505819805, 0.0, 0.5064243516388502, 0.0, 0.0799687272151233, 0.0, 0.06016447367008715, 0.0, 0.0, 0.12723000596711698, 0.0, 0.0, 0.0, 0.0, 0.3344116617465516, 0.28448339782348236, 0.03555929040895464, 0.12972821265302345, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05771825347353467, 0.0, 0.06101920493228206, 0.0, 0.1422424089220273, 0.0, 0.0, 0.0850349690926388, 0.0, 0.6465489235087094, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9592391331341867, 0.0, 0.0, 0.0, 0.07533170200640231, 0.3935757364788316, 0.41733426606664215, 0.0, 0.0, 0.0, 0.0, 0.8096836326115127, 0.0, 0.0, 0.15672712010482948, 0.08471008784973191, 0.0, 0.0, 0.021315681001762884, 0.0, 0.0, 0.0, 0.6515686149424397, 0.0, 0.04354065349809789, 0.5887361460115157, 0.0, 0.3314629690186724, 0.08254082170798169, 0.0, 0.5363022284331493, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20539826744479112, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20437563182844645, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08512737043917705, 0.0, 0.0, 0.0, 0.21221590140088104, 0.0, 0.5922163084848736, 0.0, 0.054946173604955253, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11912480847073124, 0.10340745987043, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22405559305996067, 0.04389088686607588, 0.0, 0.8369237022137216, 0.0, 0.0, 0.303533841030579, 0.8437244477194209, 0.0, 0.0, 0.6770220530788269, 0.0, 0.08868596150524616, 0.0, 0.0, 0.0, 0.005801870585523199, 0.0, 0.3067127385215406, 1.9980597464483445, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1818471988215991, 0.0, 0.0, 0.0, 0.0, 0.09250846502860006, 0.0, 0.0, 0.0, 0.14804755431292183, 0.0, 0.3797383608658618, 0.39017892030987883, 0.0, 0.035065009177551926, 0.28100508860898343, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2656255916096575, 0.01029999428072384, 0.026319871200300066, 0.0, 0.0, 0.35174701729018143, 0.019026589888644814, 0.0, 0.0, 0.0, 0.0, 0.10260912587786382, 0.0, 0.0204467738415142, 0.0, 0.023687486390763176, 0.0, 0.0, 0.002174927201126577, 0.0, 0.09114373059640297, 0.0, 0.2642096712527522, 0.3907643461384895, 0.0, 0.0, 0.18051818330232947, 0.0, 0.3874221185422575, 0.6531078672631825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15551832566217896, 0.0, 0.1916820827839075, 0.0, 0.0, 0.08276135601321193, 0.0, 0.10030127909330487, 0.0, 0.0, 0.0, 0.10537887040654752, 0.0, 0.17805025311577488, 0.0, 0.010472659941918684, 0.0, 0.0, 0.007619143135798, 0.0, 0.12561988447587705, 0.0, 0.0, 0.7794014171836517, 0.0, 0.08402510727068294, 0.0, 0.3682135686649267, 0.08647369259665981, 0.09410614716697653, 0.611021014238459, 0.0, 0.0, 0.023955493193970948, 0.0, 0.0, 0.007434430348560844, 0.0, 0.0, 0.0, 0.24285369100807747, 0.0, 0.0, 0.0051185021691807515, 0.0, 0.0015127483220163092, 0.0, 0.0, 0.06096785123225053, 0.014193124550026902, 0.5775319451121608, 0.0, 0.0, 0.0, 0.007997400222196374, 0.6747251647940697, 0.0, 0.0, 0.0, 0.0, 0.7027693457851822, 0.0, 0.0, 0.055434654145900264, 0.0, 0.0, 0.0, 0.02587284155878174, 0.0, 0.42673143134824615, 0.004724246163513554, 0.4406790171730267, 0.0, 1.0342538585019783, 0.5747154140513469, 0.0, 0.9363482803339344, 0.7135280098555865, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9563104993907826, 0.0, 0.0, 0.0, 0.8295023845011231, 0.10509888461130146, 0.2471322355632557, 0.3801044173906537, 0.0, 0.0, 0.0, 0.1514367226333477, 0.0, 0.0, 0.0, 0.24534157695942965, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.052661051195310594, 0.6550399256456869, 0.5803102488724085, 0.0, 0.5319072548222628, 0.46172731619827034, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.026741428574906606, 0.0, 0.7082513040743756, 0.0, 0.0, 0.4418255985655133, 0.1449878921305842, 0.3039326972841545, 0.0, 0.0, 0.0, 1.198252644211342, 0.44500849169967277, 0.23918686672510267, 0.0, 0.0, 0.19736692078049992, 0.0, 0.0, 0.0, 0.0762301466058952, 0.3507440605568865, 0.4669973871873196, 0.0, 0.06417785026076955, 0.0, 0.0, 0.07892920039677795, 0.20151756987027533, 0.0, 0.5298004507120764, 0.006913800133275409, 0.0, 0.0742780358218034, 0.0, 0.6026732223863505, 0.0, 0.0, 0.5351202277676342, 0.0, 0.0, 0.9548891902757952, 0.02916984862304253, 0.0, 0.4970347785792808, 0.12683003730681902, 0.0180604034141702, 0.0, 0.2650052427173023, 0.0, 0.033791924886614616, 0.0, 0.04181580147667587, 0.0, 0.4621910495164758, 0.0, 0.0, 0.0190541328400638, 0.0, 0.17864673433347314, 0.014160348828667728, 0.8165447001064132, 0.09368415058058097, 0.9079968531646069, 0.08687864486537158, 0.19492858047186096, 0.10063554575175, 0.0, 0.09210666608746948, 0.01874477292287561, 0.03748966025771319, 0.0, 0.5779501492966836, 0.0012862204434733993, 0.220963909203652, 0.3086404911712966, 0.17631145912557372, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032159896791554, 0.0, 0.1846953640258127, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07139034913327573, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37871083555251084, 0.0, 0.0, 0.0, 0.0, 0.19265602282403793, 0.0, 0.0, 0.606424267788203, 0.011600938808477314, 0.0, 0.63655122023184, 0.8091094673344561, 0.15945386155042648, 0.21681046587583439, 0.5841977471111124, 0.14228431684797266, 0.0, 0.4919831840901785, 0.07005765326837811, 0.0, 0.4452652454663618, 0.0, 0.2225785522561698, 0.0, 0.0, 0.565764962530824, 0.0, 0.0, 0.0, 0.09016013522690633, 0.0, 0.0, 0.054929050345560504, 0.0, 0.0, 0.0397070718161962, 0.0, 0.3253549491861982, 0.39037279561642807, 0.09169366625332782, 0.16748228205826332, 0.0, 0.0, 0.6136975564576865, 0.0, 0.0, 0.3026006369046373, 0.0, 0.649431418360159, 0.08211939816658421, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8259750138040276, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5145740577075524, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.45723140022915015, 0.0, 0.0, 0.9202097992461084, 0.168004673879535, 0.0, 0.0, 0.1251531867765232, 0.0, 0.2137981131137785, 0.0, 0.013898368242301713, 0.0, 0.0, 0.7137867360685719, 0.0, 0.0, 0.1000729174155476, 0.0, 0.0, 0.03483089759667312, 0.12636252602014256, 0.0, 0.6417666786106352, 0.47874755782682904, 0.0, 0.0, 0.42719736321019475, 0.0, 0.269711179183823, 0.0, 0.0, 0.0, 0.0, 0.668274429237161, 0.0, 0.0, 0.19736413928693208, 0.0, 0.64140191275638, 0.0, 0.04878252313782071, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7804894714968978, 0.1354649020531392, 0.7521947991243342, 0.061565240681645095, 0.7064549771516211, 0.0, 0.0, 0.0, 0.1369213608036062, 0.598180503319145, 0.0, 0.4894142513129519, 0.14663698801711797, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14418506746458087, 0.027360830334206502, 0.0, 0.0, 0.11896445459410832, 0.016940356460817766, 0.08867849541915622, 0.0, 0.0, 0.0, 0.0, 0.014527597186767355, 0.0, 0.0, 0.0, 0.0, 0.017872458048705516, 0.09208038488681886, 0.0, 0.01328217046242409, 0.0, 0.0, 0.0, 0.0, 0.07867275819804301, 0.09439445944634833, 0.0, 0.040498210068061674, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), 42), 42)),) julia> @finch_code begin Ct .= 0 for j = parallel(_) @@ -734,7 +734,7 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.08838669783079417, 0.24540062578718655, 0.0, 0.0, 0.0, 0.0, 0.2598139726110033, 0.0, 0.0, 0.008999058499533074, 0.10561231293601407, 0.018993358540021866, 0.3713088213439608, 0.1272213104915037, 0.0, 0.04569648380052932, 0.0, 0.6778277114032399, 0.0, 1.0116444857173326, 0.1419594034849179, 0.849786220982489, 0.1853715018708835, 0.0, 0.41575027296468353, 0.027919812909200686, 0.38129764067914484, 0.0, 0.010472223603003109, 0.32765224234190193, 0.0, 0.0, 0.0, 0.27657062580546904, 0.018635375946533275, 0.0, 0.6553105493426397, 0.1806768240966126, 0.0, 0.0, 0.13022235819683495, 0.0, 0.0, 0.0096207645890863, 0.0, 0.0, 0.0, 0.0, 0.0027620603050478813, 0.0, 0.0, 0.0, 0.0, 0.06777735948867263, 0.16424694314849322, 0.05466156243395641, 0.0, 0.3550122664783007, 0.0, 0.16598631348758813, 0.0, 0.09916577661749644, 0.0, 0.0, 0.017171766504479664, 0.14883499722913907, 0.14454297081157494, 0.0, 0.0, 0.0, 0.08135785354072747, 0.18934501987281463, 0.0, 0.0, 0.0, 0.043171173549343585, 0.04442771737900286, 0.0, 0.0, 0.16847976307679274, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4519419326045341, 0.0022494085401006682, 0.0, 0.09264806290445121, 0.0, 0.0, 0.5779259042074504, 0.0, 0.0, 0.0, 0.01319039039025495, 0.0, 0.0, 0.05821123759190987, 0.008570313787111606, 0.12498925860233108, 0.3161944438230963, 0.0, 0.0, 0.0, 0.0, 0.03428001709676162, 0.0, 0.0, 0.0, 0.4239046512601812, 0.0, 0.0, 0.0, 0.0, 0.006439869364205756, 0.0, 0.19268641103781292, 0.0, 0.0, 0.0, 0.13842608775449636, 0.7754112567712441, 0.5650474898241402, 0.16678352690096504, 0.0, 0.0, 0.26721012017234747, 0.0, 0.0, 0.40379612390902914, 0.0, 0.5616249905190419, 0.0, 0.0, 0.0, 0.05914491909738165, 0.0, 0.0, 0.5796881176474965, 0.0, 0.0, 0.0, 0.0, 0.19259492607938428, 0.5396680351153355, 0.1002017616669876, 0.0, 0.0, 0.07018769309449151, 0.0, 0.0, 0.0, 0.8890997886610695, 0.01580855669802033, 0.07592126473643429, 0.0, 0.0, 0.5327597008182733, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26650628783183555, 0.0, 0.0, 0.4177758368274485, 0.01847646120309497, 0.2474671864399932, 0.030137257707486417, 0.0, 0.0, 0.0, 0.0, 0.4333965515966774, 0.0, 0.025363517487659904, 0.0, 0.0, 0.28727696476738296, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.48463873218296616, 0.3619901497543638, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3095355097692787, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08881016246594031, 0.0864536634210502, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13334438240099766, 0.0, 0.2743296378950603, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21573236386631758, 0.138874394226427, 0.21526827303910834, 0.0, 0.8276738568887637, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13803323038392623, 0.0, 0.0, 0.18937725647626488, 0.0, 0.09756025088965181, 0.10247093349242449, 0.14247269057616566, 0.0, 0.4644170645216008, 0.0, 0.0, 0.0, 0.6396576582705668, 0.0, 0.14648223852485512, 0.0, 0.3845502326592231, 0.0, 0.0, 0.0, 0.0, 0.01873756402105984, 0.01865952833886222, 0.015020499411212522, 0.0, 0.11259829701043601, 0.13537240455394534, 0.18963280616455852, 0.0, 0.1732077631723114, 0.0, 0.009279305276553587, 0.0, 0.09430577452314615, 0.07566718263303025, 0.06172210939249301, 0.0, 0.0, 0.0017837976727260341, 0.0, 0.0, 0.06543462567823881, 0.0621898641418941, 0.0, 0.0, 0.0, 0.41468742426256355, 0.21475258071539002, 0.0, 0.0, 0.08728790458911416, 0.0, 0.0, 0.4956863169283368, 0.0, 0.0, 0.3312300382813116, 0.0, 0.6814401538748236, 0.017040189816468283, 0.0, 0.0, 0.0, 0.0, 0.1702496303089558, 0.04558027585085677, 0.0, 0.0, 0.05652088848846798, 0.0, 0.0, 0.039516412285590885, 0.04836078861030929, 0.0, 0.0, 0.0, 0.0066658135086557066, 0.28756231542228783, 0.0, 0.0, 0.005213055047386901, 0.0, 0.03077146873270733, 0.0, 0.18174661292486113, 0.011855817392138795, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2550943184597343, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19130663987033655, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08795782309469964, 0.4949588224757624, 0.10547057221471998, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0428147611319233, 0.0, 0.4336529209634745, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10981699391447328, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14060207841669792, 0.19125923680987167, 0.17120811796462362, 0.0, 0.0, 0.29682703146376954, 0.2309028098716656, 0.0, 0.3415808438027304, 0.5413871431291847, 0.19010077735847383, 0.0, 0.0, 0.0, 0.037176095928915485, 0.0, 0.0, 0.19621484736356867, 0.46400800412758475, 0.6251709107930822, 0.11840971377140953, 0.5297289566486542, 0.0, 0.0, 0.0629827610017505, 0.0, 0.30811879649367063, 0.0, 0.43390554368076734, 0.0, 0.3078202365484454, 0.0, 0.0, 0.06464271443386868, 0.0, 0.0, 0.7925386152607364, 0.0, 0.0, 0.0, 0.0, 0.4871987999416911, 0.0, 0.0, 0.0, 0.026241068751647587, 0.4048536827096608, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04667237073016084, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008398941803472277, 0.0, 0.3462604046867109, 0.0, 0.41520221547875746, 0.0, 0.0, 0.0, 0.49209502240450126, 0.6693906625198521, 0.19758221668125867, 0.008160985490142467, 0.2605302099636665, 0.0, 0.0, 0.0, 0.9022483783960523, 1.0694729952381887, 0.6653361553880242, 0.881281776229774, 0.001915716390555032, 0.022482711824403312, 0.0040432994483474245, 0.0, 0.3214035783779074, 0.6867348676262818, 0.0, 0.6858420722534031, 0.0, 0.5811377322397425, 0.04246482918579259, 0.11467932906673921, 0.09709202075873843, 0.0, 0.0, 0.0, 0.2200140216993193, 0.0, 0.7507517442378999, 0.0, 0.0, 0.7372603142185328, 0.0, 0.006741369353138395, 0.8069776586909365, 0.00396709224045839, 0.0, 0.0, 0.0, 0.6101879525945185, 0.0, 0.0, 0.026258353794755256, 0.4016774417320984, 0.014813931005383318, 0.6190727226045784, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11309418362565873, 0.0, 0.0, 0.0, 0.0, 0.0, 0.036526440507301174, 0.022956711251180283, 0.40907708831845013, 0.0012453094708774737, 0.0, 0.0, 0.0, 0.0, 0.014062827632021033, 0.0, 0.0, 0.0, 0.006394809610240893, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21784527989974428, 0.0, 0.0, 0.0, 0.3180108962002836, 0.2508741672819204, 0.17523704698611114, 0.13837147224686994, 0.27935616728122964, 0.1859955338163167, 0.0, 0.06462126637992056, 1.0008493550472979, 0.6004231261661688, 0.0, 0.3940831570768702, 0.0, 0.0, 0.1305734964236071, 0.0, 0.09786792103897592, 0.0, 0.11654231814191775, 0.46697515894469777, 0.5700094853415558, 0.1107417067979406, 0.346111937724667, 0.0, 0.1225882117910605, 0.0, 0.28673152989464684, 0.0, 0.12654022793408917, 0.0, 0.0, 0.45809293367016757, 0.3647743355850667, 0.817304098176075, 0.0036334642288677415, 0.0, 0.2669922423479005, 0.0, 0.0, 0.0, 0.32457729111200295, 0.5543705739187803, 0.8812247175026642, 0.16912005088903598, 0.5020073987686707, 0.0, 0.09252856828989332, 0.0, 0.0, 0.0, 0.06948083164247039, 0.2588335470174883, 0.23431107957691064, 0.0, 0.0, 0.4609326565956409, 0.0981996119487529, 0.0, 0.0, 0.0, 0.0, 0.41461953421729686, 0.2880401034246727, 0.0, 0.12878680297473977, 0.5528442548314576, 0.8638211211778427, 0.0, 0.19329232440572794, 0.07190135483727589, 0.0, 0.37985878824980135, 0.0, 0.0, 0.47943873587199365, 0.0, 0.1632157826430328, 0.028602417984395823, 0.12587604601890898, 0.20239239184313712, 0.0, 0.9957002205667365, 0.5403020941861382, 0.1731723605204449, 0.5984215188307392, 0.5906299727726914, 0.15421128542459664, 0.22417177182593684, 0.14760215442934868, 0.0, 0.0, 0.10452572448334531, 0.0, 0.0, 0.5192893646261969, 0.0, 0.0, 0.0, 0.03548389098440683, 0.0, 0.0, 0.5359908824860568, 0.0, 0.0, 0.4508397689271815, 0.17912612646003018, 0.05191685886593687, 0.015041105758856862, 0.0, 0.0, 0.07792048637164595, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16284516279577882, 0.07019827463547235, 0.0, 0.0017166852898648512, 0.022601665621833984, 0.0, 0.0, 0.0, 0.08820522946301469, 0.0, 0.0, 0.4597721334804677, 0.0, 0.01968862180697655, 0.1496625833744818, 0.0, 0.0, 0.0, 0.0, 0.042967175515187854, 0.0, 0.5925889649898668, 0.03501818713399176, 0.0, 0.23929946904107768, 0.0, 0.0, 0.0, 0.0, 0.0, 0.586042846539397, 0.0, 0.35012160211964255, 0.0, 0.0, 0.2671275149044985, 0.5254872140248491, 0.0, 0.0, 0.0, 0.4346599048698998, 0.0, 0.6685147232492785, 0.0, 0.0, 0.006603260891096502, 0.41222164853295895, 0.691126666160783, 0.3115253982735278, 0.0, 0.5948463934358659, 0.0, 0.6104915934501508, 0.0, 0.10122959156761935, 0.0, 0.0, 0.4361142638019697, 0.0, 0.0, 0.022953207777356696, 0.01768983406390727, 0.0, 0.49300859199961644, 0.0, 0.45242065570193146, 0.0, 0.25296290668039206, 0.24913417193879323, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0036117281801281323, 0.37981219294125684, 0.0, 0.7813883080906168, 0.37787984308171674, 0.0, 0.3540795182413977, 0.0, 0.0, 0.024079641916532137, 0.0, 0.3372996465844834, 0.4587109366214878, 0.0, 0.0, 0.0, 0.0, 0.008167928328435794, 0.30985126085873477, 0.0, 0.1769552845849796, 0.01014740975340464, 0.3239445526321744, 0.2589119416659987, 0.30500724408067964, 0.0, 0.8521343659652334, 0.0, 0.12278148254603906, 0.0, 0.0, 0.7559317032710442, 0.0, 0.4639073457870384, 0.3375990135598286, 0.0, 0.09771802789528808, 0.0, 0.0, 0.0, 0.0, 0.14259284539732897, 0.0, 0.0, 0.0, 0.03978581978010784, 0.4979059043742451, 0.0, 0.0, 0.02239395579386129, 0.0, 0.0, 0.08552679542089565, 0.0, 0.28975782063069117, 0.4544199284136855, 0.4879966224465369, 0.0, 0.5198773678370044, 0.09074414747732065, 0.0, 0.0, 0.0, 0.08751115961530397, 0.0, 0.0, 0.0, 0.0, 0.01723069885490719, 0.005476104703094391, 0.0, 0.0, 0.0, 0.0, 0.0, 0.018363845689630152, 0.0, 0.0, 0.0, 0.03456818780211805, 0.16076784648973388, 0.1339929852951158, 0.12939203287442297, 0.6506668934574178, 0.07556479761019191, 0.0, 0.0, 0.1120835499344092, 0.004448105032597938, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.424200452243984, 0.21870476868551994, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04400733534916703, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5084860468121182, 0.0, 0.0, 0.0, 0.06613225218879751, 0.0, 0.0, 0.03227907593043655, 0.0, 0.01489513919323321, 0.0, 0.0, 0.0004903768608608706, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3709186680024144, 0.0057636955333438475, 0.0, 0.0, 0.0, 0.0, 0.05167292145382253, 0.03114794005970685, 0.0, 0.0, 0.0, 0.04406332427000894, 0.0, 0.28333618254852055, 0.0, 0.0, 0.08754290037370453, 0.0, 0.030717709851121017, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15375069919642081, 0.17266284464812964, 0.0, 0.0, 0.0, 0.0, 0.4591427931520538, 0.0, 0.0, 0.4080740928256236, 0.04867028613084824, 0.0, 0.0, 0.19198247076461217, 0.0, 0.0, 0.0, 0.04903912896069461, 0.0, 0.0, 0.0, 0.03565133307467186, 0.011864802664565318, 0.0, 0.0770587282490205, 0.06882991093352155, 0.0, 0.32659059563162995, 0.036557980918752765, 0.0, 0.0, 0.0, 0.0, 0.03137440184410096, 0.0, 0.0, 0.0, 0.18642661293603366, 0.0, 0.0, 0.0, 0.0, 0.06772257249589227, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21100355273002191, 0.0, 1.3416336420880526, 0.0, 0.0, 0.46161810723264507, 0.0, 0.4582995461192519, 0.05104879083246295, 0.5773364122618407, 0.57352236887648, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5640999064171196, 0.6666836020552119, 0.06886868779194379, 0.564904097158741, 0.0, 0.3210670084651615, 0.0, 0.0, 0.0, 0.9392890324745945, 0.0, 0.0, 0.2984250122811811, 0.0, 0.009405052137469182, 0.0, 0.39950267169818077, 0.07050196115427894, 0.824636783426293, 0.4953951141450468, 0.0, 0.0, 0.34635403119710667, 0.8798483938054087, 0.39347138128916365, 0.0, 0.0, 0.41085938784277987, 0.0, 0.7572672907360996, 0.0, 0.1918766456362537, 0.14775814623354722, 0.0, 0.0, 0.18414622884752666, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32881972797464193, 0.22733765531865868, 0.29775899283396906, 0.0, 0.0, 0.0, 0.0387256895819095, 0.5151993362991701, 0.0, 0.0, 0.0, 0.008722287803381279, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1780184121162673, 0.0, 0.0, 0.0, 0.0, 0.0511079535437104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05738054033260683, 0.0, 0.0, 0.3177388426930726, 0.0, 0.0, 0.0019725686702392773, 0.0, 0.0, 0.0, 0.0, 0.20770780211002965, 0.0, 0.0, 0.0, 0.8220710140576788, 0.0, 0.0, 0.0, 0.0, 0.9922981121231631, 0.19272059014741777, 0.18871634512759347, 0.009978475777936804, 0.5372065554785002, 0.0, 0.0, 0.17523452577386275, 1.0717089910255204, 0.5571949298413089, 0.0, 0.3237380570219946, 0.0, 1.1122472434174695, 0.10030606802210519, 0.0, 0.42164300445661296, 0.0, 0.2034243141927581, 0.0, 1.0210169552267845, 0.19689099390765805, 0.14675887656145528, 0.15859984719751974, 0.2247981968120587, 0.0, 0.22026608101531156, 0.5078755745015515, 0.2690121908665218, 0.0, 0.0, 0.0, 0.3746062674772627, 0.7584612913730437, 0.0, 0.0, 0.8749551201631387, 0.5887430555293698, 0.8247249363546676, 0.21469878981542115, 1.002630449124598, 0.2572736542055717, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005299432156408299, 0.06219376030445952, 0.011184949515597283, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11747014454387752, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1628689565677918, 0.010974138077104432, 0.0, 0.0, 0.0, 0.0, 1.0297896192318396, 0.0, 0.662355409415741, 0.5720482757502646, 0.3113118281374319, 0.0, 0.0, 0.25393001900118484, 0.02276308091998572, 0.03508485404358758, 0.45957926224802004, 0.0, 0.05036277933399867, 0.1447652248957086, 0.0, 0.0242600552046752, 0.005732716773973234, 0.0, 0.0, 0.04566723978074626, 0.007798132412071851, 0.435160826872351, 0.19099152935556227, 0.0, 0.09109198019072849, 0.0, 0.0, 0.0, 0.0, 0.040872817508571836, 0.0, 0.8816978299630381, 0.023385944730671186, 0.20852512378086208, 0.3265908462108258, 0.0, 0.8135187830099228, 0.5004561612521131, 0.5929930445509373, 0.07024535595608956, 0.4293153063068892, 0.33966138448698774, 0.0, 0.0, 0.219723330992236, 0.0, 0.0, 0.32087091161635517, 0.10046935863374477, 0.0, 0.21249664109114016, 0.0, 0.0, 0.5675920409330384, 0.0, 0.0, 0.02195446551553763, 0.0, 0.0, 0.0, 0.7828555360473642, 0.0, 0.0, 0.0, 0.539158201637973, 0.0, 0.037194676308406484, 0.0, 0.5899620450765102, 0.0, 1.064333300573155, 0.0, 0.4126616356723095, 0.0, 0.0, 0.0, 0.0, 0.005455259856546277, 0.06532462900349355, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6382915607944724, 0.0, 0.1058392854111573, 0.06419509685388734, 0.0, 0.0, 0.42600921169580896, 0.0, 0.6948705846598551, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7494592390120385, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.34703521803027376, 0.47959926529853425, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18954560408868362, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04058791510732469, 0.0, 0.0, 0.0, 0.026371559760006224, 0.46735915191246824, 0.9729562858716514, 0.0, 0.01593384874339247, 0.0, 0.0, 0.10548242945325798, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08182217469250767, 0.0, 0.0, 0.0, 0.0, 0.5929119201290493, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0028851424117770368, 0.14902256810885017, 0.0, 0.19393473922191487, 0.0010822975481770052, 0.10083006827906865, 0.005589290532560041, 0.0, 0.0377329438822351, 0.0, 0.0, 0.0, 0.0, 0.08622227292139113, 0.0, 0.0, 0.052960874748722735, 0.0, 0.0, 0.0, 0.040542431602682394, 0.0, 0.034748695303796415, 0.0, 0.0, 0.07778126624009696, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08990369242695052, 0.0, 0.0, 0.0, 0.0, 0.1714300400506459, 0.23319412483505944, 0.06883127399553583, 0.0, 0.0, 0.4520065142603474, 0.7559043080573538, 0.0, 0.9918256875421747, 0.34148047573693957, 0.23178166527267935, 0.1984049383893502, 0.0, 0.0, 0.0, 0.4618215114400494, 0.055660721213669, 0.23923628669541208, 0.0, 0.0, 0.39945045771087084, 0.3329245273531598, 0.25602890393383043, 0.0, 0.2574713970419185, 0.0, 0.0, 0.27848743576980106, 0.008801495971424074, 0.0, 0.0, 0.0, 0.0, 0.4961604274582618, 0.0, 0.0, 0.5434029369831717, 0.0, 0.0, 0.0, 0.0, 0.15767180411659634, 0.03460197933312267, 0.0, 0.0, 0.036131085316488384, 0.0, 0.0, 0.0, 0.016873683938744447, 0.019906225883667222, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.012507180486519448, 0.0, 0.02685500739865508, 0.028916495513405534, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029742024653825302, 1.0585077478673894, 0.0, 0.0, 0.10450313655197234, 0.0, 0.27087506529662764, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7518068036153462, 0.0, 0.2680435440340337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1316435251098364, 0.8078731280911045, 0.0, 0.0, 0.0, 0.10506968633342718, 0.23470506622896917, 0.0, 0.0, 0.607722294332459, 0.023665118775296444, 0.014839085130224942, 0.0, 0.0, 0.24386571546932873, 0.0, 0.0, 0.3502050356771847, 0.0, 0.0, 0.46379933676520235, 0.0, 0.08440789641107996, 0.04593440835303492, 0.021386035200774683, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7729032574550468, 0.0, 0.11781868003483978, 0.030607043037187642, 0.0, 0.1726108187023696, 0.09583059716129254, 0.5239548125179947, 0.4366934746091282, 0.0, 0.0, 0.24627150409293175, 0.0, 0.13007997889130285, 0.36528893478699903, 0.18318396866765946, 0.0, 0.011811348038501769, 0.0, 0.0, 0.0, 0.0, 0.0, 1.1723218684731558, 0.5524938653991974, 0.7739462295109258, 0.0, 0.7069108871009565, 0.0, 1.1639912229987677, 0.0, 0.0737216927746314, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.41689243790078717, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7826638975615551, 0.0, 0.0, 0.0, 0.1017910453533696, 0.0, 0.0, 0.0, 0.0, 0.022926661938484392, 0.0, 0.0, 0.24172521220469304, 0.33406187082542654, 0.0, 0.0, 0.31010342596966556, 0.0, 0.0, 1.1081747068991343, 0.7344335908166203, 0.16327913698089802, 0.7325151937485493, 0.17384385605370836, 0.08371482373128411, 0.0, 0.3420940653006234, 0.0, 0.04990946505718503, 0.5498243469410863, 0.0, 0.007722420577405236, 0.0906297807361463, 0.016298894248894004, 0.0, 0.17760842474448457, 0.7445477489471244, 0.0, 0.0, 0.23271741543898974, 0.5862478840032251, 0.38013450552556605, 0.0, 0.13625107884748244, 0.3102878234624971, 0.0, 0.0, 0.0613418632643825, 0.1222024301534575, 0.0, 0.0, 0.09768999149541487, 0.07432603695941839, 0.0, 0.0, 0.2373353492409029, 0.8187850328888507, 0.0, 0.1472545596990393, 0.08055057930039017, 0.0, 0.0, 0.0, 0.0, 0.022056121851574153, 0.7041166858972707, 0.0, 0.0, 0.0, 0.7708181971148897, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6591456110142444, 0.0, 0.0, 0.0, 0.5151326583061712, 0.4293405940090164, 0.0, 0.30993576190130123, 0.24212487706484054, 0.0, 0.0, 0.35913833699197834, 0.594616431743019, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7007742613782065, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07822848175716028, 0.0, 0.795037704009975, 0.0, 0.18176747614492506, 0.0, 0.0, 0.0, 0.0, 0.05218428597433502, 0.551641665900435, 0.0, 0.0, 0.0, 0.0, 0.4173251650328503, 0.13888627164939463, 0.0, 0.9020292850308806, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32443041606173034, 0.0, 0.3672605285185933, 0.0, 0.0, 0.0, 0.20671726976925492, 0.0, 0.0, 0.38426107037286794, 0.0, 0.0, 1.3158788906540237, 0.0, 0.0, 0.33314012692337136, 0.4077019730262151]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.1187145765025676, 0.0, 0.16555522612551515, 0.0, 0.0, 0.0, 0.0, 0.43509113842452285, 0.0, 0.0, 0.25672403787937165, 0.43862663884873543, 0.0, 0.0, 0.3519631419607619, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051120283482812334, 0.15945060967882835, 0.42044865267857073, 0.0, 0.019744477387695688, 0.0, 0.0, 0.0, 0.12726604148160792, 0.4480285054137333, 0.0, 0.41393771366257825, 0.0, 0.0, 0.1372243591915985, 0.12863434970716192, 0.0, 0.019238858430486484, 0.0, 0.2371659747040811, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.39682924637787165, 0.0, 0.8480118921637517, 0.0, 0.0, 0.0195483866997798, 0.0, 0.5990836331247341, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2618925497434801, 0.26117339231230247, 0.0, 0.0, 0.16216152735698644, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06997554550840408, 0.0, 0.0, 0.002400768013297612, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.4157511852632345, 0.5793963874059174, 0.0, 0.26436870752857605, 0.4172786501470117, 0.0, 0.0, 0.8079649846339338, 0.0, 0.0, 0.5764550461815096, 0.4229367652966696, 0.05379340446506314, 0.0, 0.0, 0.5795406808621261, 0.5877094760316834, 0.0, 0.0, 0.0, 0.0, 0.284387943824113, 0.0, 0.0, 0.0, 0.035174745039109515, 0.0, 0.0, 0.011970205674471077, 0.0, 0.0, 0.0, 0.0, 0.5436476197350472, 0.920039513761917, 0.0, 0.6198132723204128, 0.16799442509225773, 0.5753026732101696, 0.2043616977009669, 0.5065806869454675, 0.0, 0.0, 0.39160092945826996, 0.0, 0.11054447981865345, 0.0, 0.0, 0.9189729667337664, 0.0, 0.0, 0.6507053761422986, 0.6970188689802168, 0.0, 0.08297492397617155, 0.9062181287136433, 0.0, 0.059530976608982995, 0.012438951345378766, 0.0, 0.0, 0.0, 0.0, 0.2533819740366263, 0.9473531228336374, 0.06450793068804792, 0.0, 0.41573543153630554, 0.0, 0.0, 0.0, 0.7238062468593162, 0.0, 0.0, 0.3590904912393951, 0.07774042001084827, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6251886494903025, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44684741712517223, 0.0, 0.0, 0.0, 0.0, 0.010812740091707317, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8163131959379999, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2672156592426391, 0.0, 0.028807779838791864, 0.0, 0.0, 0.0, 0.025506753620224757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.022871104613233297, 0.0, 0.6057451127777128, 0.0, 0.0, 0.05122083512724408, 0.0, 0.0, 0.26967234588040656, 0.0, 0.0, 0.6655341287456478, 0.0, 0.41411417571013454, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29998038732284904, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06750566800337324, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3426210978919867, 0.3800174489235809, 0.0, 0.6531468239127369, 1.5341196475571879, 0.0, 0.0, 0.5993450019914057, 0.0, 0.0, 0.318944682359523, 0.0, 0.0, 0.0, 1.2766961856974943, 0.0, 0.47028907930153113, 0.46890260973852405, 0.0, 0.2635141940642454, 0.0, 0.06844040704623247, 0.6776383700271937, 0.08344450181255293, 0.0, 0.0, 0.13135428676134797, 0.1357944044209692, 0.0, 0.0, 0.0, 0.38624172924075223, 0.0, 0.0, 0.0, 0.23564395924169773, 0.0, 0.7014291092208349, 0.11139739784790205, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008393202836106917, 0.0, 0.22229541093446364, 0.2882110765245937, 0.0, 0.2931292388749959, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24423669216579333, 0.0, 0.07507242489058646, 0.0, 0.0, 0.14176191313790465, 0.0, 0.0, 0.0, 0.054753508738442806, 0.11008634170637227, 0.0, 0.0, 0.0, 0.0, 0.0, 0.024773126340884036, 0.0, 0.0, 0.38053755501306186, 0.0, 0.6713587667580375, 0.05335137428594376, 0.0, 0.0, 0.009224220899634665, 0.0, 0.07390888522469428, 0.1992308489896435, 0.12678608744717204, 0.0, 0.0546923223511062, 0.11313411705958114, 0.0, 0.0, 0.0, 0.0, 0.05169899432402749, 0.019742405777142896, 0.1769782400741126, 0.0, 0.0, 0.09297789149141053, 0.028906196325416873, 0.0, 0.0, 0.012919011582055164, 0.0, 0.0, 0.3208972845059436, 0.0, 0.0, 0.0046103209297173, 0.0, 0.0, 0.00416876885269193, 0.0729081194704697, 0.0, 0.0, 0.0, 0.07125538498910843, 0.0, 0.0, 0.03513444799266689, 0.0, 0.07540438323786366, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04369081060273281, 0.0, 0.0, 0.0, 0.014769980988042226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.017283118828420634, 0.006620940647292606, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006092931164902776, 0.0, 0.16137232276465496, 0.0, 0.15262637216887753, 0.013645384773351038, 0.16271613196948126, 0.0, 0.0, 0.0, 0.0, 0.17730029672438757, 0.41874765425641397, 0.054497803302564006, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10045113292307115, 0.27028417756519546, 0.07991567883089672, 0.0, 0.0, 0.0, 0.0, 0.0, 0.01798371330728596, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5859834957136911, 0.5086687281653502, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07646258969830243, 0.0, 0.0, 0.02773130153308066, 0.07708391588594585, 0.0, 0.0, 0.06185373806995992, 0.0, 0.0, 0.033137714842779345, 0.0, 0.0, 0.0, 0.0, 0.028021730318764978, 0.07388933025705045, 0.0, 0.021389015345232583, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046371970770837774, 0.04025364462832554, 0.2181921153062336, 0.4335185189335439, 0.0, 0.0, 1.0038009425423415, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4280152293034966, 0.0, 0.08414972142221414, 0.0, 0.3712598089597713, 0.0, 0.06370844553850769, 0.0, 0.0, 0.0, 0.0, 0.5083497561860121, 0.0, 0.0, 0.0, 0.17350738400022994, 0.0, 0.0, 0.0, 0.0, 0.5680638629882098, 0.4512837677833129, 0.036928112404588626, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6736518032785722, 0.0, 0.0, 0.0, 0.0, 0.3438277430889845, 0.1331574579932683, 0.8185600695730958, 0.0, 0.0, 0.017261448593960855, 0.0, 0.5289976863810653, 0.0, 0.0, 0.0, 0.0, 0.13826565194431473, 0.0, 0.12839377709982103, 0.8277070113616852, 0.0, 0.0, 0.3904546499995126, 0.08179569775458351, 0.0, 0.0, 0.0, 0.0, 0.16848803520369499, 0.0, 0.0, 0.005780600674157121, 0.0, 0.0, 0.0, 0.0, 0.042429105563066505, 0.0, 0.0, 0.5671026868317051, 0.5831842436077501, 0.0, 0.0, 0.5203885995071309, 0.0, 0.0, 0.0, 0.0, 0.03279957809056344, 0.20563143706052323, 0.8140555730584957, 0.0, 0.11735707443596549, 0.0, 0.0, 0.0, 0.0, 0.05942421719401875, 0.13531075914415133, 0.0, 0.22862377269710113, 0.0, 0.0, 0.0, 0.0, 0.009783289930470927, 0.0, 0.49666013194599, 0.01297478801242045, 0.004970474495620279, 0.0, 0.0, 0.0, 0.0, 0.18702095525297172, 0.0, 0.0, 0.49027730046536305, 0.0, 0.0, 0.0, 0.3100811795242501, 0.0, 0.5172830310180929, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5147075854808417, 0.0, 0.23506445593598685, 0.0, 0.0, 0.0984177418166802, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6597667532607603, 0.0, 0.7531258126074596, 0.0, 0.0, 0.0, 0.0, 0.009060495116628974, 0.0, 0.14938403565323904, 0.23931891774764502, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17320374473408556, 0.0, 0.0, 0.8859260157921318, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2593451028242532, 0.13535058061487634, 0.0, 0.17876385946442425, 0.5885021691653141, 0.4462993508157936, 0.0, 0.38646137613385273, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08841279830908562, 0.0, 0.0, 0.4090685041141252, 0.2385779614705672, 0.0, 0.32657075289021537, 0.0, 0.3891842232348578, 0.46695749861500585, 0.0, 0.20033954304824086, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6140772326336235, 0.21962331732895995, 0.0, 0.0, 0.21665980127772702, 0.0, 0.10259951624992725, 0.0040997688735825025, 0.0, 0.0, 0.0178257297768441, 0.0025383566681682393, 0.21683531480545457, 0.0, 0.027677402398657985, 0.0, 0.1880826476230884, 0.3419147609793875, 0.03227511522566195, 0.19053492425855037, 0.0, 0.06432217258278244, 0.0026780235214896283, 0.0, 0.0, 0.464125489835237, 0.09967606965443436, 0.0, 0.0, 0.0, 0.011788389508631971, 0.03206041622309702, 0.0, 0.0060682844433003185, 0.0, 0.0, 0.0, 0.010791956772858862, 0.0, 0.0, 0.0, 0.0, 0.4329905527364345, 0.14376890418721155, 0.6930376581272882, 0.0, 0.611818052941564, 0.6291676211651914, 0.0, 0.0, 0.5614206159067703, 0.48216800990329456, 0.0, 0.0, 0.4507229848159907, 0.0, 0.0, 0.8782428778065052, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06410974538727675, 0.23291225157991716, 0.08679043179604816, 0.0, 0.0, 0.08995902157278039, 0.8808378297797503, 0.0, 0.0, 0.0, 0.3618017482397369, 0.07709259450646033, 0.0, 0.22347789493902354, 0.0, 1.4151156566032244, 0.0, 0.0, 0.0876553401034732, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.35023812146064465, 0.10119869206094158, 0.0, 0.0, 0.0, 0.03421091843192662, 0.0, 0.18934530571059222, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.040031965441735276, 0.015335731346610126, 0.0, 0.0, 0.0, 0.0, 0.5012279391934354, 0.14361151525658541, 0.0, 0.05781748261134272, 0.17152855777668224, 0.0, 0.498484457540378, 0.0, 0.0, 0.7074889608036871, 0.0, 0.0, 0.0, 0.0, 0.0, 0.36413161255211174, 0.10650975776468122, 0.0027919607805886224, 0.1717164070699339, 0.0, 0.0, 0.0, 0.31636490805397033, 0.0, 0.0, 0.0, 0.3781004501122092, 0.1664160983543511, 0.0, 0.10894483484211534, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06899783350353156, 0.1313910038295779, 0.5458205926873976, 0.0, 0.2058361256028114, 0.0983057734206431, 0.006586106310131405, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13715236217863272, 0.026867165999227966, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0035515304259612105, 0.0, 0.0, 0.5329776529167246, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.397719517913955, 0.20668056810136554, 0.1307286941015916, 0.0, 0.19979734260211207, 0.13509882393613562, 0.0, 0.0, 0.0, 0.4428910220796438, 0.0, 0.10971922982381796, 0.20405686697329703, 0.0, 0.0, 0.0, 0.4155385933508652, 0.0, 0.030373091671251427, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02870549966274466, 0.0, 2.221236796150802e-5, 0.04518680503118196, 0.8557997812159583, 0.0, 0.0, 0.0, 0.33295230926411423, 0.0, 0.0, 0.1651823382455281, 0.0, 0.0, 0.10987547938954217, 0.038321493889877094, 0.0, 0.0, 0.9167265220224268, 0.0, 0.41223669995910156, 0.0062879102301798264, 0.006460790579658201, 0.0, 0.015093288171720337, 0.004653032070207847, 0.0, 0.0, 0.21192982566516394, 0.0, 0.5265530542756913, 0.004398370159579225, 0.3103332077675556, 0.0, 0.0, 0.21886457786346297, 0.058793164358353744, 0.24052003353974485, 0.5039916994286584, 0.08865805888962155, 0.0, 1.2109591957845456, 0.0, 0.4576423956337198, 0.13738787883657938, 0.3665641879979031, 0.00039223002823340837, 0.0, 0.6257753572135888, 0.0, 1.0620388990418166, 0.04837586177991647, 0.05564954721706949, 0.23699310888410263, 0.0060621596830514254, 1.2406804285104875, 0.0, 0.6055788924273563, 0.1024025590217045, 0.41360202805293217, 0.5476995216716073, 0.17831079467145505, 0.0, 0.0, 0.0, 0.14728996725917032, 0.19581503373322434, 0.10219463649126194, 0.0, 0.0, 1.213270546019433, 0.06327342954871182, 0.0, 0.0, 0.34855390390603164, 0.0, 0.0, 0.2854684709047343, 0.28462687503630496, 0.0, 0.0, 0.0, 0.06675489490570531, 0.4113308129658067, 0.0, 0.049609846106367136, 0.0, 0.0, 0.0, 0.0, 0.2938483162830928, 0.35256998241930354, 0.0, 0.15126367898557985, 0.0, 0.0, 0.1430373863296425, 0.0, 0.11979050068949273, 0.0, 0.0, 0.0, 0.2174719417996252, 0.18492143615091797, 0.5613745989840638, 0.0, 0.1269084936189851, 0.13050728832210684, 0.0, 0.008090983120695843, 0.11645462945856581, 0.45646266655488743, 0.0, 0.0, 0.018120109170533364, 0.0, 0.0, 0.18217259219167142, 0.0, 0.0, 0.23544229686275722, 0.0, 0.072369241454098, 0.0, 0.013298187548207349, 0.0, 0.15536962738337737, 0.0, 0.0, 0.0, 0.5485281455413065, 0.0, 0.0, 0.0, 0.07504798957314487, 0.13800884999205565, 0.023881103672210243, 0.4000634234277266, 0.0, 0.63983454521553, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1274757935226854, 0.0, 0.060340389443721644, 0.0, 0.0, 0.0, 0.0, 0.046886662511488715, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4105919579209241, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17717763704599515, 0.0, 0.0, 0.006078729370399735, 0.0, 0.0, 0.0, 0.4419304781486809, 0.004498905638339938, 0.0, 0.0, 0.06013187036225827, 0.061837053761552255, 0.158000195476362, 0.08245930986204707, 0.055178613203866224, 0.0, 0.3921588247960043, 0.051054375379452996, 0.0, 0.3113852203955569, 0.0, 0.08631714383210826, 0.016249403505819805, 0.0, 0.5064243516388502, 0.0, 0.0799687272151233, 0.0, 0.06016447367008715, 0.0, 0.0, 0.12723000596711698, 0.0, 0.0, 0.0, 0.0, 0.3344116617465516, 0.28448339782348236, 0.03555929040895464, 0.12972821265302345, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05771825347353467, 0.0, 0.06101920493228206, 0.0, 0.1422424089220273, 0.0, 0.0, 0.0850349690926388, 0.0, 0.6465489235087094, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9592391331341867, 0.0, 0.0, 0.0, 0.07533170200640231, 0.3935757364788316, 0.41733426606664215, 0.0, 0.0, 0.0, 0.0, 0.8096836326115127, 0.0, 0.0, 0.15672712010482948, 0.08471008784973191, 0.0, 0.0, 0.021315681001762884, 0.0, 0.0, 0.0, 0.6515686149424397, 0.0, 0.04354065349809789, 0.5887361460115157, 0.0, 0.3314629690186724, 0.08254082170798169, 0.0, 0.5363022284331493, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20539826744479112, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20437563182844645, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08512737043917705, 0.0, 0.0, 0.0, 0.21221590140088104, 0.0, 0.5922163084848736, 0.0, 0.054946173604955253, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11912480847073124, 0.10340745987043, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22405559305996067, 0.04389088686607588, 0.0, 0.8369237022137216, 0.0, 0.0, 0.303533841030579, 0.8437244477194209, 0.0, 0.0, 0.6770220530788269, 0.0, 0.08868596150524616, 0.0, 0.0, 0.0, 0.005801870585523199, 0.0, 0.3067127385215406, 1.9980597464483445, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1818471988215991, 0.0, 0.0, 0.0, 0.0, 0.09250846502860006, 0.0, 0.0, 0.0, 0.14804755431292183, 0.0, 0.3797383608658618, 0.39017892030987883, 0.0, 0.035065009177551926, 0.28100508860898343, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2656255916096575, 0.01029999428072384, 0.026319871200300066, 0.0, 0.0, 0.35174701729018143, 0.019026589888644814, 0.0, 0.0, 0.0, 0.0, 0.10260912587786382, 0.0, 0.0204467738415142, 0.0, 0.023687486390763176, 0.0, 0.0, 0.002174927201126577, 0.0, 0.09114373059640297, 0.0, 0.2642096712527522, 0.3907643461384895, 0.0, 0.0, 0.18051818330232947, 0.0, 0.3874221185422575, 0.6531078672631825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15551832566217896, 0.0, 0.1916820827839075, 0.0, 0.0, 0.08276135601321193, 0.0, 0.10030127909330487, 0.0, 0.0, 0.0, 0.10537887040654752, 0.0, 0.17805025311577488, 0.0, 0.010472659941918684, 0.0, 0.0, 0.007619143135798, 0.0, 0.12561988447587705, 0.0, 0.0, 0.7794014171836517, 0.0, 0.08402510727068294, 0.0, 0.3682135686649267, 0.08647369259665981, 0.09410614716697653, 0.611021014238459, 0.0, 0.0, 0.023955493193970948, 0.0, 0.0, 0.007434430348560844, 0.0, 0.0, 0.0, 0.24285369100807747, 0.0, 0.0, 0.0051185021691807515, 0.0, 0.0015127483220163092, 0.0, 0.0, 0.06096785123225053, 0.014193124550026902, 0.5775319451121608, 0.0, 0.0, 0.0, 0.007997400222196374, 0.6747251647940697, 0.0, 0.0, 0.0, 0.0, 0.7027693457851822, 0.0, 0.0, 0.055434654145900264, 0.0, 0.0, 0.0, 0.02587284155878174, 0.0, 0.42673143134824615, 0.004724246163513554, 0.4406790171730267, 0.0, 1.0342538585019783, 0.5747154140513469, 0.0, 0.9363482803339344, 0.7135280098555865, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9563104993907826, 0.0, 0.0, 0.0, 0.8295023845011231, 0.10509888461130146, 0.2471322355632557, 0.3801044173906537, 0.0, 0.0, 0.0, 0.1514367226333477, 0.0, 0.0, 0.0, 0.24534157695942965, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.052661051195310594, 0.6550399256456869, 0.5803102488724085, 0.0, 0.5319072548222628, 0.46172731619827034, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.026741428574906606, 0.0, 0.7082513040743756, 0.0, 0.0, 0.4418255985655133, 0.1449878921305842, 0.3039326972841545, 0.0, 0.0, 0.0, 1.198252644211342, 0.44500849169967277, 0.23918686672510267, 0.0, 0.0, 0.19736692078049992, 0.0, 0.0, 0.0, 0.0762301466058952, 0.3507440605568865, 0.4669973871873196, 0.0, 0.06417785026076955, 0.0, 0.0, 0.07892920039677795, 0.20151756987027533, 0.0, 0.5298004507120764, 0.006913800133275409, 0.0, 0.0742780358218034, 0.0, 0.6026732223863505, 0.0, 0.0, 0.5351202277676342, 0.0, 0.0, 0.9548891902757952, 0.02916984862304253, 0.0, 0.4970347785792808, 0.12683003730681902, 0.0180604034141702, 0.0, 0.2650052427173023, 0.0, 0.033791924886614616, 0.0, 0.04181580147667587, 0.0, 0.4621910495164758, 0.0, 0.0, 0.0190541328400638, 0.0, 0.17864673433347314, 0.014160348828667728, 0.8165447001064132, 0.09368415058058097, 0.9079968531646069, 0.08687864486537158, 0.19492858047186096, 0.10063554575175, 0.0, 0.09210666608746948, 0.01874477292287561, 0.03748966025771319, 0.0, 0.5779501492966836, 0.0012862204434733993, 0.220963909203652, 0.3086404911712966, 0.17631145912557372, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032159896791554, 0.0, 0.1846953640258127, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07139034913327573, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37871083555251084, 0.0, 0.0, 0.0, 0.0, 0.19265602282403793, 0.0, 0.0, 0.606424267788203, 0.011600938808477314, 0.0, 0.63655122023184, 0.8091094673344561, 0.15945386155042648, 0.21681046587583439, 0.5841977471111124, 0.14228431684797266, 0.0, 0.4919831840901785, 0.07005765326837811, 0.0, 0.4452652454663618, 0.0, 0.2225785522561698, 0.0, 0.0, 0.565764962530824, 0.0, 0.0, 0.0, 0.09016013522690633, 0.0, 0.0, 0.054929050345560504, 0.0, 0.0, 0.0397070718161962, 0.0, 0.3253549491861982, 0.39037279561642807, 0.09169366625332782, 0.16748228205826332, 0.0, 0.0, 0.6136975564576865, 0.0, 0.0, 0.3026006369046373, 0.0, 0.649431418360159, 0.08211939816658421, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8259750138040276, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5145740577075524, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.45723140022915015, 0.0, 0.0, 0.9202097992461084, 0.168004673879535, 0.0, 0.0, 0.1251531867765232, 0.0, 0.2137981131137785, 0.0, 0.013898368242301713, 0.0, 0.0, 0.7137867360685719, 0.0, 0.0, 0.1000729174155476, 0.0, 0.0, 0.03483089759667312, 0.12636252602014256, 0.0, 0.6417666786106352, 0.47874755782682904, 0.0, 0.0, 0.42719736321019475, 0.0, 0.269711179183823, 0.0, 0.0, 0.0, 0.0, 0.668274429237161, 0.0, 0.0, 0.19736413928693208, 0.0, 0.64140191275638, 0.0, 0.04878252313782071, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7804894714968978, 0.1354649020531392, 0.7521947991243342, 0.061565240681645095, 0.7064549771516211, 0.0, 0.0, 0.0, 0.1369213608036062, 0.598180503319145, 0.0, 0.4894142513129519, 0.14663698801711797, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14418506746458087, 0.027360830334206502, 0.0, 0.0, 0.11896445459410832, 0.016940356460817766, 0.08867849541915622, 0.0, 0.0, 0.0, 0.0, 0.014527597186767355, 0.0, 0.0, 0.0, 0.0, 0.017872458048705516, 0.09208038488681886, 0.0, 0.01328217046242409, 0.0, 0.0, 0.0, 0.0, 0.07867275819804301, 0.09439445944634833, 0.0, 0.040498210068061674, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), 42), 42)),) julia> @finch_code begin Ct .= 0 for j = _ @@ -1015,7 +1015,7 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.08838669783079417, 0.24540062578718655, 0.0, 0.0, 0.0, 0.0, 0.2598139726110033, 0.0, 0.0, 0.008999058499533074, 0.10561231293601407, 0.018993358540021866, 0.3713088213439608, 0.1272213104915037, 0.0, 0.04569648380052932, 0.0, 0.6778277114032399, 0.0, 1.0116444857173326, 0.1419594034849179, 0.849786220982489, 0.1853715018708835, 0.0, 0.41575027296468353, 0.027919812909200686, 0.38129764067914484, 0.0, 0.010472223603003109, 0.32765224234190193, 0.0, 0.0, 0.0, 0.27657062580546904, 0.018635375946533275, 0.0, 0.6553105493426397, 0.1806768240966126, 0.0, 0.0, 0.13022235819683495, 0.0, 0.0, 0.0096207645890863, 0.0, 0.0, 0.0, 0.0, 0.0027620603050478813, 0.0, 0.0, 0.0, 0.0, 0.06777735948867263, 0.16424694314849322, 0.05466156243395641, 0.0, 0.3550122664783007, 0.0, 0.16598631348758813, 0.0, 0.09916577661749644, 0.0, 0.0, 0.017171766504479664, 0.14883499722913907, 0.14454297081157494, 0.0, 0.0, 0.0, 0.08135785354072747, 0.18934501987281463, 0.0, 0.0, 0.0, 0.043171173549343585, 0.04442771737900286, 0.0, 0.0, 0.16847976307679274, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4519419326045341, 0.0022494085401006682, 0.0, 0.09264806290445121, 0.0, 0.0, 0.5779259042074504, 0.0, 0.0, 0.0, 0.01319039039025495, 0.0, 0.0, 0.05821123759190987, 0.008570313787111606, 0.12498925860233108, 0.3161944438230963, 0.0, 0.0, 0.0, 0.0, 0.03428001709676162, 0.0, 0.0, 0.0, 0.4239046512601812, 0.0, 0.0, 0.0, 0.0, 0.006439869364205756, 0.0, 0.19268641103781292, 0.0, 0.0, 0.0, 0.13842608775449636, 0.7754112567712441, 0.5650474898241402, 0.16678352690096504, 0.0, 0.0, 0.26721012017234747, 0.0, 0.0, 0.40379612390902914, 0.0, 0.5616249905190419, 0.0, 0.0, 0.0, 0.05914491909738165, 0.0, 0.0, 0.5796881176474965, 0.0, 0.0, 0.0, 0.0, 0.19259492607938428, 0.5396680351153355, 0.1002017616669876, 0.0, 0.0, 0.07018769309449151, 0.0, 0.0, 0.0, 0.8890997886610695, 0.01580855669802033, 0.07592126473643429, 0.0, 0.0, 0.5327597008182733, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26650628783183555, 0.0, 0.0, 0.4177758368274485, 0.01847646120309497, 0.2474671864399932, 0.030137257707486417, 0.0, 0.0, 0.0, 0.0, 0.4333965515966774, 0.0, 0.025363517487659904, 0.0, 0.0, 0.28727696476738296, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.48463873218296616, 0.3619901497543638, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3095355097692787, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08881016246594031, 0.0864536634210502, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13334438240099766, 0.0, 0.2743296378950603, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21573236386631758, 0.138874394226427, 0.21526827303910834, 0.0, 0.8276738568887637, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13803323038392623, 0.0, 0.0, 0.18937725647626488, 0.0, 0.09756025088965181, 0.10247093349242449, 0.14247269057616566, 0.0, 0.4644170645216008, 0.0, 0.0, 0.0, 0.6396576582705668, 0.0, 0.14648223852485512, 0.0, 0.3845502326592231, 0.0, 0.0, 0.0, 0.0, 0.01873756402105984, 0.01865952833886222, 0.015020499411212522, 0.0, 0.11259829701043601, 0.13537240455394534, 0.18963280616455852, 0.0, 0.1732077631723114, 0.0, 0.009279305276553587, 0.0, 0.09430577452314615, 0.07566718263303025, 0.06172210939249301, 0.0, 0.0, 0.0017837976727260341, 0.0, 0.0, 0.06543462567823881, 0.0621898641418941, 0.0, 0.0, 0.0, 0.41468742426256355, 0.21475258071539002, 0.0, 0.0, 0.08728790458911416, 0.0, 0.0, 0.4956863169283368, 0.0, 0.0, 0.3312300382813116, 0.0, 0.6814401538748236, 0.017040189816468283, 0.0, 0.0, 0.0, 0.0, 0.1702496303089558, 0.04558027585085677, 0.0, 0.0, 0.05652088848846798, 0.0, 0.0, 0.039516412285590885, 0.04836078861030929, 0.0, 0.0, 0.0, 0.0066658135086557066, 0.28756231542228783, 0.0, 0.0, 0.005213055047386901, 0.0, 0.03077146873270733, 0.0, 0.18174661292486113, 0.011855817392138795, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2550943184597343, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19130663987033655, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08795782309469964, 0.4949588224757624, 0.10547057221471998, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0428147611319233, 0.0, 0.4336529209634745, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10981699391447328, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14060207841669792, 0.19125923680987167, 0.17120811796462362, 0.0, 0.0, 0.29682703146376954, 0.2309028098716656, 0.0, 0.3415808438027304, 0.5413871431291847, 0.19010077735847383, 0.0, 0.0, 0.0, 0.037176095928915485, 0.0, 0.0, 0.19621484736356867, 0.46400800412758475, 0.6251709107930822, 0.11840971377140953, 0.5297289566486542, 0.0, 0.0, 0.0629827610017505, 0.0, 0.30811879649367063, 0.0, 0.43390554368076734, 0.0, 0.3078202365484454, 0.0, 0.0, 0.06464271443386868, 0.0, 0.0, 0.7925386152607364, 0.0, 0.0, 0.0, 0.0, 0.4871987999416911, 0.0, 0.0, 0.0, 0.026241068751647587, 0.4048536827096608, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04667237073016084, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008398941803472277, 0.0, 0.3462604046867109, 0.0, 0.41520221547875746, 0.0, 0.0, 0.0, 0.49209502240450126, 0.6693906625198521, 0.19758221668125867, 0.008160985490142467, 0.2605302099636665, 0.0, 0.0, 0.0, 0.9022483783960523, 1.0694729952381887, 0.6653361553880242, 0.881281776229774, 0.001915716390555032, 0.022482711824403312, 0.0040432994483474245, 0.0, 0.3214035783779074, 0.6867348676262818, 0.0, 0.6858420722534031, 0.0, 0.5811377322397425, 0.04246482918579259, 0.11467932906673921, 0.09709202075873843, 0.0, 0.0, 0.0, 0.2200140216993193, 0.0, 0.7507517442378999, 0.0, 0.0, 0.7372603142185328, 0.0, 0.006741369353138395, 0.8069776586909365, 0.00396709224045839, 0.0, 0.0, 0.0, 0.6101879525945185, 0.0, 0.0, 0.026258353794755256, 0.4016774417320984, 0.014813931005383318, 0.6190727226045784, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11309418362565873, 0.0, 0.0, 0.0, 0.0, 0.0, 0.036526440507301174, 0.022956711251180283, 0.40907708831845013, 0.0012453094708774737, 0.0, 0.0, 0.0, 0.0, 0.014062827632021033, 0.0, 0.0, 0.0, 0.006394809610240893, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21784527989974428, 0.0, 0.0, 0.0, 0.3180108962002836, 0.2508741672819204, 0.17523704698611114, 0.13837147224686994, 0.27935616728122964, 0.1859955338163167, 0.0, 0.06462126637992056, 1.0008493550472979, 0.6004231261661688, 0.0, 0.3940831570768702, 0.0, 0.0, 0.1305734964236071, 0.0, 0.09786792103897592, 0.0, 0.11654231814191775, 0.46697515894469777, 0.5700094853415558, 0.1107417067979406, 0.346111937724667, 0.0, 0.1225882117910605, 0.0, 0.28673152989464684, 0.0, 0.12654022793408917, 0.0, 0.0, 0.45809293367016757, 0.3647743355850667, 0.817304098176075, 0.0036334642288677415, 0.0, 0.2669922423479005, 0.0, 0.0, 0.0, 0.32457729111200295, 0.5543705739187803, 0.8812247175026642, 0.16912005088903598, 0.5020073987686707, 0.0, 0.09252856828989332, 0.0, 0.0, 0.0, 0.06948083164247039, 0.2588335470174883, 0.23431107957691064, 0.0, 0.0, 0.4609326565956409, 0.0981996119487529, 0.0, 0.0, 0.0, 0.0, 0.41461953421729686, 0.2880401034246727, 0.0, 0.12878680297473977, 0.5528442548314576, 0.8638211211778427, 0.0, 0.19329232440572794, 0.07190135483727589, 0.0, 0.37985878824980135, 0.0, 0.0, 0.47943873587199365, 0.0, 0.1632157826430328, 0.028602417984395823, 0.12587604601890898, 0.20239239184313712, 0.0, 0.9957002205667365, 0.5403020941861382, 0.1731723605204449, 0.5984215188307392, 0.5906299727726914, 0.15421128542459664, 0.22417177182593684, 0.14760215442934868, 0.0, 0.0, 0.10452572448334531, 0.0, 0.0, 0.5192893646261969, 0.0, 0.0, 0.0, 0.03548389098440683, 0.0, 0.0, 0.5359908824860568, 0.0, 0.0, 0.4508397689271815, 0.17912612646003018, 0.05191685886593687, 0.015041105758856862, 0.0, 0.0, 0.07792048637164595, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16284516279577882, 0.07019827463547235, 0.0, 0.0017166852898648512, 0.022601665621833984, 0.0, 0.0, 0.0, 0.08820522946301469, 0.0, 0.0, 0.4597721334804677, 0.0, 0.01968862180697655, 0.1496625833744818, 0.0, 0.0, 0.0, 0.0, 0.042967175515187854, 0.0, 0.5925889649898668, 0.03501818713399176, 0.0, 0.23929946904107768, 0.0, 0.0, 0.0, 0.0, 0.0, 0.586042846539397, 0.0, 0.35012160211964255, 0.0, 0.0, 0.2671275149044985, 0.5254872140248491, 0.0, 0.0, 0.0, 0.4346599048698998, 0.0, 0.6685147232492785, 0.0, 0.0, 0.006603260891096502, 0.41222164853295895, 0.691126666160783, 0.3115253982735278, 0.0, 0.5948463934358659, 0.0, 0.6104915934501508, 0.0, 0.10122959156761935, 0.0, 0.0, 0.4361142638019697, 0.0, 0.0, 0.022953207777356696, 0.01768983406390727, 0.0, 0.49300859199961644, 0.0, 0.45242065570193146, 0.0, 0.25296290668039206, 0.24913417193879323, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0036117281801281323, 0.37981219294125684, 0.0, 0.7813883080906168, 0.37787984308171674, 0.0, 0.3540795182413977, 0.0, 0.0, 0.024079641916532137, 0.0, 0.3372996465844834, 0.4587109366214878, 0.0, 0.0, 0.0, 0.0, 0.008167928328435794, 0.30985126085873477, 0.0, 0.1769552845849796, 0.01014740975340464, 0.3239445526321744, 0.2589119416659987, 0.30500724408067964, 0.0, 0.8521343659652334, 0.0, 0.12278148254603906, 0.0, 0.0, 0.7559317032710442, 0.0, 0.4639073457870384, 0.3375990135598286, 0.0, 0.09771802789528808, 0.0, 0.0, 0.0, 0.0, 0.14259284539732897, 0.0, 0.0, 0.0, 0.03978581978010784, 0.4979059043742451, 0.0, 0.0, 0.02239395579386129, 0.0, 0.0, 0.08552679542089565, 0.0, 0.28975782063069117, 0.4544199284136855, 0.4879966224465369, 0.0, 0.5198773678370044, 0.09074414747732065, 0.0, 0.0, 0.0, 0.08751115961530397, 0.0, 0.0, 0.0, 0.0, 0.01723069885490719, 0.005476104703094391, 0.0, 0.0, 0.0, 0.0, 0.0, 0.018363845689630152, 0.0, 0.0, 0.0, 0.03456818780211805, 0.16076784648973388, 0.1339929852951158, 0.12939203287442297, 0.6506668934574178, 0.07556479761019191, 0.0, 0.0, 0.1120835499344092, 0.004448105032597938, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.424200452243984, 0.21870476868551994, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04400733534916703, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5084860468121182, 0.0, 0.0, 0.0, 0.06613225218879751, 0.0, 0.0, 0.03227907593043655, 0.0, 0.01489513919323321, 0.0, 0.0, 0.0004903768608608706, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3709186680024144, 0.0057636955333438475, 0.0, 0.0, 0.0, 0.0, 0.05167292145382253, 0.03114794005970685, 0.0, 0.0, 0.0, 0.04406332427000894, 0.0, 0.28333618254852055, 0.0, 0.0, 0.08754290037370453, 0.0, 0.030717709851121017, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15375069919642081, 0.17266284464812964, 0.0, 0.0, 0.0, 0.0, 0.4591427931520538, 0.0, 0.0, 0.4080740928256236, 0.04867028613084824, 0.0, 0.0, 0.19198247076461217, 0.0, 0.0, 0.0, 0.04903912896069461, 0.0, 0.0, 0.0, 0.03565133307467186, 0.011864802664565318, 0.0, 0.0770587282490205, 0.06882991093352155, 0.0, 0.32659059563162995, 0.036557980918752765, 0.0, 0.0, 0.0, 0.0, 0.03137440184410096, 0.0, 0.0, 0.0, 0.18642661293603366, 0.0, 0.0, 0.0, 0.0, 0.06772257249589227, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21100355273002191, 0.0, 1.3416336420880526, 0.0, 0.0, 0.46161810723264507, 0.0, 0.4582995461192519, 0.05104879083246295, 0.5773364122618407, 0.57352236887648, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5640999064171196, 0.6666836020552119, 0.06886868779194379, 0.564904097158741, 0.0, 0.3210670084651615, 0.0, 0.0, 0.0, 0.9392890324745945, 0.0, 0.0, 0.2984250122811811, 0.0, 0.009405052137469182, 0.0, 0.39950267169818077, 0.07050196115427894, 0.824636783426293, 0.4953951141450468, 0.0, 0.0, 0.34635403119710667, 0.8798483938054087, 0.39347138128916365, 0.0, 0.0, 0.41085938784277987, 0.0, 0.7572672907360996, 0.0, 0.1918766456362537, 0.14775814623354722, 0.0, 0.0, 0.18414622884752666, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32881972797464193, 0.22733765531865868, 0.29775899283396906, 0.0, 0.0, 0.0, 0.0387256895819095, 0.5151993362991701, 0.0, 0.0, 0.0, 0.008722287803381279, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1780184121162673, 0.0, 0.0, 0.0, 0.0, 0.0511079535437104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05738054033260683, 0.0, 0.0, 0.3177388426930726, 0.0, 0.0, 0.0019725686702392773, 0.0, 0.0, 0.0, 0.0, 0.20770780211002965, 0.0, 0.0, 0.0, 0.8220710140576788, 0.0, 0.0, 0.0, 0.0, 0.9922981121231631, 0.19272059014741777, 0.18871634512759347, 0.009978475777936804, 0.5372065554785002, 0.0, 0.0, 0.17523452577386275, 1.0717089910255204, 0.5571949298413089, 0.0, 0.3237380570219946, 0.0, 1.1122472434174695, 0.10030606802210519, 0.0, 0.42164300445661296, 0.0, 0.2034243141927581, 0.0, 1.0210169552267845, 0.19689099390765805, 0.14675887656145528, 0.15859984719751974, 0.2247981968120587, 0.0, 0.22026608101531156, 0.5078755745015515, 0.2690121908665218, 0.0, 0.0, 0.0, 0.3746062674772627, 0.7584612913730437, 0.0, 0.0, 0.8749551201631387, 0.5887430555293698, 0.8247249363546676, 0.21469878981542115, 1.002630449124598, 0.2572736542055717, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005299432156408299, 0.06219376030445952, 0.011184949515597283, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11747014454387752, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1628689565677918, 0.010974138077104432, 0.0, 0.0, 0.0, 0.0, 1.0297896192318396, 0.0, 0.662355409415741, 0.5720482757502646, 0.3113118281374319, 0.0, 0.0, 0.25393001900118484, 0.02276308091998572, 0.03508485404358758, 0.45957926224802004, 0.0, 0.05036277933399867, 0.1447652248957086, 0.0, 0.0242600552046752, 0.005732716773973234, 0.0, 0.0, 0.04566723978074626, 0.007798132412071851, 0.435160826872351, 0.19099152935556227, 0.0, 0.09109198019072849, 0.0, 0.0, 0.0, 0.0, 0.040872817508571836, 0.0, 0.8816978299630381, 0.023385944730671186, 0.20852512378086208, 0.3265908462108258, 0.0, 0.8135187830099228, 0.5004561612521131, 0.5929930445509373, 0.07024535595608956, 0.4293153063068892, 0.33966138448698774, 0.0, 0.0, 0.219723330992236, 0.0, 0.0, 0.32087091161635517, 0.10046935863374477, 0.0, 0.21249664109114016, 0.0, 0.0, 0.5675920409330384, 0.0, 0.0, 0.02195446551553763, 0.0, 0.0, 0.0, 0.7828555360473642, 0.0, 0.0, 0.0, 0.539158201637973, 0.0, 0.037194676308406484, 0.0, 0.5899620450765102, 0.0, 1.064333300573155, 0.0, 0.4126616356723095, 0.0, 0.0, 0.0, 0.0, 0.005455259856546277, 0.06532462900349355, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6382915607944724, 0.0, 0.1058392854111573, 0.06419509685388734, 0.0, 0.0, 0.42600921169580896, 0.0, 0.6948705846598551, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7494592390120385, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.34703521803027376, 0.47959926529853425, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18954560408868362, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04058791510732469, 0.0, 0.0, 0.0, 0.026371559760006224, 0.46735915191246824, 0.9729562858716514, 0.0, 0.01593384874339247, 0.0, 0.0, 0.10548242945325798, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08182217469250767, 0.0, 0.0, 0.0, 0.0, 0.5929119201290493, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0028851424117770368, 0.14902256810885017, 0.0, 0.19393473922191487, 0.0010822975481770052, 0.10083006827906865, 0.005589290532560041, 0.0, 0.0377329438822351, 0.0, 0.0, 0.0, 0.0, 0.08622227292139113, 0.0, 0.0, 0.052960874748722735, 0.0, 0.0, 0.0, 0.040542431602682394, 0.0, 0.034748695303796415, 0.0, 0.0, 0.07778126624009696, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08990369242695052, 0.0, 0.0, 0.0, 0.0, 0.1714300400506459, 0.23319412483505944, 0.06883127399553583, 0.0, 0.0, 0.4520065142603474, 0.7559043080573538, 0.0, 0.9918256875421747, 0.34148047573693957, 0.23178166527267935, 0.1984049383893502, 0.0, 0.0, 0.0, 0.4618215114400494, 0.055660721213669, 0.23923628669541208, 0.0, 0.0, 0.39945045771087084, 0.3329245273531598, 0.25602890393383043, 0.0, 0.2574713970419185, 0.0, 0.0, 0.27848743576980106, 0.008801495971424074, 0.0, 0.0, 0.0, 0.0, 0.4961604274582618, 0.0, 0.0, 0.5434029369831717, 0.0, 0.0, 0.0, 0.0, 0.15767180411659634, 0.03460197933312267, 0.0, 0.0, 0.036131085316488384, 0.0, 0.0, 0.0, 0.016873683938744447, 0.019906225883667222, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.012507180486519448, 0.0, 0.02685500739865508, 0.028916495513405534, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029742024653825302, 1.0585077478673894, 0.0, 0.0, 0.10450313655197234, 0.0, 0.27087506529662764, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7518068036153462, 0.0, 0.2680435440340337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1316435251098364, 0.8078731280911045, 0.0, 0.0, 0.0, 0.10506968633342718, 0.23470506622896917, 0.0, 0.0, 0.607722294332459, 0.023665118775296444, 0.014839085130224942, 0.0, 0.0, 0.24386571546932873, 0.0, 0.0, 0.3502050356771847, 0.0, 0.0, 0.46379933676520235, 0.0, 0.08440789641107996, 0.04593440835303492, 0.021386035200774683, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7729032574550468, 0.0, 0.11781868003483978, 0.030607043037187642, 0.0, 0.1726108187023696, 0.09583059716129254, 0.5239548125179947, 0.4366934746091282, 0.0, 0.0, 0.24627150409293175, 0.0, 0.13007997889130285, 0.36528893478699903, 0.18318396866765946, 0.0, 0.011811348038501769, 0.0, 0.0, 0.0, 0.0, 0.0, 1.1723218684731558, 0.5524938653991974, 0.7739462295109258, 0.0, 0.7069108871009565, 0.0, 1.1639912229987677, 0.0, 0.0737216927746314, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.41689243790078717, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7826638975615551, 0.0, 0.0, 0.0, 0.1017910453533696, 0.0, 0.0, 0.0, 0.0, 0.022926661938484392, 0.0, 0.0, 0.24172521220469304, 0.33406187082542654, 0.0, 0.0, 0.31010342596966556, 0.0, 0.0, 1.1081747068991343, 0.7344335908166203, 0.16327913698089802, 0.7325151937485493, 0.17384385605370836, 0.08371482373128411, 0.0, 0.3420940653006234, 0.0, 0.04990946505718503, 0.5498243469410863, 0.0, 0.007722420577405236, 0.0906297807361463, 0.016298894248894004, 0.0, 0.17760842474448457, 0.7445477489471244, 0.0, 0.0, 0.23271741543898974, 0.5862478840032251, 0.38013450552556605, 0.0, 0.13625107884748244, 0.3102878234624971, 0.0, 0.0, 0.0613418632643825, 0.1222024301534575, 0.0, 0.0, 0.09768999149541487, 0.07432603695941839, 0.0, 0.0, 0.2373353492409029, 0.8187850328888507, 0.0, 0.1472545596990393, 0.08055057930039017, 0.0, 0.0, 0.0, 0.0, 0.022056121851574153, 0.7041166858972707, 0.0, 0.0, 0.0, 0.7708181971148897, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6591456110142444, 0.0, 0.0, 0.0, 0.5151326583061712, 0.4293405940090164, 0.0, 0.30993576190130123, 0.24212487706484054, 0.0, 0.0, 0.35913833699197834, 0.594616431743019, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7007742613782065, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07822848175716028, 0.0, 0.795037704009975, 0.0, 0.18176747614492506, 0.0, 0.0, 0.0, 0.0, 0.05218428597433502, 0.551641665900435, 0.0, 0.0, 0.0, 0.0, 0.4173251650328503, 0.13888627164939463, 0.0, 0.9020292850308806, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32443041606173034, 0.0, 0.3672605285185933, 0.0, 0.0, 0.0, 0.20671726976925492, 0.0, 0.0, 0.38426107037286794, 0.0, 0.0, 1.3158788906540237, 0.0, 0.0, 0.33314012692337136, 0.4077019730262151]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.1187145765025676, 0.0, 0.16555522612551515, 0.0, 0.0, 0.0, 0.0, 0.43509113842452285, 0.0, 0.0, 0.25672403787937165, 0.43862663884873543, 0.0, 0.0, 0.3519631419607619, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051120283482812334, 0.15945060967882835, 0.42044865267857073, 0.0, 0.019744477387695688, 0.0, 0.0, 0.0, 0.12726604148160792, 0.4480285054137333, 0.0, 0.41393771366257825, 0.0, 0.0, 0.1372243591915985, 0.12863434970716192, 0.0, 0.019238858430486484, 0.0, 0.2371659747040811, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.39682924637787165, 0.0, 0.8480118921637517, 0.0, 0.0, 0.0195483866997798, 0.0, 0.5990836331247341, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2618925497434801, 0.26117339231230247, 0.0, 0.0, 0.16216152735698644, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06997554550840408, 0.0, 0.0, 0.002400768013297612, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.4157511852632345, 0.5793963874059174, 0.0, 0.26436870752857605, 0.4172786501470117, 0.0, 0.0, 0.8079649846339338, 0.0, 0.0, 0.5764550461815096, 0.4229367652966696, 0.05379340446506314, 0.0, 0.0, 0.5795406808621261, 0.5877094760316834, 0.0, 0.0, 0.0, 0.0, 0.284387943824113, 0.0, 0.0, 0.0, 0.035174745039109515, 0.0, 0.0, 0.011970205674471077, 0.0, 0.0, 0.0, 0.0, 0.5436476197350472, 0.920039513761917, 0.0, 0.6198132723204128, 0.16799442509225773, 0.5753026732101696, 0.2043616977009669, 0.5065806869454675, 0.0, 0.0, 0.39160092945826996, 0.0, 0.11054447981865345, 0.0, 0.0, 0.9189729667337664, 0.0, 0.0, 0.6507053761422986, 0.6970188689802168, 0.0, 0.08297492397617155, 0.9062181287136433, 0.0, 0.059530976608982995, 0.012438951345378766, 0.0, 0.0, 0.0, 0.0, 0.2533819740366263, 0.9473531228336374, 0.06450793068804792, 0.0, 0.41573543153630554, 0.0, 0.0, 0.0, 0.7238062468593162, 0.0, 0.0, 0.3590904912393951, 0.07774042001084827, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6251886494903025, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44684741712517223, 0.0, 0.0, 0.0, 0.0, 0.010812740091707317, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8163131959379999, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2672156592426391, 0.0, 0.028807779838791864, 0.0, 0.0, 0.0, 0.025506753620224757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.022871104613233297, 0.0, 0.6057451127777128, 0.0, 0.0, 0.05122083512724408, 0.0, 0.0, 0.26967234588040656, 0.0, 0.0, 0.6655341287456478, 0.0, 0.41411417571013454, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29998038732284904, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06750566800337324, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3426210978919867, 0.3800174489235809, 0.0, 0.6531468239127369, 1.5341196475571879, 0.0, 0.0, 0.5993450019914057, 0.0, 0.0, 0.318944682359523, 0.0, 0.0, 0.0, 1.2766961856974943, 0.0, 0.47028907930153113, 0.46890260973852405, 0.0, 0.2635141940642454, 0.0, 0.06844040704623247, 0.6776383700271937, 0.08344450181255293, 0.0, 0.0, 0.13135428676134797, 0.1357944044209692, 0.0, 0.0, 0.0, 0.38624172924075223, 0.0, 0.0, 0.0, 0.23564395924169773, 0.0, 0.7014291092208349, 0.11139739784790205, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008393202836106917, 0.0, 0.22229541093446364, 0.2882110765245937, 0.0, 0.2931292388749959, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24423669216579333, 0.0, 0.07507242489058646, 0.0, 0.0, 0.14176191313790465, 0.0, 0.0, 0.0, 0.054753508738442806, 0.11008634170637227, 0.0, 0.0, 0.0, 0.0, 0.0, 0.024773126340884036, 0.0, 0.0, 0.38053755501306186, 0.0, 0.6713587667580375, 0.05335137428594376, 0.0, 0.0, 0.009224220899634665, 0.0, 0.07390888522469428, 0.1992308489896435, 0.12678608744717204, 0.0, 0.0546923223511062, 0.11313411705958114, 0.0, 0.0, 0.0, 0.0, 0.05169899432402749, 0.019742405777142896, 0.1769782400741126, 0.0, 0.0, 0.09297789149141053, 0.028906196325416873, 0.0, 0.0, 0.012919011582055164, 0.0, 0.0, 0.3208972845059436, 0.0, 0.0, 0.0046103209297173, 0.0, 0.0, 0.00416876885269193, 0.0729081194704697, 0.0, 0.0, 0.0, 0.07125538498910843, 0.0, 0.0, 0.03513444799266689, 0.0, 0.07540438323786366, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04369081060273281, 0.0, 0.0, 0.0, 0.014769980988042226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.017283118828420634, 0.006620940647292606, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006092931164902776, 0.0, 0.16137232276465496, 0.0, 0.15262637216887753, 0.013645384773351038, 0.16271613196948126, 0.0, 0.0, 0.0, 0.0, 0.17730029672438757, 0.41874765425641397, 0.054497803302564006, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10045113292307115, 0.27028417756519546, 0.07991567883089672, 0.0, 0.0, 0.0, 0.0, 0.0, 0.01798371330728596, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5859834957136911, 0.5086687281653502, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07646258969830243, 0.0, 0.0, 0.02773130153308066, 0.07708391588594585, 0.0, 0.0, 0.06185373806995992, 0.0, 0.0, 0.033137714842779345, 0.0, 0.0, 0.0, 0.0, 0.028021730318764978, 0.07388933025705045, 0.0, 0.021389015345232583, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046371970770837774, 0.04025364462832554, 0.2181921153062336, 0.4335185189335439, 0.0, 0.0, 1.0038009425423415, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4280152293034966, 0.0, 0.08414972142221414, 0.0, 0.3712598089597713, 0.0, 0.06370844553850769, 0.0, 0.0, 0.0, 0.0, 0.5083497561860121, 0.0, 0.0, 0.0, 0.17350738400022994, 0.0, 0.0, 0.0, 0.0, 0.5680638629882098, 0.4512837677833129, 0.036928112404588626, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6736518032785722, 0.0, 0.0, 0.0, 0.0, 0.3438277430889845, 0.1331574579932683, 0.8185600695730958, 0.0, 0.0, 0.017261448593960855, 0.0, 0.5289976863810653, 0.0, 0.0, 0.0, 0.0, 0.13826565194431473, 0.0, 0.12839377709982103, 0.8277070113616852, 0.0, 0.0, 0.3904546499995126, 0.08179569775458351, 0.0, 0.0, 0.0, 0.0, 0.16848803520369499, 0.0, 0.0, 0.005780600674157121, 0.0, 0.0, 0.0, 0.0, 0.042429105563066505, 0.0, 0.0, 0.5671026868317051, 0.5831842436077501, 0.0, 0.0, 0.5203885995071309, 0.0, 0.0, 0.0, 0.0, 0.03279957809056344, 0.20563143706052323, 0.8140555730584957, 0.0, 0.11735707443596549, 0.0, 0.0, 0.0, 0.0, 0.05942421719401875, 0.13531075914415133, 0.0, 0.22862377269710113, 0.0, 0.0, 0.0, 0.0, 0.009783289930470927, 0.0, 0.49666013194599, 0.01297478801242045, 0.004970474495620279, 0.0, 0.0, 0.0, 0.0, 0.18702095525297172, 0.0, 0.0, 0.49027730046536305, 0.0, 0.0, 0.0, 0.3100811795242501, 0.0, 0.5172830310180929, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5147075854808417, 0.0, 0.23506445593598685, 0.0, 0.0, 0.0984177418166802, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6597667532607603, 0.0, 0.7531258126074596, 0.0, 0.0, 0.0, 0.0, 0.009060495116628974, 0.0, 0.14938403565323904, 0.23931891774764502, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17320374473408556, 0.0, 0.0, 0.8859260157921318, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2593451028242532, 0.13535058061487634, 0.0, 0.17876385946442425, 0.5885021691653141, 0.4462993508157936, 0.0, 0.38646137613385273, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08841279830908562, 0.0, 0.0, 0.4090685041141252, 0.2385779614705672, 0.0, 0.32657075289021537, 0.0, 0.3891842232348578, 0.46695749861500585, 0.0, 0.20033954304824086, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6140772326336235, 0.21962331732895995, 0.0, 0.0, 0.21665980127772702, 0.0, 0.10259951624992725, 0.0040997688735825025, 0.0, 0.0, 0.0178257297768441, 0.0025383566681682393, 0.21683531480545457, 0.0, 0.027677402398657985, 0.0, 0.1880826476230884, 0.3419147609793875, 0.03227511522566195, 0.19053492425855037, 0.0, 0.06432217258278244, 0.0026780235214896283, 0.0, 0.0, 0.464125489835237, 0.09967606965443436, 0.0, 0.0, 0.0, 0.011788389508631971, 0.03206041622309702, 0.0, 0.0060682844433003185, 0.0, 0.0, 0.0, 0.010791956772858862, 0.0, 0.0, 0.0, 0.0, 0.4329905527364345, 0.14376890418721155, 0.6930376581272882, 0.0, 0.611818052941564, 0.6291676211651914, 0.0, 0.0, 0.5614206159067703, 0.48216800990329456, 0.0, 0.0, 0.4507229848159907, 0.0, 0.0, 0.8782428778065052, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06410974538727675, 0.23291225157991716, 0.08679043179604816, 0.0, 0.0, 0.08995902157278039, 0.8808378297797503, 0.0, 0.0, 0.0, 0.3618017482397369, 0.07709259450646033, 0.0, 0.22347789493902354, 0.0, 1.4151156566032244, 0.0, 0.0, 0.0876553401034732, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.35023812146064465, 0.10119869206094158, 0.0, 0.0, 0.0, 0.03421091843192662, 0.0, 0.18934530571059222, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.040031965441735276, 0.015335731346610126, 0.0, 0.0, 0.0, 0.0, 0.5012279391934354, 0.14361151525658541, 0.0, 0.05781748261134272, 0.17152855777668224, 0.0, 0.498484457540378, 0.0, 0.0, 0.7074889608036871, 0.0, 0.0, 0.0, 0.0, 0.0, 0.36413161255211174, 0.10650975776468122, 0.0027919607805886224, 0.1717164070699339, 0.0, 0.0, 0.0, 0.31636490805397033, 0.0, 0.0, 0.0, 0.3781004501122092, 0.1664160983543511, 0.0, 0.10894483484211534, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06899783350353156, 0.1313910038295779, 0.5458205926873976, 0.0, 0.2058361256028114, 0.0983057734206431, 0.006586106310131405, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13715236217863272, 0.026867165999227966, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0035515304259612105, 0.0, 0.0, 0.5329776529167246, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.397719517913955, 0.20668056810136554, 0.1307286941015916, 0.0, 0.19979734260211207, 0.13509882393613562, 0.0, 0.0, 0.0, 0.4428910220796438, 0.0, 0.10971922982381796, 0.20405686697329703, 0.0, 0.0, 0.0, 0.4155385933508652, 0.0, 0.030373091671251427, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02870549966274466, 0.0, 2.221236796150802e-5, 0.04518680503118196, 0.8557997812159583, 0.0, 0.0, 0.0, 0.33295230926411423, 0.0, 0.0, 0.1651823382455281, 0.0, 0.0, 0.10987547938954217, 0.038321493889877094, 0.0, 0.0, 0.9167265220224268, 0.0, 0.41223669995910156, 0.0062879102301798264, 0.006460790579658201, 0.0, 0.015093288171720337, 0.004653032070207847, 0.0, 0.0, 0.21192982566516394, 0.0, 0.5265530542756913, 0.004398370159579225, 0.3103332077675556, 0.0, 0.0, 0.21886457786346297, 0.058793164358353744, 0.24052003353974485, 0.5039916994286584, 0.08865805888962155, 0.0, 1.2109591957845456, 0.0, 0.4576423956337198, 0.13738787883657938, 0.3665641879979031, 0.00039223002823340837, 0.0, 0.6257753572135888, 0.0, 1.0620388990418166, 0.04837586177991647, 0.05564954721706949, 0.23699310888410263, 0.0060621596830514254, 1.2406804285104875, 0.0, 0.6055788924273563, 0.1024025590217045, 0.41360202805293217, 0.5476995216716073, 0.17831079467145505, 0.0, 0.0, 0.0, 0.14728996725917032, 0.19581503373322434, 0.10219463649126194, 0.0, 0.0, 1.213270546019433, 0.06327342954871182, 0.0, 0.0, 0.34855390390603164, 0.0, 0.0, 0.2854684709047343, 0.28462687503630496, 0.0, 0.0, 0.0, 0.06675489490570531, 0.4113308129658067, 0.0, 0.049609846106367136, 0.0, 0.0, 0.0, 0.0, 0.2938483162830928, 0.35256998241930354, 0.0, 0.15126367898557985, 0.0, 0.0, 0.1430373863296425, 0.0, 0.11979050068949273, 0.0, 0.0, 0.0, 0.2174719417996252, 0.18492143615091797, 0.5613745989840638, 0.0, 0.1269084936189851, 0.13050728832210684, 0.0, 0.008090983120695843, 0.11645462945856581, 0.45646266655488743, 0.0, 0.0, 0.018120109170533364, 0.0, 0.0, 0.18217259219167142, 0.0, 0.0, 0.23544229686275722, 0.0, 0.072369241454098, 0.0, 0.013298187548207349, 0.0, 0.15536962738337737, 0.0, 0.0, 0.0, 0.5485281455413065, 0.0, 0.0, 0.0, 0.07504798957314487, 0.13800884999205565, 0.023881103672210243, 0.4000634234277266, 0.0, 0.63983454521553, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1274757935226854, 0.0, 0.060340389443721644, 0.0, 0.0, 0.0, 0.0, 0.046886662511488715, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4105919579209241, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17717763704599515, 0.0, 0.0, 0.006078729370399735, 0.0, 0.0, 0.0, 0.4419304781486809, 0.004498905638339938, 0.0, 0.0, 0.06013187036225827, 0.061837053761552255, 0.158000195476362, 0.08245930986204707, 0.055178613203866224, 0.0, 0.3921588247960043, 0.051054375379452996, 0.0, 0.3113852203955569, 0.0, 0.08631714383210826, 0.016249403505819805, 0.0, 0.5064243516388502, 0.0, 0.0799687272151233, 0.0, 0.06016447367008715, 0.0, 0.0, 0.12723000596711698, 0.0, 0.0, 0.0, 0.0, 0.3344116617465516, 0.28448339782348236, 0.03555929040895464, 0.12972821265302345, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05771825347353467, 0.0, 0.06101920493228206, 0.0, 0.1422424089220273, 0.0, 0.0, 0.0850349690926388, 0.0, 0.6465489235087094, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9592391331341867, 0.0, 0.0, 0.0, 0.07533170200640231, 0.3935757364788316, 0.41733426606664215, 0.0, 0.0, 0.0, 0.0, 0.8096836326115127, 0.0, 0.0, 0.15672712010482948, 0.08471008784973191, 0.0, 0.0, 0.021315681001762884, 0.0, 0.0, 0.0, 0.6515686149424397, 0.0, 0.04354065349809789, 0.5887361460115157, 0.0, 0.3314629690186724, 0.08254082170798169, 0.0, 0.5363022284331493, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20539826744479112, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20437563182844645, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08512737043917705, 0.0, 0.0, 0.0, 0.21221590140088104, 0.0, 0.5922163084848736, 0.0, 0.054946173604955253, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11912480847073124, 0.10340745987043, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22405559305996067, 0.04389088686607588, 0.0, 0.8369237022137216, 0.0, 0.0, 0.303533841030579, 0.8437244477194209, 0.0, 0.0, 0.6770220530788269, 0.0, 0.08868596150524616, 0.0, 0.0, 0.0, 0.005801870585523199, 0.0, 0.3067127385215406, 1.9980597464483445, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1818471988215991, 0.0, 0.0, 0.0, 0.0, 0.09250846502860006, 0.0, 0.0, 0.0, 0.14804755431292183, 0.0, 0.3797383608658618, 0.39017892030987883, 0.0, 0.035065009177551926, 0.28100508860898343, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2656255916096575, 0.01029999428072384, 0.026319871200300066, 0.0, 0.0, 0.35174701729018143, 0.019026589888644814, 0.0, 0.0, 0.0, 0.0, 0.10260912587786382, 0.0, 0.0204467738415142, 0.0, 0.023687486390763176, 0.0, 0.0, 0.002174927201126577, 0.0, 0.09114373059640297, 0.0, 0.2642096712527522, 0.3907643461384895, 0.0, 0.0, 0.18051818330232947, 0.0, 0.3874221185422575, 0.6531078672631825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15551832566217896, 0.0, 0.1916820827839075, 0.0, 0.0, 0.08276135601321193, 0.0, 0.10030127909330487, 0.0, 0.0, 0.0, 0.10537887040654752, 0.0, 0.17805025311577488, 0.0, 0.010472659941918684, 0.0, 0.0, 0.007619143135798, 0.0, 0.12561988447587705, 0.0, 0.0, 0.7794014171836517, 0.0, 0.08402510727068294, 0.0, 0.3682135686649267, 0.08647369259665981, 0.09410614716697653, 0.611021014238459, 0.0, 0.0, 0.023955493193970948, 0.0, 0.0, 0.007434430348560844, 0.0, 0.0, 0.0, 0.24285369100807747, 0.0, 0.0, 0.0051185021691807515, 0.0, 0.0015127483220163092, 0.0, 0.0, 0.06096785123225053, 0.014193124550026902, 0.5775319451121608, 0.0, 0.0, 0.0, 0.007997400222196374, 0.6747251647940697, 0.0, 0.0, 0.0, 0.0, 0.7027693457851822, 0.0, 0.0, 0.055434654145900264, 0.0, 0.0, 0.0, 0.02587284155878174, 0.0, 0.42673143134824615, 0.004724246163513554, 0.4406790171730267, 0.0, 1.0342538585019783, 0.5747154140513469, 0.0, 0.9363482803339344, 0.7135280098555865, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9563104993907826, 0.0, 0.0, 0.0, 0.8295023845011231, 0.10509888461130146, 0.2471322355632557, 0.3801044173906537, 0.0, 0.0, 0.0, 0.1514367226333477, 0.0, 0.0, 0.0, 0.24534157695942965, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.052661051195310594, 0.6550399256456869, 0.5803102488724085, 0.0, 0.5319072548222628, 0.46172731619827034, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.026741428574906606, 0.0, 0.7082513040743756, 0.0, 0.0, 0.4418255985655133, 0.1449878921305842, 0.3039326972841545, 0.0, 0.0, 0.0, 1.198252644211342, 0.44500849169967277, 0.23918686672510267, 0.0, 0.0, 0.19736692078049992, 0.0, 0.0, 0.0, 0.0762301466058952, 0.3507440605568865, 0.4669973871873196, 0.0, 0.06417785026076955, 0.0, 0.0, 0.07892920039677795, 0.20151756987027533, 0.0, 0.5298004507120764, 0.006913800133275409, 0.0, 0.0742780358218034, 0.0, 0.6026732223863505, 0.0, 0.0, 0.5351202277676342, 0.0, 0.0, 0.9548891902757952, 0.02916984862304253, 0.0, 0.4970347785792808, 0.12683003730681902, 0.0180604034141702, 0.0, 0.2650052427173023, 0.0, 0.033791924886614616, 0.0, 0.04181580147667587, 0.0, 0.4621910495164758, 0.0, 0.0, 0.0190541328400638, 0.0, 0.17864673433347314, 0.014160348828667728, 0.8165447001064132, 0.09368415058058097, 0.9079968531646069, 0.08687864486537158, 0.19492858047186096, 0.10063554575175, 0.0, 0.09210666608746948, 0.01874477292287561, 0.03748966025771319, 0.0, 0.5779501492966836, 0.0012862204434733993, 0.220963909203652, 0.3086404911712966, 0.17631145912557372, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032159896791554, 0.0, 0.1846953640258127, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07139034913327573, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37871083555251084, 0.0, 0.0, 0.0, 0.0, 0.19265602282403793, 0.0, 0.0, 0.606424267788203, 0.011600938808477314, 0.0, 0.63655122023184, 0.8091094673344561, 0.15945386155042648, 0.21681046587583439, 0.5841977471111124, 0.14228431684797266, 0.0, 0.4919831840901785, 0.07005765326837811, 0.0, 0.4452652454663618, 0.0, 0.2225785522561698, 0.0, 0.0, 0.565764962530824, 0.0, 0.0, 0.0, 0.09016013522690633, 0.0, 0.0, 0.054929050345560504, 0.0, 0.0, 0.0397070718161962, 0.0, 0.3253549491861982, 0.39037279561642807, 0.09169366625332782, 0.16748228205826332, 0.0, 0.0, 0.6136975564576865, 0.0, 0.0, 0.3026006369046373, 0.0, 0.649431418360159, 0.08211939816658421, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8259750138040276, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5145740577075524, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.45723140022915015, 0.0, 0.0, 0.9202097992461084, 0.168004673879535, 0.0, 0.0, 0.1251531867765232, 0.0, 0.2137981131137785, 0.0, 0.013898368242301713, 0.0, 0.0, 0.7137867360685719, 0.0, 0.0, 0.1000729174155476, 0.0, 0.0, 0.03483089759667312, 0.12636252602014256, 0.0, 0.6417666786106352, 0.47874755782682904, 0.0, 0.0, 0.42719736321019475, 0.0, 0.269711179183823, 0.0, 0.0, 0.0, 0.0, 0.668274429237161, 0.0, 0.0, 0.19736413928693208, 0.0, 0.64140191275638, 0.0, 0.04878252313782071, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7804894714968978, 0.1354649020531392, 0.7521947991243342, 0.061565240681645095, 0.7064549771516211, 0.0, 0.0, 0.0, 0.1369213608036062, 0.598180503319145, 0.0, 0.4894142513129519, 0.14663698801711797, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14418506746458087, 0.027360830334206502, 0.0, 0.0, 0.11896445459410832, 0.016940356460817766, 0.08867849541915622, 0.0, 0.0, 0.0, 0.0, 0.014527597186767355, 0.0, 0.0, 0.0, 0.0, 0.017872458048705516, 0.09208038488681886, 0.0, 0.01328217046242409, 0.0, 0.0, 0.0, 0.0, 0.07867275819804301, 0.09439445944634833, 0.0, 0.040498210068061674, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), 42), 42)),) julia> @finch_code begin Ct .= 0 for j = parallel(_) @@ -1313,5 +1313,5 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.08838669783079417, 0.24540062578718655, 0.0, 0.0, 0.0, 0.0, 0.2598139726110033, 0.0, 0.0, 0.008999058499533074, 0.10561231293601407, 0.018993358540021866, 0.3713088213439608, 0.1272213104915037, 0.0, 0.04569648380052932, 0.0, 0.6778277114032399, 0.0, 1.0116444857173326, 0.1419594034849179, 0.849786220982489, 0.1853715018708835, 0.0, 0.41575027296468353, 0.027919812909200686, 0.38129764067914484, 0.0, 0.010472223603003109, 0.32765224234190193, 0.0, 0.0, 0.0, 0.27657062580546904, 0.018635375946533275, 0.0, 0.6553105493426397, 0.1806768240966126, 0.0, 0.0, 0.13022235819683495, 0.0, 0.0, 0.0096207645890863, 0.0, 0.0, 0.0, 0.0, 0.0027620603050478813, 0.0, 0.0, 0.0, 0.0, 0.06777735948867263, 0.16424694314849322, 0.05466156243395641, 0.0, 0.3550122664783007, 0.0, 0.16598631348758813, 0.0, 0.09916577661749644, 0.0, 0.0, 0.017171766504479664, 0.14883499722913907, 0.14454297081157494, 0.0, 0.0, 0.0, 0.08135785354072747, 0.18934501987281463, 0.0, 0.0, 0.0, 0.043171173549343585, 0.04442771737900286, 0.0, 0.0, 0.16847976307679274, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4519419326045341, 0.0022494085401006682, 0.0, 0.09264806290445121, 0.0, 0.0, 0.5779259042074504, 0.0, 0.0, 0.0, 0.01319039039025495, 0.0, 0.0, 0.05821123759190987, 0.008570313787111606, 0.12498925860233108, 0.3161944438230963, 0.0, 0.0, 0.0, 0.0, 0.03428001709676162, 0.0, 0.0, 0.0, 0.4239046512601812, 0.0, 0.0, 0.0, 0.0, 0.006439869364205756, 0.0, 0.19268641103781292, 0.0, 0.0, 0.0, 0.13842608775449636, 0.7754112567712441, 0.5650474898241402, 0.16678352690096504, 0.0, 0.0, 0.26721012017234747, 0.0, 0.0, 0.40379612390902914, 0.0, 0.5616249905190419, 0.0, 0.0, 0.0, 0.05914491909738165, 0.0, 0.0, 0.5796881176474965, 0.0, 0.0, 0.0, 0.0, 0.19259492607938428, 0.5396680351153355, 0.1002017616669876, 0.0, 0.0, 0.07018769309449151, 0.0, 0.0, 0.0, 0.8890997886610695, 0.01580855669802033, 0.07592126473643429, 0.0, 0.0, 0.5327597008182733, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26650628783183555, 0.0, 0.0, 0.4177758368274485, 0.01847646120309497, 0.2474671864399932, 0.030137257707486417, 0.0, 0.0, 0.0, 0.0, 0.4333965515966774, 0.0, 0.025363517487659904, 0.0, 0.0, 0.28727696476738296, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.48463873218296616, 0.3619901497543638, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3095355097692787, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08881016246594031, 0.0864536634210502, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13334438240099766, 0.0, 0.2743296378950603, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21573236386631758, 0.138874394226427, 0.21526827303910834, 0.0, 0.8276738568887637, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13803323038392623, 0.0, 0.0, 0.18937725647626488, 0.0, 0.09756025088965181, 0.10247093349242449, 0.14247269057616566, 0.0, 0.4644170645216008, 0.0, 0.0, 0.0, 0.6396576582705668, 0.0, 0.14648223852485512, 0.0, 0.3845502326592231, 0.0, 0.0, 0.0, 0.0, 0.01873756402105984, 0.01865952833886222, 0.015020499411212522, 0.0, 0.11259829701043601, 0.13537240455394534, 0.18963280616455852, 0.0, 0.1732077631723114, 0.0, 0.009279305276553587, 0.0, 0.09430577452314615, 0.07566718263303025, 0.06172210939249301, 0.0, 0.0, 0.0017837976727260341, 0.0, 0.0, 0.06543462567823881, 0.0621898641418941, 0.0, 0.0, 0.0, 0.41468742426256355, 0.21475258071539002, 0.0, 0.0, 0.08728790458911416, 0.0, 0.0, 0.4956863169283368, 0.0, 0.0, 0.3312300382813116, 0.0, 0.6814401538748236, 0.017040189816468283, 0.0, 0.0, 0.0, 0.0, 0.1702496303089558, 0.04558027585085677, 0.0, 0.0, 0.05652088848846798, 0.0, 0.0, 0.039516412285590885, 0.04836078861030929, 0.0, 0.0, 0.0, 0.0066658135086557066, 0.28756231542228783, 0.0, 0.0, 0.005213055047386901, 0.0, 0.03077146873270733, 0.0, 0.18174661292486113, 0.011855817392138795, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2550943184597343, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19130663987033655, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08795782309469964, 0.4949588224757624, 0.10547057221471998, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0428147611319233, 0.0, 0.4336529209634745, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10981699391447328, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14060207841669792, 0.19125923680987167, 0.17120811796462362, 0.0, 0.0, 0.29682703146376954, 0.2309028098716656, 0.0, 0.3415808438027304, 0.5413871431291847, 0.19010077735847383, 0.0, 0.0, 0.0, 0.037176095928915485, 0.0, 0.0, 0.19621484736356867, 0.46400800412758475, 0.6251709107930822, 0.11840971377140953, 0.5297289566486542, 0.0, 0.0, 0.0629827610017505, 0.0, 0.30811879649367063, 0.0, 0.43390554368076734, 0.0, 0.3078202365484454, 0.0, 0.0, 0.06464271443386868, 0.0, 0.0, 0.7925386152607364, 0.0, 0.0, 0.0, 0.0, 0.4871987999416911, 0.0, 0.0, 0.0, 0.026241068751647587, 0.4048536827096608, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04667237073016084, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008398941803472277, 0.0, 0.3462604046867109, 0.0, 0.41520221547875746, 0.0, 0.0, 0.0, 0.49209502240450126, 0.6693906625198521, 0.19758221668125867, 0.008160985490142467, 0.2605302099636665, 0.0, 0.0, 0.0, 0.9022483783960523, 1.0694729952381887, 0.6653361553880242, 0.881281776229774, 0.001915716390555032, 0.022482711824403312, 0.0040432994483474245, 0.0, 0.3214035783779074, 0.6867348676262818, 0.0, 0.6858420722534031, 0.0, 0.5811377322397425, 0.04246482918579259, 0.11467932906673921, 0.09709202075873843, 0.0, 0.0, 0.0, 0.2200140216993193, 0.0, 0.7507517442378999, 0.0, 0.0, 0.7372603142185328, 0.0, 0.006741369353138395, 0.8069776586909365, 0.00396709224045839, 0.0, 0.0, 0.0, 0.6101879525945185, 0.0, 0.0, 0.026258353794755256, 0.4016774417320984, 0.014813931005383318, 0.6190727226045784, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11309418362565873, 0.0, 0.0, 0.0, 0.0, 0.0, 0.036526440507301174, 0.022956711251180283, 0.40907708831845013, 0.0012453094708774737, 0.0, 0.0, 0.0, 0.0, 0.014062827632021033, 0.0, 0.0, 0.0, 0.006394809610240893, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21784527989974428, 0.0, 0.0, 0.0, 0.3180108962002836, 0.2508741672819204, 0.17523704698611114, 0.13837147224686994, 0.27935616728122964, 0.1859955338163167, 0.0, 0.06462126637992056, 1.0008493550472979, 0.6004231261661688, 0.0, 0.3940831570768702, 0.0, 0.0, 0.1305734964236071, 0.0, 0.09786792103897592, 0.0, 0.11654231814191775, 0.46697515894469777, 0.5700094853415558, 0.1107417067979406, 0.346111937724667, 0.0, 0.1225882117910605, 0.0, 0.28673152989464684, 0.0, 0.12654022793408917, 0.0, 0.0, 0.45809293367016757, 0.3647743355850667, 0.817304098176075, 0.0036334642288677415, 0.0, 0.2669922423479005, 0.0, 0.0, 0.0, 0.32457729111200295, 0.5543705739187803, 0.8812247175026642, 0.16912005088903598, 0.5020073987686707, 0.0, 0.09252856828989332, 0.0, 0.0, 0.0, 0.06948083164247039, 0.2588335470174883, 0.23431107957691064, 0.0, 0.0, 0.4609326565956409, 0.0981996119487529, 0.0, 0.0, 0.0, 0.0, 0.41461953421729686, 0.2880401034246727, 0.0, 0.12878680297473977, 0.5528442548314576, 0.8638211211778427, 0.0, 0.19329232440572794, 0.07190135483727589, 0.0, 0.37985878824980135, 0.0, 0.0, 0.47943873587199365, 0.0, 0.1632157826430328, 0.028602417984395823, 0.12587604601890898, 0.20239239184313712, 0.0, 0.9957002205667365, 0.5403020941861382, 0.1731723605204449, 0.5984215188307392, 0.5906299727726914, 0.15421128542459664, 0.22417177182593684, 0.14760215442934868, 0.0, 0.0, 0.10452572448334531, 0.0, 0.0, 0.5192893646261969, 0.0, 0.0, 0.0, 0.03548389098440683, 0.0, 0.0, 0.5359908824860568, 0.0, 0.0, 0.4508397689271815, 0.17912612646003018, 0.05191685886593687, 0.015041105758856862, 0.0, 0.0, 0.07792048637164595, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16284516279577882, 0.07019827463547235, 0.0, 0.0017166852898648512, 0.022601665621833984, 0.0, 0.0, 0.0, 0.08820522946301469, 0.0, 0.0, 0.4597721334804677, 0.0, 0.01968862180697655, 0.1496625833744818, 0.0, 0.0, 0.0, 0.0, 0.042967175515187854, 0.0, 0.5925889649898668, 0.03501818713399176, 0.0, 0.23929946904107768, 0.0, 0.0, 0.0, 0.0, 0.0, 0.586042846539397, 0.0, 0.35012160211964255, 0.0, 0.0, 0.2671275149044985, 0.5254872140248491, 0.0, 0.0, 0.0, 0.4346599048698998, 0.0, 0.6685147232492785, 0.0, 0.0, 0.006603260891096502, 0.41222164853295895, 0.691126666160783, 0.3115253982735278, 0.0, 0.5948463934358659, 0.0, 0.6104915934501508, 0.0, 0.10122959156761935, 0.0, 0.0, 0.4361142638019697, 0.0, 0.0, 0.022953207777356696, 0.01768983406390727, 0.0, 0.49300859199961644, 0.0, 0.45242065570193146, 0.0, 0.25296290668039206, 0.24913417193879323, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0036117281801281323, 0.37981219294125684, 0.0, 0.7813883080906168, 0.37787984308171674, 0.0, 0.3540795182413977, 0.0, 0.0, 0.024079641916532137, 0.0, 0.3372996465844834, 0.4587109366214878, 0.0, 0.0, 0.0, 0.0, 0.008167928328435794, 0.30985126085873477, 0.0, 0.1769552845849796, 0.01014740975340464, 0.3239445526321744, 0.2589119416659987, 0.30500724408067964, 0.0, 0.8521343659652334, 0.0, 0.12278148254603906, 0.0, 0.0, 0.7559317032710442, 0.0, 0.4639073457870384, 0.3375990135598286, 0.0, 0.09771802789528808, 0.0, 0.0, 0.0, 0.0, 0.14259284539732897, 0.0, 0.0, 0.0, 0.03978581978010784, 0.4979059043742451, 0.0, 0.0, 0.02239395579386129, 0.0, 0.0, 0.08552679542089565, 0.0, 0.28975782063069117, 0.4544199284136855, 0.4879966224465369, 0.0, 0.5198773678370044, 0.09074414747732065, 0.0, 0.0, 0.0, 0.08751115961530397, 0.0, 0.0, 0.0, 0.0, 0.01723069885490719, 0.005476104703094391, 0.0, 0.0, 0.0, 0.0, 0.0, 0.018363845689630152, 0.0, 0.0, 0.0, 0.03456818780211805, 0.16076784648973388, 0.1339929852951158, 0.12939203287442297, 0.6506668934574178, 0.07556479761019191, 0.0, 0.0, 0.1120835499344092, 0.004448105032597938, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.424200452243984, 0.21870476868551994, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04400733534916703, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5084860468121182, 0.0, 0.0, 0.0, 0.06613225218879751, 0.0, 0.0, 0.03227907593043655, 0.0, 0.01489513919323321, 0.0, 0.0, 0.0004903768608608706, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3709186680024144, 0.0057636955333438475, 0.0, 0.0, 0.0, 0.0, 0.05167292145382253, 0.03114794005970685, 0.0, 0.0, 0.0, 0.04406332427000894, 0.0, 0.28333618254852055, 0.0, 0.0, 0.08754290037370453, 0.0, 0.030717709851121017, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15375069919642081, 0.17266284464812964, 0.0, 0.0, 0.0, 0.0, 0.4591427931520538, 0.0, 0.0, 0.4080740928256236, 0.04867028613084824, 0.0, 0.0, 0.19198247076461217, 0.0, 0.0, 0.0, 0.04903912896069461, 0.0, 0.0, 0.0, 0.03565133307467186, 0.011864802664565318, 0.0, 0.0770587282490205, 0.06882991093352155, 0.0, 0.32659059563162995, 0.036557980918752765, 0.0, 0.0, 0.0, 0.0, 0.03137440184410096, 0.0, 0.0, 0.0, 0.18642661293603366, 0.0, 0.0, 0.0, 0.0, 0.06772257249589227, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21100355273002191, 0.0, 1.3416336420880526, 0.0, 0.0, 0.46161810723264507, 0.0, 0.4582995461192519, 0.05104879083246295, 0.5773364122618407, 0.57352236887648, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5640999064171196, 0.6666836020552119, 0.06886868779194379, 0.564904097158741, 0.0, 0.3210670084651615, 0.0, 0.0, 0.0, 0.9392890324745945, 0.0, 0.0, 0.2984250122811811, 0.0, 0.009405052137469182, 0.0, 0.39950267169818077, 0.07050196115427894, 0.824636783426293, 0.4953951141450468, 0.0, 0.0, 0.34635403119710667, 0.8798483938054087, 0.39347138128916365, 0.0, 0.0, 0.41085938784277987, 0.0, 0.7572672907360996, 0.0, 0.1918766456362537, 0.14775814623354722, 0.0, 0.0, 0.18414622884752666, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32881972797464193, 0.22733765531865868, 0.29775899283396906, 0.0, 0.0, 0.0, 0.0387256895819095, 0.5151993362991701, 0.0, 0.0, 0.0, 0.008722287803381279, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1780184121162673, 0.0, 0.0, 0.0, 0.0, 0.0511079535437104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05738054033260683, 0.0, 0.0, 0.3177388426930726, 0.0, 0.0, 0.0019725686702392773, 0.0, 0.0, 0.0, 0.0, 0.20770780211002965, 0.0, 0.0, 0.0, 0.8220710140576788, 0.0, 0.0, 0.0, 0.0, 0.9922981121231631, 0.19272059014741777, 0.18871634512759347, 0.009978475777936804, 0.5372065554785002, 0.0, 0.0, 0.17523452577386275, 1.0717089910255204, 0.5571949298413089, 0.0, 0.3237380570219946, 0.0, 1.1122472434174695, 0.10030606802210519, 0.0, 0.42164300445661296, 0.0, 0.2034243141927581, 0.0, 1.0210169552267845, 0.19689099390765805, 0.14675887656145528, 0.15859984719751974, 0.2247981968120587, 0.0, 0.22026608101531156, 0.5078755745015515, 0.2690121908665218, 0.0, 0.0, 0.0, 0.3746062674772627, 0.7584612913730437, 0.0, 0.0, 0.8749551201631387, 0.5887430555293698, 0.8247249363546676, 0.21469878981542115, 1.002630449124598, 0.2572736542055717, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005299432156408299, 0.06219376030445952, 0.011184949515597283, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11747014454387752, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1628689565677918, 0.010974138077104432, 0.0, 0.0, 0.0, 0.0, 1.0297896192318396, 0.0, 0.662355409415741, 0.5720482757502646, 0.3113118281374319, 0.0, 0.0, 0.25393001900118484, 0.02276308091998572, 0.03508485404358758, 0.45957926224802004, 0.0, 0.05036277933399867, 0.1447652248957086, 0.0, 0.0242600552046752, 0.005732716773973234, 0.0, 0.0, 0.04566723978074626, 0.007798132412071851, 0.435160826872351, 0.19099152935556227, 0.0, 0.09109198019072849, 0.0, 0.0, 0.0, 0.0, 0.040872817508571836, 0.0, 0.8816978299630381, 0.023385944730671186, 0.20852512378086208, 0.3265908462108258, 0.0, 0.8135187830099228, 0.5004561612521131, 0.5929930445509373, 0.07024535595608956, 0.4293153063068892, 0.33966138448698774, 0.0, 0.0, 0.219723330992236, 0.0, 0.0, 0.32087091161635517, 0.10046935863374477, 0.0, 0.21249664109114016, 0.0, 0.0, 0.5675920409330384, 0.0, 0.0, 0.02195446551553763, 0.0, 0.0, 0.0, 0.7828555360473642, 0.0, 0.0, 0.0, 0.539158201637973, 0.0, 0.037194676308406484, 0.0, 0.5899620450765102, 0.0, 1.064333300573155, 0.0, 0.4126616356723095, 0.0, 0.0, 0.0, 0.0, 0.005455259856546277, 0.06532462900349355, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6382915607944724, 0.0, 0.1058392854111573, 0.06419509685388734, 0.0, 0.0, 0.42600921169580896, 0.0, 0.6948705846598551, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7494592390120385, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.34703521803027376, 0.47959926529853425, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18954560408868362, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04058791510732469, 0.0, 0.0, 0.0, 0.026371559760006224, 0.46735915191246824, 0.9729562858716514, 0.0, 0.01593384874339247, 0.0, 0.0, 0.10548242945325798, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08182217469250767, 0.0, 0.0, 0.0, 0.0, 0.5929119201290493, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0028851424117770368, 0.14902256810885017, 0.0, 0.19393473922191487, 0.0010822975481770052, 0.10083006827906865, 0.005589290532560041, 0.0, 0.0377329438822351, 0.0, 0.0, 0.0, 0.0, 0.08622227292139113, 0.0, 0.0, 0.052960874748722735, 0.0, 0.0, 0.0, 0.040542431602682394, 0.0, 0.034748695303796415, 0.0, 0.0, 0.07778126624009696, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08990369242695052, 0.0, 0.0, 0.0, 0.0, 0.1714300400506459, 0.23319412483505944, 0.06883127399553583, 0.0, 0.0, 0.4520065142603474, 0.7559043080573538, 0.0, 0.9918256875421747, 0.34148047573693957, 0.23178166527267935, 0.1984049383893502, 0.0, 0.0, 0.0, 0.4618215114400494, 0.055660721213669, 0.23923628669541208, 0.0, 0.0, 0.39945045771087084, 0.3329245273531598, 0.25602890393383043, 0.0, 0.2574713970419185, 0.0, 0.0, 0.27848743576980106, 0.008801495971424074, 0.0, 0.0, 0.0, 0.0, 0.4961604274582618, 0.0, 0.0, 0.5434029369831717, 0.0, 0.0, 0.0, 0.0, 0.15767180411659634, 0.03460197933312267, 0.0, 0.0, 0.036131085316488384, 0.0, 0.0, 0.0, 0.016873683938744447, 0.019906225883667222, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.012507180486519448, 0.0, 0.02685500739865508, 0.028916495513405534, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029742024653825302, 1.0585077478673894, 0.0, 0.0, 0.10450313655197234, 0.0, 0.27087506529662764, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7518068036153462, 0.0, 0.2680435440340337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1316435251098364, 0.8078731280911045, 0.0, 0.0, 0.0, 0.10506968633342718, 0.23470506622896917, 0.0, 0.0, 0.607722294332459, 0.023665118775296444, 0.014839085130224942, 0.0, 0.0, 0.24386571546932873, 0.0, 0.0, 0.3502050356771847, 0.0, 0.0, 0.46379933676520235, 0.0, 0.08440789641107996, 0.04593440835303492, 0.021386035200774683, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7729032574550468, 0.0, 0.11781868003483978, 0.030607043037187642, 0.0, 0.1726108187023696, 0.09583059716129254, 0.5239548125179947, 0.4366934746091282, 0.0, 0.0, 0.24627150409293175, 0.0, 0.13007997889130285, 0.36528893478699903, 0.18318396866765946, 0.0, 0.011811348038501769, 0.0, 0.0, 0.0, 0.0, 0.0, 1.1723218684731558, 0.5524938653991974, 0.7739462295109258, 0.0, 0.7069108871009565, 0.0, 1.1639912229987677, 0.0, 0.0737216927746314, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.41689243790078717, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7826638975615551, 0.0, 0.0, 0.0, 0.1017910453533696, 0.0, 0.0, 0.0, 0.0, 0.022926661938484392, 0.0, 0.0, 0.24172521220469304, 0.33406187082542654, 0.0, 0.0, 0.31010342596966556, 0.0, 0.0, 1.1081747068991343, 0.7344335908166203, 0.16327913698089802, 0.7325151937485493, 0.17384385605370836, 0.08371482373128411, 0.0, 0.3420940653006234, 0.0, 0.04990946505718503, 0.5498243469410863, 0.0, 0.007722420577405236, 0.0906297807361463, 0.016298894248894004, 0.0, 0.17760842474448457, 0.7445477489471244, 0.0, 0.0, 0.23271741543898974, 0.5862478840032251, 0.38013450552556605, 0.0, 0.13625107884748244, 0.3102878234624971, 0.0, 0.0, 0.0613418632643825, 0.1222024301534575, 0.0, 0.0, 0.09768999149541487, 0.07432603695941839, 0.0, 0.0, 0.2373353492409029, 0.8187850328888507, 0.0, 0.1472545596990393, 0.08055057930039017, 0.0, 0.0, 0.0, 0.0, 0.022056121851574153, 0.7041166858972707, 0.0, 0.0, 0.0, 0.7708181971148897, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6591456110142444, 0.0, 0.0, 0.0, 0.5151326583061712, 0.4293405940090164, 0.0, 0.30993576190130123, 0.24212487706484054, 0.0, 0.0, 0.35913833699197834, 0.594616431743019, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7007742613782065, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07822848175716028, 0.0, 0.795037704009975, 0.0, 0.18176747614492506, 0.0, 0.0, 0.0, 0.0, 0.05218428597433502, 0.551641665900435, 0.0, 0.0, 0.0, 0.0, 0.4173251650328503, 0.13888627164939463, 0.0, 0.9020292850308806, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32443041606173034, 0.0, 0.3672605285185933, 0.0, 0.0, 0.0, 0.20671726976925492, 0.0, 0.0, 0.38426107037286794, 0.0, 0.0, 1.3158788906540237, 0.0, 0.0, 0.33314012692337136, 0.4077019730262151]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.1187145765025676, 0.0, 0.16555522612551515, 0.0, 0.0, 0.0, 0.0, 0.43509113842452285, 0.0, 0.0, 0.25672403787937165, 0.43862663884873543, 0.0, 0.0, 0.3519631419607619, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051120283482812334, 0.15945060967882835, 0.42044865267857073, 0.0, 0.019744477387695688, 0.0, 0.0, 0.0, 0.12726604148160792, 0.4480285054137333, 0.0, 0.41393771366257825, 0.0, 0.0, 0.1372243591915985, 0.12863434970716192, 0.0, 0.019238858430486484, 0.0, 0.2371659747040811, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.39682924637787165, 0.0, 0.8480118921637517, 0.0, 0.0, 0.0195483866997798, 0.0, 0.5990836331247341, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2618925497434801, 0.26117339231230247, 0.0, 0.0, 0.16216152735698644, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06997554550840408, 0.0, 0.0, 0.002400768013297612, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.4157511852632345, 0.5793963874059174, 0.0, 0.26436870752857605, 0.4172786501470117, 0.0, 0.0, 0.8079649846339338, 0.0, 0.0, 0.5764550461815096, 0.4229367652966696, 0.05379340446506314, 0.0, 0.0, 0.5795406808621261, 0.5877094760316834, 0.0, 0.0, 0.0, 0.0, 0.284387943824113, 0.0, 0.0, 0.0, 0.035174745039109515, 0.0, 0.0, 0.011970205674471077, 0.0, 0.0, 0.0, 0.0, 0.5436476197350472, 0.920039513761917, 0.0, 0.6198132723204128, 0.16799442509225773, 0.5753026732101696, 0.2043616977009669, 0.5065806869454675, 0.0, 0.0, 0.39160092945826996, 0.0, 0.11054447981865345, 0.0, 0.0, 0.9189729667337664, 0.0, 0.0, 0.6507053761422986, 0.6970188689802168, 0.0, 0.08297492397617155, 0.9062181287136433, 0.0, 0.059530976608982995, 0.012438951345378766, 0.0, 0.0, 0.0, 0.0, 0.2533819740366263, 0.9473531228336374, 0.06450793068804792, 0.0, 0.41573543153630554, 0.0, 0.0, 0.0, 0.7238062468593162, 0.0, 0.0, 0.3590904912393951, 0.07774042001084827, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6251886494903025, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44684741712517223, 0.0, 0.0, 0.0, 0.0, 0.010812740091707317, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8163131959379999, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2672156592426391, 0.0, 0.028807779838791864, 0.0, 0.0, 0.0, 0.025506753620224757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.022871104613233297, 0.0, 0.6057451127777128, 0.0, 0.0, 0.05122083512724408, 0.0, 0.0, 0.26967234588040656, 0.0, 0.0, 0.6655341287456478, 0.0, 0.41411417571013454, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29998038732284904, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06750566800337324, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3426210978919867, 0.3800174489235809, 0.0, 0.6531468239127369, 1.5341196475571879, 0.0, 0.0, 0.5993450019914057, 0.0, 0.0, 0.318944682359523, 0.0, 0.0, 0.0, 1.2766961856974943, 0.0, 0.47028907930153113, 0.46890260973852405, 0.0, 0.2635141940642454, 0.0, 0.06844040704623247, 0.6776383700271937, 0.08344450181255293, 0.0, 0.0, 0.13135428676134797, 0.1357944044209692, 0.0, 0.0, 0.0, 0.38624172924075223, 0.0, 0.0, 0.0, 0.23564395924169773, 0.0, 0.7014291092208349, 0.11139739784790205, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008393202836106917, 0.0, 0.22229541093446364, 0.2882110765245937, 0.0, 0.2931292388749959, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24423669216579333, 0.0, 0.07507242489058646, 0.0, 0.0, 0.14176191313790465, 0.0, 0.0, 0.0, 0.054753508738442806, 0.11008634170637227, 0.0, 0.0, 0.0, 0.0, 0.0, 0.024773126340884036, 0.0, 0.0, 0.38053755501306186, 0.0, 0.6713587667580375, 0.05335137428594376, 0.0, 0.0, 0.009224220899634665, 0.0, 0.07390888522469428, 0.1992308489896435, 0.12678608744717204, 0.0, 0.0546923223511062, 0.11313411705958114, 0.0, 0.0, 0.0, 0.0, 0.05169899432402749, 0.019742405777142896, 0.1769782400741126, 0.0, 0.0, 0.09297789149141053, 0.028906196325416873, 0.0, 0.0, 0.012919011582055164, 0.0, 0.0, 0.3208972845059436, 0.0, 0.0, 0.0046103209297173, 0.0, 0.0, 0.00416876885269193, 0.0729081194704697, 0.0, 0.0, 0.0, 0.07125538498910843, 0.0, 0.0, 0.03513444799266689, 0.0, 0.07540438323786366, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04369081060273281, 0.0, 0.0, 0.0, 0.014769980988042226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.017283118828420634, 0.006620940647292606, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006092931164902776, 0.0, 0.16137232276465496, 0.0, 0.15262637216887753, 0.013645384773351038, 0.16271613196948126, 0.0, 0.0, 0.0, 0.0, 0.17730029672438757, 0.41874765425641397, 0.054497803302564006, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10045113292307115, 0.27028417756519546, 0.07991567883089672, 0.0, 0.0, 0.0, 0.0, 0.0, 0.01798371330728596, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5859834957136911, 0.5086687281653502, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07646258969830243, 0.0, 0.0, 0.02773130153308066, 0.07708391588594585, 0.0, 0.0, 0.06185373806995992, 0.0, 0.0, 0.033137714842779345, 0.0, 0.0, 0.0, 0.0, 0.028021730318764978, 0.07388933025705045, 0.0, 0.021389015345232583, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046371970770837774, 0.04025364462832554, 0.2181921153062336, 0.4335185189335439, 0.0, 0.0, 1.0038009425423415, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4280152293034966, 0.0, 0.08414972142221414, 0.0, 0.3712598089597713, 0.0, 0.06370844553850769, 0.0, 0.0, 0.0, 0.0, 0.5083497561860121, 0.0, 0.0, 0.0, 0.17350738400022994, 0.0, 0.0, 0.0, 0.0, 0.5680638629882098, 0.4512837677833129, 0.036928112404588626, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6736518032785722, 0.0, 0.0, 0.0, 0.0, 0.3438277430889845, 0.1331574579932683, 0.8185600695730958, 0.0, 0.0, 0.017261448593960855, 0.0, 0.5289976863810653, 0.0, 0.0, 0.0, 0.0, 0.13826565194431473, 0.0, 0.12839377709982103, 0.8277070113616852, 0.0, 0.0, 0.3904546499995126, 0.08179569775458351, 0.0, 0.0, 0.0, 0.0, 0.16848803520369499, 0.0, 0.0, 0.005780600674157121, 0.0, 0.0, 0.0, 0.0, 0.042429105563066505, 0.0, 0.0, 0.5671026868317051, 0.5831842436077501, 0.0, 0.0, 0.5203885995071309, 0.0, 0.0, 0.0, 0.0, 0.03279957809056344, 0.20563143706052323, 0.8140555730584957, 0.0, 0.11735707443596549, 0.0, 0.0, 0.0, 0.0, 0.05942421719401875, 0.13531075914415133, 0.0, 0.22862377269710113, 0.0, 0.0, 0.0, 0.0, 0.009783289930470927, 0.0, 0.49666013194599, 0.01297478801242045, 0.004970474495620279, 0.0, 0.0, 0.0, 0.0, 0.18702095525297172, 0.0, 0.0, 0.49027730046536305, 0.0, 0.0, 0.0, 0.3100811795242501, 0.0, 0.5172830310180929, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5147075854808417, 0.0, 0.23506445593598685, 0.0, 0.0, 0.0984177418166802, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6597667532607603, 0.0, 0.7531258126074596, 0.0, 0.0, 0.0, 0.0, 0.009060495116628974, 0.0, 0.14938403565323904, 0.23931891774764502, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17320374473408556, 0.0, 0.0, 0.8859260157921318, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2593451028242532, 0.13535058061487634, 0.0, 0.17876385946442425, 0.5885021691653141, 0.4462993508157936, 0.0, 0.38646137613385273, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08841279830908562, 0.0, 0.0, 0.4090685041141252, 0.2385779614705672, 0.0, 0.32657075289021537, 0.0, 0.3891842232348578, 0.46695749861500585, 0.0, 0.20033954304824086, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6140772326336235, 0.21962331732895995, 0.0, 0.0, 0.21665980127772702, 0.0, 0.10259951624992725, 0.0040997688735825025, 0.0, 0.0, 0.0178257297768441, 0.0025383566681682393, 0.21683531480545457, 0.0, 0.027677402398657985, 0.0, 0.1880826476230884, 0.3419147609793875, 0.03227511522566195, 0.19053492425855037, 0.0, 0.06432217258278244, 0.0026780235214896283, 0.0, 0.0, 0.464125489835237, 0.09967606965443436, 0.0, 0.0, 0.0, 0.011788389508631971, 0.03206041622309702, 0.0, 0.0060682844433003185, 0.0, 0.0, 0.0, 0.010791956772858862, 0.0, 0.0, 0.0, 0.0, 0.4329905527364345, 0.14376890418721155, 0.6930376581272882, 0.0, 0.611818052941564, 0.6291676211651914, 0.0, 0.0, 0.5614206159067703, 0.48216800990329456, 0.0, 0.0, 0.4507229848159907, 0.0, 0.0, 0.8782428778065052, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06410974538727675, 0.23291225157991716, 0.08679043179604816, 0.0, 0.0, 0.08995902157278039, 0.8808378297797503, 0.0, 0.0, 0.0, 0.3618017482397369, 0.07709259450646033, 0.0, 0.22347789493902354, 0.0, 1.4151156566032244, 0.0, 0.0, 0.0876553401034732, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.35023812146064465, 0.10119869206094158, 0.0, 0.0, 0.0, 0.03421091843192662, 0.0, 0.18934530571059222, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.040031965441735276, 0.015335731346610126, 0.0, 0.0, 0.0, 0.0, 0.5012279391934354, 0.14361151525658541, 0.0, 0.05781748261134272, 0.17152855777668224, 0.0, 0.498484457540378, 0.0, 0.0, 0.7074889608036871, 0.0, 0.0, 0.0, 0.0, 0.0, 0.36413161255211174, 0.10650975776468122, 0.0027919607805886224, 0.1717164070699339, 0.0, 0.0, 0.0, 0.31636490805397033, 0.0, 0.0, 0.0, 0.3781004501122092, 0.1664160983543511, 0.0, 0.10894483484211534, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06899783350353156, 0.1313910038295779, 0.5458205926873976, 0.0, 0.2058361256028114, 0.0983057734206431, 0.006586106310131405, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13715236217863272, 0.026867165999227966, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0035515304259612105, 0.0, 0.0, 0.5329776529167246, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.397719517913955, 0.20668056810136554, 0.1307286941015916, 0.0, 0.19979734260211207, 0.13509882393613562, 0.0, 0.0, 0.0, 0.4428910220796438, 0.0, 0.10971922982381796, 0.20405686697329703, 0.0, 0.0, 0.0, 0.4155385933508652, 0.0, 0.030373091671251427, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02870549966274466, 0.0, 2.221236796150802e-5, 0.04518680503118196, 0.8557997812159583, 0.0, 0.0, 0.0, 0.33295230926411423, 0.0, 0.0, 0.1651823382455281, 0.0, 0.0, 0.10987547938954217, 0.038321493889877094, 0.0, 0.0, 0.9167265220224268, 0.0, 0.41223669995910156, 0.0062879102301798264, 0.006460790579658201, 0.0, 0.015093288171720337, 0.004653032070207847, 0.0, 0.0, 0.21192982566516394, 0.0, 0.5265530542756913, 0.004398370159579225, 0.3103332077675556, 0.0, 0.0, 0.21886457786346297, 0.058793164358353744, 0.24052003353974485, 0.5039916994286584, 0.08865805888962155, 0.0, 1.2109591957845456, 0.0, 0.4576423956337198, 0.13738787883657938, 0.3665641879979031, 0.00039223002823340837, 0.0, 0.6257753572135888, 0.0, 1.0620388990418166, 0.04837586177991647, 0.05564954721706949, 0.23699310888410263, 0.0060621596830514254, 1.2406804285104875, 0.0, 0.6055788924273563, 0.1024025590217045, 0.41360202805293217, 0.5476995216716073, 0.17831079467145505, 0.0, 0.0, 0.0, 0.14728996725917032, 0.19581503373322434, 0.10219463649126194, 0.0, 0.0, 1.213270546019433, 0.06327342954871182, 0.0, 0.0, 0.34855390390603164, 0.0, 0.0, 0.2854684709047343, 0.28462687503630496, 0.0, 0.0, 0.0, 0.06675489490570531, 0.4113308129658067, 0.0, 0.049609846106367136, 0.0, 0.0, 0.0, 0.0, 0.2938483162830928, 0.35256998241930354, 0.0, 0.15126367898557985, 0.0, 0.0, 0.1430373863296425, 0.0, 0.11979050068949273, 0.0, 0.0, 0.0, 0.2174719417996252, 0.18492143615091797, 0.5613745989840638, 0.0, 0.1269084936189851, 0.13050728832210684, 0.0, 0.008090983120695843, 0.11645462945856581, 0.45646266655488743, 0.0, 0.0, 0.018120109170533364, 0.0, 0.0, 0.18217259219167142, 0.0, 0.0, 0.23544229686275722, 0.0, 0.072369241454098, 0.0, 0.013298187548207349, 0.0, 0.15536962738337737, 0.0, 0.0, 0.0, 0.5485281455413065, 0.0, 0.0, 0.0, 0.07504798957314487, 0.13800884999205565, 0.023881103672210243, 0.4000634234277266, 0.0, 0.63983454521553, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1274757935226854, 0.0, 0.060340389443721644, 0.0, 0.0, 0.0, 0.0, 0.046886662511488715, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4105919579209241, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17717763704599515, 0.0, 0.0, 0.006078729370399735, 0.0, 0.0, 0.0, 0.4419304781486809, 0.004498905638339938, 0.0, 0.0, 0.06013187036225827, 0.061837053761552255, 0.158000195476362, 0.08245930986204707, 0.055178613203866224, 0.0, 0.3921588247960043, 0.051054375379452996, 0.0, 0.3113852203955569, 0.0, 0.08631714383210826, 0.016249403505819805, 0.0, 0.5064243516388502, 0.0, 0.0799687272151233, 0.0, 0.06016447367008715, 0.0, 0.0, 0.12723000596711698, 0.0, 0.0, 0.0, 0.0, 0.3344116617465516, 0.28448339782348236, 0.03555929040895464, 0.12972821265302345, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05771825347353467, 0.0, 0.06101920493228206, 0.0, 0.1422424089220273, 0.0, 0.0, 0.0850349690926388, 0.0, 0.6465489235087094, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9592391331341867, 0.0, 0.0, 0.0, 0.07533170200640231, 0.3935757364788316, 0.41733426606664215, 0.0, 0.0, 0.0, 0.0, 0.8096836326115127, 0.0, 0.0, 0.15672712010482948, 0.08471008784973191, 0.0, 0.0, 0.021315681001762884, 0.0, 0.0, 0.0, 0.6515686149424397, 0.0, 0.04354065349809789, 0.5887361460115157, 0.0, 0.3314629690186724, 0.08254082170798169, 0.0, 0.5363022284331493, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20539826744479112, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20437563182844645, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08512737043917705, 0.0, 0.0, 0.0, 0.21221590140088104, 0.0, 0.5922163084848736, 0.0, 0.054946173604955253, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11912480847073124, 0.10340745987043, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22405559305996067, 0.04389088686607588, 0.0, 0.8369237022137216, 0.0, 0.0, 0.303533841030579, 0.8437244477194209, 0.0, 0.0, 0.6770220530788269, 0.0, 0.08868596150524616, 0.0, 0.0, 0.0, 0.005801870585523199, 0.0, 0.3067127385215406, 1.9980597464483445, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1818471988215991, 0.0, 0.0, 0.0, 0.0, 0.09250846502860006, 0.0, 0.0, 0.0, 0.14804755431292183, 0.0, 0.3797383608658618, 0.39017892030987883, 0.0, 0.035065009177551926, 0.28100508860898343, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2656255916096575, 0.01029999428072384, 0.026319871200300066, 0.0, 0.0, 0.35174701729018143, 0.019026589888644814, 0.0, 0.0, 0.0, 0.0, 0.10260912587786382, 0.0, 0.0204467738415142, 0.0, 0.023687486390763176, 0.0, 0.0, 0.002174927201126577, 0.0, 0.09114373059640297, 0.0, 0.2642096712527522, 0.3907643461384895, 0.0, 0.0, 0.18051818330232947, 0.0, 0.3874221185422575, 0.6531078672631825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15551832566217896, 0.0, 0.1916820827839075, 0.0, 0.0, 0.08276135601321193, 0.0, 0.10030127909330487, 0.0, 0.0, 0.0, 0.10537887040654752, 0.0, 0.17805025311577488, 0.0, 0.010472659941918684, 0.0, 0.0, 0.007619143135798, 0.0, 0.12561988447587705, 0.0, 0.0, 0.7794014171836517, 0.0, 0.08402510727068294, 0.0, 0.3682135686649267, 0.08647369259665981, 0.09410614716697653, 0.611021014238459, 0.0, 0.0, 0.023955493193970948, 0.0, 0.0, 0.007434430348560844, 0.0, 0.0, 0.0, 0.24285369100807747, 0.0, 0.0, 0.0051185021691807515, 0.0, 0.0015127483220163092, 0.0, 0.0, 0.06096785123225053, 0.014193124550026902, 0.5775319451121608, 0.0, 0.0, 0.0, 0.007997400222196374, 0.6747251647940697, 0.0, 0.0, 0.0, 0.0, 0.7027693457851822, 0.0, 0.0, 0.055434654145900264, 0.0, 0.0, 0.0, 0.02587284155878174, 0.0, 0.42673143134824615, 0.004724246163513554, 0.4406790171730267, 0.0, 1.0342538585019783, 0.5747154140513469, 0.0, 0.9363482803339344, 0.7135280098555865, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9563104993907826, 0.0, 0.0, 0.0, 0.8295023845011231, 0.10509888461130146, 0.2471322355632557, 0.3801044173906537, 0.0, 0.0, 0.0, 0.1514367226333477, 0.0, 0.0, 0.0, 0.24534157695942965, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.052661051195310594, 0.6550399256456869, 0.5803102488724085, 0.0, 0.5319072548222628, 0.46172731619827034, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.026741428574906606, 0.0, 0.7082513040743756, 0.0, 0.0, 0.4418255985655133, 0.1449878921305842, 0.3039326972841545, 0.0, 0.0, 0.0, 1.198252644211342, 0.44500849169967277, 0.23918686672510267, 0.0, 0.0, 0.19736692078049992, 0.0, 0.0, 0.0, 0.0762301466058952, 0.3507440605568865, 0.4669973871873196, 0.0, 0.06417785026076955, 0.0, 0.0, 0.07892920039677795, 0.20151756987027533, 0.0, 0.5298004507120764, 0.006913800133275409, 0.0, 0.0742780358218034, 0.0, 0.6026732223863505, 0.0, 0.0, 0.5351202277676342, 0.0, 0.0, 0.9548891902757952, 0.02916984862304253, 0.0, 0.4970347785792808, 0.12683003730681902, 0.0180604034141702, 0.0, 0.2650052427173023, 0.0, 0.033791924886614616, 0.0, 0.04181580147667587, 0.0, 0.4621910495164758, 0.0, 0.0, 0.0190541328400638, 0.0, 0.17864673433347314, 0.014160348828667728, 0.8165447001064132, 0.09368415058058097, 0.9079968531646069, 0.08687864486537158, 0.19492858047186096, 0.10063554575175, 0.0, 0.09210666608746948, 0.01874477292287561, 0.03748966025771319, 0.0, 0.5779501492966836, 0.0012862204434733993, 0.220963909203652, 0.3086404911712966, 0.17631145912557372, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032159896791554, 0.0, 0.1846953640258127, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07139034913327573, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37871083555251084, 0.0, 0.0, 0.0, 0.0, 0.19265602282403793, 0.0, 0.0, 0.606424267788203, 0.011600938808477314, 0.0, 0.63655122023184, 0.8091094673344561, 0.15945386155042648, 0.21681046587583439, 0.5841977471111124, 0.14228431684797266, 0.0, 0.4919831840901785, 0.07005765326837811, 0.0, 0.4452652454663618, 0.0, 0.2225785522561698, 0.0, 0.0, 0.565764962530824, 0.0, 0.0, 0.0, 0.09016013522690633, 0.0, 0.0, 0.054929050345560504, 0.0, 0.0, 0.0397070718161962, 0.0, 0.3253549491861982, 0.39037279561642807, 0.09169366625332782, 0.16748228205826332, 0.0, 0.0, 0.6136975564576865, 0.0, 0.0, 0.3026006369046373, 0.0, 0.649431418360159, 0.08211939816658421, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8259750138040276, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5145740577075524, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.45723140022915015, 0.0, 0.0, 0.9202097992461084, 0.168004673879535, 0.0, 0.0, 0.1251531867765232, 0.0, 0.2137981131137785, 0.0, 0.013898368242301713, 0.0, 0.0, 0.7137867360685719, 0.0, 0.0, 0.1000729174155476, 0.0, 0.0, 0.03483089759667312, 0.12636252602014256, 0.0, 0.6417666786106352, 0.47874755782682904, 0.0, 0.0, 0.42719736321019475, 0.0, 0.269711179183823, 0.0, 0.0, 0.0, 0.0, 0.668274429237161, 0.0, 0.0, 0.19736413928693208, 0.0, 0.64140191275638, 0.0, 0.04878252313782071, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7804894714968978, 0.1354649020531392, 0.7521947991243342, 0.061565240681645095, 0.7064549771516211, 0.0, 0.0, 0.0, 0.1369213608036062, 0.598180503319145, 0.0, 0.4894142513129519, 0.14663698801711797, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14418506746458087, 0.027360830334206502, 0.0, 0.0, 0.11896445459410832, 0.016940356460817766, 0.08867849541915622, 0.0, 0.0, 0.0, 0.0, 0.014527597186767355, 0.0, 0.0, 0.0, 0.0, 0.017872458048705516, 0.09208038488681886, 0.0, 0.01328217046242409, 0.0, 0.0, 0.0, 0.0, 0.07867275819804301, 0.09439445944634833, 0.0, 0.040498210068061674, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), 42), 42)),) diff --git a/test/test_parallel.jl b/test/test_parallel.jl index ccf06b582..e229f52e5 100644 --- a/test/test_parallel.jl +++ b/test/test_parallel.jl @@ -304,7 +304,7 @@ Ct = Tensor(Dense(Dense(Atomic(Element(0.0)))), zeros(42, 42)) CBad = Tensor(Dense(Dense((Element(0.0)))), zeros(42, 42)) - @test_throws Finch.FinchConcurrencyError begin +#= @test_throws Finch.FinchConcurrencyError begin @finch_code begin Ct .= 0 for i = _ @@ -315,7 +315,7 @@ end end end - end + end =# @repl io @finch_code begin @@ -341,6 +341,54 @@ @test Ct == CR + @repl io @finch_code begin + Ct .= 0 + for i = _ + for k = parallel(_) + for j = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end + @repl io @finch begin + Ct .= 0 + for i = _ + for k = parallel(_) + for j = _ + + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end + + @test Ct == CR + + @repl io @finch_code begin + Ct .= 0 + for k = parallel(_) + for i = _ + for j = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end + @repl io @finch begin + Ct .= 0 + for k = parallel(_) + for i = _ + for j = _ + + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end + + @test Ct == CR + @test check_output("debug_parallel_spmms_atomics.txt", String(take!(io))) end From a7e5867032a14c8f6facc09906ed8c1716d4e351 Mon Sep 17 00:00:00 2001 From: teocollin1995 Date: Mon, 19 Feb 2024 15:30:50 -0500 Subject: [PATCH 07/41] even more tests --- src/transforms/concurrent.jl | 2 +- .../debug_parallel_spmms_atomics.txt | 1118 ++++++++++++++++- .../debug_parallel_spmms_no_atomics.txt | 12 +- 3 files changed, 1109 insertions(+), 23 deletions(-) diff --git a/src/transforms/concurrent.jl b/src/transforms/concurrent.jl index bdd90c6d6..672143b90 100644 --- a/src/transforms/concurrent.jl +++ b/src/transforms/concurrent.jl @@ -66,7 +66,7 @@ function ensure_concurrent(root, ctx) injectivity = (@capture(acc, access(~tns, ~mode, ~i..., idx)) ? (is_injective(tns, ctx), [length(i) + 1]) : ([false], [1])) injectivityAlt = (@capture(acc, access(~tns, ~mode, ~i...)) ? (is_injective(tns, ctx), [length(i)]) : ([false], [1])) testInjectivity = injectivity[1][injectivity[2]][1] - testInjectivityp = injectivityAlt[1][injectivityAlt[2]][1] + testInjectivityp = injectivityAlt[1][end][1] if !( atomicity || testInjectivity || testInjectivityp diff --git a/test/reference64/debug_parallel_spmms_atomics.txt b/test/reference64/debug_parallel_spmms_atomics.txt index d2344426c..b3f7151ad 100644 --- a/test/reference64/debug_parallel_spmms_atomics.txt +++ b/test/reference64/debug_parallel_spmms_atomics.txt @@ -8,7 +8,7 @@ julia> @finch begin end end end -(CR = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.018003972912606803, 0.6715509015807506, 0.7782653886209859, 0.32632930309063274, 0.07671040055246747, 0.5767259256948573, 0.810165869204658, 0.04291847779490834, 0.7523035763995596, 0.11302431472257762, 0.0, 0.01602965026103634, 0.22115346753431409, 0.037561900748908854, 0.013385336224041582, 0.029972484597749195, 0.0, 0.0, 0.5634489750971553, 0.054417596728049175, 0.0, 0.5656810924951424, 0.2940947806987573, 0.0, 0.08882217481442631, 0.22565673174351195, 0.09930062784782019, 0.19828502144330606, 0.0, 0.11456873776555695, 0.48424587385265383, 0.37663537032083527, 0.0, 0.0, 0.0, 0.037484025491953656, 0.0, 0.04358738828832, 0.18948713942721873, 0.0, 0.021309789698209406, 0.0, 0.0, 0.34915458383088943, 0.0, 0.0, 0.0, 0.007487180183164403, 0.09132978840971764, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2025839575232124, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10847123427460506, 0.10311356900941321, 0.03863451517271454, 0.0, 0.0, 0.0, 0.09096268938595695, 0.0, 0.0, 0.0, 0.0, 0.07419585782639983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08418511929497627, 0.0, 0.12651499086404613, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4321500979738283, 0.0, 0.006480579483586275, 0.0, 0.00038716149888684873, 0.0, 0.0, 0.013244468221545107, 0.0, 0.0, 0.24547792145680816, 0.0, 0.0, 0.24645038846539752, 0.0, 0.07787330782357368, 0.0, 0.09831191096156015, 0.0, 0.0863868727625753, 0.0, 0.0, 0.21097149137042656, 0.4600105653434928, 0.0, 0.0, 0.4846748152193548, 0.0053825196588004436, 0.0, 0.0, 0.23304656335170953, 0.0, 0.0, 0.0, 0.01644729791409444, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6635839294521109, 0.0, 0.0, 0.1032519091648337, 0.0, 0.014643680846542287, 0.0, 0.0, 0.012228001765264587, 0.0273809778429294, 0.0, 0.0, 0.0, 0.0, 0.11814152846841043, 0.0, 0.0, 0.0, 0.08114235550352887, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03981869801488778, 0.0, 0.0, 0.01690058436045381, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.47984630251995897, 0.0, 0.0, 0.0, 0.154685583485594, 0.0, 0.0, 0.7459066497127498, 0.32432766351381886, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21251921179608543, 0.0, 0.041283993604408244, 0.4906650630543811, 0.0, 0.0, 0.0, 0.3009663372628846, 0.29390924803430424, 0.14599468380868816, 0.14724751511978565, 0.02500191228688869, 0.0, 0.0, 0.0, 0.0, 0.06939565285269096, 0.018849269370198582, 0.32715732364762956, 0.0, 0.0, 0.0, 0.0, 0.4732128312830887, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5472401277259243, 0.0, 0.0, 0.0, 0.3356686041995424, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006124345533801972, 0.059693390630145234, 0.0, 0.0, 0.0, 0.0, 0.7701573530835567, 0.0, 0.0, 0.43089308645043684, 0.0, 0.4426871487137241, 0.12677439419075828, 0.0, 0.0, 0.47537084352136705, 0.0, 0.0, 0.0, 0.0, 0.0, 1.215287997578233, 0.037543424026112354, 0.0, 0.0, 0.5379410567908419, 0.0, 0.0, 0.17780464411285438, 0.3071357553748976, 0.3614993154298547, 0.0, 0.1891417853768657, 0.0, 0.6912529043730106, 0.0, 0.0, 0.5485925554907274, 0.0, 0.5108261790337173, 0.0, 0.0, 0.0, 0.02366817478031771, 0.0, 0.0, 1.2280555558078412, 0.4674168435713557, 0.0, 0.0, 0.0, 0.23075296158753902, 0.0, 0.0, 0.07502151735916562, 0.626568729479956, 0.0, 0.0, 0.0, 0.0, 0.4149990617847983, 0.0, 0.0, 0.0, 0.22279868499825492, 0.0, 0.0, 0.5403248930908322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06322273667040083, 0.10094478522643717, 0.3387178421999011, 0.0, 0.5942669672638095, 0.0, 0.07164274732515331, 0.0, 0.0, 0.0, 0.16162050236277423, 0.16241659821715973, 0.5135606043385268, 0.0, 0.0, 0.5786552208576398, 0.9215277550399469, 0.5467787056885621, 0.12114909389695927, 0.0, 0.41576199634744937, 0.25271142537828667, 0.10169080638315105, 0.09035644665270913, 0.5186992660395696, 0.0, 0.8350126002207462, 0.0, 0.4590684905849725, 0.5886674559725333, 0.8153568197541052, 0.0, 0.5241047591859962, 0.40143028033605616, 0.0, 0.0, 1.2135756958284523, 0.0, 0.9792953636803372, 0.0, 0.0, 0.0, 0.07614591165689645, 0.24556945517590373, 0.6102890524250416, 0.0, 1.0435423231384657, 0.0, 0.0, 0.48943379744214055, 0.12791852851238183, 0.0, 0.19465687730377407, 0.11709029823841187, 0.0, 0.4229951092224917, 0.1438540051610157, 0.0, 0.0, 0.1703427415013558, 0.08724202694224298, 0.1395620898962288, 0.0, 0.22213892259359796, 0.0, 0.7882143461677291, 0.2546665805877283, 0.03597313889306425, 0.14802212956482205, 0.3919199393005139, 0.0, 0.43670107573519007, 0.08461463206412526, 0.5268384995574602, 0.0, 0.0, 0.0, 0.710223739285348, 0.31420569755496963, 0.0, 0.060070569318188244, 0.0, 0.1747770748083586, 0.0, 0.0, 0.0, 0.0, 0.13970561131521003, 0.37685554260004983, 0.02392489472196235, 0.5001172064820062, 0.1271397932462149, 0.0, 0.0, 0.06640626803307163, 0.0, 0.33601428762663216, 0.3914997569159482, 0.0, 0.0, 0.0, 0.19710945641036862, 0.0, 0.0, 0.0, 0.2570446025119335, 0.0725597578451322, 0.2153089707985957, 0.29468347651980764, 0.0, 0.0, 0.0, 0.0, 0.5053218639862116, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3406987685187243, 0.1282582445133294, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2730271127536044, 0.0, 0.0, 0.0, 0.09127410611527945, 0.0, 0.0, 0.0, 0.43937003529159857, 0.0, 0.0, 0.34629394607426156, 0.3602903966859215, 0.0, 0.0, 0.0, 0.4524888332499127, 0.0, 0.0, 0.05407346090862119, 0.5645191906902647, 0.0, 0.0, 0.0, 0.06182241276595979, 0.5051019163723838, 0.0, 0.0, 0.0, 0.43689110783624835, 0.0, 0.3247012272501492, 0.7529477711340642, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04556922200754848, 0.07275824443457538, 0.6641996712133981, 0.0, 0.7527892189655382, 0.0, 0.0, 0.0, 0.0, 0.0650185387513895, 0.11649164431992753, 0.09285202740421554, 0.0, 0.10520472290792057, 0.0, 0.0, 0.0, 0.036503860437912636, 0.5018364780015474, 0.0, 0.9018697735038638, 0.27452370937022097, 0.20528582752919317, 0.07345710391625684, 0.08368878794961943, 0.0020062951066029595, 0.0, 0.024311758317256665, 0.6863531779584559, 0.09358353036484864, 0.0, 0.0, 0.9056118974425151, 0.29332085426290194, 0.0, 0.0630960103278028, 0.3131666065435304, 0.16132753119961868, 0.0, 0.0, 0.10949069660281478, 0.0, 0.0, 0.043082807469330416, 0.9391632037219755, 0.2464244579278498, 0.05056349807476583, 0.4941568471321954, 0.08930155661972776, 0.14135721850308308, 0.6365671583541417, 0.01570471026967911, 0.0, 0.0, 0.30035575477425325, 0.470607279557531, 0.0, 0.7051994623504158, 0.0, 0.23693793780889214, 0.0, 0.0, 0.0, 0.3089837451394857, 0.0, 0.25881489636176935, 0.3542280340299567, 0.0, 0.0, 0.0, 0.5509103928459669, 0.6074285960860691, 0.0, 0.0, 0.0, 0.0, 0.0, 0.40954130307575276, 0.4320109271392501, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7153301391295569, 0.32819572556211446, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25387735844455867, 0.0, 0.18356036702777592, 0.788959698429946, 0.059142916486545904, 0.0, 0.0, 0.2329870601139546, 0.30260111431019593, 0.0, 0.19018291703368598, 0.11334224351658809, 0.0, 0.0, 0.39837350679552525, 0.002854450925801763, 0.0, 0.0, 0.1761871096815805, 0.26007093167161216, 0.4537724619820453, 0.0, 0.0, 0.19939804636751923, 0.0, 0.0, 0.0, 0.1241315656029792, 0.1788746058733879, 0.06989387912072809, 0.0, 0.008706450766933925, 0.17069278519076628, 0.09804467032937333, 0.0, 0.0, 0.0, 0.0, 0.2756668600912958, 0.0, 0.0, 0.0, 0.005007038116067554, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8846910424025506, 0.0, 0.5333972690871841, 0.4949732055269114, 0.5048814532552262, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.627591044078193, 0.0, 0.19602396549237053, 0.0, 0.0, 0.0, 0.0, 0.1453664926926827, 0.896573768738389, 0.0, 0.0, 0.08916555133174352, 0.0, 0.45645988556129685, 0.4637272073796655, 0.0, 0.5460482316353812, 0.0, 0.0, 0.0, 0.0, 0.03854810586108881, 0.0, 0.0, 0.0, 0.24917051451787198, 0.15578564796063854, 0.0, 0.013543850896187834, 0.1652099998051347, 0.4862465546100088, 0.0, 0.0, 0.0, 0.11288030981556667, 0.07793421422144962, 0.0, 0.0, 0.34069897855478337, 0.0, 0.24220682644461092, 0.0, 0.042169823026623185, 0.0, 0.18652613799485498, 0.06988747434212275, 0.0, 0.19432531845717826, 0.0, 0.0, 0.00773760410112359, 0.0, 0.0, 0.0, 0.13421576760969542, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3005240696463887, 0.0, 0.0, 0.1430297093262495, 0.0, 0.024074811994738193, 0.0, 0.7425836604044599, 0.0, 0.0, 0.773031322896148, 0.0, 0.0, 0.0, 0.15113548220653236, 0.0, 0.02143475877513858, 0.0, 0.0, 0.017898796818035273, 0.5704357742231774, 0.0, 0.0, 0.28614450437434535, 0.8406253620321404, 0.4518328538149436, 0.0, 0.0, 0.0, 0.11877251593306616, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7242261419761843, 0.75325138697923, 0.0, 0.0, 0.0, 0.21774733884534636, 0.05828481210656411, 0.0, 0.0, 0.5513859663000955, 0.08804724386035472, 0.0, 0.0, 0.13001461893666422, 0.05055138733020214, 0.0, 0.8802248488281825, 0.6335423662880417, 0.0, 0.0, 0.01901314000236066, 0.007676360091610109, 0.03662889578173271, 0.0, 0.0, 0.0, 0.0, 0.03491957842751296, 0.0, 0.0, 0.0, 0.0, 0.31801869319533504, 0.11915500690641781, 0.055287184155029916, 0.07802084728905281, 0.0, 0.0, 0.1568519327721604, 0.0, 0.006469083934087435, 0.0103288836062672, 0.4783408265548552, 0.0, 0.03403634442829624, 0.0, 0.06752201735679073, 0.5482808562992434, 0.6465577226913658, 0.19559104705049943, 0.7473465260842165, 0.0, 0.2510639869948042, 0.0, 0.49874757736937353, 0.0, 0.0, 0.29196420234146186, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.28937972665293554, 0.0, 0.0, 0.007742544258898216, 0.0050434263912106985, 0.09915800240987568, 0.0, 0.7790435385945825, 0.0, 0.0, 0.0, 0.6720010410729492, 0.0, 0.0, 0.12993505760251525, 0.0, 0.0, 0.0, 0.09325889168521988, 0.0, 0.0, 0.0, 0.0, 0.029846526702260994, 0.0, 0.0, 0.0, 0.0, 0.03754266866784506, 0.0, 0.0, 0.06429885322169407, 0.0, 0.0, 0.0, 0.06625799315618229, 0.02719995417661398, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1751776227817407, 0.0, 0.007852967543861803, 0.0, 0.23548257357635802, 0.0, 0.0, 0.0, 0.18584714899527952, 0.0, 0.006031156908010012, 0.0, 0.0, 0.09024557651897172, 0.0, 0.0, 0.0, 0.01928750817179254, 0.0, 0.0, 0.0, 0.04647312904146408, 0.04238313205889527, 0.04813129297619805, 0.0, 0.05649291128148132, 0.3120484444217953, 0.20304077341891358, 0.22280612221181567, 0.0, 0.0, 0.0, 0.0, 0.2296027094274992, 0.36729813710945064, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03194349659115132, 0.013381366431696788, 0.22268795739920053, 0.0, 0.5523622509591986, 0.0, 0.0, 0.0, 0.6320065213132712, 0.0, 0.054122720571298674, 0.1129752905678043, 0.0, 0.0, 0.0, 0.1354202846158455, 0.0, 0.0, 0.0, 0.0, 0.07918967771838586, 0.33460525882449765, 0.0, 0.1408840961604024, 0.0, 0.13967703386944746, 0.0, 0.015739213046679565, 0.0, 0.0, 0.0, 0.18340851877331085, 0.049075431284917106, 0.5986297438714518, 0.1026146960995913, 0.0, 0.09880673435294796, 0.0, 0.01401324484028475, 0.0, 0.0, 0.011701564957593804, 0.026202178980838764, 0.0, 0.0, 0.0, 0.34875710305703866, 0.0, 0.6758676493244615, 0.25323358703827886, 0.0, 0.07764903554674676, 0.0, 0.0, 0.3437885050787113, 0.0, 0.0, 0.05172718445894569, 0.48632377387851766, 0.7737451549255131, 0.0, 0.0, 0.2824387300805914, 0.0, 0.03810443360186568, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5685388973074467, 0.0, 0.6119913546647608, 0.3631185701853139, 0.0, 0.0, 0.0, 0.0, 0.0, 0.42090311344262876, 0.0, 0.0, 0.5545361922919911, 0.0, 0.30486976208852845, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5353307932807481, 0.3737614291005788, 0.06278455657761825, 0.6503551227381855, 0.0, 0.30802712982197544, 0.0, 0.0, 0.0, 0.0, 0.6932590699354483, 0.0, 0.0, 0.1727602393426444, 0.3250355196326665, 0.0, 0.0, 0.0, 0.031208327259562327, 0.0, 0.022564485628753735, 0.20187972104397525, 0.0, 0.0, 0.0, 0.023252803763957695, 0.037197781883188764, 0.0, 0.0, 0.14016266119268855, 0.0, 0.0, 0.0, 0.0, 0.5500068484641752, 0.0, 0.21787864254870015, 0.11728832916212795, 0.7393468760695268, 0.0, 0.0, 0.0, 0.5835060614008979, 0.0, 0.0, 0.005481228874667605, 0.0, 0.24527608437248674, 0.0, 0.0, 0.0, 0.08585061953648496, 0.0, 0.0, 0.0, 0.0, 0.033886840626726755, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7610872759404612, 0.4515830514911833, 0.0, 0.0, 0.0, 0.0, 0.4404042575115658, 0.12990320458817742, 0.0, 0.0, 1.1767377087370854, 0.0, 0.37914342249438854, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4648187686925721, 0.0, 0.8087973873909876, 0.0, 0.0, 0.37042117085655, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4042220471506979, 0.506818287464434, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.799283492516607, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2072078588281799, 0.0, 0.0, 0.0, 0.0, 0.0, 0.38630185980823584, 0.0, 0.0, 0.7203309700401708, 0.28467844154475075, 0.0, 0.055301649487215346, 0.0, 0.0, 0.0, 0.0, 0.09138992101001418, 0.0, 0.19556603240348344, 0.19724425274952875, 0.03349111529878698, 0.0, 0.0, 0.0, 0.0, 0.09295840191163598, 0.062259404337737585, 0.5110045389416802, 0.0450152750177662, 0.0, 0.0, 0.0, 0.0, 0.04638844304232061, 0.07420813436973994, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08039405816322542, 0.0, 0.04499140125036479, 0.0, 0.0, 0.0, 0.0, 0.0, 0.47269177846996874, 0.0, 0.01093483934391422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06760293477957593, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.30814523656105497, 0.0, 0.0, 0.002453061284897307, 0.0, 0.13680023676237826, 0.0, 0.0, 0.0, 0.0, 0.4233541440451853, 0.3380165111056225, 0.08224079897271243, 0.0, 0.0, 0.24592756484718573, 0.0, 0.0, 0.02267336040190668, 0.2908323152368906, 0.29332804878897817, 0.04980567679624497, 0.01451698775054283, 0.0, 0.0, 0.0, 0.1382413239989673, 0.03764974542541842, 0.0, 0.45231380198935905, 0.0, 0.0, 0.0, 0.22772767048274462, 0.028083536989501626, 0.0, 0.0, 0.7177165992040482, 0.0, 0.248754226443203, 0.3404584582583339, 0.0, 0.0, 0.0, 0.0, 0.5838165911735776, 0.18900763241929244, 0.0, 0.0, 0.0, 0.0, 0.393621586219481, 0.1481813799050705, 0.08990527101762133, 0.0, 0.0, 0.0, 0.06541155133507946, 0.0, 0.0, 0.754567070013019, 0.0, 0.35519767644142475, 0.7886704894854123, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2853585340727017, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1466994216180092, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04489418163119632, 0.0, 0.154322481722074, 0.0, 0.0, 0.0, 0.05695713751335286, 0.0, 0.26396366899551715, 0.0, 0.0, 0.0, 0.2015805623941956, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1347415569982167, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15951239540553339, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26424756561910484, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3095030162301081, 0.4017859650017111, 0.4320177001616871, 0.31072912027464494, 0.0, 0.0, 0.0, 0.12395344067349241, 0.0, 0.10891813619746654, 0.0, 0.0, 0.36104977882982536, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4976654583754128, 0.7708862373561997, 0.47125964249827657, 0.10728601893015154, 0.0, 0.031799482348967435, 0.6739071734662878, 0.36447067198103217, 0.5830479926977264, 0.3439222616030173, 0.2549269417290746, 0.1664670841939448, 0.06466304544803145, 0.08850133352227474, 0.0, 0.0, 0.0, 0.0, 0.15176167781411123, 0.7529769594833942, 0.2081678127507482, 0.43606912218895016, 0.0, 0.20899247481790656, 0.13097931441492902, 0.0385193829281183, 0.0, 0.1692837648290093, 0.24671124992729013, 0.0732569603271901, 0.0, 0.0, 0.3302348567546971, 0.0, 0.0, 0.08199734797416196, 0.0, 0.3003739061478844, 0.5311514129612689, 0.2094016677928949, 0.08615953302492001, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2720133179050694, 0.08023401473498062, 0.0, 0.0, 0.3008565847002404, 0.0, 0.0, 0.0, 0.0, 0.15598633286780347, 0.0914681730216936, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2287886413185382, 0.0, 0.02163921527981386, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31303358584026736, 0.0, 0.0, 0.10317949853840898, 0.0, 0.0, 0.4429302660561133, 0.5715405010739755, 0.5374631632426349, 0.31889805938655563, 0.036252046956170986, 0.4422081073153658, 0.0, 0.7337564221688706, 0.0, 0.023977384315413304, 0.0, 0.0, 0.4870048796768423, 0.0, 0.5662703466651342, 0.07343369104191685, 0.0, 0.85942069251388, 0.0, 0.0, 1.3620890981561393, 0.18706378421604947, 0.5009363229828259, 0.0, 0.9153459961943655, 0.0, 0.3024413176269455, 0.0, 0.020206414212617495, 0.770875966881197, 0.3592476280889007, 0.42399066250320144, 0.10631373480524917, 0.0, 0.0, 0.28545275552737415, 0.0, 0.0, 0.051655005587926184, 0.2896221837003778, 0.0, 0.10479137286851924, 0.0, 0.6481743752598288, 0.18963154425718728, 0.1652754625808005, 0.5111459932504497, 0.20983351489683355, 0.0, 0.0688022311887445, 0.0, 0.1588427949870473, 0.07887689716448136, 0.0, 0.17182849674148495, 0.0, 0.0944668962094047, 0.4452313187931226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09119364969454108, 0.8790983194086319, 0.04652724209330274, 0.20151893535811746, 0.0, 0.09353766464308477, 0.0, 0.08529401781538828, 0.13618496703742403, 0.14879310483428343, 0.0, 0.5218449227201785, 0.0, 0.0, 0.4276792985772285, 0.37130791898202276, 0.0, 0.65385625176219, 0.21427428342013688, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029843856213185426, 0.7335168265162704, 0.36008358555156716, 0.016697251884690307, 0.0, 0.0, 0.0, 0.0, 0.32011086143599826, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.311051559092257, 0.4114828296911449, 0.40654319137761, 0.15232329989672078, 0.0, 0.7981814625524425, 0.0, 0.0, 0.03178181930754204, 0.0, 0.0, 0.08306558457263293, 0.9520806654789163, 0.0, 0.0, 0.0, 0.014583001249069335, 0.19830185076027407, 0.0, 0.0, 0.0, 0.017109723326194017, 0.5838039803907641, 0.036078269448045736, 0.0, 0.0, 0.0, 1.5483621887345977, 0.0, 0.0, 0.3938374131167075, 0.21826438331642692, 0.47843769619251875, 0.0, 0.03212191242915342, 0.0, 0.0, 0.026822955649167167, 0.06006204189453128, 0.3916449581841089, 0.17029114067254328, 0.0, 0.8085887138693341, 0.0, 0.0847427642025191, 0.0, 0.24867162588894387, 0.1779912895598945, 0.0, 0.4967368758167945, 0.2999184090453587, 0.0, 0.0, 0.34170853809147433, 0.15431967954789833, 0.0, 0.20047306608944798, 0.0, 0.34396866784271457, 0.0, 0.08734502916861536, 0.0, 0.0, 0.2734744328918824, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4826472849667363, 0.19813434438947314, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7219511030362349, 0.1739578003573766, 0.0, 0.0, 0.5805657409095567, 0.04393313724425415, 0.0, 0.0, 0.08832251544226348, 0.0, 0.0, 0.08642438629494777, 0.1404972141390735, 0.0, 0.0, 0.0, 0.0, 0.30873412613620277, 0.35060581780891126, 0.0, 0.411514882221113, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12502955237491653, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9289178041335806, 0.0, 0.0, 0.5936412791641967, 0.0, 0.0, 0.27919748240464876, 0.0, 0.0, 0.0, 0.0, 0.03866359013001743, 0.0, 0.09129386900625779, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11792903528210355, 0.0, 0.38768207402217597, 0.12966222332760374, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15858416904207315, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06587533022560071, 0.5693372038338419, 0.4118051761712919, 0.04005300556172724, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.28854004528147215, 0.0, 0.12922839237489175, 0.0, 0.14106371386748318, 0.0, 0.6427956538537295, 0.2408421964280935, 0.11343809741754582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.016886662889233732, 0.4625266626199813, 0.0, 0.027184451434696822, 0.0, 0.0, 0.0, 0.2545156696147772, 0.0, 0.0]), 42), 42)),) +(CR = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.0, 0.5960995400087008, 0.0, 0.0, 0.46121971296621317, 0.0, 0.1341136169173934, 0.0, 0.6613178775714327, 0.0, 0.0, 0.0, 0.0, 0.31233701358881993, 0.0, 0.0, 0.0, 0.42428295532646376, 0.0, 0.04433289125435014, 0.1771852692198303, 0.0, 0.2102135380786222, 0.0, 0.29289346791587945, 0.1864042064610544, 0.1847622901670141, 0.0047837035165779595, 0.7809783797805827, 0.24637196495074015, 0.0, 0.5657923421369488, 0.2611932808057722, 0.0, 1.1390711256090715, 0.0, 0.0, 0.15310516154880033, 0.0, 0.536745361655064, 0.11084632541017801, 0.24887017850829343, 0.6316463638637531, 1.4711963896826616, 0.6112779722436283, 0.5079606239011155, 0.15942216163041661, 0.21541936537958353, 0.10295208772558359, 0.0, 1.3699774598840704, 0.6364841478802473, 0.38335626793892197, 0.0, 0.2992892574327959, 0.10527060545292, 0.0, 0.0, 0.7485372018432481, 0.2715216678914851, 0.2667902419370478, 0.0, 0.5814665590695893, 0.051682188310845374, 0.0, 0.0, 0.3934310017151073, 0.0, 0.0, 0.5957893409486428, 0.3316317367913752, 0.9200295815926001, 0.0, 0.0, 0.6623087915165122, 0.0, 1.5766760492233103, 0.0, 0.0, 0.3039866668414091, 0.0, 0.024309812685391816, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14306886144088826, 0.0, 0.0, 0.0, 0.13834293702511197, 0.0, 0.0, 0.0, 0.07697281314241891, 0.0, 0.13882210022663904, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11718373909917448, 0.05171175921797154, 0.0, 0.0, 0.047041804166349496, 0.0, 0.0, 0.0, 0.21780680053585874, 0.005280433697773762, 0.0, 0.01227888835211436, 0.1637490848480197, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.405774970647805, 0.2291279765469989, 1.2574751546051093, 0.5180330897538964, 0.48968357404421875, 0.5301529810315024, 0.0, 0.0, 0.0, 0.8112619638066929, 0.0, 0.7833417149382808, 0.0, 0.0, 0.11442625626708748, 0.11485555134200548, 0.22833033865638044, 0.0, 0.0, 0.0, 0.0, 0.2864165259642358, 0.16027108725841735, 0.0, 0.09011936406874124, 0.4181806897076036, 0.0, 1.0569606821068054, 0.624691204995156, 0.7081544908696379, 0.0, 0.8795184016973987, 0.0, 0.0, 0.021853263477242018, 0.11238129351491766, 0.0, 0.0, 0.045824320207715985, 0.0, 0.196064039018767, 0.0, 0.07081867255234689, 0.0, 0.0407459744321428, 0.0, 0.09807635051343538, 0.010124069007427254, 0.0, 0.0, 0.0, 0.0, 0.6116811031756639, 0.0, 0.0, 0.6208028352439049, 0.0, 0.17504030998808598, 0.020658826838531718, 0.719367580349619, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.015728258754898257, 0.07298380500117611, 0.0, 0.06012022906808051, 0.0, 0.0, 0.5330380962469254, 0.02965305516643559, 0.0, 0.18001272855172004, 0.035235037447174065, 0.0, 0.01349449214577584, 0.0, 0.0, 0.0, 0.2359915438569738, 0.03810280561257924, 0.0, 0.0, 0.0, 0.3884686133510988, 0.0, 0.0, 0.21968925488132546, 0.0, 0.0, 0.4324936557273746, 0.0, 0.6879094987723802, 0.0, 0.0, 0.0, 0.0, 0.7898693359448322, 0.0, 0.5391987426673219, 0.25853076675450826, 0.0, 0.38031280775654097, 0.0, 0.3853638210122371, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.2217547802058863, 0.05709933484072306, 0.0, 0.0, 0.8484028226584724, 0.23257686384566284, 0.0, 0.0, 1.258622241947537, 0.0, 0.0, 0.11665876134553779, 0.3184837856872295, 0.7880482843371591, 0.0, 0.0, 0.0, 0.0, 0.23284042288536255, 0.0, 0.3804712136528319, 1.113036382623302, 0.8298038026635118, 0.0, 0.0, 0.0, 0.0, 0.0, 0.020690565683442904, 0.2610758590649183, 0.0, 0.0, 0.06193402719103672, 0.024569168683420507, 0.6450876041294853, 0.0, 0.5615893961519662, 0.0, 0.5487968919612313, 0.0, 0.6425734859953806, 0.0, 0.2979704099021757, 0.323777504790907, 0.66722521578591, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4069961680965457, 0.7713681046585987, 0.3594743508741288, 0.8852608548606914, 0.0, 0.0, 0.0, 0.0, 0.017250929899566992, 0.05738201561649353, 0.0, 0.040237899717394485, 0.8673210549972237, 0.0, 0.0, 0.7245534868749944, 0.0, 0.16727086778943756, 0.0, 0.0, 0.0, 0.0, 0.29250184542509544, 0.0, 0.0, 0.06729223300830636, 0.0, 0.3824979967457689, 0.0, 0.23769547992450338, 0.825352628558087, 0.5791520520364314, 0.0, 0.0, 0.6822104427959106, 0.5410434317660799, 0.0, 1.0013182252763115, 0.0, 0.0, 0.03410163433510291, 0.0, 0.38656596036997387, 0.673387919520239, 0.0, 0.0, 0.0, 0.06524513264320482, 0.3778876017229726, 0.0, 0.3042658440871357, 0.03546389486517897, 0.0, 0.3811330360259428, 0.09125614750074176, 0.38639776526497555, 0.0, 0.7956019813194058, 0.17107520161825185, 0.2528672125099372, 0.0, 0.0, 0.0, 0.0, 0.3715122812201797, 0.0, 0.0, 0.0, 0.8636878110328885, 0.3725673215613031, 0.19161493799862908, 0.2947877363978017, 0.8277903198901483, 1.043787991594994, 0.4556846854932056, 0.018960059119328472, 0.0, 0.8179077818243863, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16243732090346746, 0.0, 0.0934593474548136, 0.26288293993414813, 0.0, 0.6986592631730956, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.23290649501046135, 0.0, 0.0, 0.0, 0.0749770448177764, 0.0, 0.0, 0.5829804395566012, 0.0, 0.08903205884730546, 0.036076025185782915, 0.16740350145604724, 0.0, 0.13789822076519753, 0.0, 0.0, 0.0, 0.7803684622045182, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1343991941662123, 0.0, 0.0, 0.1265714212875754, 0.580645942127824, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4164388584828146, 0.0, 0.6383936083527437, 0.0, 0.0, 0.0, 0.0, 0.18608051379305826, 0.0, 0.04744673193981907, 0.0, 0.0, 0.0, 0.0, 0.3666656532257351, 0.017984084638402044, 0.0, 0.0516031884810454, 0.11619024662048777, 0.5090994962453932, 0.1702286192926929, 0.017754543539629426, 0.11487736756877703, 0.0, 0.0, 0.0035637729173098607, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6218776818900951, 0.10343438219926053, 0.0, 0.016806683142264318, 0.019961035657552893, 0.0, 0.39238409513228256, 0.22883526349683764, 0.0, 0.02328369860187438, 0.02966268912006465, 0.0, 0.0, 0.0, 0.08243560528569996, 0.6624744276069285, 0.0, 0.10804564627221094, 0.0, 0.0, 0.0, 0.0, 0.0, 0.272827698328812, 0.0, 0.0, 0.0, 0.10351845069306231, 0.022056761782947687, 0.04806113374409372, 1.421033050846094, 0.09272463621214155, 0.32902390084105787, 0.5088305985866386, 0.09822819388787048, 0.0, 0.0, 0.0965876885856362, 0.0, 0.0, 0.18492863169572316, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13526587090401476, 0.0, 0.022328727233527985, 0.0999580342692439, 0.0, 0.0, 0.09557781244125038, 0.13831210655132378, 0.0, 0.0, 0.1791768991068296, 0.16163641825142586, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.42053340750746143, 0.0, 0.10552005335412863, 0.0, 0.0, 0.16311354370934733, 0.0, 0.2824114978735204, 0.0, 0.0, 0.43639300384810376, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1671480967875291, 0.644888932873856, 0.3129032598040877, 0.48675890221085816, 0.17823949364009248, 0.1415399106044285, 0.18516682441734925, 0.5312977885248659, 0.07587099582542241, 0.0, 0.0, 0.6986300116510127, 0.0, 0.0, 0.7938925894205694, 0.36599606323996975, 0.26363118368222405, 0.2342915285475447, 0.0, 0.1869965760541939, 0.1160920939359052, 0.38732669798663727, 0.0, 0.1313693926537813, 0.14845591773543332, 0.0, 0.0, 0.5636663205749514, 0.0, 0.0, 1.5099082548197433, 0.12877106200933913, 0.12876355501777378, 0.4806583412843819, 0.8527242204514415, 0.2611825233475998, 0.2169329303973436, 0.0, 0.19905771354664345, 0.0, 0.3188159099664727, 0.0, 0.49573252746154944, 0.5909004107452918, 0.44608316126371567, 0.9987235012950566, 0.0, 0.0, 0.06543436335390052, 0.0, 0.0, 0.0, 0.7452854681453724, 0.940549219662451, 0.32866688095435376, 0.0, 0.04977979297413422, 0.0, 0.15266515341831127, 0.0, 0.0, 0.8226750512812447, 0.0, 0.0, 0.2520932611368793, 0.32856303804715215, 0.1846788611041856, 0.6288326287259721, 0.15594781886009731, 0.0, 0.0, 0.39056006775570395, 0.2454733448499023, 0.0, 0.1875080652559859, 0.0, 0.0, 0.0, 0.4604079993134017, 0.0, 0.0, 0.0, 0.0, 0.11979185177691755, 0.14227491555369362, 0.0, 0.09024327543210102, 0.648783267363574, 0.0, 0.0, 0.0, 0.5408163510237757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5311068240495873, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5314003925728801, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02394551122470378, 0.0, 0.0, 0.0, 0.12486249633500378, 0.0, 0.0, 0.05765112857402609, 0.0, 0.14315109316509972, 0.05676601866921535, 0.0, 0.6434826644263494, 0.0, 0.14460219857592263, 0.0, 0.0, 0.10860788610026072, 0.0, 0.04705670771446048, 0.4709967737248388, 0.0, 0.0, 0.13612521976378897, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.130371257969619, 0.0, 0.11349639269154894, 0.0, 0.11804878144850195, 0.3189646877579158, 0.0, 0.0, 0.0, 0.0, 0.1348452367929846, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1550934497155318, 0.13060726382480906, 0.0, 0.0, 0.232086697214264, 0.0, 0.14806165017632722, 0.0, 0.23898925029638524, 0.0, 0.0, 0.23731337239548533, 0.0, 0.10980801230053783, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19058666211884384, 0.0, 0.1810493697276433, 0.0, 0.0, 0.27986722280655724, 0.06847318480810846, 0.0, 0.026224205266550244, 0.0, 0.0, 0.0, 0.07178447214794542, 0.0, 0.0, 0.0, 0.0, 0.04423801290959719, 0.4450997362670805, 0.0, 0.0, 0.0, 0.014396013780263936, 0.0, 0.0, 0.08159130602818511, 0.28786198512647176, 0.0, 0.0, 0.0, 0.15886186536955227, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03988435480164781, 0.0, 0.03472184333660239, 0.15861587093052232, 0.03393091079863592, 0.0, 0.0, 0.0, 0.1458998203965446, 0.0, 0.2746045410027491, 0.0, 0.08937012005405864, 0.0, 0.0, 0.0, 0.0, 0.4360685101718207, 0.0, 0.0, 0.12479631040323635, 0.1679293189285873, 0.33750713984681247, 0.0, 0.38279076464536926, 0.0, 0.39766804122994015, 0.0, 0.0, 0.0, 0.0, 0.37584745957186994, 0.0, 0.0, 0.0, 0.0, 0.0034663505048984434, 0.0, 0.0, 0.0, 0.24932174401673268, 0.8269366380921026, 0.058350744167210526, 0.2821315817160027, 0.01073228148503296, 0.0, 0.0, 0.5523198324520332, 0.0, 0.0, 0.0, 0.2765513539344097, 0.2765352317665175, 0.0, 0.0, 0.0, 0.16196672196012962, 0.0, 0.0, 0.23047763471347846, 0.0, 0.4983211934020315, 0.0, 0.0, 0.0, 0.0, 0.08410733405320571, 0.0, 0.0, 0.38342855882543897, 0.031078189534518876, 0.0, 0.0, 0.07997079449394401, 0.0, 0.0, 0.0, 0.14991888400189204, 0.0, 0.0, 0.0, 0.2539339452562683, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005527553201922959, 0.24701032777367607, 0.3818735212726353, 0.0, 0.0, 0.3141045412174539, 0.4613820899583969, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7846194794668536, 0.0, 0.0, 0.2023929406035883, 0.5525420395033789, 0.0, 0.0, 0.0, 0.18332122951817006, 0.0, 0.0, 0.0, 0.6600849079661362, 0.0, 0.271071887942947, 0.6931869379662654, 0.0, 0.19544958497754947, 0.0, 0.0, 0.23106411956503142, 0.04163915085675471, 0.0, 0.2740671699579846, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5951890435738816, 0.0, 0.0, 0.5617261879013651, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.648112900028134, 0.0, 0.2097693617911403, 0.23188027210282897, 0.6330438111437964, 0.515238068631253, 0.8059496022277759, 0.0, 0.3600721428836477, 0.0, 0.37406645349624035, 0.43324551668887895, 0.7562549741789008, 0.0, 0.46837434729653293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.23452450510075076, 0.0, 0.0, 0.26538707979997495, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9037040684567715, 0.2601228730720389, 0.0, 0.0, 0.0, 0.3385307797226737, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6960140675899867, 0.0, 0.0, 0.0, 0.34167761524179585, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.47179884257042837, 0.0, 0.5873339130881751, 0.07760784608974701, 0.0, 0.5108116353650718, 0.0, 0.23018263458044896, 0.0, 0.0, 0.0, 0.6389281667373347, 0.0, 0.0, 0.0, 0.6317086674243048, 0.5424555939717753, 0.0, 0.019597125946055532, 0.0, 0.5067616269530796, 0.0, 0.0, 0.0, 0.0, 0.33135639687759366, 0.0, 0.11009229928191128, 0.0, 0.0, 0.0018449546833188399, 0.0, 0.1894047148704815, 0.0, 0.21786525780326826, 0.00027956067335572354, 0.0, 0.0, 0.00044372512905081096, 0.0, 0.0, 0.10913586880079368, 0.0, 0.0, 0.2387319450019063, 0.04302093934347575, 0.0, 0.28316204466710054, 0.0, 0.6259961005310473, 0.044339116197027774, 0.0, 0.0006891565473784903, 0.0, 0.0, 0.419692560541072, 0.00023711054076719368, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0009518757697360345, 0.0, 0.0, 0.0, 0.0, 0.04412247836479926, 0.33175278809136916, 0.1836910307282294, 0.43316264355459233, 0.0, 0.0, 0.0, 0.0, 0.6109591315701846, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7410212481907629, 0.09694039812399863, 0.0, 0.0, 0.04700242398333341, 0.0, 0.0, 0.15679640166544176, 0.0, 0.0, 0.008354862966629384, 0.8660916115221005, 0.12095883829401362, 0.0, 0.0, 0.13982615201680984, 0.0, 0.37030015075124356, 0.0, 0.10806680870328135, 0.2674021581377063, 0.0, 0.0, 0.43695074134110806, 0.0, 0.0, 0.0, 0.4193595253139995, 0.0, 0.0, 0.4223604117691241, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6519628347852473, 0.09593394582722056, 0.0, 1.2263197607192593, 0.0, 0.1420268730458006, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6547968394353947, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.015993676263376118, 0.0, 0.0, 0.0, 0.0, 0.0, 1.032250106596857, 0.0, 0.0, 0.0, 0.19977559392448785, 0.0, 0.0, 0.0, 0.13350148436716802, 0.05064120692385946, 0.0, 0.014278692130393579, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02476251362124448, 0.0, 0.0, 0.6971876314261916, 0.0, 0.32368749507325995, 0.0, 0.38665695047334026, 0.043481909227645874, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2863863682111852, 0.0, 0.0, 0.0, 0.0, 0.5166026604428106, 0.6135609292207037, 0.0, 1.390585308090751, 0.549724406362488, 0.0, 0.0, 0.0, 0.4946354029419938, 0.0, 0.0, 0.1817622353630416, 0.0, 0.0, 0.45001527975922945, 0.19067060021024376, 0.0, 0.0, 0.0, 0.0, 0.0, 0.45026402504954754, 0.09862023599471978, 0.0, 0.0, 0.08971409788917951, 0.0, 0.0, 0.0, 0.14718404588236259, 0.02028941343776962, 0.0, 0.0, 0.12879470754337072, 0.5384698277835859, 0.0493264459266498, 0.0, 0.6385356001321869, 0.0, 0.0, 0.0, 0.418599297830268, 0.0, 0.24084377286368372, 0.0, 0.0, 0.3927421561776119, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11479167979031016, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.287331205334526, 0.0, 0.0, 0.09296754420278937, 0.4313970938087158, 0.0, 0.3553622902870886, 0.0, 0.0, 0.0, 0.1752750739858479, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5721777681112366, 0.16584672881862064, 0.0, 0.0, 0.2750129568642962, 0.11193872117738499, 0.0, 0.694851503366924, 0.0, 0.11176089578249619, 0.03642730011196224, 0.46499012378889537, 0.0, 0.0, 0.10537656529716292, 0.2572556947482873, 0.11427779100841323, 0.4566419402676079, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31905429658438084, 0.4568943484348684, 0.0, 0.1009223375517615, 0.0, 0.08785925235754827, 0.2524568576131555, 0.5979718371844858, 0.0, 0.08718397040627182, 0.27019243222928785, 0.0, 0.2405201444721306, 0.11212903697332216, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12097427611620017, 0.7029459229987706, 0.2907862782736388, 0.0, 0.3020877732114353, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2423919969263556, 0.0, 0.5763734567059631, 0.0, 0.0, 0.0, 0.0, 0.6067232814043334, 0.18939678992121056, 0.0, 0.0, 0.21432072089475862, 0.0, 0.0, 0.0, 0.0, 0.5821831861883047, 0.0, 0.0, 0.210081711445218, 0.21006946427095974, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.030280314291377, 0.15413531598416644, 0.25247193164811527, 0.0, 0.0, 0.12848497078723173, 0.6000304051931176, 0.0, 0.0, 0.0, 0.0, 0.12617822046935606, 0.3320268939864614, 0.7056657766261163, 0.42848148251018003, 0.057345877924903164, 0.0, 0.3774481983482792, 0.12624796529690785, 0.1619902770277746, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005688878127237202, 0.38175135193372894, 0.1765840237536124, 0.0, 0.0, 0.3566318392645057, 0.0, 0.0, 0.0, 0.16683268933188872, 0.04345497812697982, 0.0, 0.492592677155673, 0.0, 0.0, 0.0, 0.0, 0.0831404672292756, 0.0, 0.0, 0.36055293254501974, 0.0, 0.4863131526725521, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005464010493446822, 0.24417078834728798, 0.0, 0.0, 0.22169348923343446, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11593686293818574, 0.0, 0.0, 0.0, 0.6095590933370347, 0.0, 0.2443761776038196, 0.0, 0.0, 0.0, 0.1960956643223869, 0.6074859425565672, 0.18650669482426485, 1.0378655385571516, 0.0, 0.17276762871577947, 0.6940099427692358, 0.0, 0.0, 0.32388236546386096, 0.0, 0.3977584774978917, 0.09850727254096922, 0.0, 0.09435872182534573, 0.32210695479773005, 0.0, 0.9450119024745318, 0.0, 0.7282651614947167, 0.795671006556338, 0.21972174528863647, 1.1800722708951874, 0.0, 0.15406122012703197, 0.23245444095199302, 0.0, 1.1450754137286316, 0.0, 0.0, 0.718432895790501, 0.0, 0.9074772544907516, 0.0, 0.0, 0.2150644825695137, 0.7387278090737696, 0.0, 0.49627306106648184, 0.6533650950107276, 0.0, 0.0, 0.0, 0.724606488987317, 0.701411910713477, 0.6206261403696766, 0.28804332377271413, 0.2959105186195655, 0.0, 0.6182919293124655, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.589003768060014, 0.0, 0.0, 0.08271977351575115, 0.0, 0.0, 0.0, 0.9105812282174285, 0.31789001879047846, 0.02411461886183569, 0.2829221743477605, 0.6706620073355701, 0.0, 0.1930731864260551, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06133637967837149, 0.6242346410782087, 0.6952909143002654, 0.3591573776849567, 0.0, 0.7449872409938767, 0.08923909973645693, 0.1173521535256719, 0.0, 0.0, 0.5729798828820618, 0.10656596459419354, 0.0, 0.1545328680391799, 0.27421690202209187, 0.0, 0.0, 0.3698254914307633, 0.5140663186573865, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13863750342668263, 0.6433193065819665, 0.0, 0.5299326895193157, 0.007712410329912944, 0.34464525874742236, 0.34174148456366615, 0.2613783001228934, 0.0, 0.0, 0.05371570560505797, 0.0, 0.02057231153731605, 0.0, 0.33150273239870404, 0.0, 0.0, 0.008405062468217761, 0.0, 0.34649855374487837, 0.298371589011109, 0.0, 0.1892535264101524, 0.0, 0.016081030317329964, 0.0, 0.0, 0.1306616194660838, 0.0, 0.0, 0.2714046321541056, 0.0, 0.0, 0.0, 0.024299507869495213, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16509417733903173, 0.0, 0.0, 0.1501849497452071, 0.1748418064456664, 0.0010568489849475794, 0.047227517247298824, 0.051672489777017716, 0.0, 0.11982535720931763, 0.0, 0.0, 0.2618551646604837, 0.0, 0.0, 0.12090296292900765, 0.0, 0.0, 0.44988696818935897, 0.0, 0.19121191419677455, 0.0, 0.0, 0.49693256130088725, 0.0, 0.0, 0.0, 0.5670859092292977, 0.0, 0.0, 0.0, 0.5653233896265278, 0.0, 0.0, 0.18955075438556615, 0.050614759394524644, 0.0, 0.0, 0.0, 0.0, 0.6124985176197848, 0.02840624719573524, 0.0, 0.0, 0.6585018821667253, 0.0, 0.669914086084765, 0.0, 0.4435524229524026, 0.0, 0.0, 0.24959071834233698, 0.6741825496608898, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15847771480322562, 0.0, 0.0, 0.0, 0.11420329312106789, 0.3695819846260272, 0.18933569121558752, 0.0, 0.0, 0.0, 0.02103165349726233, 0.2655614054905834, 0.0, 0.8117959138331444, 0.0, 0.3439446042563599, 0.0, 0.0, 0.1019714241481598, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13231107356042507, 0.0, 0.07339739754334103, 0.13018370224494802, 0.03407665122672999, 0.2789846158904475, 0.0, 0.04141177300212955, 0.0, 0.21059108800059795, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14821858886776432, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.45102261330920507, 0.05046558139935084, 0.0, 0.12130428936757616, 0.0, 0.12601881654664268, 0.003171787898412092, 0.00527620372181328, 0.0, 0.0, 0.013576794847610305, 0.0, 0.0, 0.0, 0.025452015886005885, 0.4384052118279088, 0.0, 0.0, 0.0, 0.0790086903216001, 0.15275039095222206, 0.0, 0.08940594755444543, 0.0, 0.0, 0.003492578790207725, 0.0, 0.5882017770828334, 0.0, 0.0, 0.14092784541391168, 0.7983017352473682, 0.0, 0.0, 0.0, 0.1117819777173795, 0.0, 0.0, 0.03862278430066002, 0.1785535098526168, 0.4378163685245537, 0.21613953941654523, 0.8670541670659707, 0.30872969047516546, 0.0, 0.073895246778613, 0.0, 0.0, 0.8448370570321526, 0.006826318289568987, 0.24453895548705643, 0.0, 0.6685102691932127, 0.0, 0.0, 0.07127880649817865, 0.032929653726359844, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.018587651907083814, 0.0, 0.19986879579794362, 0.2170189952300144, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2805164076738779, 0.0]), 42), 42)),) julia> @finch_code begin Ct .= 0 for i = _ @@ -42,12 +42,7 @@ quote pos_stop = A_lvl.shape[1] * B_lvl.shape[2] Finch.resize_if_smaller!(Ct_lvl_2_locks, pos_stop) @inbounds for idx = 1:pos_stop - lockVal = make_lock(eltype(Vector{Base.Threads.SpinLock})) - if lockVal == false - break - else - Ct_lvl_2_locks[idx] = lockVal - end + Ct_lvl_2_locks[idx] = make_lock(eltype(Vector{Base.Threads.SpinLock})) end Finch.resize_if_smaller!(Ct_lvl_3_val, pos_stop) Finch.fill_range!(Ct_lvl_3_val, 0.0, 1, pos_stop) @@ -75,11 +70,14 @@ quote Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 Ct_lvl_3atomicArraysAcc = get_lock(CPU(1), Ct_lvl_2_locks, Ct_lvl_2_q, eltype(Vector{Base.Threads.SpinLock})) aquire_lock!(CPU(1), Ct_lvl_3atomicArraysAcc) + locksArray = Ct_lvl_2_locks + val = Ct_lvl_3_val + Ct_lvl_3_val = moveto(Ct_lvl_3_val, CPU(Threads.nthreads())) B_lvl_ptr_2 = B_lvl_ptr B_lvl_tbl1_2 = B_lvl_tbl1 B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) B_lvl_tbl2_2 = B_lvl_tbl2 - val = B_lvl_val + val_2 = B_lvl_val B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) A_lvl_ptr_2 = A_lvl_ptr A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) @@ -87,7 +85,7 @@ quote A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) A_lvl_tbl2_2 = A_lvl_tbl2 A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - val_2 = A_lvl_val + val_3 = A_lvl_val A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) Threads.@threads for i_6 = 1:Threads.nthreads() B_lvl_q_2 = B_lvl_q @@ -162,14 +160,16 @@ quote end end end + Ct_lvl_2_locks = locksArray + Ct_lvl_3_val = val B_lvl_ptr = B_lvl_ptr_2 B_lvl_tbl1 = B_lvl_tbl1_2 B_lvl_tbl2 = B_lvl_tbl2_2 - B_lvl_val = val + B_lvl_val = val_2 A_lvl_ptr = A_lvl_ptr_2 A_lvl_tbl1 = A_lvl_tbl1_2 A_lvl_tbl2 = A_lvl_tbl2_2 - A_lvl_val = val_2 + A_lvl_val = val_3 release_lock!(CPU(1), Ct_lvl_3atomicArraysAcc) B_lvl_q = B_lvl_q_step else @@ -179,11 +179,14 @@ quote Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 Ct_lvl_3atomicArraysAcc_2 = get_lock(CPU(1), Ct_lvl_2_locks, Ct_lvl_2_q_2, eltype(Vector{Base.Threads.SpinLock})) aquire_lock!(CPU(1), Ct_lvl_3atomicArraysAcc_2) + locksArray_2 = Ct_lvl_2_locks + val_4 = Ct_lvl_3_val + Ct_lvl_3_val = moveto(Ct_lvl_3_val, CPU(Threads.nthreads())) B_lvl_ptr_3 = B_lvl_ptr B_lvl_tbl1_3 = B_lvl_tbl1 B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) B_lvl_tbl2_3 = B_lvl_tbl2 - val_3 = B_lvl_val + val_5 = B_lvl_val B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) A_lvl_ptr_3 = A_lvl_ptr A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) @@ -191,7 +194,7 @@ quote A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) A_lvl_tbl2_3 = A_lvl_tbl2 A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - val_4 = A_lvl_val + val_6 = A_lvl_val A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) Threads.@threads for i_8 = 1:Threads.nthreads() B_lvl_q_2 = B_lvl_q @@ -266,14 +269,16 @@ quote end end end + Ct_lvl_2_locks = locksArray_2 + Ct_lvl_3_val = val_4 B_lvl_ptr = B_lvl_ptr_3 B_lvl_tbl1 = B_lvl_tbl1_3 B_lvl_tbl2 = B_lvl_tbl2_3 - B_lvl_val = val_3 + B_lvl_val = val_5 A_lvl_ptr = A_lvl_ptr_3 A_lvl_tbl1 = A_lvl_tbl1_3 A_lvl_tbl2 = A_lvl_tbl2_3 - A_lvl_val = val_4 + A_lvl_val = val_6 release_lock!(CPU(1), Ct_lvl_3atomicArraysAcc_2) B_lvl_q = B_lvl_q_step end @@ -298,5 +303,1086 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Atomic([Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0)], Element{0.0, Float64, Int64}([0.0, 0.0, 0.018003972912606803, 0.6715509015807506, 0.7782653886209859, 0.32632930309063274, 0.07671040055246747, 0.5767259256948573, 0.810165869204658, 0.04291847779490834, 0.7523035763995596, 0.11302431472257762, 0.0, 0.01602965026103634, 0.22115346753431409, 0.037561900748908854, 0.013385336224041582, 0.029972484597749195, 0.0, 0.0, 0.5634489750971553, 0.054417596728049175, 0.0, 0.5656810924951424, 0.2940947806987573, 0.0, 0.08882217481442631, 0.22565673174351195, 0.09930062784782019, 0.19828502144330606, 0.0, 0.11456873776555695, 0.48424587385265383, 0.37663537032083527, 0.0, 0.0, 0.0, 0.037484025491953656, 0.0, 0.04358738828832, 0.18948713942721873, 0.0, 0.021309789698209406, 0.0, 0.0, 0.34915458383088943, 0.0, 0.0, 0.0, 0.007487180183164403, 0.09132978840971764, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2025839575232124, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10847123427460506, 0.10311356900941321, 0.03863451517271454, 0.0, 0.0, 0.0, 0.09096268938595695, 0.0, 0.0, 0.0, 0.0, 0.07419585782639983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08418511929497627, 0.0, 0.12651499086404613, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4321500979738283, 0.0, 0.006480579483586275, 0.0, 0.00038716149888684873, 0.0, 0.0, 0.013244468221545107, 0.0, 0.0, 0.24547792145680816, 0.0, 0.0, 0.24645038846539752, 0.0, 0.07787330782357368, 0.0, 0.09831191096156015, 0.0, 0.0863868727625753, 0.0, 0.0, 0.21097149137042656, 0.4600105653434928, 0.0, 0.0, 0.4846748152193548, 0.0053825196588004436, 0.0, 0.0, 0.23304656335170953, 0.0, 0.0, 0.0, 0.01644729791409444, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6635839294521109, 0.0, 0.0, 0.1032519091648337, 0.0, 0.014643680846542287, 0.0, 0.0, 0.012228001765264587, 0.0273809778429294, 0.0, 0.0, 0.0, 0.0, 0.11814152846841043, 0.0, 0.0, 0.0, 0.08114235550352887, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03981869801488778, 0.0, 0.0, 0.01690058436045381, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.47984630251995897, 0.0, 0.0, 0.0, 0.154685583485594, 0.0, 0.0, 0.7459066497127498, 0.32432766351381886, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21251921179608543, 0.0, 0.041283993604408244, 0.4906650630543811, 0.0, 0.0, 0.0, 0.3009663372628846, 0.29390924803430424, 0.14599468380868816, 0.14724751511978565, 0.02500191228688869, 0.0, 0.0, 0.0, 0.0, 0.06939565285269096, 0.018849269370198582, 0.32715732364762956, 0.0, 0.0, 0.0, 0.0, 0.4732128312830887, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5472401277259243, 0.0, 0.0, 0.0, 0.3356686041995424, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006124345533801972, 0.059693390630145234, 0.0, 0.0, 0.0, 0.0, 0.7701573530835567, 0.0, 0.0, 0.43089308645043684, 0.0, 0.4426871487137241, 0.12677439419075828, 0.0, 0.0, 0.47537084352136705, 0.0, 0.0, 0.0, 0.0, 0.0, 1.215287997578233, 0.037543424026112354, 0.0, 0.0, 0.5379410567908419, 0.0, 0.0, 0.17780464411285438, 0.3071357553748976, 0.3614993154298547, 0.0, 0.1891417853768657, 0.0, 0.6912529043730106, 0.0, 0.0, 0.5485925554907274, 0.0, 0.5108261790337173, 0.0, 0.0, 0.0, 0.02366817478031771, 0.0, 0.0, 1.2280555558078412, 0.4674168435713557, 0.0, 0.0, 0.0, 0.23075296158753902, 0.0, 0.0, 0.07502151735916562, 0.626568729479956, 0.0, 0.0, 0.0, 0.0, 0.4149990617847983, 0.0, 0.0, 0.0, 0.22279868499825492, 0.0, 0.0, 0.5403248930908322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06322273667040083, 0.10094478522643717, 0.3387178421999011, 0.0, 0.5942669672638095, 0.0, 0.07164274732515331, 0.0, 0.0, 0.0, 0.16162050236277423, 0.16241659821715973, 0.5135606043385268, 0.0, 0.0, 0.5786552208576398, 0.9215277550399469, 0.5467787056885621, 0.12114909389695927, 0.0, 0.41576199634744937, 0.25271142537828667, 0.10169080638315105, 0.09035644665270913, 0.5186992660395696, 0.0, 0.8350126002207462, 0.0, 0.4590684905849725, 0.5886674559725333, 0.8153568197541052, 0.0, 0.5241047591859962, 0.40143028033605616, 0.0, 0.0, 1.2135756958284523, 0.0, 0.9792953636803372, 0.0, 0.0, 0.0, 0.07614591165689645, 0.24556945517590373, 0.6102890524250416, 0.0, 1.0435423231384657, 0.0, 0.0, 0.48943379744214055, 0.12791852851238183, 0.0, 0.19465687730377407, 0.11709029823841187, 0.0, 0.4229951092224917, 0.1438540051610157, 0.0, 0.0, 0.1703427415013558, 0.08724202694224298, 0.1395620898962288, 0.0, 0.22213892259359796, 0.0, 0.7882143461677291, 0.2546665805877283, 0.03597313889306425, 0.14802212956482205, 0.3919199393005139, 0.0, 0.43670107573519007, 0.08461463206412526, 0.5268384995574602, 0.0, 0.0, 0.0, 0.710223739285348, 0.31420569755496963, 0.0, 0.060070569318188244, 0.0, 0.1747770748083586, 0.0, 0.0, 0.0, 0.0, 0.13970561131521003, 0.37685554260004983, 0.02392489472196235, 0.5001172064820062, 0.1271397932462149, 0.0, 0.0, 0.06640626803307163, 0.0, 0.33601428762663216, 0.3914997569159482, 0.0, 0.0, 0.0, 0.19710945641036862, 0.0, 0.0, 0.0, 0.2570446025119335, 0.0725597578451322, 0.2153089707985957, 0.29468347651980764, 0.0, 0.0, 0.0, 0.0, 0.5053218639862116, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3406987685187243, 0.1282582445133294, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2730271127536044, 0.0, 0.0, 0.0, 0.09127410611527945, 0.0, 0.0, 0.0, 0.43937003529159857, 0.0, 0.0, 0.34629394607426156, 0.3602903966859215, 0.0, 0.0, 0.0, 0.4524888332499127, 0.0, 0.0, 0.05407346090862119, 0.5645191906902647, 0.0, 0.0, 0.0, 0.06182241276595979, 0.5051019163723838, 0.0, 0.0, 0.0, 0.43689110783624835, 0.0, 0.3247012272501492, 0.7529477711340642, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04556922200754848, 0.07275824443457538, 0.6641996712133981, 0.0, 0.7527892189655382, 0.0, 0.0, 0.0, 0.0, 0.0650185387513895, 0.11649164431992753, 0.09285202740421554, 0.0, 0.10520472290792057, 0.0, 0.0, 0.0, 0.036503860437912636, 0.5018364780015474, 0.0, 0.9018697735038638, 0.27452370937022097, 0.20528582752919317, 0.07345710391625684, 0.08368878794961943, 0.0020062951066029595, 0.0, 0.024311758317256665, 0.6863531779584559, 0.09358353036484864, 0.0, 0.0, 0.9056118974425151, 0.29332085426290194, 0.0, 0.0630960103278028, 0.3131666065435304, 0.16132753119961868, 0.0, 0.0, 0.10949069660281478, 0.0, 0.0, 0.043082807469330416, 0.9391632037219755, 0.2464244579278498, 0.05056349807476583, 0.4941568471321954, 0.08930155661972776, 0.14135721850308308, 0.6365671583541417, 0.01570471026967911, 0.0, 0.0, 0.30035575477425325, 0.470607279557531, 0.0, 0.7051994623504158, 0.0, 0.23693793780889214, 0.0, 0.0, 0.0, 0.3089837451394857, 0.0, 0.25881489636176935, 0.3542280340299567, 0.0, 0.0, 0.0, 0.5509103928459669, 0.6074285960860691, 0.0, 0.0, 0.0, 0.0, 0.0, 0.40954130307575276, 0.4320109271392501, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7153301391295569, 0.32819572556211446, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25387735844455867, 0.0, 0.18356036702777592, 0.788959698429946, 0.059142916486545904, 0.0, 0.0, 0.2329870601139546, 0.30260111431019593, 0.0, 0.19018291703368598, 0.11334224351658809, 0.0, 0.0, 0.39837350679552525, 0.002854450925801763, 0.0, 0.0, 0.1761871096815805, 0.26007093167161216, 0.4537724619820453, 0.0, 0.0, 0.19939804636751923, 0.0, 0.0, 0.0, 0.1241315656029792, 0.1788746058733879, 0.06989387912072809, 0.0, 0.008706450766933925, 0.17069278519076628, 0.09804467032937333, 0.0, 0.0, 0.0, 0.0, 0.2756668600912958, 0.0, 0.0, 0.0, 0.005007038116067554, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8846910424025506, 0.0, 0.5333972690871841, 0.4949732055269114, 0.5048814532552262, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.627591044078193, 0.0, 0.19602396549237053, 0.0, 0.0, 0.0, 0.0, 0.1453664926926827, 0.896573768738389, 0.0, 0.0, 0.08916555133174352, 0.0, 0.45645988556129685, 0.4637272073796655, 0.0, 0.5460482316353812, 0.0, 0.0, 0.0, 0.0, 0.03854810586108881, 0.0, 0.0, 0.0, 0.24917051451787198, 0.15578564796063854, 0.0, 0.013543850896187834, 0.1652099998051347, 0.4862465546100088, 0.0, 0.0, 0.0, 0.11288030981556667, 0.07793421422144962, 0.0, 0.0, 0.34069897855478337, 0.0, 0.24220682644461092, 0.0, 0.042169823026623185, 0.0, 0.18652613799485498, 0.06988747434212275, 0.0, 0.19432531845717826, 0.0, 0.0, 0.00773760410112359, 0.0, 0.0, 0.0, 0.13421576760969542, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3005240696463887, 0.0, 0.0, 0.1430297093262495, 0.0, 0.024074811994738193, 0.0, 0.7425836604044599, 0.0, 0.0, 0.773031322896148, 0.0, 0.0, 0.0, 0.15113548220653236, 0.0, 0.02143475877513858, 0.0, 0.0, 0.017898796818035273, 0.5704357742231774, 0.0, 0.0, 0.28614450437434535, 0.8406253620321404, 0.4518328538149436, 0.0, 0.0, 0.0, 0.11877251593306616, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7242261419761843, 0.75325138697923, 0.0, 0.0, 0.0, 0.21774733884534636, 0.05828481210656411, 0.0, 0.0, 0.5513859663000955, 0.08804724386035472, 0.0, 0.0, 0.13001461893666422, 0.05055138733020214, 0.0, 0.8802248488281825, 0.6335423662880417, 0.0, 0.0, 0.01901314000236066, 0.007676360091610109, 0.03662889578173271, 0.0, 0.0, 0.0, 0.0, 0.03491957842751296, 0.0, 0.0, 0.0, 0.0, 0.31801869319533504, 0.11915500690641781, 0.055287184155029916, 0.07802084728905281, 0.0, 0.0, 0.1568519327721604, 0.0, 0.006469083934087435, 0.0103288836062672, 0.4783408265548552, 0.0, 0.03403634442829624, 0.0, 0.06752201735679073, 0.5482808562992434, 0.6465577226913658, 0.19559104705049943, 0.7473465260842165, 0.0, 0.2510639869948042, 0.0, 0.49874757736937353, 0.0, 0.0, 0.29196420234146186, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.28937972665293554, 0.0, 0.0, 0.007742544258898216, 0.0050434263912106985, 0.09915800240987568, 0.0, 0.7790435385945825, 0.0, 0.0, 0.0, 0.6720010410729492, 0.0, 0.0, 0.12993505760251525, 0.0, 0.0, 0.0, 0.09325889168521988, 0.0, 0.0, 0.0, 0.0, 0.029846526702260994, 0.0, 0.0, 0.0, 0.0, 0.03754266866784506, 0.0, 0.0, 0.06429885322169407, 0.0, 0.0, 0.0, 0.06625799315618229, 0.02719995417661398, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1751776227817407, 0.0, 0.007852967543861803, 0.0, 0.23548257357635802, 0.0, 0.0, 0.0, 0.18584714899527952, 0.0, 0.006031156908010012, 0.0, 0.0, 0.09024557651897172, 0.0, 0.0, 0.0, 0.01928750817179254, 0.0, 0.0, 0.0, 0.04647312904146408, 0.04238313205889527, 0.04813129297619805, 0.0, 0.05649291128148132, 0.3120484444217953, 0.20304077341891358, 0.22280612221181567, 0.0, 0.0, 0.0, 0.0, 0.2296027094274992, 0.36729813710945064, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03194349659115132, 0.013381366431696788, 0.22268795739920053, 0.0, 0.5523622509591986, 0.0, 0.0, 0.0, 0.6320065213132712, 0.0, 0.054122720571298674, 0.1129752905678043, 0.0, 0.0, 0.0, 0.1354202846158455, 0.0, 0.0, 0.0, 0.0, 0.07918967771838586, 0.33460525882449765, 0.0, 0.1408840961604024, 0.0, 0.13967703386944746, 0.0, 0.015739213046679565, 0.0, 0.0, 0.0, 0.18340851877331085, 0.049075431284917106, 0.5986297438714518, 0.1026146960995913, 0.0, 0.09880673435294796, 0.0, 0.01401324484028475, 0.0, 0.0, 0.011701564957593804, 0.026202178980838764, 0.0, 0.0, 0.0, 0.34875710305703866, 0.0, 0.6758676493244615, 0.25323358703827886, 0.0, 0.07764903554674676, 0.0, 0.0, 0.3437885050787113, 0.0, 0.0, 0.05172718445894569, 0.48632377387851766, 0.7737451549255131, 0.0, 0.0, 0.2824387300805914, 0.0, 0.03810443360186568, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5685388973074467, 0.0, 0.6119913546647608, 0.3631185701853139, 0.0, 0.0, 0.0, 0.0, 0.0, 0.42090311344262876, 0.0, 0.0, 0.5545361922919911, 0.0, 0.30486976208852845, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5353307932807481, 0.3737614291005788, 0.06278455657761825, 0.6503551227381855, 0.0, 0.30802712982197544, 0.0, 0.0, 0.0, 0.0, 0.6932590699354483, 0.0, 0.0, 0.1727602393426444, 0.3250355196326665, 0.0, 0.0, 0.0, 0.031208327259562327, 0.0, 0.022564485628753735, 0.20187972104397525, 0.0, 0.0, 0.0, 0.023252803763957695, 0.037197781883188764, 0.0, 0.0, 0.14016266119268855, 0.0, 0.0, 0.0, 0.0, 0.5500068484641752, 0.0, 0.21787864254870015, 0.11728832916212795, 0.7393468760695268, 0.0, 0.0, 0.0, 0.5835060614008979, 0.0, 0.0, 0.005481228874667605, 0.0, 0.24527608437248674, 0.0, 0.0, 0.0, 0.08585061953648496, 0.0, 0.0, 0.0, 0.0, 0.033886840626726755, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7610872759404612, 0.4515830514911833, 0.0, 0.0, 0.0, 0.0, 0.4404042575115658, 0.12990320458817742, 0.0, 0.0, 1.1767377087370854, 0.0, 0.37914342249438854, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4648187686925721, 0.0, 0.8087973873909876, 0.0, 0.0, 0.37042117085655, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4042220471506979, 0.506818287464434, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.799283492516607, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2072078588281799, 0.0, 0.0, 0.0, 0.0, 0.0, 0.38630185980823584, 0.0, 0.0, 0.7203309700401708, 0.28467844154475075, 0.0, 0.055301649487215346, 0.0, 0.0, 0.0, 0.0, 0.09138992101001418, 0.0, 0.19556603240348344, 0.19724425274952875, 0.03349111529878698, 0.0, 0.0, 0.0, 0.0, 0.09295840191163598, 0.062259404337737585, 0.5110045389416802, 0.0450152750177662, 0.0, 0.0, 0.0, 0.0, 0.04638844304232061, 0.07420813436973994, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08039405816322542, 0.0, 0.04499140125036479, 0.0, 0.0, 0.0, 0.0, 0.0, 0.47269177846996874, 0.0, 0.01093483934391422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06760293477957593, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.30814523656105497, 0.0, 0.0, 0.002453061284897307, 0.0, 0.13680023676237826, 0.0, 0.0, 0.0, 0.0, 0.4233541440451853, 0.3380165111056225, 0.08224079897271243, 0.0, 0.0, 0.24592756484718573, 0.0, 0.0, 0.02267336040190668, 0.2908323152368906, 0.29332804878897817, 0.04980567679624497, 0.01451698775054283, 0.0, 0.0, 0.0, 0.1382413239989673, 0.03764974542541842, 0.0, 0.45231380198935905, 0.0, 0.0, 0.0, 0.22772767048274462, 0.028083536989501626, 0.0, 0.0, 0.7177165992040482, 0.0, 0.248754226443203, 0.3404584582583339, 0.0, 0.0, 0.0, 0.0, 0.5838165911735776, 0.18900763241929244, 0.0, 0.0, 0.0, 0.0, 0.393621586219481, 0.1481813799050705, 0.08990527101762133, 0.0, 0.0, 0.0, 0.06541155133507946, 0.0, 0.0, 0.754567070013019, 0.0, 0.35519767644142475, 0.7886704894854123, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2853585340727017, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1466994216180092, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04489418163119632, 0.0, 0.154322481722074, 0.0, 0.0, 0.0, 0.05695713751335286, 0.0, 0.26396366899551715, 0.0, 0.0, 0.0, 0.2015805623941956, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1347415569982167, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15951239540553339, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26424756561910484, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3095030162301081, 0.4017859650017111, 0.4320177001616871, 0.31072912027464494, 0.0, 0.0, 0.0, 0.12395344067349241, 0.0, 0.10891813619746654, 0.0, 0.0, 0.36104977882982536, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4976654583754128, 0.7708862373561997, 0.47125964249827657, 0.10728601893015154, 0.0, 0.031799482348967435, 0.6739071734662878, 0.36447067198103217, 0.5830479926977264, 0.3439222616030173, 0.07719737246781146, 0.1664670841939448, 0.06466304544803145, 0.08850133352227474, 0.0, 0.0, 0.0, 0.0, 0.15176167781411123, 0.7529769594833942, 0.2081678127507482, 0.43606912218895016, 0.0, 0.20899247481790656, 0.13097931441492902, 0.0385193829281183, 0.0, 0.1692837648290093, 0.24671124992729013, 0.0732569603271901, 0.0, 0.0, 0.3302348567546971, 0.0, 0.0, 0.08199734797416196, 0.0, 0.3003739061478844, 0.5311514129612689, 0.2094016677928949, 0.08615953302492001, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2720133179050694, 0.08023401473498062, 0.0, 0.0, 0.3008565847002404, 0.0, 0.0, 0.0, 0.0, 0.15598633286780347, 0.0914681730216936, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2287886413185382, 0.0, 0.02163921527981386, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31303358584026736, 0.0, 0.0, 0.10317949853840898, 0.0, 0.0, 0.4429302660561133, 0.5715405010739755, 0.5374631632426349, 0.31889805938655563, 0.036252046956170986, 0.4422081073153658, 0.0, 0.7337564221688706, 0.0, 0.023977384315413304, 0.0, 0.0, 0.4870048796768423, 0.0, 0.5662703466651342, 0.07343369104191685, 0.0, 0.85942069251388, 0.0, 0.0, 1.3620890981561393, 0.18706378421604947, 0.5009363229828259, 0.0, 0.9153459961943655, 0.0, 0.3024413176269455, 0.0, 0.020206414212617495, 0.770875966881197, 0.3592476280889007, 0.42399066250320144, 0.10631373480524917, 0.0, 0.0, 0.28545275552737415, 0.0, 0.0, 0.051655005587926184, 0.2896221837003778, 0.0, 0.10479137286851924, 0.0, 0.6481743752598288, 0.18963154425718728, 0.1652754625808005, 0.5111459932504497, 0.20983351489683355, 0.0, 0.0688022311887445, 0.0, 0.1588427949870473, 0.07887689716448136, 0.0, 0.17182849674148495, 0.0, 0.0944668962094047, 0.4452313187931226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09119364969454108, 0.8790983194086319, 0.04652724209330274, 0.20151893535811746, 0.0, 0.09353766464308477, 0.0, 0.08529401781538828, 0.13618496703742403, 0.14879310483428343, 0.0, 0.5218449227201785, 0.0, 0.0, 0.4276792985772285, 0.37130791898202276, 0.0, 0.65385625176219, 0.21427428342013688, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029843856213185426, 0.7335168265162704, 0.36008358555156716, 0.016697251884690307, 0.0, 0.0, 0.0, 0.0, 0.32011086143599826, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.311051559092257, 0.4114828296911449, 0.40654319137761, 0.15232329989672078, 0.0, 0.7981814625524425, 0.0, 0.0, 0.03178181930754204, 0.0, 0.0, 0.08306558457263293, 0.9520806654789163, 0.0, 0.0, 0.0, 0.014583001249069335, 0.19830185076027407, 0.0, 0.0, 0.0, 0.017109723326194017, 0.5838039803907641, 0.036078269448045736, 0.0, 0.0, 0.0, 1.5483621887345977, 0.0, 0.0, 0.3938374131167075, 0.21826438331642692, 0.47843769619251875, 0.0, 0.03212191242915342, 0.0, 0.0, 0.026822955649167167, 0.06006204189453128, 0.3916449581841089, 0.17029114067254328, 0.0, 0.8085887138693341, 0.0, 0.0847427642025191, 0.0, 0.24867162588894387, 0.1779912895598945, 0.0, 0.4967368758167945, 0.2999184090453587, 0.0, 0.0, 0.34170853809147433, 0.15431967954789833, 0.0, 0.20047306608944798, 0.0, 0.34396866784271457, 0.0, 0.08734502916861536, 0.0, 0.0, 0.2734744328918824, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4826472849667363, 0.19813434438947314, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7219511030362349, 0.1739578003573766, 0.0, 0.0, 0.5805657409095567, 0.04393313724425415, 0.0, 0.0, 0.08832251544226348, 0.0, 0.0, 0.08642438629494777, 0.1404972141390735, 0.0, 0.0, 0.0, 0.0, 0.30873412613620277, 0.35060581780891126, 0.0, 0.411514882221113, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12502955237491653, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9289178041335806, 0.0, 0.0, 0.5936412791641967, 0.0, 0.0, 0.27919748240464876, 0.0, 0.0, 0.0, 0.0, 0.03866359013001743, 0.0, 0.09129386900625779, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11792903528210355, 0.0, 0.38768207402217597, 0.12966222332760374, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15858416904207315, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06587533022560071, 0.5693372038338419, 0.4118051761712919, 0.04005300556172724, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.28854004528147215, 0.0, 0.12922839237489175, 0.0, 0.14106371386748318, 0.0, 0.6427956538537295, 0.2408421964280935, 0.11343809741754582, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.016886662889233732, 0.4625266626199813, 0.0, 0.027184451434696822, 0.0, 0.0, 0.0, 0.2545156696147772, 0.0, 0.0])), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Atomic([Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0)], Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.0, 0.5960995400087008, 0.0, 0.0, 0.46121971296621317, 0.0, 0.1341136169173934, 0.0, 0.6613178775714327, 0.0, 0.0, 0.0, 0.0, 0.31233701358881993, 0.0, 0.0, 0.0, 0.42428295532646376, 0.0, 0.04433289125435014, 0.1771852692198303, 0.0, 0.2102135380786222, 0.0, 0.29289346791587945, 0.1864042064610544, 0.1847622901670141, 0.0047837035165779595, 0.7809783797805827, 0.24637196495074015, 0.0, 0.5657923421369488, 0.2611932808057722, 0.0, 1.1390711256090715, 0.0, 0.0, 0.15310516154880033, 0.0, 0.536745361655064, 0.11084632541017801, 0.24887017850829343, 0.6316463638637531, 1.4711963896826616, 0.6112779722436283, 0.5079606239011155, 0.15942216163041661, 0.21541936537958353, 0.10295208772558359, 0.0, 1.3699774598840704, 0.6364841478802473, 0.38335626793892197, 0.0, 0.2992892574327959, 0.10527060545292, 0.0, 0.0, 0.7485372018432481, 0.2715216678914851, 0.2667902419370478, 0.0, 0.5814665590695893, 0.051682188310845374, 0.0, 0.0, 0.3934310017151073, 0.0, 0.0, 0.5957893409486428, 0.3316317367913752, 0.9200295815926001, 0.0, 0.0, 0.6623087915165122, 0.0, 1.5766760492233103, 0.0, 0.0, 0.3039866668414091, 0.0, 0.024309812685391816, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14306886144088826, 0.0, 0.0, 0.0, 0.13834293702511197, 0.0, 0.0, 0.0, 0.07697281314241891, 0.0, 0.13882210022663904, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11718373909917448, 0.05171175921797154, 0.0, 0.0, 0.047041804166349496, 0.0, 0.0, 0.0, 0.21780680053585874, 0.005280433697773762, 0.0, 0.01227888835211436, 0.1637490848480197, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.405774970647805, 0.2291279765469989, 1.2574751546051093, 0.5180330897538964, 0.48968357404421875, 0.5301529810315024, 0.0, 0.0, 0.0, 0.8112619638066929, 0.0, 0.7833417149382808, 0.0, 0.0, 0.11442625626708748, 0.11485555134200548, 0.22833033865638044, 0.0, 0.0, 0.0, 0.0, 0.2864165259642358, 0.16027108725841735, 0.0, 0.09011936406874124, 0.4181806897076036, 0.0, 1.0569606821068054, 0.624691204995156, 0.7081544908696379, 0.0, 0.8795184016973987, 0.0, 0.0, 0.021853263477242018, 0.11238129351491766, 0.0, 0.0, 0.045824320207715985, 0.0, 0.196064039018767, 0.0, 0.07081867255234689, 0.0, 0.0407459744321428, 0.0, 0.09807635051343538, 0.010124069007427254, 0.0, 0.0, 0.0, 0.0, 0.6116811031756639, 0.0, 0.0, 0.6208028352439049, 0.0, 0.17504030998808598, 0.020658826838531718, 0.719367580349619, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.015728258754898257, 0.07298380500117611, 0.0, 0.06012022906808051, 0.0, 0.0, 0.5330380962469254, 0.02965305516643559, 0.0, 0.18001272855172004, 0.035235037447174065, 0.0, 0.01349449214577584, 0.0, 0.0, 0.0, 0.2359915438569738, 0.03810280561257924, 0.0, 0.0, 0.0, 0.3884686133510988, 0.0, 0.0, 0.21968925488132546, 0.0, 0.0, 0.4324936557273746, 0.0, 0.6879094987723802, 0.0, 0.0, 0.0, 0.0, 0.7898693359448322, 0.0, 0.5391987426673219, 0.25853076675450826, 0.0, 0.38031280775654097, 0.0, 0.3853638210122371, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.2217547802058863, 0.05709933484072306, 0.0, 0.0, 0.8484028226584724, 0.23257686384566284, 0.0, 0.0, 1.258622241947537, 0.0, 0.0, 0.11665876134553779, 0.3184837856872295, 0.7880482843371591, 0.0, 0.0, 0.0, 0.0, 0.23284042288536255, 0.0, 0.3804712136528319, 1.113036382623302, 0.8298038026635118, 0.0, 0.0, 0.0, 0.0, 0.0, 0.020690565683442904, 0.2610758590649183, 0.0, 0.0, 0.06193402719103672, 0.024569168683420507, 0.6450876041294853, 0.0, 0.5615893961519662, 0.0, 0.5487968919612313, 0.0, 0.6425734859953806, 0.0, 0.2979704099021757, 0.323777504790907, 0.66722521578591, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4069961680965457, 0.7713681046585987, 0.3594743508741288, 0.8852608548606914, 0.0, 0.0, 0.0, 0.0, 0.017250929899566992, 0.05738201561649353, 0.0, 0.040237899717394485, 0.8673210549972237, 0.0, 0.0, 0.7245534868749944, 0.0, 0.16727086778943756, 0.0, 0.0, 0.0, 0.0, 0.29250184542509544, 0.0, 0.0, 0.06729223300830636, 0.0, 0.3824979967457689, 0.0, 0.23769547992450338, 0.825352628558087, 0.5791520520364314, 0.0, 0.0, 0.6822104427959106, 0.5410434317660799, 0.0, 1.0013182252763115, 0.0, 0.0, 0.03410163433510291, 0.0, 0.38656596036997387, 0.673387919520239, 0.0, 0.0, 0.0, 0.06524513264320482, 0.3778876017229726, 0.0, 0.3042658440871357, 0.03546389486517897, 0.0, 0.3811330360259428, 0.09125614750074176, 0.38639776526497555, 0.0, 0.7956019813194058, 0.17107520161825185, 0.2528672125099372, 0.0, 0.0, 0.0, 0.0, 0.3715122812201797, 0.0, 0.0, 0.0, 0.8636878110328885, 0.3725673215613031, 0.19161493799862908, 0.2947877363978017, 0.8277903198901483, 1.043787991594994, 0.4556846854932056, 0.018960059119328472, 0.0, 0.8179077818243863, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16243732090346746, 0.0, 0.0934593474548136, 0.26288293993414813, 0.0, 0.6986592631730956, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.23290649501046135, 0.0, 0.0, 0.0, 0.0749770448177764, 0.0, 0.0, 0.5829804395566012, 0.0, 0.08903205884730546, 0.036076025185782915, 0.16740350145604724, 0.0, 0.13789822076519753, 0.0, 0.0, 0.0, 0.7803684622045182, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1343991941662123, 0.0, 0.0, 0.1265714212875754, 0.580645942127824, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4164388584828146, 0.0, 0.6383936083527437, 0.0, 0.0, 0.0, 0.0, 0.18608051379305826, 0.0, 0.04744673193981907, 0.0, 0.0, 0.0, 0.0, 0.3666656532257351, 0.017984084638402044, 0.0, 0.0516031884810454, 0.11619024662048777, 0.5090994962453932, 0.1702286192926929, 0.017754543539629426, 0.11487736756877703, 0.0, 0.0, 0.0035637729173098607, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6218776818900951, 0.10343438219926053, 0.0, 0.016806683142264318, 0.019961035657552893, 0.0, 0.39238409513228256, 0.22883526349683764, 0.0, 0.02328369860187438, 0.02966268912006465, 0.0, 0.0, 0.0, 0.08243560528569996, 0.6624744276069285, 0.0, 0.10804564627221094, 0.0, 0.0, 0.0, 0.0, 0.0, 0.272827698328812, 0.0, 0.0, 0.0, 0.10351845069306231, 0.022056761782947687, 0.04806113374409372, 1.421033050846094, 0.09272463621214155, 0.32902390084105787, 0.5088305985866386, 0.09822819388787048, 0.0, 0.0, 0.0965876885856362, 0.0, 0.0, 0.18492863169572316, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13526587090401476, 0.0, 0.022328727233527985, 0.0999580342692439, 0.0, 0.0, 0.09557781244125038, 0.13831210655132378, 0.0, 0.0, 0.1791768991068296, 0.16163641825142586, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.42053340750746143, 0.0, 0.10552005335412863, 0.0, 0.0, 0.16311354370934733, 0.0, 0.2824114978735204, 0.0, 0.0, 0.43639300384810376, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1671480967875291, 0.644888932873856, 0.3129032598040877, 0.48675890221085816, 0.17823949364009248, 0.1415399106044285, 0.18516682441734925, 0.5312977885248659, 0.07587099582542241, 0.0, 0.0, 0.6986300116510127, 0.0, 0.0, 0.7938925894205694, 0.36599606323996975, 0.26363118368222405, 0.2342915285475447, 0.0, 0.1869965760541939, 0.1160920939359052, 0.38732669798663727, 0.0, 0.1313693926537813, 0.14845591773543332, 0.0, 0.0, 0.5636663205749514, 0.0, 0.0, 1.5099082548197433, 0.12877106200933913, 0.12876355501777378, 0.4806583412843819, 0.8527242204514415, 0.2611825233475998, 0.2169329303973436, 0.0, 0.19905771354664345, 0.0, 0.3188159099664727, 0.0, 0.49573252746154944, 0.5909004107452918, 0.44608316126371567, 0.9987235012950566, 0.0, 0.0, 0.06543436335390052, 0.0, 0.0, 0.0, 0.7452854681453724, 0.940549219662451, 0.32866688095435376, 0.0, 0.04977979297413422, 0.0, 0.15266515341831127, 0.0, 0.0, 0.8226750512812447, 0.0, 0.0, 0.2520932611368793, 0.32856303804715215, 0.1846788611041856, 0.6288326287259721, 0.15594781886009731, 0.0, 0.0, 0.39056006775570395, 0.2454733448499023, 0.0, 0.1875080652559859, 0.0, 0.0, 0.0, 0.4604079993134017, 0.0, 0.0, 0.0, 0.0, 0.11979185177691755, 0.14227491555369362, 0.0, 0.09024327543210102, 0.648783267363574, 0.0, 0.0, 0.0, 0.5408163510237757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5311068240495873, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5314003925728801, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02394551122470378, 0.0, 0.0, 0.0, 0.12486249633500378, 0.0, 0.0, 0.05765112857402609, 0.0, 0.14315109316509972, 0.05676601866921535, 0.0, 0.6434826644263494, 0.0, 0.14460219857592263, 0.0, 0.0, 0.10860788610026072, 0.0, 0.04705670771446048, 0.4709967737248388, 0.0, 0.0, 0.13612521976378897, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.130371257969619, 0.0, 0.11349639269154894, 0.0, 0.11804878144850195, 0.3189646877579158, 0.0, 0.0, 0.0, 0.0, 0.1348452367929846, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1550934497155318, 0.13060726382480906, 0.0, 0.0, 0.232086697214264, 0.0, 0.14806165017632722, 0.0, 0.23898925029638524, 0.0, 0.0, 0.23731337239548533, 0.0, 0.10980801230053783, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19058666211884384, 0.0, 0.1810493697276433, 0.0, 0.0, 0.27986722280655724, 0.06847318480810846, 0.0, 0.026224205266550244, 0.0, 0.0, 0.0, 0.07178447214794542, 0.0, 0.0, 0.0, 0.0, 0.04423801290959719, 0.4450997362670805, 0.0, 0.0, 0.0, 0.014396013780263936, 0.0, 0.0, 0.08159130602818511, 0.28786198512647176, 0.0, 0.0, 0.0, 0.15886186536955227, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03988435480164781, 0.0, 0.03472184333660239, 0.15861587093052232, 0.03393091079863592, 0.0, 0.0, 0.0, 0.1458998203965446, 0.0, 0.2746045410027491, 0.0, 0.08937012005405864, 0.0, 0.0, 0.0, 0.0, 0.4360685101718207, 0.0, 0.0, 0.12479631040323635, 0.1679293189285873, 0.33750713984681247, 0.0, 0.38279076464536926, 0.0, 0.39766804122994015, 0.0, 0.0, 0.0, 0.0, 0.37584745957186994, 0.0, 0.0, 0.0, 0.0, 0.0034663505048984434, 0.0, 0.0, 0.0, 0.24932174401673268, 0.8269366380921026, 0.058350744167210526, 0.2821315817160027, 0.01073228148503296, 0.0, 0.0, 0.5523198324520332, 0.0, 0.0, 0.0, 0.2765513539344097, 0.2765352317665175, 0.0, 0.0, 0.0, 0.16196672196012962, 0.0, 0.0, 0.23047763471347846, 0.0, 0.4983211934020315, 0.0, 0.0, 0.0, 0.0, 0.08410733405320571, 0.0, 0.0, 0.38342855882543897, 0.031078189534518876, 0.0, 0.0, 0.07997079449394401, 0.0, 0.0, 0.0, 0.14991888400189204, 0.0, 0.0, 0.0, 0.2539339452562683, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005527553201922959, 0.24701032777367607, 0.3818735212726353, 0.0, 0.0, 0.3141045412174539, 0.4613820899583969, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7846194794668536, 0.0, 0.0, 0.2023929406035883, 0.5525420395033789, 0.0, 0.0, 0.0, 0.18332122951817006, 0.0, 0.0, 0.0, 0.6600849079661362, 0.0, 0.271071887942947, 0.6931869379662654, 0.0, 0.19544958497754947, 0.0, 0.0, 0.23106411956503142, 0.04163915085675471, 0.0, 0.2740671699579846, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5951890435738816, 0.0, 0.0, 0.5617261879013651, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.648112900028134, 0.0, 0.2097693617911403, 0.23188027210282897, 0.6330438111437964, 0.515238068631253, 0.8059496022277759, 0.0, 0.3600721428836477, 0.0, 0.37406645349624035, 0.43324551668887895, 0.7562549741789008, 0.0, 0.46837434729653293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.23452450510075076, 0.0, 0.0, 0.26538707979997495, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9037040684567715, 0.2601228730720389, 0.0, 0.0, 0.0, 0.3385307797226737, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6960140675899867, 0.0, 0.0, 0.0, 0.34167761524179585, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.47179884257042837, 0.0, 0.5873339130881751, 0.07760784608974701, 0.0, 0.5108116353650718, 0.0, 0.23018263458044896, 0.0, 0.0, 0.0, 0.6389281667373347, 0.0, 0.0, 0.0, 0.6317086674243048, 0.5424555939717753, 0.0, 0.019597125946055532, 0.0, 0.5067616269530796, 0.0, 0.0, 0.0, 0.0, 0.33135639687759366, 0.0, 0.11009229928191128, 0.0, 0.0, 0.0018449546833188399, 0.0, 0.1894047148704815, 0.0, 0.21786525780326826, 0.00027956067335572354, 0.0, 0.0, 0.00044372512905081096, 0.0, 0.0, 0.10913586880079368, 0.0, 0.0, 0.2387319450019063, 0.04302093934347575, 0.0, 0.28316204466710054, 0.0, 0.6259961005310473, 0.044339116197027774, 0.0, 0.0006891565473784903, 0.0, 0.0, 0.419692560541072, 0.00023711054076719368, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0009518757697360345, 0.0, 0.0, 0.0, 0.0, 0.04412247836479926, 0.33175278809136916, 0.1836910307282294, 0.43316264355459233, 0.0, 0.0, 0.0, 0.0, 0.6109591315701846, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7410212481907629, 0.09694039812399863, 0.0, 0.0, 0.04700242398333341, 0.0, 0.0, 0.15679640166544176, 0.0, 0.0, 0.008354862966629384, 0.8660916115221005, 0.12095883829401362, 0.0, 0.0, 0.13982615201680984, 0.0, 0.37030015075124356, 0.0, 0.10806680870328135, 0.2674021581377063, 0.0, 0.0, 0.43695074134110806, 0.0, 0.0, 0.0, 0.4193595253139995, 0.0, 0.0, 0.4223604117691241, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6519628347852473, 0.09593394582722056, 0.0, 1.2263197607192593, 0.0, 0.1420268730458006, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6547968394353947, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.015993676263376118, 0.0, 0.0, 0.0, 0.0, 0.0, 1.032250106596857, 0.0, 0.0, 0.0, 0.19977559392448785, 0.0, 0.0, 0.0, 0.13350148436716802, 0.05064120692385946, 0.0, 0.014278692130393579, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02476251362124448, 0.0, 0.0, 0.6971876314261916, 0.0, 0.32368749507325995, 0.0, 0.38665695047334026, 0.043481909227645874, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2863863682111852, 0.0, 0.0, 0.0, 0.0, 0.5166026604428106, 0.6135609292207037, 0.0, 1.390585308090751, 0.549724406362488, 0.0, 0.0, 0.0, 0.4946354029419938, 0.0, 0.0, 0.1817622353630416, 0.0, 0.0, 0.45001527975922945, 0.19067060021024376, 0.0, 0.0, 0.0, 0.0, 0.0, 0.45026402504954754, 0.09862023599471978, 0.0, 0.0, 0.08971409788917951, 0.0, 0.0, 0.0, 0.14718404588236259, 0.02028941343776962, 0.0, 0.0, 0.12879470754337072, 0.5384698277835859, 0.0493264459266498, 0.0, 0.6385356001321869, 0.0, 0.0, 0.0, 0.418599297830268, 0.0, 0.24084377286368372, 0.0, 0.0, 0.3927421561776119, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11479167979031016, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.287331205334526, 0.0, 0.0, 0.09296754420278937, 0.4313970938087158, 0.0, 0.3553622902870886, 0.0, 0.0, 0.0, 0.1752750739858479, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5721777681112366, 0.16584672881862064, 0.0, 0.0, 0.2750129568642962, 0.11193872117738499, 0.0, 0.694851503366924, 0.0, 0.11176089578249619, 0.03642730011196224, 0.46499012378889537, 0.0, 0.0, 0.10537656529716292, 0.2572556947482873, 0.11427779100841323, 0.4566419402676079, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31905429658438084, 0.4568943484348684, 0.0, 0.1009223375517615, 0.0, 0.08785925235754827, 0.2524568576131555, 0.5979718371844858, 0.0, 0.08718397040627182, 0.27019243222928785, 0.0, 0.2405201444721306, 0.11212903697332216, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12097427611620017, 0.7029459229987706, 0.2907862782736388, 0.0, 0.3020877732114353, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2423919969263556, 0.0, 0.5763734567059631, 0.0, 0.0, 0.0, 0.0, 0.6067232814043334, 0.18939678992121056, 0.0, 0.0, 0.21432072089475862, 0.0, 0.0, 0.0, 0.0, 0.5821831861883047, 0.0, 0.0, 0.210081711445218, 0.21006946427095974, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.030280314291377, 0.15413531598416644, 0.25247193164811527, 0.0, 0.0, 0.12848497078723173, 0.6000304051931176, 0.0, 0.0, 0.0, 0.0, 0.12617822046935606, 0.3320268939864614, 0.7056657766261163, 0.42848148251018003, 0.057345877924903164, 0.0, 0.3774481983482792, 0.12624796529690785, 0.1619902770277746, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005688878127237202, 0.38175135193372894, 0.1765840237536124, 0.0, 0.0, 0.3566318392645057, 0.0, 0.0, 0.0, 0.16683268933188872, 0.04345497812697982, 0.0, 0.492592677155673, 0.0, 0.0, 0.0, 0.0, 0.0831404672292756, 0.0, 0.0, 0.36055293254501974, 0.0, 0.4863131526725521, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005464010493446822, 0.24417078834728798, 0.0, 0.0, 0.22169348923343446, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11593686293818574, 0.0, 0.0, 0.0, 0.6095590933370347, 0.0, 0.2443761776038196, 0.0, 0.0, 0.0, 0.1960956643223869, 0.6074859425565672, 0.18650669482426485, 1.0378655385571516, 0.0, 0.17276762871577947, 0.6940099427692358, 0.0, 0.0, 0.32388236546386096, 0.0, 0.3977584774978917, 0.09850727254096922, 0.0, 0.09435872182534573, 0.32210695479773005, 0.0, 0.9450119024745318, 0.0, 0.7282651614947167, 0.795671006556338, 0.21972174528863647, 1.1800722708951874, 0.0, 0.15406122012703197, 0.23245444095199302, 0.0, 1.1450754137286316, 0.0, 0.0, 0.718432895790501, 0.0, 0.9074772544907516, 0.0, 0.0, 0.2150644825695137, 0.7387278090737696, 0.0, 0.49627306106648184, 0.6533650950107276, 0.0, 0.0, 0.0, 0.724606488987317, 0.701411910713477, 0.6206261403696766, 0.28804332377271413, 0.2959105186195655, 0.0, 0.6182919293124655, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.589003768060014, 0.0, 0.0, 0.08271977351575115, 0.0, 0.0, 0.0, 0.9105812282174285, 0.31789001879047846, 0.02411461886183569, 0.2829221743477605, 0.6706620073355701, 0.0, 0.1930731864260551, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06133637967837149, 0.6242346410782087, 0.6952909143002654, 0.3591573776849567, 0.0, 0.7449872409938767, 0.08923909973645693, 0.1173521535256719, 0.0, 0.0, 0.5729798828820618, 0.10656596459419354, 0.0, 0.1545328680391799, 0.27421690202209187, 0.0, 0.0, 0.3698254914307633, 0.5140663186573865, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13863750342668263, 0.6433193065819665, 0.0, 0.5299326895193157, 0.007712410329912944, 0.34464525874742236, 0.34174148456366615, 0.2613783001228934, 0.0, 0.0, 0.05371570560505797, 0.0, 0.02057231153731605, 0.0, 0.33150273239870404, 0.0, 0.0, 0.008405062468217761, 0.0, 0.34649855374487837, 0.298371589011109, 0.0, 0.1892535264101524, 0.0, 0.016081030317329964, 0.0, 0.0, 0.1306616194660838, 0.0, 0.0, 0.2714046321541056, 0.0, 0.0, 0.0, 0.024299507869495213, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16509417733903173, 0.0, 0.0, 0.1501849497452071, 0.1748418064456664, 0.0010568489849475794, 0.047227517247298824, 0.051672489777017716, 0.0, 0.11982535720931763, 0.0, 0.0, 0.2618551646604837, 0.0, 0.0, 0.12090296292900765, 0.0, 0.0, 0.44988696818935897, 0.0, 0.19121191419677455, 0.0, 0.0, 0.49693256130088725, 0.0, 0.0, 0.0, 0.5670859092292977, 0.0, 0.0, 0.0, 0.5653233896265278, 0.0, 0.0, 0.18955075438556615, 0.050614759394524644, 0.0, 0.0, 0.0, 0.0, 0.6124985176197848, 0.02840624719573524, 0.0, 0.0, 0.6585018821667253, 0.0, 0.669914086084765, 0.0, 0.4435524229524026, 0.0, 0.0, 0.24959071834233698, 0.6741825496608898, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15847771480322562, 0.0, 0.0, 0.0, 0.11420329312106789, 0.3695819846260272, 0.18933569121558752, 0.0, 0.0, 0.0, 0.02103165349726233, 0.2655614054905834, 0.0, 0.8117959138331444, 0.0, 0.3439446042563599, 0.0, 0.0, 0.1019714241481598, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13231107356042507, 0.0, 0.07339739754334103, 0.13018370224494802, 0.03407665122672999, 0.2789846158904475, 0.0, 0.04141177300212955, 0.0, 0.21059108800059795, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14821858886776432, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.45102261330920507, 0.05046558139935084, 0.0, 0.12130428936757616, 0.0, 0.12601881654664268, 0.003171787898412092, 0.00527620372181328, 0.0, 0.0, 0.013576794847610305, 0.0, 0.0, 0.0, 0.025452015886005885, 0.4384052118279088, 0.0, 0.0, 0.0, 0.0790086903216001, 0.15275039095222206, 0.0, 0.08940594755444543, 0.0, 0.0, 0.003492578790207725, 0.0, 0.5882017770828334, 0.0, 0.0, 0.14092784541391168, 0.7983017352473682, 0.0, 0.0, 0.0, 0.1117819777173795, 0.0, 0.0, 0.03862278430066002, 0.1785535098526168, 0.4378163685245537, 0.21613953941654523, 0.8670541670659707, 0.30872969047516546, 0.0, 0.073895246778613, 0.0, 0.0, 0.8448370570321526, 0.006826318289568987, 0.24453895548705643, 0.0, 0.6685102691932127, 0.0, 0.0, 0.07127880649817865, 0.032929653726359844, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.018587651907083814, 0.0, 0.19986879579794362, 0.2170189952300144, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2805164076738779, 0.0])), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for i = _ + for k = parallel(_) + for j = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_locks = Ct_lvl_2.lvl.locks + Ct_lvl_4 = Ct_lvl_3.lvl + Ct_lvl_3_val = Ct_lvl_3.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + A_lvl.shape[2] == B_lvl.shape[1] || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl.shape[2]) != $(B_lvl.shape[1]))")) + @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + @warn "Performance Warning: non-concordant traversal of B[k, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_locks, pos_stop) + @inbounds for idx = 1:pos_stop + Ct_lvl_2_locks[idx] = make_lock(eltype(Vector{Base.Threads.SpinLock})) + end + Finch.resize_if_smaller!(Ct_lvl_3_val, pos_stop) + Finch.fill_range!(Ct_lvl_3_val, 0.0, 1, pos_stop) + for i_4 = 1:A_lvl.shape[1] + locksArray = Ct_lvl_2_locks + Ct_lvl_2_locks = moveto(Ct_lvl_2_locks, CPU(Threads.nthreads())) + val = Ct_lvl_3_val + Ct_lvl_3_val = moveto(Ct_lvl_3_val, CPU(Threads.nthreads())) + B_lvl_ptr_2 = B_lvl_ptr + B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1_2 = B_lvl_tbl1 + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2_2 = B_lvl_tbl2 + B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + val_2 = B_lvl_val + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr_2 = A_lvl_ptr + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1_2 = A_lvl_tbl1 + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2_2 = A_lvl_tbl2 + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + val_3 = A_lvl_val + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_5 = 1:Threads.nthreads() + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + phase_start_2 = max(1, 1 + fld(A_lvl.shape[2] * (i_5 + -1), Threads.nthreads())) + phase_stop_2 = min(A_lvl.shape[2], A_lvl_i_stop, fld(A_lvl.shape[2] * i_5, Threads.nthreads())) + if phase_stop_2 >= phase_start_2 + if A_lvl_tbl2[A_lvl_q] < phase_start_2 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, phase_start_2, A_lvl_q, A_lvl_q_stop - 1) + end + while true + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + if A_lvl_i < phase_stop_2 + A_lvl_q_3 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_3 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_3 = 0 + end + phase_stop_4 = min(i_4, A_lvl_i_stop_3) + if phase_stop_4 >= i_4 + if A_lvl_tbl1[A_lvl_q] < i_4 + A_lvl_q_3 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_3 = A_lvl_tbl1[A_lvl_q_3] + if A_lvl_i_3 < phase_stop_4 + A_lvl_2_val = A_lvl_val[A_lvl_q_3] + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_stop_6 = min(B_lvl.shape[2], B_lvl_i_stop) + if phase_stop_6 >= 1 + if B_lvl_tbl2[B_lvl_q] < 1 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_6 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 + Ct_lvl_3atomicArraysAcc = get_lock(CPU(Threads.nthreads()), Ct_lvl_2_locks, Ct_lvl_2_q, eltype(Vector{Base.Threads.SpinLock})) + aquire_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc) + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_8 = min(A_lvl_i, B_lvl_i_stop_2) + if phase_stop_8 >= A_lvl_i + if B_lvl_tbl1[B_lvl_q] < A_lvl_i + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, A_lvl_i, B_lvl_q, B_lvl_q_step - 1) + end + while true + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + if B_lvl_i_2 < phase_stop_8 + B_lvl_2_val = B_lvl_val[B_lvl_q_2] + Ct_lvl_3_val[Ct_lvl_2_q] = A_lvl_2_val * B_lvl_2_val + Ct_lvl_3_val[Ct_lvl_2_q] + B_lvl_q_2 += 1 + else + phase_stop_10 = min(B_lvl_i_2, phase_stop_8) + if B_lvl_i_2 == phase_stop_10 + B_lvl_2_val = B_lvl_val[B_lvl_q_2] + Ct_lvl_3_val[Ct_lvl_2_q] = Ct_lvl_3_val[Ct_lvl_2_q] + A_lvl_2_val * B_lvl_2_val + B_lvl_q_2 += 1 + end + break + end + end + end + release_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc) + B_lvl_q = B_lvl_q_step + else + phase_stop_12 = min(B_lvl_i, phase_stop_6) + if B_lvl_i == phase_stop_12 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_12 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 + Ct_lvl_3atomicArraysAcc_2 = get_lock(CPU(Threads.nthreads()), Ct_lvl_2_locks, Ct_lvl_2_q_2, eltype(Vector{Base.Threads.SpinLock})) + aquire_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_2) + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_13 = min(A_lvl_i, B_lvl_i_stop_2) + if phase_stop_13 >= A_lvl_i + if B_lvl_tbl1[B_lvl_q] < A_lvl_i + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, A_lvl_i, B_lvl_q, B_lvl_q_step - 1) + end + while true + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + if B_lvl_i_2 < phase_stop_13 + B_lvl_2_val_2 = B_lvl_val[B_lvl_q_2] + Ct_lvl_3_val[Ct_lvl_2_q_2] = A_lvl_2_val * B_lvl_2_val_2 + Ct_lvl_3_val[Ct_lvl_2_q_2] + B_lvl_q_2 += 1 + else + phase_stop_15 = min(B_lvl_i_2, phase_stop_13) + if B_lvl_i_2 == phase_stop_15 + B_lvl_2_val_2 = B_lvl_val[B_lvl_q_2] + Ct_lvl_3_val[Ct_lvl_2_q_2] = Ct_lvl_3_val[Ct_lvl_2_q_2] + A_lvl_2_val * B_lvl_2_val_2 + B_lvl_q_2 += 1 + end + break + end + end + end + release_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_2) + B_lvl_q = B_lvl_q_step + end + break + end + end + end + A_lvl_q_3 += 1 + else + phase_stop_18 = min(A_lvl_i_3, phase_stop_4) + if A_lvl_i_3 == phase_stop_18 + A_lvl_2_val = A_lvl_val[A_lvl_q_3] + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_stop_19 = min(B_lvl.shape[2], B_lvl_i_stop) + if phase_stop_19 >= 1 + if B_lvl_tbl2[B_lvl_q] < 1 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_19 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + Ct_lvl_2_q_3 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 + Ct_lvl_3atomicArraysAcc_3 = get_lock(CPU(Threads.nthreads()), Ct_lvl_2_locks, Ct_lvl_2_q_3, eltype(Vector{Base.Threads.SpinLock})) + aquire_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_3) + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_21 = min(A_lvl_i, B_lvl_i_stop_3) + if phase_stop_21 >= A_lvl_i + if B_lvl_tbl1[B_lvl_q] < A_lvl_i + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, A_lvl_i, B_lvl_q, B_lvl_q_step - 1) + end + while true + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + if B_lvl_i_3 < phase_stop_21 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] + Ct_lvl_3_val[Ct_lvl_2_q_3] = A_lvl_2_val * B_lvl_2_val_3 + Ct_lvl_3_val[Ct_lvl_2_q_3] + B_lvl_q_3 += 1 + else + phase_stop_23 = min(B_lvl_i_3, phase_stop_21) + if B_lvl_i_3 == phase_stop_23 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] + Ct_lvl_3_val[Ct_lvl_2_q_3] = Ct_lvl_3_val[Ct_lvl_2_q_3] + A_lvl_2_val * B_lvl_2_val_3 + B_lvl_q_3 += 1 + end + break + end + end + end + release_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_3) + B_lvl_q = B_lvl_q_step + else + phase_stop_25 = min(B_lvl_i, phase_stop_19) + if B_lvl_i == phase_stop_25 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_25 + Ct_lvl_2_q_4 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 + Ct_lvl_3atomicArraysAcc_4 = get_lock(CPU(Threads.nthreads()), Ct_lvl_2_locks, Ct_lvl_2_q_4, eltype(Vector{Base.Threads.SpinLock})) + aquire_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_4) + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_26 = min(A_lvl_i, B_lvl_i_stop_3) + if phase_stop_26 >= A_lvl_i + if B_lvl_tbl1[B_lvl_q] < A_lvl_i + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, A_lvl_i, B_lvl_q, B_lvl_q_step - 1) + end + while true + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + if B_lvl_i_3 < phase_stop_26 + B_lvl_2_val_4 = B_lvl_val[B_lvl_q_3] + Ct_lvl_3_val[Ct_lvl_2_q_4] = A_lvl_2_val * B_lvl_2_val_4 + Ct_lvl_3_val[Ct_lvl_2_q_4] + B_lvl_q_3 += 1 + else + phase_stop_28 = min(B_lvl_i_3, phase_stop_26) + if B_lvl_i_3 == phase_stop_28 + B_lvl_2_val_4 = B_lvl_val[B_lvl_q_3] + Ct_lvl_3_val[Ct_lvl_2_q_4] = Ct_lvl_3_val[Ct_lvl_2_q_4] + A_lvl_2_val * B_lvl_2_val_4 + B_lvl_q_3 += 1 + end + break + end + end + end + release_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_4) + B_lvl_q = B_lvl_q_step + end + break + end + end + end + A_lvl_q_3 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + else + phase_stop_32 = min(A_lvl_i, phase_stop_2) + if A_lvl_i == phase_stop_32 + A_lvl_q_3 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_3 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_3 = 0 + end + phase_stop_33 = min(i_4, A_lvl_i_stop_3) + if phase_stop_33 >= i_4 + if A_lvl_tbl1[A_lvl_q] < i_4 + A_lvl_q_3 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_3 = A_lvl_tbl1[A_lvl_q_3] + if A_lvl_i_3 < phase_stop_33 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_3] + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_stop_35 = min(B_lvl.shape[2], B_lvl_i_stop) + if phase_stop_35 >= 1 + if B_lvl_tbl2[B_lvl_q] < 1 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_35 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + Ct_lvl_2_q_5 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 + Ct_lvl_3atomicArraysAcc_5 = get_lock(CPU(Threads.nthreads()), Ct_lvl_2_locks, Ct_lvl_2_q_5, eltype(Vector{Base.Threads.SpinLock})) + aquire_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_5) + B_lvl_q_4 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_4 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_4 = 0 + end + phase_stop_37 = min(phase_stop_32, B_lvl_i_stop_4) + if phase_stop_37 >= phase_stop_32 + if B_lvl_tbl1[B_lvl_q] < phase_stop_32 + B_lvl_q_4 = Finch.scansearch(B_lvl_tbl1, phase_stop_32, B_lvl_q, B_lvl_q_step - 1) + end + while true + B_lvl_i_4 = B_lvl_tbl1[B_lvl_q_4] + if B_lvl_i_4 < phase_stop_37 + B_lvl_2_val_5 = B_lvl_val[B_lvl_q_4] + Ct_lvl_3_val[Ct_lvl_2_q_5] = A_lvl_2_val_2 * B_lvl_2_val_5 + Ct_lvl_3_val[Ct_lvl_2_q_5] + B_lvl_q_4 += 1 + else + phase_stop_39 = min(B_lvl_i_4, phase_stop_37) + if B_lvl_i_4 == phase_stop_39 + B_lvl_2_val_5 = B_lvl_val[B_lvl_q_4] + Ct_lvl_3_val[Ct_lvl_2_q_5] = Ct_lvl_3_val[Ct_lvl_2_q_5] + A_lvl_2_val_2 * B_lvl_2_val_5 + B_lvl_q_4 += 1 + end + break + end + end + end + release_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_5) + B_lvl_q = B_lvl_q_step + else + phase_stop_41 = min(B_lvl_i, phase_stop_35) + if B_lvl_i == phase_stop_41 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_41 + Ct_lvl_2_q_6 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 + Ct_lvl_3atomicArraysAcc_6 = get_lock(CPU(Threads.nthreads()), Ct_lvl_2_locks, Ct_lvl_2_q_6, eltype(Vector{Base.Threads.SpinLock})) + aquire_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_6) + B_lvl_q_4 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_4 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_4 = 0 + end + phase_stop_42 = min(phase_stop_32, B_lvl_i_stop_4) + if phase_stop_42 >= phase_stop_32 + if B_lvl_tbl1[B_lvl_q] < phase_stop_32 + B_lvl_q_4 = Finch.scansearch(B_lvl_tbl1, phase_stop_32, B_lvl_q, B_lvl_q_step - 1) + end + while true + B_lvl_i_4 = B_lvl_tbl1[B_lvl_q_4] + if B_lvl_i_4 < phase_stop_42 + B_lvl_2_val_6 = B_lvl_val[B_lvl_q_4] + Ct_lvl_3_val[Ct_lvl_2_q_6] = A_lvl_2_val_2 * B_lvl_2_val_6 + Ct_lvl_3_val[Ct_lvl_2_q_6] + B_lvl_q_4 += 1 + else + phase_stop_44 = min(B_lvl_i_4, phase_stop_42) + if B_lvl_i_4 == phase_stop_44 + B_lvl_2_val_6 = B_lvl_val[B_lvl_q_4] + Ct_lvl_3_val[Ct_lvl_2_q_6] = Ct_lvl_3_val[Ct_lvl_2_q_6] + A_lvl_2_val_2 * B_lvl_2_val_6 + B_lvl_q_4 += 1 + end + break + end + end + end + release_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_6) + B_lvl_q = B_lvl_q_step + end + break + end + end + end + A_lvl_q_3 += 1 + else + phase_stop_47 = min(A_lvl_i_3, phase_stop_33) + if A_lvl_i_3 == phase_stop_47 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_3] + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_stop_48 = min(B_lvl.shape[2], B_lvl_i_stop) + if phase_stop_48 >= 1 + if B_lvl_tbl2[B_lvl_q] < 1 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_48 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + Ct_lvl_2_q_7 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 + Ct_lvl_3atomicArraysAcc_7 = get_lock(CPU(Threads.nthreads()), Ct_lvl_2_locks, Ct_lvl_2_q_7, eltype(Vector{Base.Threads.SpinLock})) + aquire_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_7) + B_lvl_q_5 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_5 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_5 = 0 + end + phase_stop_50 = min(phase_stop_32, B_lvl_i_stop_5) + if phase_stop_50 >= phase_stop_32 + if B_lvl_tbl1[B_lvl_q] < phase_stop_32 + B_lvl_q_5 = Finch.scansearch(B_lvl_tbl1, phase_stop_32, B_lvl_q, B_lvl_q_step - 1) + end + while true + B_lvl_i_5 = B_lvl_tbl1[B_lvl_q_5] + if B_lvl_i_5 < phase_stop_50 + B_lvl_2_val_7 = B_lvl_val[B_lvl_q_5] + Ct_lvl_3_val[Ct_lvl_2_q_7] = A_lvl_2_val_2 * B_lvl_2_val_7 + Ct_lvl_3_val[Ct_lvl_2_q_7] + B_lvl_q_5 += 1 + else + phase_stop_52 = min(B_lvl_i_5, phase_stop_50) + if B_lvl_i_5 == phase_stop_52 + B_lvl_2_val_7 = B_lvl_val[B_lvl_q_5] + Ct_lvl_3_val[Ct_lvl_2_q_7] = Ct_lvl_3_val[Ct_lvl_2_q_7] + A_lvl_2_val_2 * B_lvl_2_val_7 + B_lvl_q_5 += 1 + end + break + end + end + end + release_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_7) + B_lvl_q = B_lvl_q_step + else + phase_stop_54 = min(B_lvl_i, phase_stop_48) + if B_lvl_i == phase_stop_54 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_54 + Ct_lvl_2_q_8 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 + Ct_lvl_3atomicArraysAcc_8 = get_lock(CPU(Threads.nthreads()), Ct_lvl_2_locks, Ct_lvl_2_q_8, eltype(Vector{Base.Threads.SpinLock})) + aquire_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_8) + B_lvl_q_5 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_5 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_5 = 0 + end + phase_stop_55 = min(phase_stop_32, B_lvl_i_stop_5) + if phase_stop_55 >= phase_stop_32 + if B_lvl_tbl1[B_lvl_q] < phase_stop_32 + B_lvl_q_5 = Finch.scansearch(B_lvl_tbl1, phase_stop_32, B_lvl_q, B_lvl_q_step - 1) + end + while true + B_lvl_i_5 = B_lvl_tbl1[B_lvl_q_5] + if B_lvl_i_5 < phase_stop_55 + B_lvl_2_val_8 = B_lvl_val[B_lvl_q_5] + Ct_lvl_3_val[Ct_lvl_2_q_8] = A_lvl_2_val_2 * B_lvl_2_val_8 + Ct_lvl_3_val[Ct_lvl_2_q_8] + B_lvl_q_5 += 1 + else + phase_stop_57 = min(B_lvl_i_5, phase_stop_55) + if B_lvl_i_5 == phase_stop_57 + B_lvl_2_val_8 = B_lvl_val[B_lvl_q_5] + Ct_lvl_3_val[Ct_lvl_2_q_8] = Ct_lvl_3_val[Ct_lvl_2_q_8] + A_lvl_2_val_2 * B_lvl_2_val_8 + B_lvl_q_5 += 1 + end + break + end + end + end + release_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_8) + B_lvl_q = B_lvl_q_step + end + break + end + end + end + A_lvl_q_3 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + end + break + end + end + end + end + Ct_lvl_2_locks = locksArray + Ct_lvl_3_val = val + B_lvl_ptr = B_lvl_ptr_2 + B_lvl_tbl1 = B_lvl_tbl1_2 + B_lvl_tbl2 = B_lvl_tbl2_2 + B_lvl_val = val_2 + A_lvl_ptr = A_lvl_ptr_2 + A_lvl_tbl1 = A_lvl_tbl1_2 + A_lvl_tbl2 = A_lvl_tbl2_2 + A_lvl_val = val_3 + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(Ct_lvl_2_locks, qos_2) + resize!(Ct_lvl_3_val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}((AtomicLevel){Vector{Base.Threads.SpinLock}, ElementLevel{0.0, Float64, Int64, Vector{Float64}}}(Ct_lvl_4, Ct_lvl_2_locks), A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for i = _ + for k = parallel(_) + for j = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Atomic([Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0)], Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.0, 0.5960995400087008, 0.0, 0.0, 0.46121971296621317, 0.0, 0.1341136169173934, 0.0, 0.6613178775714327, 0.0, 0.0, 0.0, 0.0, 0.31233701358881993, 0.0, 0.0, 0.0, 0.42428295532646376, 0.0, 0.04433289125435014, 0.1771852692198303, 0.0, 0.2102135380786222, 0.0, 0.29289346791587945, 0.1864042064610544, 0.1847622901670141, 0.0047837035165779595, 0.7809783797805827, 0.24637196495074015, 0.0, 0.5657923421369488, 0.2611932808057722, 0.0, 1.1390711256090715, 0.0, 0.0, 0.15310516154880033, 0.0, 0.536745361655064, 0.11084632541017801, 0.24887017850829343, 0.6316463638637531, 1.4711963896826616, 0.6112779722436283, 0.5079606239011155, 0.15942216163041661, 0.21541936537958353, 0.10295208772558359, 0.0, 1.3699774598840704, 0.6364841478802473, 0.38335626793892197, 0.0, 0.2992892574327959, 0.10527060545292, 0.0, 0.0, 0.7485372018432481, 0.2715216678914851, 0.2667902419370478, 0.0, 0.5814665590695893, 0.051682188310845374, 0.0, 0.0, 0.3934310017151073, 0.0, 0.0, 0.5957893409486428, 0.3316317367913752, 0.9200295815926001, 0.0, 0.0, 0.6623087915165122, 0.0, 1.5766760492233103, 0.0, 0.0, 0.3039866668414091, 0.0, 0.024309812685391816, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14306886144088826, 0.0, 0.0, 0.0, 0.13834293702511197, 0.0, 0.0, 0.0, 0.07697281314241891, 0.0, 0.13882210022663904, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11718373909917448, 0.05171175921797154, 0.0, 0.0, 0.047041804166349496, 0.0, 0.0, 0.0, 0.21780680053585874, 0.005280433697773762, 0.0, 0.01227888835211436, 0.1637490848480197, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.405774970647805, 0.2291279765469989, 1.2574751546051093, 0.5180330897538964, 0.48968357404421875, 0.5301529810315024, 0.0, 0.0, 0.0, 0.8112619638066929, 0.0, 0.7833417149382808, 0.0, 0.0, 0.11442625626708748, 0.11485555134200548, 0.22833033865638044, 0.0, 0.0, 0.0, 0.0, 0.2864165259642358, 0.16027108725841735, 0.0, 0.09011936406874124, 0.4181806897076036, 0.0, 1.0569606821068054, 0.624691204995156, 0.7081544908696379, 0.0, 0.8795184016973986, 0.0, 0.0, 0.021853263477242018, 0.11238129351491766, 0.0, 0.0, 0.045824320207715985, 0.0, 0.196064039018767, 0.0, 0.07081867255234689, 0.0, 0.0407459744321428, 0.0, 0.09807635051343538, 0.010124069007427254, 0.0, 0.0, 0.0, 0.0, 0.6116811031756639, 0.0, 0.0, 0.6208028352439049, 0.0, 0.17504030998808598, 0.020658826838531718, 0.719367580349619, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.015728258754898257, 0.07298380500117611, 0.0, 0.06012022906808051, 0.0, 0.0, 0.5330380962469254, 0.02965305516643559, 0.0, 0.18001272855172004, 0.035235037447174065, 0.0, 0.01349449214577584, 0.0, 0.0, 0.0, 0.2359915438569738, 0.03810280561257924, 0.0, 0.0, 0.0, 0.3884686133510988, 0.0, 0.0, 0.21968925488132546, 0.0, 0.0, 0.4324936557273746, 0.0, 0.6879094987723802, 0.0, 0.0, 0.0, 0.0, 0.7898693359448322, 0.0, 0.5391987426673219, 0.25853076675450826, 0.0, 0.38031280775654097, 0.0, 0.3853638210122371, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.2217547802058863, 0.05709933484072306, 0.0, 0.0, 0.8484028226584724, 0.23257686384566284, 0.0, 0.0, 1.258622241947537, 0.0, 0.0, 0.11665876134553779, 0.3184837856872295, 0.7880482843371591, 0.0, 0.0, 0.0, 0.0, 0.23284042288536255, 0.0, 0.3804712136528319, 1.113036382623302, 0.8298038026635118, 0.0, 0.0, 0.0, 0.0, 0.0, 0.020690565683442904, 0.2610758590649183, 0.0, 0.0, 0.06193402719103672, 0.024569168683420507, 0.6450876041294853, 0.0, 0.5615893961519662, 0.0, 0.5487968919612313, 0.0, 0.6425734859953806, 0.0, 0.2979704099021757, 0.323777504790907, 0.66722521578591, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4069961680965457, 0.7713681046585987, 0.3594743508741288, 0.8852608548606914, 0.0, 0.0, 0.0, 0.0, 0.017250929899566992, 0.05738201561649353, 0.0, 0.040237899717394485, 0.8673210549972237, 0.0, 0.0, 0.7245534868749944, 0.0, 0.16727086778943756, 0.0, 0.0, 0.0, 0.0, 0.29250184542509544, 0.0, 0.0, 0.06729223300830636, 0.0, 0.3824979967457689, 0.0, 0.23769547992450338, 0.825352628558087, 0.5791520520364314, 0.0, 0.0, 0.6822104427959106, 0.5410434317660799, 0.0, 1.0013182252763118, 0.0, 0.0, 0.03410163433510291, 0.0, 0.38656596036997387, 0.673387919520239, 0.0, 0.0, 0.0, 0.06524513264320482, 0.3778876017229726, 0.0, 0.3042658440871357, 0.03546389486517897, 0.0, 0.3811330360259428, 0.09125614750074176, 0.38639776526497555, 0.0, 0.7956019813194058, 0.17107520161825185, 0.2528672125099372, 0.0, 0.0, 0.0, 0.0, 0.3715122812201797, 0.0, 0.0, 0.0, 0.8636878110328885, 0.3725673215613031, 0.19161493799862908, 0.2947877363978017, 0.8277903198901483, 1.043787991594994, 0.4556846854932056, 0.018960059119328472, 0.0, 0.8179077818243863, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16243732090346746, 0.0, 0.0934593474548136, 0.26288293993414813, 0.0, 0.6986592631730956, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.23290649501046135, 0.0, 0.0, 0.0, 0.0749770448177764, 0.0, 0.0, 0.5829804395566012, 0.0, 0.08903205884730546, 0.036076025185782915, 0.16740350145604724, 0.0, 0.13789822076519753, 0.0, 0.0, 0.0, 0.7803684622045182, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1343991941662123, 0.0, 0.0, 0.1265714212875754, 0.580645942127824, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4164388584828146, 0.0, 0.6383936083527437, 0.0, 0.0, 0.0, 0.0, 0.18608051379305826, 0.0, 0.04744673193981907, 0.0, 0.0, 0.0, 0.0, 0.3666656532257351, 0.017984084638402044, 0.0, 0.0516031884810454, 0.11619024662048777, 0.5090994962453932, 0.1702286192926929, 0.017754543539629426, 0.11487736756877703, 0.0, 0.0, 0.0035637729173098607, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6218776818900951, 0.10343438219926053, 0.0, 0.016806683142264318, 0.019961035657552893, 0.0, 0.39238409513228256, 0.22883526349683764, 0.0, 0.02328369860187438, 0.02966268912006465, 0.0, 0.0, 0.0, 0.08243560528569996, 0.6624744276069285, 0.0, 0.10804564627221094, 0.0, 0.0, 0.0, 0.0, 0.0, 0.272827698328812, 0.0, 0.0, 0.0, 0.10351845069306231, 0.022056761782947687, 0.04806113374409372, 1.421033050846094, 0.09272463621214155, 0.32902390084105787, 0.5088305985866386, 0.09822819388787048, 0.0, 0.0, 0.0965876885856362, 0.0, 0.0, 0.18492863169572316, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13526587090401476, 0.0, 0.022328727233527985, 0.0999580342692439, 0.0, 0.0, 0.09557781244125038, 0.13831210655132378, 0.0, 0.0, 0.1791768991068296, 0.16163641825142586, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.42053340750746143, 0.0, 0.10552005335412863, 0.0, 0.0, 0.16311354370934733, 0.0, 0.2824114978735204, 0.0, 0.0, 0.43639300384810376, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1671480967875291, 0.644888932873856, 0.3129032598040877, 0.48675890221085816, 0.17823949364009248, 0.1415399106044285, 0.18516682441734925, 0.5312977885248659, 0.07587099582542241, 0.0, 0.0, 0.6986300116510127, 0.0, 0.0, 0.7938925894205694, 0.36599606323996975, 0.26363118368222405, 0.2342915285475447, 0.0, 0.1869965760541939, 0.1160920939359052, 0.38732669798663727, 0.0, 0.1313693926537813, 0.14845591773543332, 0.0, 0.0, 0.5636663205749514, 0.0, 0.0, 1.5099082548197433, 0.12877106200933913, 0.12876355501777378, 0.4806583412843819, 0.8527242204514415, 0.2611825233475998, 0.2169329303973436, 0.0, 0.19905771354664345, 0.0, 0.3188159099664727, 0.0, 0.49573252746154944, 0.5909004107452918, 0.44608316126371567, 0.9987235012950566, 0.0, 0.0, 0.06543436335390052, 0.0, 0.0, 0.0, 0.7452854681453724, 0.940549219662451, 0.32866688095435376, 0.0, 0.04977979297413422, 0.0, 0.15266515341831127, 0.0, 0.0, 0.8226750512812447, 0.0, 0.0, 0.2520932611368793, 0.32856303804715215, 0.1846788611041856, 0.6288326287259721, 0.15594781886009731, 0.0, 0.0, 0.39056006775570395, 0.2454733448499023, 0.0, 0.1875080652559859, 0.0, 0.0, 0.0, 0.4604079993134017, 0.0, 0.0, 0.0, 0.0, 0.11979185177691755, 0.14227491555369362, 0.0, 0.09024327543210102, 0.648783267363574, 0.0, 0.0, 0.0, 0.5408163510237757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5311068240495873, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5314003925728801, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02394551122470378, 0.0, 0.0, 0.0, 0.12486249633500378, 0.0, 0.0, 0.05765112857402609, 0.0, 0.14315109316509972, 0.05676601866921535, 0.0, 0.6434826644263494, 0.0, 0.14460219857592263, 0.0, 0.0, 0.10860788610026072, 0.0, 0.04705670771446048, 0.4709967737248388, 0.0, 0.0, 0.13612521976378897, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.130371257969619, 0.0, 0.11349639269154894, 0.0, 0.11804878144850195, 0.3189646877579158, 0.0, 0.0, 0.0, 0.0, 0.1348452367929846, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1550934497155318, 0.13060726382480906, 0.0, 0.0, 0.232086697214264, 0.0, 0.14806165017632722, 0.0, 0.23898925029638524, 0.0, 0.0, 0.23731337239548533, 0.0, 0.10980801230053783, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19058666211884384, 0.0, 0.1810493697276433, 0.0, 0.0, 0.27986722280655724, 0.06847318480810846, 0.0, 0.026224205266550244, 0.0, 0.0, 0.0, 0.07178447214794542, 0.0, 0.0, 0.0, 0.0, 0.04423801290959719, 0.4450997362670805, 0.0, 0.0, 0.0, 0.014396013780263936, 0.0, 0.0, 0.08159130602818511, 0.28786198512647176, 0.0, 0.0, 0.0, 0.15886186536955227, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03988435480164781, 0.0, 0.03472184333660239, 0.15861587093052232, 0.03393091079863592, 0.0, 0.0, 0.0, 0.1458998203965446, 0.0, 0.2746045410027491, 0.0, 0.08937012005405864, 0.0, 0.0, 0.0, 0.0, 0.4360685101718207, 0.0, 0.0, 0.12479631040323635, 0.1679293189285873, 0.33750713984681247, 0.0, 0.38279076464536926, 0.0, 0.39766804122994015, 0.0, 0.0, 0.0, 0.0, 0.37584745957186994, 0.0, 0.0, 0.0, 0.0, 0.0034663505048984434, 0.0, 0.0, 0.0, 0.24932174401673268, 0.8269366380921026, 0.058350744167210526, 0.2821315817160027, 0.01073228148503296, 0.0, 0.0, 0.5523198324520332, 0.0, 0.0, 0.0, 0.2765513539344097, 0.2765352317665175, 0.0, 0.0, 0.0, 0.16196672196012962, 0.0, 0.0, 0.23047763471347846, 0.0, 0.4983211934020315, 0.0, 0.0, 0.0, 0.0, 0.08410733405320571, 0.0, 0.0, 0.38342855882543897, 0.031078189534518876, 0.0, 0.0, 0.07997079449394401, 0.0, 0.0, 0.0, 0.14991888400189204, 0.0, 0.0, 0.0, 0.2539339452562683, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005527553201922959, 0.24701032777367607, 0.3818735212726353, 0.0, 0.0, 0.3141045412174539, 0.4613820899583969, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7846194794668536, 0.0, 0.0, 0.2023929406035883, 0.5525420395033789, 0.0, 0.0, 0.0, 0.18332122951817006, 0.0, 0.0, 0.0, 0.6600849079661362, 0.0, 0.271071887942947, 0.6931869379662654, 0.0, 0.19544958497754947, 0.0, 0.0, 0.23106411956503142, 0.04163915085675471, 0.0, 0.2740671699579846, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5951890435738816, 0.0, 0.0, 0.5617261879013651, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.648112900028134, 0.0, 0.2097693617911403, 0.23188027210282897, 0.6330438111437964, 0.515238068631253, 0.8059496022277759, 0.0, 0.3600721428836477, 0.0, 0.37406645349624035, 0.43324551668887895, 0.7562549741789008, 0.0, 0.46837434729653293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.23452450510075076, 0.0, 0.0, 0.26538707979997495, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9037040684567715, 0.2601228730720389, 0.0, 0.0, 0.0, 0.3385307797226737, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6960140675899867, 0.0, 0.0, 0.0, 0.34167761524179585, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.47179884257042837, 0.0, 0.5873339130881751, 0.07760784608974701, 0.0, 0.5108116353650718, 0.0, 0.23018263458044896, 0.0, 0.0, 0.0, 0.6389281667373347, 0.0, 0.0, 0.0, 0.6317086674243048, 0.5424555939717753, 0.0, 0.019597125946055532, 0.0, 0.5067616269530796, 0.0, 0.0, 0.0, 0.0, 0.33135639687759366, 0.0, 0.11009229928191128, 0.0, 0.0, 0.0018449546833188399, 0.0, 0.1894047148704815, 0.0, 0.21786525780326826, 0.00027956067335572354, 0.0, 0.0, 0.00044372512905081096, 0.0, 0.0, 0.10913586880079368, 0.0, 0.0, 0.2387319450019063, 0.04302093934347575, 0.0, 0.28316204466710054, 0.0, 0.6259961005310473, 0.044339116197027774, 0.0, 0.0006891565473784903, 0.0, 0.0, 0.419692560541072, 0.00023711054076719368, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0009518757697360345, 0.0, 0.0, 0.0, 0.0, 0.04412247836479926, 0.33175278809136916, 0.1836910307282294, 0.43316264355459233, 0.0, 0.0, 0.0, 0.0, 0.6109591315701846, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7410212481907629, 0.09694039812399863, 0.0, 0.0, 0.04700242398333341, 0.0, 0.0, 0.15679640166544176, 0.0, 0.0, 0.008354862966629384, 0.8660916115221005, 0.12095883829401362, 0.0, 0.0, 0.13982615201680984, 0.0, 0.37030015075124356, 0.0, 0.10806680870328135, 0.2674021581377063, 0.0, 0.0, 0.43695074134110806, 0.0, 0.0, 0.0, 0.4193595253139995, 0.0, 0.0, 0.4223604117691241, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6519628347852473, 0.09593394582722056, 0.0, 1.2263197607192593, 0.0, 0.1420268730458006, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6547968394353947, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.015993676263376118, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0322501065968568, 0.0, 0.0, 0.0, 0.19977559392448785, 0.0, 0.0, 0.0, 0.13350148436716802, 0.05064120692385946, 0.0, 0.014278692130393579, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02476251362124448, 0.0, 0.0, 0.6971876314261916, 0.0, 0.32368749507325995, 0.0, 0.38665695047334026, 0.043481909227645874, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2863863682111852, 0.0, 0.0, 0.0, 0.0, 0.5166026604428106, 0.6135609292207037, 0.0, 1.390585308090751, 0.549724406362488, 0.0, 0.0, 0.0, 0.4946354029419938, 0.0, 0.0, 0.1817622353630416, 0.0, 0.0, 0.45001527975922945, 0.19067060021024376, 0.0, 0.0, 0.0, 0.0, 0.0, 0.45026402504954754, 0.09862023599471978, 0.0, 0.0, 0.08971409788917951, 0.0, 0.0, 0.0, 0.14718404588236259, 0.02028941343776962, 0.0, 0.0, 0.12879470754337072, 0.5384698277835859, 0.0493264459266498, 0.0, 0.6385356001321869, 0.0, 0.0, 0.0, 0.418599297830268, 0.0, 0.24084377286368372, 0.0, 0.0, 0.3927421561776119, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11479167979031016, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.287331205334526, 0.0, 0.0, 0.09296754420278937, 0.4313970938087158, 0.0, 0.3553622902870886, 0.0, 0.0, 0.0, 0.1752750739858479, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5721777681112366, 0.16584672881862064, 0.0, 0.0, 0.2750129568642962, 0.11193872117738499, 0.0, 0.694851503366924, 0.0, 0.11176089578249619, 0.03642730011196224, 0.46499012378889537, 0.0, 0.0, 0.10537656529716292, 0.2572556947482873, 0.11427779100841323, 0.4566419402676079, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31905429658438084, 0.4568943484348684, 0.0, 0.1009223375517615, 0.0, 0.08785925235754827, 0.2524568576131555, 0.5979718371844858, 0.0, 0.08718397040627182, 0.27019243222928785, 0.0, 0.2405201444721306, 0.11212903697332216, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12097427611620017, 0.7029459229987706, 0.2907862782736388, 0.0, 0.3020877732114353, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2423919969263556, 0.0, 0.5763734567059631, 0.0, 0.0, 0.0, 0.0, 0.6067232814043334, 0.18939678992121056, 0.0, 0.0, 0.21432072089475862, 0.0, 0.0, 0.0, 0.0, 0.5821831861883047, 0.0, 0.0, 0.210081711445218, 0.21006946427095974, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.030280314291377, 0.15413531598416644, 0.25247193164811527, 0.0, 0.0, 0.12848497078723173, 0.6000304051931176, 0.0, 0.0, 0.0, 0.0, 0.12617822046935606, 0.3320268939864614, 0.7056657766261163, 0.42848148251018003, 0.057345877924903164, 0.0, 0.3774481983482792, 0.12624796529690785, 0.1619902770277746, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005688878127237202, 0.38175135193372894, 0.1765840237536124, 0.0, 0.0, 0.3566318392645057, 0.0, 0.0, 0.0, 0.16683268933188872, 0.04345497812697982, 0.0, 0.492592677155673, 0.0, 0.0, 0.0, 0.0, 0.0831404672292756, 0.0, 0.0, 0.36055293254501974, 0.0, 0.4863131526725521, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005464010493446822, 0.24417078834728798, 0.0, 0.0, 0.22169348923343446, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11593686293818574, 0.0, 0.0, 0.0, 0.6095590933370347, 0.0, 0.2443761776038196, 0.0, 0.0, 0.0, 0.1960956643223869, 0.6074859425565672, 0.18650669482426485, 1.0378655385571516, 0.0, 0.17276762871577947, 0.6940099427692358, 0.0, 0.0, 0.32388236546386096, 0.0, 0.3977584774978917, 0.09850727254096922, 0.0, 0.09435872182534573, 0.32210695479773005, 0.0, 0.9450119024745318, 0.0, 0.7282651614947167, 0.795671006556338, 0.21972174528863647, 1.1800722708951874, 0.0, 0.15406122012703197, 0.23245444095199302, 0.0, 1.1450754137286316, 0.0, 0.0, 0.718432895790501, 0.0, 0.9074772544907516, 0.0, 0.0, 0.2150644825695137, 0.7387278090737696, 0.0, 0.49627306106648184, 0.6533650950107276, 0.0, 0.0, 0.0, 0.724606488987317, 0.701411910713477, 0.6206261403696766, 0.28804332377271413, 0.2959105186195655, 0.0, 0.6182919293124655, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.589003768060014, 0.0, 0.0, 0.08271977351575115, 0.0, 0.0, 0.0, 0.9105812282174285, 0.31789001879047846, 0.02411461886183569, 0.2829221743477605, 0.6706620073355701, 0.0, 0.1930731864260551, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06133637967837149, 0.6242346410782087, 0.6952909143002654, 0.3591573776849567, 0.0, 0.7449872409938767, 0.08923909973645693, 0.1173521535256719, 0.0, 0.0, 0.5729798828820618, 0.10656596459419354, 0.0, 0.1545328680391799, 0.27421690202209187, 0.0, 0.0, 0.3698254914307633, 0.5140663186573865, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13863750342668263, 0.6433193065819665, 0.0, 0.5299326895193157, 0.007712410329912944, 0.34464525874742236, 0.34174148456366615, 0.2613783001228934, 0.0, 0.0, 0.05371570560505797, 0.0, 0.02057231153731605, 0.0, 0.33150273239870404, 0.0, 0.0, 0.008405062468217761, 0.0, 0.34649855374487837, 0.298371589011109, 0.0, 0.1892535264101524, 0.0, 0.016081030317329964, 0.0, 0.0, 0.1306616194660838, 0.0, 0.0, 0.2714046321541056, 0.0, 0.0, 0.0, 0.024299507869495213, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16509417733903173, 0.0, 0.0, 0.1501849497452071, 0.1748418064456664, 0.0010568489849475794, 0.047227517247298824, 0.051672489777017716, 0.0, 0.11982535720931763, 0.0, 0.0, 0.2618551646604837, 0.0, 0.0, 0.12090296292900765, 0.0, 0.0, 0.44988696818935897, 0.0, 0.19121191419677455, 0.0, 0.0, 0.49693256130088725, 0.0, 0.0, 0.0, 0.5670859092292977, 0.0, 0.0, 0.0, 0.5653233896265278, 0.0, 0.0, 0.18955075438556615, 0.050614759394524644, 0.0, 0.0, 0.0, 0.0, 0.6124985176197848, 0.02840624719573524, 0.0, 0.0, 0.6585018821667253, 0.0, 0.669914086084765, 0.0, 0.4435524229524026, 0.0, 0.0, 0.24959071834233698, 0.6741825496608898, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15847771480322562, 0.0, 0.0, 0.0, 0.11420329312106789, 0.3695819846260272, 0.18933569121558752, 0.0, 0.0, 0.0, 0.02103165349726233, 0.2655614054905834, 0.0, 0.8117959138331444, 0.0, 0.3439446042563599, 0.0, 0.0, 0.1019714241481598, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13231107356042507, 0.0, 0.07339739754334103, 0.13018370224494802, 0.03407665122672999, 0.2789846158904475, 0.0, 0.04141177300212955, 0.0, 0.21059108800059795, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14821858886776432, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.45102261330920507, 0.05046558139935084, 0.0, 0.12130428936757616, 0.0, 0.12601881654664268, 0.003171787898412092, 0.00527620372181328, 0.0, 0.0, 0.013576794847610305, 0.0, 0.0, 0.0, 0.025452015886005885, 0.4384052118279088, 0.0, 0.0, 0.0, 0.0790086903216001, 0.15275039095222206, 0.0, 0.08940594755444543, 0.0, 0.0, 0.003492578790207725, 0.0, 0.5882017770828334, 0.0, 0.0, 0.14092784541391168, 0.7983017352473682, 0.0, 0.0, 0.0, 0.1117819777173795, 0.0, 0.0, 0.03862278430066002, 0.1785535098526168, 0.4378163685245537, 0.21613953941654523, 0.8670541670659707, 0.30872969047516546, 0.0, 0.073895246778613, 0.0, 0.0, 0.8448370570321526, 0.006826318289568987, 0.24453895548705643, 0.0, 0.6685102691932127, 0.0, 0.0, 0.07127880649817865, 0.032929653726359844, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.018587651907083814, 0.0, 0.19986879579794362, 0.2170189952300144, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2805164076738779, 0.0])), 42), 42)),) +julia> @finch_code begin + Ct .= 0 + for k = parallel(_) + for i = _ + for j = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +quote + Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl_2 = Ct_lvl.lvl + Ct_lvl_3 = Ct_lvl_2.lvl + Ct_lvl_2_locks = Ct_lvl_2.lvl.locks + Ct_lvl_4 = Ct_lvl_3.lvl + Ct_lvl_3_val = Ct_lvl_3.lvl.val + A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl_val = A_lvl.lvl.val + B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl_val = B_lvl.lvl.val + A_lvl.shape[2] == B_lvl.shape[1] || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl.shape[2]) != $(B_lvl.shape[1]))")) + @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + @warn "Performance Warning: non-concordant traversal of B[k, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + pos_stop = A_lvl.shape[1] * B_lvl.shape[2] + Finch.resize_if_smaller!(Ct_lvl_2_locks, pos_stop) + @inbounds for idx = 1:pos_stop + Ct_lvl_2_locks[idx] = make_lock(eltype(Vector{Base.Threads.SpinLock})) + end + Finch.resize_if_smaller!(Ct_lvl_3_val, pos_stop) + Finch.fill_range!(Ct_lvl_3_val, 0.0, 1, pos_stop) + locksArray = Ct_lvl_2_locks + Ct_lvl_2_locks = moveto(Ct_lvl_2_locks, CPU(Threads.nthreads())) + val = Ct_lvl_3_val + Ct_lvl_3_val = moveto(Ct_lvl_3_val, CPU(Threads.nthreads())) + B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Threads.@threads for i_4 = 1:Threads.nthreads() + A_lvl_q = A_lvl_ptr[1] + A_lvl_q_stop = A_lvl_ptr[1 + 1] + if A_lvl_q < A_lvl_q_stop + A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] + else + A_lvl_i_stop = 0 + end + phase_start_2 = max(1, 1 + fld(A_lvl.shape[2] * (i_4 + -1), Threads.nthreads())) + phase_stop_2 = min(A_lvl.shape[2], A_lvl_i_stop, fld(A_lvl.shape[2] * i_4, Threads.nthreads())) + if phase_stop_2 >= phase_start_2 + if A_lvl_tbl2[A_lvl_q] < phase_start_2 + A_lvl_q = Finch.scansearch(A_lvl_tbl2, phase_start_2, A_lvl_q, A_lvl_q_stop - 1) + end + while true + A_lvl_i = A_lvl_tbl2[A_lvl_q] + A_lvl_q_step = A_lvl_q + if A_lvl_tbl2[A_lvl_q] == A_lvl_i + A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) + end + if A_lvl_i < phase_stop_2 + A_lvl_q_3 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_3 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_3 = 0 + end + phase_stop_4 = min(A_lvl.shape[1], A_lvl_i_stop_3) + if phase_stop_4 >= 1 + if A_lvl_tbl1[A_lvl_q] < 1 + A_lvl_q_3 = Finch.scansearch(A_lvl_tbl1, 1, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_3 = A_lvl_tbl1[A_lvl_q_3] + if A_lvl_i_3 < phase_stop_4 + A_lvl_2_val = A_lvl_val[A_lvl_q_3] + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_stop_6 = min(B_lvl.shape[2], B_lvl_i_stop) + if phase_stop_6 >= 1 + if B_lvl_tbl2[B_lvl_q] < 1 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_6 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + A_lvl_i_3 + Ct_lvl_3atomicArraysAcc = get_lock(CPU(Threads.nthreads()), Ct_lvl_2_locks, Ct_lvl_2_q, eltype(Vector{Base.Threads.SpinLock})) + aquire_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc) + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_8 = min(A_lvl_i, B_lvl_i_stop_2) + if phase_stop_8 >= A_lvl_i + if B_lvl_tbl1[B_lvl_q] < A_lvl_i + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, A_lvl_i, B_lvl_q, B_lvl_q_step - 1) + end + while true + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + if B_lvl_i_2 < phase_stop_8 + B_lvl_2_val = B_lvl_val[B_lvl_q_2] + Ct_lvl_3_val[Ct_lvl_2_q] = A_lvl_2_val * B_lvl_2_val + Ct_lvl_3_val[Ct_lvl_2_q] + B_lvl_q_2 += 1 + else + phase_stop_10 = min(B_lvl_i_2, phase_stop_8) + if B_lvl_i_2 == phase_stop_10 + B_lvl_2_val = B_lvl_val[B_lvl_q_2] + Ct_lvl_3_val[Ct_lvl_2_q] = Ct_lvl_3_val[Ct_lvl_2_q] + A_lvl_2_val * B_lvl_2_val + B_lvl_q_2 += 1 + end + break + end + end + end + release_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc) + B_lvl_q = B_lvl_q_step + else + phase_stop_12 = min(B_lvl_i, phase_stop_6) + if B_lvl_i == phase_stop_12 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_12 + Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + A_lvl_i_3 + Ct_lvl_3atomicArraysAcc_2 = get_lock(CPU(Threads.nthreads()), Ct_lvl_2_locks, Ct_lvl_2_q_2, eltype(Vector{Base.Threads.SpinLock})) + aquire_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_2) + B_lvl_q_2 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_2 = 0 + end + phase_stop_13 = min(A_lvl_i, B_lvl_i_stop_2) + if phase_stop_13 >= A_lvl_i + if B_lvl_tbl1[B_lvl_q] < A_lvl_i + B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, A_lvl_i, B_lvl_q, B_lvl_q_step - 1) + end + while true + B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] + if B_lvl_i_2 < phase_stop_13 + B_lvl_2_val_2 = B_lvl_val[B_lvl_q_2] + Ct_lvl_3_val[Ct_lvl_2_q_2] = A_lvl_2_val * B_lvl_2_val_2 + Ct_lvl_3_val[Ct_lvl_2_q_2] + B_lvl_q_2 += 1 + else + phase_stop_15 = min(B_lvl_i_2, phase_stop_13) + if B_lvl_i_2 == phase_stop_15 + B_lvl_2_val_2 = B_lvl_val[B_lvl_q_2] + Ct_lvl_3_val[Ct_lvl_2_q_2] = Ct_lvl_3_val[Ct_lvl_2_q_2] + A_lvl_2_val * B_lvl_2_val_2 + B_lvl_q_2 += 1 + end + break + end + end + end + release_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_2) + B_lvl_q = B_lvl_q_step + end + break + end + end + end + A_lvl_q_3 += 1 + else + phase_stop_18 = min(A_lvl_i_3, phase_stop_4) + if A_lvl_i_3 == phase_stop_18 + A_lvl_2_val = A_lvl_val[A_lvl_q_3] + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_stop_19 = min(B_lvl.shape[2], B_lvl_i_stop) + if phase_stop_19 >= 1 + if B_lvl_tbl2[B_lvl_q] < 1 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_19 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + Ct_lvl_2_q_3 = (Ct_lvl_q - 1) * A_lvl.shape[1] + phase_stop_18 + Ct_lvl_3atomicArraysAcc_3 = get_lock(CPU(Threads.nthreads()), Ct_lvl_2_locks, Ct_lvl_2_q_3, eltype(Vector{Base.Threads.SpinLock})) + aquire_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_3) + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_21 = min(A_lvl_i, B_lvl_i_stop_3) + if phase_stop_21 >= A_lvl_i + if B_lvl_tbl1[B_lvl_q] < A_lvl_i + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, A_lvl_i, B_lvl_q, B_lvl_q_step - 1) + end + while true + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + if B_lvl_i_3 < phase_stop_21 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] + Ct_lvl_3_val[Ct_lvl_2_q_3] = A_lvl_2_val * B_lvl_2_val_3 + Ct_lvl_3_val[Ct_lvl_2_q_3] + B_lvl_q_3 += 1 + else + phase_stop_23 = min(B_lvl_i_3, phase_stop_21) + if B_lvl_i_3 == phase_stop_23 + B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] + Ct_lvl_3_val[Ct_lvl_2_q_3] = Ct_lvl_3_val[Ct_lvl_2_q_3] + A_lvl_2_val * B_lvl_2_val_3 + B_lvl_q_3 += 1 + end + break + end + end + end + release_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_3) + B_lvl_q = B_lvl_q_step + else + phase_stop_25 = min(B_lvl_i, phase_stop_19) + if B_lvl_i == phase_stop_25 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_25 + Ct_lvl_2_q_4 = (Ct_lvl_q - 1) * A_lvl.shape[1] + phase_stop_18 + Ct_lvl_3atomicArraysAcc_4 = get_lock(CPU(Threads.nthreads()), Ct_lvl_2_locks, Ct_lvl_2_q_4, eltype(Vector{Base.Threads.SpinLock})) + aquire_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_4) + B_lvl_q_3 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_3 = 0 + end + phase_stop_26 = min(A_lvl_i, B_lvl_i_stop_3) + if phase_stop_26 >= A_lvl_i + if B_lvl_tbl1[B_lvl_q] < A_lvl_i + B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, A_lvl_i, B_lvl_q, B_lvl_q_step - 1) + end + while true + B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] + if B_lvl_i_3 < phase_stop_26 + B_lvl_2_val_4 = B_lvl_val[B_lvl_q_3] + Ct_lvl_3_val[Ct_lvl_2_q_4] = A_lvl_2_val * B_lvl_2_val_4 + Ct_lvl_3_val[Ct_lvl_2_q_4] + B_lvl_q_3 += 1 + else + phase_stop_28 = min(B_lvl_i_3, phase_stop_26) + if B_lvl_i_3 == phase_stop_28 + B_lvl_2_val_4 = B_lvl_val[B_lvl_q_3] + Ct_lvl_3_val[Ct_lvl_2_q_4] = Ct_lvl_3_val[Ct_lvl_2_q_4] + A_lvl_2_val * B_lvl_2_val_4 + B_lvl_q_3 += 1 + end + break + end + end + end + release_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_4) + B_lvl_q = B_lvl_q_step + end + break + end + end + end + A_lvl_q_3 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + else + phase_stop_32 = min(A_lvl_i, phase_stop_2) + if A_lvl_i == phase_stop_32 + A_lvl_q_3 = A_lvl_q + if A_lvl_q < A_lvl_q_step + A_lvl_i_stop_3 = A_lvl_tbl1[A_lvl_q_step - 1] + else + A_lvl_i_stop_3 = 0 + end + phase_stop_33 = min(A_lvl.shape[1], A_lvl_i_stop_3) + if phase_stop_33 >= 1 + if A_lvl_tbl1[A_lvl_q] < 1 + A_lvl_q_3 = Finch.scansearch(A_lvl_tbl1, 1, A_lvl_q, A_lvl_q_step - 1) + end + while true + A_lvl_i_3 = A_lvl_tbl1[A_lvl_q_3] + if A_lvl_i_3 < phase_stop_33 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_3] + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_stop_35 = min(B_lvl.shape[2], B_lvl_i_stop) + if phase_stop_35 >= 1 + if B_lvl_tbl2[B_lvl_q] < 1 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_35 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + Ct_lvl_2_q_5 = (Ct_lvl_q - 1) * A_lvl.shape[1] + A_lvl_i_3 + Ct_lvl_3atomicArraysAcc_5 = get_lock(CPU(Threads.nthreads()), Ct_lvl_2_locks, Ct_lvl_2_q_5, eltype(Vector{Base.Threads.SpinLock})) + aquire_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_5) + B_lvl_q_4 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_4 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_4 = 0 + end + phase_stop_37 = min(phase_stop_32, B_lvl_i_stop_4) + if phase_stop_37 >= phase_stop_32 + if B_lvl_tbl1[B_lvl_q] < phase_stop_32 + B_lvl_q_4 = Finch.scansearch(B_lvl_tbl1, phase_stop_32, B_lvl_q, B_lvl_q_step - 1) + end + while true + B_lvl_i_4 = B_lvl_tbl1[B_lvl_q_4] + if B_lvl_i_4 < phase_stop_37 + B_lvl_2_val_5 = B_lvl_val[B_lvl_q_4] + Ct_lvl_3_val[Ct_lvl_2_q_5] = A_lvl_2_val_2 * B_lvl_2_val_5 + Ct_lvl_3_val[Ct_lvl_2_q_5] + B_lvl_q_4 += 1 + else + phase_stop_39 = min(B_lvl_i_4, phase_stop_37) + if B_lvl_i_4 == phase_stop_39 + B_lvl_2_val_5 = B_lvl_val[B_lvl_q_4] + Ct_lvl_3_val[Ct_lvl_2_q_5] = Ct_lvl_3_val[Ct_lvl_2_q_5] + A_lvl_2_val_2 * B_lvl_2_val_5 + B_lvl_q_4 += 1 + end + break + end + end + end + release_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_5) + B_lvl_q = B_lvl_q_step + else + phase_stop_41 = min(B_lvl_i, phase_stop_35) + if B_lvl_i == phase_stop_41 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_41 + Ct_lvl_2_q_6 = (Ct_lvl_q - 1) * A_lvl.shape[1] + A_lvl_i_3 + Ct_lvl_3atomicArraysAcc_6 = get_lock(CPU(Threads.nthreads()), Ct_lvl_2_locks, Ct_lvl_2_q_6, eltype(Vector{Base.Threads.SpinLock})) + aquire_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_6) + B_lvl_q_4 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_4 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_4 = 0 + end + phase_stop_42 = min(phase_stop_32, B_lvl_i_stop_4) + if phase_stop_42 >= phase_stop_32 + if B_lvl_tbl1[B_lvl_q] < phase_stop_32 + B_lvl_q_4 = Finch.scansearch(B_lvl_tbl1, phase_stop_32, B_lvl_q, B_lvl_q_step - 1) + end + while true + B_lvl_i_4 = B_lvl_tbl1[B_lvl_q_4] + if B_lvl_i_4 < phase_stop_42 + B_lvl_2_val_6 = B_lvl_val[B_lvl_q_4] + Ct_lvl_3_val[Ct_lvl_2_q_6] = A_lvl_2_val_2 * B_lvl_2_val_6 + Ct_lvl_3_val[Ct_lvl_2_q_6] + B_lvl_q_4 += 1 + else + phase_stop_44 = min(B_lvl_i_4, phase_stop_42) + if B_lvl_i_4 == phase_stop_44 + B_lvl_2_val_6 = B_lvl_val[B_lvl_q_4] + Ct_lvl_3_val[Ct_lvl_2_q_6] = Ct_lvl_3_val[Ct_lvl_2_q_6] + A_lvl_2_val_2 * B_lvl_2_val_6 + B_lvl_q_4 += 1 + end + break + end + end + end + release_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_6) + B_lvl_q = B_lvl_q_step + end + break + end + end + end + A_lvl_q_3 += 1 + else + phase_stop_47 = min(A_lvl_i_3, phase_stop_33) + if A_lvl_i_3 == phase_stop_47 + A_lvl_2_val_2 = A_lvl_val[A_lvl_q_3] + B_lvl_q = B_lvl_ptr[1] + B_lvl_q_stop = B_lvl_ptr[1 + 1] + if B_lvl_q < B_lvl_q_stop + B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] + else + B_lvl_i_stop = 0 + end + phase_stop_48 = min(B_lvl.shape[2], B_lvl_i_stop) + if phase_stop_48 >= 1 + if B_lvl_tbl2[B_lvl_q] < 1 + B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) + end + while true + B_lvl_i = B_lvl_tbl2[B_lvl_q] + B_lvl_q_step = B_lvl_q + if B_lvl_tbl2[B_lvl_q] == B_lvl_i + B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) + end + if B_lvl_i < phase_stop_48 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i + Ct_lvl_2_q_7 = (Ct_lvl_q - 1) * A_lvl.shape[1] + phase_stop_47 + Ct_lvl_3atomicArraysAcc_7 = get_lock(CPU(Threads.nthreads()), Ct_lvl_2_locks, Ct_lvl_2_q_7, eltype(Vector{Base.Threads.SpinLock})) + aquire_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_7) + B_lvl_q_5 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_5 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_5 = 0 + end + phase_stop_50 = min(phase_stop_32, B_lvl_i_stop_5) + if phase_stop_50 >= phase_stop_32 + if B_lvl_tbl1[B_lvl_q] < phase_stop_32 + B_lvl_q_5 = Finch.scansearch(B_lvl_tbl1, phase_stop_32, B_lvl_q, B_lvl_q_step - 1) + end + while true + B_lvl_i_5 = B_lvl_tbl1[B_lvl_q_5] + if B_lvl_i_5 < phase_stop_50 + B_lvl_2_val_7 = B_lvl_val[B_lvl_q_5] + Ct_lvl_3_val[Ct_lvl_2_q_7] = A_lvl_2_val_2 * B_lvl_2_val_7 + Ct_lvl_3_val[Ct_lvl_2_q_7] + B_lvl_q_5 += 1 + else + phase_stop_52 = min(B_lvl_i_5, phase_stop_50) + if B_lvl_i_5 == phase_stop_52 + B_lvl_2_val_7 = B_lvl_val[B_lvl_q_5] + Ct_lvl_3_val[Ct_lvl_2_q_7] = Ct_lvl_3_val[Ct_lvl_2_q_7] + A_lvl_2_val_2 * B_lvl_2_val_7 + B_lvl_q_5 += 1 + end + break + end + end + end + release_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_7) + B_lvl_q = B_lvl_q_step + else + phase_stop_54 = min(B_lvl_i, phase_stop_48) + if B_lvl_i == phase_stop_54 + Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_54 + Ct_lvl_2_q_8 = (Ct_lvl_q - 1) * A_lvl.shape[1] + phase_stop_47 + Ct_lvl_3atomicArraysAcc_8 = get_lock(CPU(Threads.nthreads()), Ct_lvl_2_locks, Ct_lvl_2_q_8, eltype(Vector{Base.Threads.SpinLock})) + aquire_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_8) + B_lvl_q_5 = B_lvl_q + if B_lvl_q < B_lvl_q_step + B_lvl_i_stop_5 = B_lvl_tbl1[B_lvl_q_step - 1] + else + B_lvl_i_stop_5 = 0 + end + phase_stop_55 = min(phase_stop_32, B_lvl_i_stop_5) + if phase_stop_55 >= phase_stop_32 + if B_lvl_tbl1[B_lvl_q] < phase_stop_32 + B_lvl_q_5 = Finch.scansearch(B_lvl_tbl1, phase_stop_32, B_lvl_q, B_lvl_q_step - 1) + end + while true + B_lvl_i_5 = B_lvl_tbl1[B_lvl_q_5] + if B_lvl_i_5 < phase_stop_55 + B_lvl_2_val_8 = B_lvl_val[B_lvl_q_5] + Ct_lvl_3_val[Ct_lvl_2_q_8] = A_lvl_2_val_2 * B_lvl_2_val_8 + Ct_lvl_3_val[Ct_lvl_2_q_8] + B_lvl_q_5 += 1 + else + phase_stop_57 = min(B_lvl_i_5, phase_stop_55) + if B_lvl_i_5 == phase_stop_57 + B_lvl_2_val_8 = B_lvl_val[B_lvl_q_5] + Ct_lvl_3_val[Ct_lvl_2_q_8] = Ct_lvl_3_val[Ct_lvl_2_q_8] + A_lvl_2_val_2 * B_lvl_2_val_8 + B_lvl_q_5 += 1 + end + break + end + end + end + release_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_8) + B_lvl_q = B_lvl_q_step + end + break + end + end + end + A_lvl_q_3 += 1 + end + break + end + end + end + A_lvl_q = A_lvl_q_step + end + break + end + end + end + end + qos = 1 * B_lvl.shape[2] + qos_2 = qos * A_lvl.shape[1] + resize!(locksArray, qos_2) + resize!(val, qos_2) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}((AtomicLevel){Vector{Base.Threads.SpinLock}, ElementLevel{0.0, Float64, Int64, Vector{Float64}}}(Ct_lvl_4, locksArray), A_lvl.shape[1]), B_lvl.shape[2])),) +end +julia> @finch begin + Ct .= 0 + for k = parallel(_) + for i = _ + for j = _ + Ct[i, j] += A[i, k] * B[k, j] + end + end + end + end +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Atomic([Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0)], Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.0, 0.5960995400087008, 0.0, 0.0, 0.46121971296621317, 0.0, 0.1341136169173934, 0.0, 0.6613178775714327, 0.0, 0.0, 0.0, 0.0, 0.31233701358881993, 0.0, 0.0, 0.0, 0.42428295532646376, 0.0, 0.04433289125435014, 0.1771852692198303, 0.0, 0.2102135380786222, 0.0, 0.29289346791587945, 0.1864042064610544, 0.1847622901670141, 0.0047837035165779595, 0.7809783797805827, 0.24637196495074015, 0.0, 0.5657923421369488, 0.2611932808057722, 0.0, 1.1390711256090715, 0.0, 0.0, 0.15310516154880033, 0.0, 0.536745361655064, 0.11084632541017801, 0.24887017850829343, 0.6316463638637531, 1.4711963896826616, 0.6112779722436283, 0.5079606239011155, 0.15942216163041661, 0.21541936537958353, 0.10295208772558359, 0.0, 1.3699774598840704, 0.6364841478802473, 0.38335626793892197, 0.0, 0.2992892574327959, 0.10527060545292, 0.0, 0.0, 0.7485372018432481, 0.2715216678914851, 0.2667902419370478, 0.0, 0.5814665590695893, 0.051682188310845374, 0.0, 0.0, 0.3934310017151073, 0.0, 0.0, 0.5957893409486428, 0.3316317367913752, 0.9200295815926001, 0.0, 0.0, 0.6623087915165122, 0.0, 1.5766760492233103, 0.0, 0.0, 0.3039866668414091, 0.0, 0.024309812685391816, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14306886144088826, 0.0, 0.0, 0.0, 0.13834293702511197, 0.0, 0.0, 0.0, 0.07697281314241891, 0.0, 0.13882210022663904, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11718373909917448, 0.05171175921797154, 0.0, 0.0, 0.047041804166349496, 0.0, 0.0, 0.0, 0.21780680053585874, 0.005280433697773762, 0.0, 0.01227888835211436, 0.1637490848480197, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.405774970647805, 0.2291279765469989, 1.2574751546051093, 0.5180330897538964, 0.48968357404421875, 0.5301529810315024, 0.0, 0.0, 0.0, 0.8112619638066929, 0.0, 0.7833417149382808, 0.0, 0.0, 0.11442625626708748, 0.11485555134200548, 0.22833033865638044, 0.0, 0.0, 0.0, 0.0, 0.2864165259642358, 0.16027108725841735, 0.0, 0.09011936406874124, 0.4181806897076036, 0.0, 1.0569606821068054, 0.624691204995156, 0.7081544908696379, 0.0, 0.8795184016973986, 0.0, 0.0, 0.021853263477242018, 0.11238129351491766, 0.0, 0.0, 0.045824320207715985, 0.0, 0.196064039018767, 0.0, 0.07081867255234689, 0.0, 0.0407459744321428, 0.0, 0.09807635051343538, 0.010124069007427254, 0.0, 0.0, 0.0, 0.0, 0.6116811031756639, 0.0, 0.0, 0.6208028352439049, 0.0, 0.17504030998808598, 0.020658826838531718, 0.719367580349619, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.015728258754898257, 0.07298380500117611, 0.0, 0.06012022906808051, 0.0, 0.0, 0.5330380962469254, 0.02965305516643559, 0.0, 0.18001272855172004, 0.035235037447174065, 0.0, 0.01349449214577584, 0.0, 0.0, 0.0, 0.2359915438569738, 0.03810280561257924, 0.0, 0.0, 0.0, 0.3884686133510988, 0.0, 0.0, 0.21968925488132546, 0.0, 0.0, 0.4324936557273746, 0.0, 0.6879094987723802, 0.0, 0.0, 0.0, 0.0, 0.7898693359448322, 0.0, 0.5391987426673219, 0.25853076675450826, 0.0, 0.38031280775654097, 0.0, 0.3853638210122371, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.2217547802058863, 0.05709933484072306, 0.0, 0.0, 0.8484028226584724, 0.23257686384566284, 0.0, 0.0, 1.258622241947537, 0.0, 0.0, 0.11665876134553779, 0.3184837856872295, 0.7880482843371591, 0.0, 0.0, 0.0, 0.0, 0.23284042288536255, 0.0, 0.3804712136528319, 1.113036382623302, 0.8298038026635118, 0.0, 0.0, 0.0, 0.0, 0.0, 0.020690565683442904, 0.2610758590649183, 0.0, 0.0, 0.06193402719103672, 0.024569168683420507, 0.6450876041294853, 0.0, 0.5615893961519662, 0.0, 0.5487968919612313, 0.0, 0.6425734859953806, 0.0, 0.2979704099021757, 0.323777504790907, 0.66722521578591, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4069961680965457, 0.7713681046585987, 0.3594743508741288, 0.8852608548606914, 0.0, 0.0, 0.0, 0.0, 0.017250929899566992, 0.05738201561649353, 0.0, 0.040237899717394485, 0.8673210549972237, 0.0, 0.0, 0.7245534868749944, 0.0, 0.16727086778943756, 0.0, 0.0, 0.0, 0.0, 0.29250184542509544, 0.0, 0.0, 0.06729223300830636, 0.0, 0.3824979967457689, 0.0, 0.23769547992450338, 0.825352628558087, 0.5791520520364314, 0.0, 0.0, 0.6822104427959106, 0.5410434317660799, 0.0, 1.0013182252763115, 0.0, 0.0, 0.03410163433510291, 0.0, 0.38656596036997387, 0.673387919520239, 0.0, 0.0, 0.0, 0.06524513264320482, 0.3778876017229726, 0.0, 0.3042658440871357, 0.03546389486517897, 0.0, 0.3811330360259428, 0.09125614750074176, 0.38639776526497555, 0.0, 0.7956019813194058, 0.17107520161825185, 0.2528672125099372, 0.0, 0.0, 0.0, 0.0, 0.3715122812201797, 0.0, 0.0, 0.0, 0.8636878110328885, 0.3725673215613031, 0.19161493799862908, 0.2947877363978017, 0.8277903198901483, 1.043787991594994, 0.4556846854932056, 0.018960059119328472, 0.0, 0.8179077818243863, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16243732090346746, 0.0, 0.0934593474548136, 0.26288293993414813, 0.0, 0.6986592631730956, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.23290649501046135, 0.0, 0.0, 0.0, 0.0749770448177764, 0.0, 0.0, 0.5829804395566012, 0.0, 0.08903205884730546, 0.036076025185782915, 0.16740350145604724, 0.0, 0.13789822076519753, 0.0, 0.0, 0.0, 0.7803684622045182, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1343991941662123, 0.0, 0.0, 0.1265714212875754, 0.580645942127824, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4164388584828146, 0.0, 0.6383936083527437, 0.0, 0.0, 0.0, 0.0, 0.18608051379305826, 0.0, 0.04744673193981907, 0.0, 0.0, 0.0, 0.0, 0.3666656532257351, 0.017984084638402044, 0.0, 0.0516031884810454, 0.11619024662048777, 0.5090994962453932, 0.1702286192926929, 0.017754543539629426, 0.11487736756877703, 0.0, 0.0, 0.0035637729173098607, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6218776818900951, 0.10343438219926053, 0.0, 0.016806683142264318, 0.019961035657552893, 0.0, 0.39238409513228256, 0.22883526349683764, 0.0, 0.02328369860187438, 0.02966268912006465, 0.0, 0.0, 0.0, 0.08243560528569996, 0.6624744276069285, 0.0, 0.10804564627221094, 0.0, 0.0, 0.0, 0.0, 0.0, 0.272827698328812, 0.0, 0.0, 0.0, 0.10351845069306231, 0.022056761782947687, 0.04806113374409372, 1.421033050846094, 0.09272463621214155, 0.32902390084105787, 0.5088305985866386, 0.09822819388787048, 0.0, 0.0, 0.0965876885856362, 0.0, 0.0, 0.18492863169572316, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13526587090401476, 0.0, 0.022328727233527985, 0.0999580342692439, 0.0, 0.0, 0.09557781244125038, 0.13831210655132378, 0.0, 0.0, 0.1791768991068296, 0.16163641825142586, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.42053340750746143, 0.0, 0.10552005335412863, 0.0, 0.0, 0.16311354370934733, 0.0, 0.2824114978735204, 0.0, 0.0, 0.43639300384810376, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1671480967875291, 0.644888932873856, 0.3129032598040877, 0.48675890221085816, 0.17823949364009248, 0.1415399106044285, 0.18516682441734925, 0.5312977885248659, 0.07587099582542241, 0.0, 0.0, 0.6986300116510127, 0.0, 0.0, 0.7938925894205694, 0.36599606323996975, 0.26363118368222405, 0.2342915285475447, 0.0, 0.1869965760541939, 0.1160920939359052, 0.38732669798663727, 0.0, 0.1313693926537813, 0.14845591773543332, 0.0, 0.0, 0.5636663205749514, 0.0, 0.0, 1.5099082548197433, 0.12877106200933913, 0.12876355501777378, 0.4806583412843819, 0.8527242204514415, 0.2611825233475998, 0.2169329303973436, 0.0, 0.19905771354664345, 0.0, 0.3188159099664727, 0.0, 0.49573252746154944, 0.5909004107452918, 0.44608316126371567, 0.9987235012950566, 0.0, 0.0, 0.06543436335390052, 0.0, 0.0, 0.0, 0.7452854681453724, 0.940549219662451, 0.32866688095435376, 0.0, 0.04977979297413422, 0.0, 0.15266515341831127, 0.0, 0.0, 0.8226750512812447, 0.0, 0.0, 0.2520932611368793, 0.32856303804715215, 0.1846788611041856, 0.6288326287259721, 0.15594781886009731, 0.0, 0.0, 0.39056006775570395, 0.2454733448499023, 0.0, 0.1875080652559859, 0.0, 0.0, 0.0, 0.4604079993134017, 0.0, 0.0, 0.0, 0.0, 0.11979185177691755, 0.14227491555369362, 0.0, 0.09024327543210102, 0.648783267363574, 0.0, 0.0, 0.0, 0.5408163510237757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5311068240495873, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5314003925728801, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02394551122470378, 0.0, 0.0, 0.0, 0.12486249633500378, 0.0, 0.0, 0.05765112857402609, 0.0, 0.14315109316509972, 0.05676601866921535, 0.0, 0.6434826644263494, 0.0, 0.14460219857592263, 0.0, 0.0, 0.10860788610026072, 0.0, 0.04705670771446048, 0.4709967737248388, 0.0, 0.0, 0.13612521976378897, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.130371257969619, 0.0, 0.11349639269154894, 0.0, 0.11804878144850195, 0.3189646877579158, 0.0, 0.0, 0.0, 0.0, 0.1348452367929846, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1550934497155318, 0.13060726382480906, 0.0, 0.0, 0.232086697214264, 0.0, 0.14806165017632722, 0.0, 0.23898925029638524, 0.0, 0.0, 0.23731337239548533, 0.0, 0.10980801230053783, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19058666211884384, 0.0, 0.1810493697276433, 0.0, 0.0, 0.27986722280655724, 0.06847318480810846, 0.0, 0.026224205266550244, 0.0, 0.0, 0.0, 0.07178447214794542, 0.0, 0.0, 0.0, 0.0, 0.04423801290959719, 0.4450997362670805, 0.0, 0.0, 0.0, 0.014396013780263936, 0.0, 0.0, 0.08159130602818511, 0.28786198512647176, 0.0, 0.0, 0.0, 0.15886186536955227, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03988435480164781, 0.0, 0.03472184333660239, 0.15861587093052232, 0.03393091079863592, 0.0, 0.0, 0.0, 0.1458998203965446, 0.0, 0.2746045410027491, 0.0, 0.08937012005405864, 0.0, 0.0, 0.0, 0.0, 0.4360685101718207, 0.0, 0.0, 0.12479631040323635, 0.1679293189285873, 0.33750713984681247, 0.0, 0.38279076464536926, 0.0, 0.39766804122994015, 0.0, 0.0, 0.0, 0.0, 0.37584745957186994, 0.0, 0.0, 0.0, 0.0, 0.0034663505048984434, 0.0, 0.0, 0.0, 0.24932174401673268, 0.8269366380921026, 0.058350744167210526, 0.2821315817160027, 0.01073228148503296, 0.0, 0.0, 0.5523198324520332, 0.0, 0.0, 0.0, 0.2765513539344097, 0.2765352317665175, 0.0, 0.0, 0.0, 0.16196672196012962, 0.0, 0.0, 0.23047763471347846, 0.0, 0.4983211934020315, 0.0, 0.0, 0.0, 0.0, 0.08410733405320571, 0.0, 0.0, 0.38342855882543897, 0.031078189534518876, 0.0, 0.0, 0.07997079449394401, 0.0, 0.0, 0.0, 0.14991888400189204, 0.0, 0.0, 0.0, 0.2539339452562683, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005527553201922959, 0.24701032777367607, 0.3818735212726353, 0.0, 0.0, 0.3141045412174539, 0.4613820899583969, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7846194794668536, 0.0, 0.0, 0.2023929406035883, 0.5525420395033789, 0.0, 0.0, 0.0, 0.18332122951817006, 0.0, 0.0, 0.0, 0.6600849079661362, 0.0, 0.271071887942947, 0.6931869379662654, 0.0, 0.19544958497754947, 0.0, 0.0, 0.23106411956503142, 0.04163915085675471, 0.0, 0.2740671699579846, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5951890435738816, 0.0, 0.0, 0.5617261879013651, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.648112900028134, 0.0, 0.2097693617911403, 0.23188027210282897, 0.6330438111437964, 0.515238068631253, 0.8059496022277759, 0.0, 0.3600721428836477, 0.0, 0.37406645349624035, 0.43324551668887895, 0.7562549741789008, 0.0, 0.46837434729653293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.23452450510075076, 0.0, 0.0, 0.26538707979997495, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9037040684567715, 0.2601228730720389, 0.0, 0.0, 0.0, 0.3385307797226737, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6960140675899867, 0.0, 0.0, 0.0, 0.34167761524179585, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.47179884257042837, 0.0, 0.5873339130881751, 0.07760784608974701, 0.0, 0.5108116353650718, 0.0, 0.23018263458044896, 0.0, 0.0, 0.0, 0.6389281667373347, 0.0, 0.0, 0.0, 0.6317086674243048, 0.5424555939717753, 0.0, 0.019597125946055532, 0.0, 0.5067616269530796, 0.0, 0.0, 0.0, 0.0, 0.33135639687759366, 0.0, 0.11009229928191128, 0.0, 0.0, 0.0018449546833188399, 0.0, 0.1894047148704815, 0.0, 0.21786525780326826, 0.00027956067335572354, 0.0, 0.0, 0.00044372512905081096, 0.0, 0.0, 0.10913586880079368, 0.0, 0.0, 0.2387319450019063, 0.04302093934347575, 0.0, 0.28316204466710054, 0.0, 0.6259961005310473, 0.044339116197027774, 0.0, 0.0006891565473784903, 0.0, 0.0, 0.419692560541072, 0.00023711054076719368, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0009518757697360345, 0.0, 0.0, 0.0, 0.0, 0.04412247836479926, 0.33175278809136916, 0.1836910307282294, 0.43316264355459233, 0.0, 0.0, 0.0, 0.0, 0.6109591315701846, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7410212481907629, 0.09694039812399863, 0.0, 0.0, 0.04700242398333341, 0.0, 0.0, 0.15679640166544176, 0.0, 0.0, 0.008354862966629384, 0.8660916115221005, 0.12095883829401362, 0.0, 0.0, 0.13982615201680984, 0.0, 0.37030015075124356, 0.0, 0.10806680870328135, 0.2674021581377063, 0.0, 0.0, 0.43695074134110806, 0.0, 0.0, 0.0, 0.4193595253139995, 0.0, 0.0, 0.4223604117691241, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6519628347852473, 0.09593394582722056, 0.0, 1.2263197607192593, 0.0, 0.1420268730458006, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6547968394353947, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.015993676263376118, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0322501065968568, 0.0, 0.0, 0.0, 0.19977559392448785, 0.0, 0.0, 0.0, 0.13350148436716802, 0.05064120692385946, 0.0, 0.014278692130393579, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02476251362124448, 0.0, 0.0, 0.6971876314261916, 0.0, 0.32368749507325995, 0.0, 0.38665695047334026, 0.043481909227645874, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2863863682111852, 0.0, 0.0, 0.0, 0.0, 0.5166026604428106, 0.6135609292207037, 0.0, 1.390585308090751, 0.549724406362488, 0.0, 0.0, 0.0, 0.4946354029419938, 0.0, 0.0, 0.1817622353630416, 0.0, 0.0, 0.45001527975922945, 0.19067060021024376, 0.0, 0.0, 0.0, 0.0, 0.0, 0.45026402504954754, 0.09862023599471978, 0.0, 0.0, 0.08971409788917951, 0.0, 0.0, 0.0, 0.14718404588236259, 0.02028941343776962, 0.0, 0.0, 0.12879470754337072, 0.5384698277835859, 0.0493264459266498, 0.0, 0.6385356001321869, 0.0, 0.0, 0.0, 0.418599297830268, 0.0, 0.24084377286368372, 0.0, 0.0, 0.3927421561776119, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11479167979031016, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.287331205334526, 0.0, 0.0, 0.09296754420278937, 0.4313970938087158, 0.0, 0.3553622902870886, 0.0, 0.0, 0.0, 0.1752750739858479, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5721777681112366, 0.16584672881862064, 0.0, 0.0, 0.2750129568642962, 0.11193872117738499, 0.0, 0.694851503366924, 0.0, 0.11176089578249619, 0.03642730011196224, 0.46499012378889537, 0.0, 0.0, 0.10537656529716292, 0.2572556947482873, 0.11427779100841323, 0.4566419402676079, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31905429658438084, 0.4568943484348684, 0.0, 0.1009223375517615, 0.0, 0.08785925235754827, 0.2524568576131555, 0.5979718371844858, 0.0, 0.08718397040627182, 0.27019243222928785, 0.0, 0.2405201444721306, 0.11212903697332216, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12097427611620017, 0.7029459229987706, 0.2907862782736388, 0.0, 0.3020877732114353, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2423919969263556, 0.0, 0.5763734567059631, 0.0, 0.0, 0.0, 0.0, 0.6067232814043334, 0.18939678992121056, 0.0, 0.0, 0.21432072089475862, 0.0, 0.0, 0.0, 0.0, 0.5821831861883047, 0.0, 0.0, 0.210081711445218, 0.21006946427095974, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.030280314291377, 0.15413531598416644, 0.25247193164811527, 0.0, 0.0, 0.12848497078723173, 0.6000304051931176, 0.0, 0.0, 0.0, 0.0, 0.12617822046935606, 0.3320268939864614, 0.7056657766261163, 0.42848148251018003, 0.057345877924903164, 0.0, 0.3774481983482792, 0.12624796529690785, 0.1619902770277746, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005688878127237202, 0.38175135193372894, 0.1765840237536124, 0.0, 0.0, 0.3566318392645057, 0.0, 0.0, 0.0, 0.16683268933188872, 0.04345497812697982, 0.0, 0.492592677155673, 0.0, 0.0, 0.0, 0.0, 0.0831404672292756, 0.0, 0.0, 0.36055293254501974, 0.0, 0.4863131526725521, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005464010493446822, 0.24417078834728798, 0.0, 0.0, 0.22169348923343446, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11593686293818574, 0.0, 0.0, 0.0, 0.6095590933370347, 0.0, 0.2443761776038196, 0.0, 0.0, 0.0, 0.1960956643223869, 0.6074859425565672, 0.18650669482426485, 1.0378655385571516, 0.0, 0.17276762871577947, 0.6940099427692358, 0.0, 0.0, 0.32388236546386096, 0.0, 0.3977584774978917, 0.09850727254096922, 0.0, 0.09435872182534573, 0.32210695479773005, 0.0, 0.9450119024745318, 0.0, 0.7282651614947167, 0.795671006556338, 0.21972174528863647, 1.1800722708951874, 0.0, 0.15406122012703197, 0.23245444095199302, 0.0, 1.1450754137286316, 0.0, 0.0, 0.718432895790501, 0.0, 0.9074772544907516, 0.0, 0.0, 0.2150644825695137, 0.7387278090737696, 0.0, 0.49627306106648184, 0.6533650950107276, 0.0, 0.0, 0.0, 0.724606488987317, 0.701411910713477, 0.6206261403696766, 0.28804332377271413, 0.2959105186195655, 0.0, 0.6182919293124655, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.589003768060014, 0.0, 0.0, 0.08271977351575115, 0.0, 0.0, 0.0, 0.9105812282174285, 0.31789001879047846, 0.02411461886183569, 0.2829221743477605, 0.6706620073355701, 0.0, 0.1930731864260551, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06133637967837149, 0.6242346410782087, 0.6952909143002654, 0.3591573776849567, 0.0, 0.7449872409938767, 0.08923909973645693, 0.1173521535256719, 0.0, 0.0, 0.5729798828820618, 0.10656596459419354, 0.0, 0.1545328680391799, 0.27421690202209187, 0.0, 0.0, 0.3698254914307633, 0.5140663186573865, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13863750342668263, 0.6433193065819665, 0.0, 0.5299326895193157, 0.007712410329912944, 0.34464525874742236, 0.34174148456366615, 0.2613783001228934, 0.0, 0.0, 0.05371570560505797, 0.0, 0.02057231153731605, 0.0, 0.33150273239870404, 0.0, 0.0, 0.008405062468217761, 0.0, 0.34649855374487837, 0.298371589011109, 0.0, 0.1892535264101524, 0.0, 0.016081030317329964, 0.0, 0.0, 0.1306616194660838, 0.0, 0.0, 0.2714046321541056, 0.0, 0.0, 0.0, 0.024299507869495213, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16509417733903173, 0.0, 0.0, 0.1501849497452071, 0.1748418064456664, 0.0010568489849475794, 0.047227517247298824, 0.051672489777017716, 0.0, 0.11982535720931763, 0.0, 0.0, 0.2618551646604837, 0.0, 0.0, 0.12090296292900765, 0.0, 0.0, 0.44988696818935897, 0.0, 0.19121191419677455, 0.0, 0.0, 0.49693256130088725, 0.0, 0.0, 0.0, 0.5670859092292977, 0.0, 0.0, 0.0, 0.5653233896265278, 0.0, 0.0, 0.18955075438556615, 0.050614759394524644, 0.0, 0.0, 0.0, 0.0, 0.6124985176197848, 0.02840624719573524, 0.0, 0.0, 0.6585018821667253, 0.0, 0.669914086084765, 0.0, 0.4435524229524026, 0.0, 0.0, 0.24959071834233698, 0.6741825496608898, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15847771480322562, 0.0, 0.0, 0.0, 0.11420329312106789, 0.3695819846260272, 0.18933569121558752, 0.0, 0.0, 0.0, 0.02103165349726233, 0.2655614054905834, 0.0, 0.8117959138331444, 0.0, 0.3439446042563599, 0.0, 0.0, 0.1019714241481598, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13231107356042507, 0.0, 0.07339739754334103, 0.13018370224494802, 0.03407665122672999, 0.2789846158904475, 0.0, 0.04141177300212955, 0.0, 0.21059108800059795, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14821858886776432, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.45102261330920507, 0.05046558139935084, 0.0, 0.12130428936757616, 0.0, 0.12601881654664268, 0.003171787898412092, 0.00527620372181328, 0.0, 0.0, 0.013576794847610305, 0.0, 0.0, 0.0, 0.025452015886005885, 0.4384052118279088, 0.0, 0.0, 0.0, 0.0790086903216001, 0.15275039095222206, 0.0, 0.08940594755444543, 0.0, 0.0, 0.003492578790207725, 0.0, 0.5882017770828334, 0.0, 0.0, 0.14092784541391168, 0.7983017352473682, 0.0, 0.0, 0.0, 0.1117819777173795, 0.0, 0.0, 0.03862278430066002, 0.1785535098526168, 0.4378163685245537, 0.21613953941654523, 0.8670541670659706, 0.30872969047516546, 0.0, 0.073895246778613, 0.0, 0.0, 0.8448370570321526, 0.006826318289568987, 0.24453895548705643, 0.0, 0.6685102691932127, 0.0, 0.0, 0.07127880649817865, 0.032929653726359844, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.018587651907083814, 0.0, 0.19986879579794362, 0.2170189952300144, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2805164076738779, 0.0])), 42), 42)),) diff --git a/test/reference64/debug_parallel_spmms_no_atomics.txt b/test/reference64/debug_parallel_spmms_no_atomics.txt index 7039f631a..b6586a0b3 100644 --- a/test/reference64/debug_parallel_spmms_no_atomics.txt +++ b/test/reference64/debug_parallel_spmms_no_atomics.txt @@ -8,7 +8,7 @@ julia> @finch begin end end end -(CR = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.1187145765025676, 0.0, 0.16555522612551515, 0.0, 0.0, 0.0, 0.0, 0.43509113842452285, 0.0, 0.0, 0.25672403787937165, 0.43862663884873543, 0.0, 0.0, 0.3519631419607619, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051120283482812334, 0.15945060967882835, 0.42044865267857073, 0.0, 0.019744477387695688, 0.0, 0.0, 0.0, 0.12726604148160792, 0.4480285054137333, 0.0, 0.41393771366257825, 0.0, 0.0, 0.1372243591915985, 0.12863434970716192, 0.0, 0.019238858430486484, 0.0, 0.2371659747040811, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.39682924637787165, 0.0, 0.8480118921637517, 0.0, 0.0, 0.0195483866997798, 0.0, 0.5990836331247341, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2618925497434801, 0.26117339231230247, 0.0, 0.0, 0.16216152735698644, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06997554550840408, 0.0, 0.0, 0.002400768013297612, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.4157511852632345, 0.5793963874059174, 0.0, 0.26436870752857605, 0.4172786501470117, 0.0, 0.0, 0.8079649846339338, 0.0, 0.0, 0.5764550461815096, 0.4229367652966696, 0.05379340446506314, 0.0, 0.0, 0.5795406808621261, 0.5877094760316834, 0.0, 0.0, 0.0, 0.0, 0.284387943824113, 0.0, 0.0, 0.0, 0.035174745039109515, 0.0, 0.0, 0.011970205674471077, 0.0, 0.0, 0.0, 0.0, 0.5436476197350472, 0.920039513761917, 0.0, 0.6198132723204128, 0.16799442509225773, 0.5753026732101696, 0.2043616977009669, 0.5065806869454675, 0.0, 0.0, 0.39160092945826996, 0.0, 0.11054447981865345, 0.0, 0.0, 0.9189729667337664, 0.0, 0.0, 0.6507053761422986, 0.6970188689802168, 0.0, 0.08297492397617155, 0.9062181287136433, 0.0, 0.059530976608982995, 0.012438951345378766, 0.0, 0.0, 0.0, 0.0, 0.2533819740366263, 0.9473531228336374, 0.06450793068804792, 0.0, 0.41573543153630554, 0.0, 0.0, 0.0, 0.7238062468593162, 0.0, 0.0, 0.3590904912393951, 0.07774042001084827, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6251886494903025, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44684741712517223, 0.0, 0.0, 0.0, 0.0, 0.010812740091707317, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8163131959379999, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2672156592426391, 0.0, 0.028807779838791864, 0.0, 0.0, 0.0, 0.025506753620224757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.022871104613233297, 0.0, 0.6057451127777128, 0.0, 0.0, 0.05122083512724408, 0.0, 0.0, 0.26967234588040656, 0.0, 0.0, 0.6655341287456478, 0.0, 0.41411417571013454, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29998038732284904, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06750566800337324, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3426210978919867, 0.3800174489235809, 0.0, 0.6531468239127369, 1.5341196475571879, 0.0, 0.0, 0.5993450019914057, 0.0, 0.0, 0.318944682359523, 0.0, 0.0, 0.0, 1.2766961856974943, 0.0, 0.47028907930153113, 0.46890260973852405, 0.0, 0.2635141940642454, 0.0, 0.06844040704623247, 0.6776383700271937, 0.08344450181255293, 0.0, 0.0, 0.13135428676134797, 0.1357944044209692, 0.0, 0.0, 0.0, 0.38624172924075223, 0.0, 0.0, 0.0, 0.23564395924169773, 0.0, 0.7014291092208349, 0.11139739784790205, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008393202836106917, 0.0, 0.22229541093446364, 0.2882110765245937, 0.0, 0.2931292388749959, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24423669216579333, 0.0, 0.07507242489058646, 0.0, 0.0, 0.14176191313790465, 0.0, 0.0, 0.0, 0.054753508738442806, 0.11008634170637227, 0.0, 0.0, 0.0, 0.0, 0.0, 0.024773126340884036, 0.0, 0.0, 0.38053755501306186, 0.0, 0.6713587667580375, 0.05335137428594376, 0.0, 0.0, 0.009224220899634665, 0.0, 0.07390888522469428, 0.1992308489896435, 0.12678608744717204, 0.0, 0.0546923223511062, 0.11313411705958114, 0.0, 0.0, 0.0, 0.0, 0.05169899432402749, 0.019742405777142896, 0.1769782400741126, 0.0, 0.0, 0.09297789149141053, 0.028906196325416873, 0.0, 0.0, 0.012919011582055164, 0.0, 0.0, 0.3208972845059436, 0.0, 0.0, 0.0046103209297173, 0.0, 0.0, 0.00416876885269193, 0.0729081194704697, 0.0, 0.0, 0.0, 0.07125538498910843, 0.0, 0.0, 0.03513444799266689, 0.0, 0.07540438323786366, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04369081060273281, 0.0, 0.0, 0.0, 0.014769980988042226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.017283118828420634, 0.006620940647292606, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006092931164902776, 0.0, 0.16137232276465496, 0.0, 0.15262637216887753, 0.013645384773351038, 0.16271613196948126, 0.0, 0.0, 0.0, 0.0, 0.17730029672438757, 0.41874765425641397, 0.054497803302564006, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10045113292307115, 0.27028417756519546, 0.07991567883089672, 0.0, 0.0, 0.0, 0.0, 0.0, 0.01798371330728596, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5859834957136911, 0.5086687281653502, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07646258969830243, 0.0, 0.0, 0.02773130153308066, 0.07708391588594585, 0.0, 0.0, 0.06185373806995992, 0.0, 0.0, 0.033137714842779345, 0.0, 0.0, 0.0, 0.0, 0.028021730318764978, 0.07388933025705045, 0.0, 0.021389015345232583, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046371970770837774, 0.04025364462832554, 0.2181921153062336, 0.4335185189335439, 0.0, 0.0, 1.0038009425423415, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4280152293034966, 0.0, 0.08414972142221414, 0.0, 0.3712598089597713, 0.0, 0.06370844553850769, 0.0, 0.0, 0.0, 0.0, 0.5083497561860121, 0.0, 0.0, 0.0, 0.17350738400022994, 0.0, 0.0, 0.0, 0.0, 0.5680638629882098, 0.4512837677833129, 0.036928112404588626, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6736518032785722, 0.0, 0.0, 0.0, 0.0, 0.3438277430889845, 0.1331574579932683, 0.8185600695730958, 0.0, 0.0, 0.017261448593960855, 0.0, 0.5289976863810653, 0.0, 0.0, 0.0, 0.0, 0.13826565194431473, 0.0, 0.12839377709982103, 0.8277070113616852, 0.0, 0.0, 0.3904546499995126, 0.08179569775458351, 0.0, 0.0, 0.0, 0.0, 0.16848803520369499, 0.0, 0.0, 0.005780600674157121, 0.0, 0.0, 0.0, 0.0, 0.042429105563066505, 0.0, 0.0, 0.5671026868317051, 0.5831842436077501, 0.0, 0.0, 0.5203885995071309, 0.0, 0.0, 0.0, 0.0, 0.03279957809056344, 0.20563143706052323, 0.8140555730584957, 0.0, 0.11735707443596549, 0.0, 0.0, 0.0, 0.0, 0.05942421719401875, 0.13531075914415133, 0.0, 0.22862377269710113, 0.0, 0.0, 0.0, 0.0, 0.009783289930470927, 0.0, 0.49666013194599, 0.01297478801242045, 0.004970474495620279, 0.0, 0.0, 0.0, 0.0, 0.18702095525297172, 0.0, 0.0, 0.49027730046536305, 0.0, 0.0, 0.0, 0.3100811795242501, 0.0, 0.5172830310180929, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5147075854808417, 0.0, 0.23506445593598685, 0.0, 0.0, 0.0984177418166802, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6597667532607603, 0.0, 0.7531258126074596, 0.0, 0.0, 0.0, 0.0, 0.009060495116628974, 0.0, 0.14938403565323904, 0.23931891774764502, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17320374473408556, 0.0, 0.0, 0.8859260157921318, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2593451028242532, 0.13535058061487634, 0.0, 0.17876385946442425, 0.5885021691653141, 0.4462993508157936, 0.0, 0.38646137613385273, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08841279830908562, 0.0, 0.0, 0.4090685041141252, 0.2385779614705672, 0.0, 0.32657075289021537, 0.0, 0.3891842232348578, 0.46695749861500585, 0.0, 0.20033954304824086, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6140772326336235, 0.21962331732895995, 0.0, 0.0, 0.21665980127772702, 0.0, 0.10259951624992725, 0.0040997688735825025, 0.0, 0.0, 0.0178257297768441, 0.0025383566681682393, 0.21683531480545457, 0.0, 0.027677402398657985, 0.0, 0.1880826476230884, 0.3419147609793875, 0.03227511522566195, 0.19053492425855037, 0.0, 0.06432217258278244, 0.0026780235214896283, 0.0, 0.0, 0.464125489835237, 0.09967606965443436, 0.0, 0.0, 0.0, 0.011788389508631971, 0.03206041622309702, 0.0, 0.0060682844433003185, 0.0, 0.0, 0.0, 0.010791956772858862, 0.0, 0.0, 0.0, 0.0, 0.4329905527364345, 0.14376890418721155, 0.6930376581272882, 0.0, 0.611818052941564, 0.6291676211651914, 0.0, 0.0, 0.5614206159067703, 0.48216800990329456, 0.0, 0.0, 0.4507229848159907, 0.0, 0.0, 0.8782428778065052, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06410974538727675, 0.23291225157991716, 0.08679043179604816, 0.0, 0.0, 0.08995902157278039, 0.8808378297797503, 0.0, 0.0, 0.0, 0.3618017482397369, 0.07709259450646033, 0.0, 0.22347789493902354, 0.0, 1.4151156566032244, 0.0, 0.0, 0.0876553401034732, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.35023812146064465, 0.10119869206094158, 0.0, 0.0, 0.0, 0.03421091843192662, 0.0, 0.18934530571059222, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.040031965441735276, 0.015335731346610126, 0.0, 0.0, 0.0, 0.0, 0.5012279391934354, 0.14361151525658541, 0.0, 0.05781748261134272, 0.17152855777668224, 0.0, 0.498484457540378, 0.0, 0.0, 0.7074889608036871, 0.0, 0.0, 0.0, 0.0, 0.0, 0.36413161255211174, 0.10650975776468122, 0.0027919607805886224, 0.1717164070699339, 0.0, 0.0, 0.0, 0.31636490805397033, 0.0, 0.0, 0.0, 0.3781004501122092, 0.1664160983543511, 0.0, 0.10894483484211534, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06899783350353156, 0.1313910038295779, 0.5458205926873976, 0.0, 0.2058361256028114, 0.0983057734206431, 0.006586106310131405, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13715236217863272, 0.026867165999227966, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0035515304259612105, 0.0, 0.0, 0.5329776529167246, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.397719517913955, 0.20668056810136554, 0.1307286941015916, 0.0, 0.19979734260211207, 0.13509882393613562, 0.0, 0.0, 0.0, 0.4428910220796438, 0.0, 0.10971922982381796, 0.20405686697329703, 0.0, 0.0, 0.0, 0.4155385933508652, 0.0, 0.030373091671251427, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02870549966274466, 0.0, 2.221236796150802e-5, 0.04518680503118196, 0.8557997812159583, 0.0, 0.0, 0.0, 0.33295230926411423, 0.0, 0.0, 0.1651823382455281, 0.0, 0.0, 0.10987547938954217, 0.038321493889877094, 0.0, 0.0, 0.9167265220224268, 0.0, 0.41223669995910156, 0.0062879102301798264, 0.006460790579658201, 0.0, 0.015093288171720337, 0.004653032070207847, 0.0, 0.0, 0.21192982566516394, 0.0, 0.5265530542756913, 0.004398370159579225, 0.3103332077675556, 0.0, 0.0, 0.21886457786346297, 0.058793164358353744, 0.24052003353974485, 0.5039916994286584, 0.08865805888962155, 0.0, 1.2109591957845456, 0.0, 0.4576423956337198, 0.13738787883657938, 0.3665641879979031, 0.00039223002823340837, 0.0, 0.6257753572135888, 0.0, 1.0620388990418166, 0.04837586177991647, 0.05564954721706949, 0.23699310888410263, 0.0060621596830514254, 1.2406804285104875, 0.0, 0.6055788924273563, 0.1024025590217045, 0.41360202805293217, 0.5476995216716073, 0.17831079467145505, 0.0, 0.0, 0.0, 0.14728996725917032, 0.19581503373322434, 0.10219463649126194, 0.0, 0.0, 1.213270546019433, 0.06327342954871182, 0.0, 0.0, 0.34855390390603164, 0.0, 0.0, 0.2854684709047343, 0.28462687503630496, 0.0, 0.0, 0.0, 0.06675489490570531, 0.4113308129658067, 0.0, 0.049609846106367136, 0.0, 0.0, 0.0, 0.0, 0.2938483162830928, 0.35256998241930354, 0.0, 0.15126367898557985, 0.0, 0.0, 0.1430373863296425, 0.0, 0.11979050068949273, 0.0, 0.0, 0.0, 0.2174719417996252, 0.18492143615091797, 0.5613745989840638, 0.0, 0.1269084936189851, 0.13050728832210684, 0.0, 0.008090983120695843, 0.11645462945856581, 0.45646266655488743, 0.0, 0.0, 0.018120109170533364, 0.0, 0.0, 0.18217259219167142, 0.0, 0.0, 0.23544229686275722, 0.0, 0.072369241454098, 0.0, 0.013298187548207349, 0.0, 0.15536962738337737, 0.0, 0.0, 0.0, 0.5485281455413065, 0.0, 0.0, 0.0, 0.07504798957314487, 0.13800884999205565, 0.023881103672210243, 0.4000634234277266, 0.0, 0.63983454521553, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1274757935226854, 0.0, 0.060340389443721644, 0.0, 0.0, 0.0, 0.0, 0.046886662511488715, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4105919579209241, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17717763704599515, 0.0, 0.0, 0.006078729370399735, 0.0, 0.0, 0.0, 0.4419304781486809, 0.004498905638339938, 0.0, 0.0, 0.06013187036225827, 0.061837053761552255, 0.158000195476362, 0.08245930986204707, 0.055178613203866224, 0.0, 0.3921588247960043, 0.051054375379452996, 0.0, 0.3113852203955569, 0.0, 0.08631714383210826, 0.016249403505819805, 0.0, 0.5064243516388502, 0.0, 0.0799687272151233, 0.0, 0.06016447367008715, 0.0, 0.0, 0.12723000596711698, 0.0, 0.0, 0.0, 0.0, 0.3344116617465516, 0.28448339782348236, 0.03555929040895464, 0.12972821265302345, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05771825347353467, 0.0, 0.06101920493228206, 0.0, 0.1422424089220273, 0.0, 0.0, 0.0850349690926388, 0.0, 0.6465489235087094, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9592391331341867, 0.0, 0.0, 0.0, 0.07533170200640231, 0.3935757364788316, 0.41733426606664215, 0.0, 0.0, 0.0, 0.0, 0.8096836326115127, 0.0, 0.0, 0.15672712010482948, 0.08471008784973191, 0.0, 0.0, 0.021315681001762884, 0.0, 0.0, 0.0, 0.6515686149424397, 0.0, 0.04354065349809789, 0.5887361460115157, 0.0, 0.3314629690186724, 0.08254082170798169, 0.0, 0.5363022284331493, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20539826744479112, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20437563182844645, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08512737043917705, 0.0, 0.0, 0.0, 0.21221590140088104, 0.0, 0.5922163084848736, 0.0, 0.054946173604955253, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11912480847073124, 0.10340745987043, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22405559305996067, 0.04389088686607588, 0.0, 0.8369237022137216, 0.0, 0.0, 0.303533841030579, 0.8437244477194209, 0.0, 0.0, 0.6770220530788269, 0.0, 0.08868596150524616, 0.0, 0.0, 0.0, 0.005801870585523199, 0.0, 0.3067127385215406, 1.9980597464483445, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1818471988215991, 0.0, 0.0, 0.0, 0.0, 0.09250846502860006, 0.0, 0.0, 0.0, 0.14804755431292183, 0.0, 0.3797383608658618, 0.39017892030987883, 0.0, 0.035065009177551926, 0.28100508860898343, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2656255916096575, 0.01029999428072384, 0.026319871200300066, 0.0, 0.0, 0.35174701729018143, 0.019026589888644814, 0.0, 0.0, 0.0, 0.0, 0.10260912587786382, 0.0, 0.0204467738415142, 0.0, 0.023687486390763176, 0.0, 0.0, 0.002174927201126577, 0.0, 0.09114373059640297, 0.0, 0.2642096712527522, 0.3907643461384895, 0.0, 0.0, 0.18051818330232947, 0.0, 0.3874221185422575, 0.6531078672631825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15551832566217896, 0.0, 0.1916820827839075, 0.0, 0.0, 0.08276135601321193, 0.0, 0.10030127909330487, 0.0, 0.0, 0.0, 0.10537887040654752, 0.0, 0.17805025311577488, 0.0, 0.010472659941918684, 0.0, 0.0, 0.007619143135798, 0.0, 0.12561988447587705, 0.0, 0.0, 0.7794014171836517, 0.0, 0.08402510727068294, 0.0, 0.3682135686649267, 0.08647369259665981, 0.09410614716697653, 0.611021014238459, 0.0, 0.0, 0.023955493193970948, 0.0, 0.0, 0.007434430348560844, 0.0, 0.0, 0.0, 0.24285369100807747, 0.0, 0.0, 0.0051185021691807515, 0.0, 0.0015127483220163092, 0.0, 0.0, 0.06096785123225053, 0.014193124550026902, 0.5775319451121608, 0.0, 0.0, 0.0, 0.007997400222196374, 0.6747251647940697, 0.0, 0.0, 0.0, 0.0, 0.7027693457851822, 0.0, 0.0, 0.055434654145900264, 0.0, 0.0, 0.0, 0.02587284155878174, 0.0, 0.42673143134824615, 0.004724246163513554, 0.4406790171730267, 0.0, 1.0342538585019783, 0.5747154140513469, 0.0, 0.9363482803339344, 0.7135280098555865, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9563104993907826, 0.0, 0.0, 0.0, 0.8295023845011231, 0.10509888461130146, 0.2471322355632557, 0.3801044173906537, 0.0, 0.0, 0.0, 0.1514367226333477, 0.0, 0.0, 0.0, 0.24534157695942965, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.052661051195310594, 0.6550399256456869, 0.5803102488724085, 0.0, 0.5319072548222628, 0.46172731619827034, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.026741428574906606, 0.0, 0.7082513040743756, 0.0, 0.0, 0.4418255985655133, 0.1449878921305842, 0.3039326972841545, 0.0, 0.0, 0.0, 1.198252644211342, 0.44500849169967277, 0.23918686672510267, 0.0, 0.0, 0.19736692078049992, 0.0, 0.0, 0.0, 0.0762301466058952, 0.3507440605568865, 0.4669973871873196, 0.0, 0.06417785026076955, 0.0, 0.0, 0.07892920039677795, 0.20151756987027533, 0.0, 0.5298004507120764, 0.006913800133275409, 0.0, 0.0742780358218034, 0.0, 0.6026732223863505, 0.0, 0.0, 0.5351202277676342, 0.0, 0.0, 0.9548891902757952, 0.02916984862304253, 0.0, 0.4970347785792808, 0.12683003730681902, 0.0180604034141702, 0.0, 0.2650052427173023, 0.0, 0.033791924886614616, 0.0, 0.04181580147667587, 0.0, 0.4621910495164758, 0.0, 0.0, 0.0190541328400638, 0.0, 0.17864673433347314, 0.014160348828667728, 0.8165447001064132, 0.09368415058058097, 0.9079968531646069, 0.08687864486537158, 0.19492858047186096, 0.10063554575175, 0.0, 0.09210666608746948, 0.01874477292287561, 0.03748966025771319, 0.0, 0.5779501492966836, 0.0012862204434733993, 0.220963909203652, 0.3086404911712966, 0.17631145912557372, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032159896791554, 0.0, 0.1846953640258127, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07139034913327573, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37871083555251084, 0.0, 0.0, 0.0, 0.0, 0.19265602282403793, 0.0, 0.0, 0.606424267788203, 0.011600938808477314, 0.0, 0.63655122023184, 0.8091094673344561, 0.15945386155042648, 0.21681046587583439, 0.5841977471111124, 0.14228431684797266, 0.0, 0.4919831840901785, 0.07005765326837811, 0.0, 0.4452652454663618, 0.0, 0.2225785522561698, 0.0, 0.0, 0.565764962530824, 0.0, 0.0, 0.0, 0.09016013522690633, 0.0, 0.0, 0.054929050345560504, 0.0, 0.0, 0.0397070718161962, 0.0, 0.3253549491861982, 0.39037279561642807, 0.09169366625332782, 0.16748228205826332, 0.0, 0.0, 0.6136975564576865, 0.0, 0.0, 0.3026006369046373, 0.0, 0.649431418360159, 0.08211939816658421, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8259750138040276, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5145740577075524, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.45723140022915015, 0.0, 0.0, 0.9202097992461084, 0.168004673879535, 0.0, 0.0, 0.1251531867765232, 0.0, 0.2137981131137785, 0.0, 0.013898368242301713, 0.0, 0.0, 0.7137867360685719, 0.0, 0.0, 0.1000729174155476, 0.0, 0.0, 0.03483089759667312, 0.12636252602014256, 0.0, 0.6417666786106352, 0.47874755782682904, 0.0, 0.0, 0.42719736321019475, 0.0, 0.269711179183823, 0.0, 0.0, 0.0, 0.0, 0.668274429237161, 0.0, 0.0, 0.19736413928693208, 0.0, 0.64140191275638, 0.0, 0.04878252313782071, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7804894714968978, 0.1354649020531392, 0.7521947991243342, 0.061565240681645095, 0.7064549771516211, 0.0, 0.0, 0.0, 0.1369213608036062, 0.598180503319145, 0.0, 0.4894142513129519, 0.14663698801711797, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14418506746458087, 0.027360830334206502, 0.0, 0.0, 0.11896445459410832, 0.016940356460817766, 0.08867849541915622, 0.0, 0.0, 0.0, 0.0, 0.014527597186767355, 0.0, 0.0, 0.0, 0.0, 0.017872458048705516, 0.09208038488681886, 0.0, 0.01328217046242409, 0.0, 0.0, 0.0, 0.0, 0.07867275819804301, 0.09439445944634833, 0.0, 0.040498210068061674, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), 42), 42)),) +(CR = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.5786578146202624, 0.0, 0.3202961159483594, 0.3207279869105304, 0.5035217854841559, 0.0, 0.013671076975665627, 0.01669925591794789, 0.0, 0.0, 0.0, 0.5652457771225854, 0.0, 0.09766762955114001, 0.2831455624824939, 0.0, 1.0556185392068085, 0.2068017763866623, 0.0, 0.15942131380345745, 0.005607444973383372, 0.0, 0.056687675717707615, 0.2535497922885842, 0.4637407985590488, 0.22387274550179712, 0.5454655738973408, 0.08490666489615803, 0.3556465582001688, 0.0, 0.0, 0.31186727366054, 0.6972638697010188, 0.0, 0.0, 0.009518501694028625, 0.0, 0.5833334701399113, 0.6244214908493986, 0.0, 0.26168041250093527, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0131047746782154, 0.0, 0.6656645247350605, 0.0, 0.0, 0.0769882955934405, 0.0, 0.0, 0.34004774503974494, 0.08053504092577264, 0.006982581834800098, 0.5446249720805942, 0.0, 0.0, 0.31025177039320695, 0.2638902653915397, 0.0, 0.0, 0.0, 0.0, 0.2008136945182758, 0.0, 0.0, 0.19041992572397343, 0.05903622381609576, 0.0, 0.0589978949008293, 0.05133054295704808, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7141967536140789, 0.0, 0.11331087789790419, 0.0, 0.0, 0.13904571220904566, 0.16685503671570054, 0.0, 0.1461222249815685, 0.0, 0.0, 0.0, 0.1624667486179013, 0.0, 0.0, 0.0001466632220376543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.040061564188380784, 0.0, 0.0, 0.05925661356360367, 0.0, 0.20052213796576485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1322273764299389, 0.0, 0.07284319524978862, 0.0, 0.21698248889777863, 0.0, 0.22616177063294415, 0.0, 0.0, 0.0, 0.0, 0.52849490550171, 0.0, 0.71926878469886, 0.0, 0.6501927607213651, 0.0030355649865830615, 0.37799680598211977, 0.0, 0.0007078975665940506, 0.09351646752064424, 0.05681500695663011, 0.0, 0.20243859396970953, 0.0628704495708815, 0.001556209278473695, 0.0, 0.0, 0.0, 0.0, 0.0027171741525499, 0.0, 0.0, 0.0, 0.07038911039656341, 0.049709343960620045, 0.0, 0.018852918431012597, 0.26140762404567164, 0.049374687944063446, 0.0, 0.0, 0.5682508160039592, 0.08397693763382687, 0.0, 0.0, 1.1395457189674745, 0.10207861893624984, 0.006346754524020049, 0.07139718683099765, 0.0, 0.4257292397317542, 0.0, 0.0, 0.003459642976589088, 0.00011827788909935122, 0.29669071600135444, 0.0, 0.04645302583039929, 0.6403581026228157, 0.0, 0.0, 0.4035906657629842, 0.0, 0.0, 0.031770473502227184, 0.0, 0.10177861753458611, 0.08984803025006428, 0.2696383585775038, 0.0, 0.0, 0.0, 0.0, 0.4020058229022269, 0.8537152750348289, 0.27466570696380027, 0.0, 0.9014511503031993, 0.0, 0.0, 0.0, 0.3588364621034526, 0.0, 0.10358336916612662, 0.0, 0.8253783539224127, 0.003096290011755601, 0.3727209618097055, 0.0, 0.0, 0.0, 0.08512247762765326, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0016669318756259504, 0.0, 0.0, 0.9038241621401286, 0.23981242371494071, 0.0, 0.0, 0.0, 0.10303433366133424, 0.0, 0.0, 4.317142647672722e-5, 0.0, 0.07840647389573854, 0.0, 0.0, 0.0, 0.0, 0.36164895718336953, 0.011697025915496142, 0.0, 0.0, 0.0, 0.0, 0.001969151291048087, 0.0, 0.0016085698018090215, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8640055140280944, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10961290316901336, 0.0, 0.0, 0.0, 0.34012752342022284, 0.0, 0.09000159029348583, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.38387258660557405, 0.0, 0.0, 0.0, 0.04942864149427501, 0.0, 0.9641925530766522, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1618638919487994, 0.0, 0.0, 0.1434695556565637, 0.3651050198592113, 0.0, 0.04210320606021404, 0.5803955429188099, 0.0, 0.0, 0.36579879697476825, 0.4517875751113323, 0.0, 0.0, 0.0, 0.597783133294766, 0.0, 0.0, 0.6329135233850276, 0.0, 0.002597015658553236, 0.2174699638827603, 0.39061652165480276, 0.765918958416278, 0.0, 0.016481521625833693, 0.28751000269430316, 0.0, 0.1647131064041664, 0.0, 0.4521970394725687, 0.0, 0.0, 0.11039007420645473, 0.0, 0.0, 0.0, 0.902497226885166, 0.7436286750029288, 0.09842900387294973, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0017337381605838167, 0.0, 0.48184280820859876, 0.0, 0.0, 0.4182604044398821, 0.05413499724631636, 0.00395203096164986, 0.49703533424495255, 0.0, 0.0, 0.0, 0.43461516165530706, 0.0, 0.0, 0.2097986260899648, 0.0, 0.0, 0.0, 0.0032389406325184205, 0.11624028110212369, 0.0, 0.23514374437795085, 0.0, 0.013757851512121493, 0.0, 0.23992048040279412, 0.32911722925956555, 0.0, 0.18863648593265903, 0.5965040702112832, 0.0, 0.0, 0.006607346447861224, 0.005821424904675781, 0.2242736217811627, 0.0, 0.0, 0.02743682303358625, 0.03021510122691055, 0.4109976396191596, 0.016694351333046, 0.0, 0.0, 0.15588266372439724, 0.0, 0.7589538506473881, 0.0, 0.0, 0.9157838182946224, 0.07079903450052254, 0.0, 0.0, 0.0, 0.8133345120890082, 0.19376473666562866, 0.0, 0.0, 0.24554349589597185, 0.2326206471524158, 0.5829196459370383, 0.0, 0.344078222468009, 0.0, 0.5927124546739914, 0.21206748875282805, 0.5013588717575729, 0.1507046170639337, 0.0, 0.2922067750640437, 0.9112630304460252, 0.0, 0.42296978570223137, 0.0, 0.0, 0.0, 0.0, 0.47847449991115903, 0.0, 0.0, 0.0, 0.0, 0.02922391861250235, 0.003575617433634187, 0.0, 0.0, 0.18000379265062824, 0.0, 0.0, 0.0, 0.020223410318598516, 0.0, 0.0, 0.0, 0.0, 0.1194607408090099, 0.0, 0.18567470153771173, 0.015493204406064897, 0.0, 0.0, 0.22675090423473912, 0.0, 0.6338841242698132, 0.5245326238847832, 0.0019166419799919094, 0.6594541233567529, 0.0, 0.005139571264149575, 0.0, 0.0, 0.0, 0.014894820580065271, 0.0, 1.2034959876942206, 0.0, 0.25665804266856174, 0.012594729973842587, 0.0, 0.011446343678364038, 0.0, 0.0, 0.02279435489937408, 0.025102532455875536, 0.0, 0.0, 0.0, 0.0, 0.1307674017372415, 0.5572422675871412, 0.20860522647402835, 0.3439153754178085, 0.0, 0.7682359770495442, 0.05881943098741484, 0.0, 0.0, 0.7560476592821442, 0.06967644285195858, 0.0, 0.04321641535911349, 0.0, 0.0, 0.0, 0.8024673537053417, 0.0, 0.0, 0.0, 0.0, 0.1761844509232577, 0.8168042507595197, 0.0, 0.0, 0.0, 0.5887168313525647, 0.0, 0.0, 0.4050160345946778, 0.0, 0.28424121144843517, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04314478705768561, 0.17729851568072083, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06445720856859194, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10331544984256105, 0.2490312779322865, 0.0, 0.24280852181294071, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5198374016631779, 0.0, 0.0, 0.0, 0.13645064069986682, 0.0, 0.24758012015088376, 0.5314044104438821, 0.0, 0.0, 0.3110470576055099, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02359980206981429, 0.36163373919282166, 0.0, 0.0, 0.4835792742792758, 0.0, 0.3524294596638372, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27655502261887766, 0.0, 0.0, 0.0, 0.0, 0.22117286156450722, 0.0, 0.15521963759663626, 0.0, 0.0, 0.0, 0.0, 0.021723812939992326, 0.02392358642299197, 0.0, 0.9811990708246294, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4965569454339231, 0.08530918757868192, 0.0, 0.07823884141505981, 0.08129763345109173, 0.8580687524263778, 0.6125638634435169, 0.7792197114170356, 0.17406349022985984, 0.0, 0.7428281837408045, 0.0, 0.07932414385265583, 0.46154167819945197, 0.0, 0.5289001614381607, 0.0, 0.8287876866571131, 0.1679099089089469, 0.695722986230781, 0.0, 0.010707260605614142, 0.014687966352699852, 0.03846916856579124, 0.6678999803007167, 0.8946423775406338, 0.0, 0.0, 0.6928842432378984, 0.0, 0.8291172549334254, 0.0, 0.036214437271524916, 0.0, 0.6493274982169268, 0.0, 0.0, 0.0, 0.0, 0.022863259627981244, 0.7335275809594394, 0.03647235770741211, 0.0, 0.287070580153256, 0.13431771500769504, 0.14856735628547443, 0.15781940486580828, 0.0, 0.0, 0.323980207489089, 0.0, 0.02667757509153305, 0.33154611696012287, 0.008340998981572286, 0.0, 0.1964137723963185, 0.0, 0.18369526317696738, 0.0, 0.36991237719570497, 0.0, 0.0, 0.060663484669780686, 0.0, 0.0, 0.10293074255327075, 0.9555336304557553, 0.0, 0.2500171656161189, 0.5342857393564834, 0.17546263843294155, 0.0, 0.35442104566615373, 0.0, 0.0, 0.0, 0.0, 0.17621149415330922, 0.6121951999020001, 0.14104370661074167, 0.0, 0.03700642443953683, 0.5101360635898259, 0.0, 0.0, 0.398419677876043, 0.0, 0.0, 0.0, 0.23862742072997933, 0.0, 0.06314351493041778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32025466250143747, 0.0, 0.0, 0.0, 0.25412006584310015, 0.0, 0.2693181789862389, 0.0, 0.2858641430477511, 0.0, 0.12448957171647013, 0.0, 0.6764603455612473, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.007629531631679027, 0.008402105093687509, 0.1478058101242069, 0.005053168588900645, 0.0, 0.30372648283729076, 0.003980754378397801, 0.0, 0.0, 0.0, 0.0, 0.07450559902388645, 0.019687537166852037, 0.0, 0.08244653582028545, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16209616805705127, 0.0, 0.08979346385777931, 0.06518743281502334, 0.21315534710850095, 0.08369413937188341, 0.1394160455900761, 0.5610626715103558, 0.0, 0.0, 0.13968567626607642, 0.0, 0.0, 0.0, 0.0, 0.01924679403964147, 0.0, 0.0, 0.0, 0.0, 0.616722369104707, 0.0, 0.0, 0.5466375681050827, 0.0, 0.0, 0.013987945284851467, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09368066064257337, 0.0, 0.24818473838609467, 0.04865531902212218, 0.0, 0.009894965642192768, 0.0, 0.45825677816644195, 0.7857899124906229, 0.25281208870305677, 0.0, 0.8251354193653254, 0.0, 0.6275782447904167, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7597076021322064, 0.4559884064545227, 0.3430656338577527, 0.32001374263313714, 0.2977084759378876, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26332513624077, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07361684952632414, 0.0, 0.0, 0.0, 0.5420044017413929, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5785225932672249, 0.0, 0.0, 0.0, 0.6899231282082093, 0.33897374575165645, 0.4841896839083132, 0.0, 0.0, 0.0, 0.0, 0.6240541831707288, 0.0, 0.0, 0.5531361892215293, 0.4547991804243185, 0.0, 0.100152739355421, 0.0, 0.2440837061302026, 0.0, 0.0, 0.0, 0.0, 0.12076927556310874, 0.0, 0.0, 0.3415398112751411, 0.0, 0.0, 0.0, 0.010012600500133058, 0.0, 0.10122097549537463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6350391173534848, 0.0, 0.0, 0.5362493708751273, 0.3870491592555651, 0.0, 0.0, 0.011769944241680865, 0.3142045963597273, 0.0, 0.30124773979598957, 0.0, 0.3235765421156834, 0.0, 0.541761414379215, 0.0, 0.0, 0.8318031269227326, 0.0, 0.0, 0.0, 0.0, 0.0, 0.655176286023573, 0.0, 0.0, 0.12998028512957016, 0.09284961824757046, 0.5535451825358659, 0.6996061073192734, 0.06205996989121698, 0.0, 0.0, 0.0, 0.008692259029504977, 0.0, 0.08787316923443415, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5512977874061133, 0.0, 0.06274188232221303, 0.0860678272807259, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7913396090809787, 0.26152280681975265, 0.0, 0.0, 0.0, 0.0, 0.0, 0.028664478181671504, 0.0009799779903315728, 0.0032348889210802386, 0.0, 0.11837934340514084, 0.4864662292788164, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07382213914734657, 0.0, 0.0, 0.0, 0.17685571185867954, 0.2510513607906149, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0019118999997271302, 0.0, 0.04133793381575315, 0.2834737624180827, 0.6832843821792778, 0.0, 0.6662105748014928, 0.0, 0.5326269406399959, 0.0, 0.0, 0.0, 0.0, 0.10672810444069859, 0.0, 0.07123750254807154, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.007981914293001519, 0.10075857550012479, 0.009540391703188681, 0.0, 0.11580721042791553, 0.0, 0.0, 0.17856228523566461, 0.00048020843909893406, 0.0, 0.197593765283525, 0.0, 0.0, 0.0, 0.6194557197663932, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21520162666608084, 0.1562300971282056, 0.0, 0.0592523063663964, 0.0, 0.18612758103797813, 0.0, 0.2544272402257203, 0.15422821911002763, 0.0012917517157272594, 0.0, 0.0, 0.14907655404346837, 0.09429642888622711, 0.0, 0.0, 0.0, 0.0, 0.09600808583182174, 0.0, 0.005856583784053075, 0.08156012032053195, 0.09312148266647201, 0.0322184865015818, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03641255600507808, 0.0, 0.09646644914865622, 0.6107192924560144, 0.0, 0.0008311989920553221, 0.04768463204338608, 0.008402889219987731, 0.30542717141970227, 0.09826504505325136, 0.08476742117805344, 0.35700707759139916, 0.0, 0.052717960159591244, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29528928831604634, 0.0, 0.18118798681716172, 0.047489656233823854, 0.07375616702811215, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15842644268884615, 0.005416265593171256, 0.0, 0.0, 0.0, 0.06326712126451656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22847169102573353, 0.0, 0.11955753824812076, 0.0, 0.0, 0.0, 0.08074664695989245, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0029119331378805115, 0.0, 0.0, 0.1953274033599059, 0.0, 0.0, 0.0, 0.48520999511490304, 0.0, 0.0, 0.0, 0.0, 0.13603276168063752, 0.0, 0.06155663979875702, 0.0, 0.0, 0.0, 0.19100951475155065, 0.0, 0.05054327834442013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21557595738397023, 0.0, 0.0, 0.2988625665604049, 0.02775823823873608, 0.0, 0.5414732387378444, 0.0, 0.1751125450084881, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7653173403797493, 0.011610920930129028, 0.0, 0.6690009447860032, 0.007717112212206315, 0.0, 0.0, 0.0, 0.0, 0.0949800986519104, 0.0, 0.01759104522847652, 0.0272063292239745, 0.0, 0.18672851022958098, 0.14592398686801408, 0.0, 0.0, 0.06111532732066789, 0.0, 0.012109927581814974, 0.0, 0.3464253043638218, 0.014416979955844242, 0.0, 0.0, 0.004751074128394563, 0.0814923248235591, 0.960719872887566, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029410227635468144, 0.3902617128196832, 0.0, 0.0, 0.0, 0.0, 0.03936155946785215, 0.0, 0.0, 0.0, 0.0, 0.03226521554976169, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029868187491618223, 0.0, 0.007848954300217155, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02618395857766568, 0.0, 0.0, 0.0, 0.02729344001455739, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16043383601301778, 0.0, 0.08114240967089056, 0.0, 0.12944151616666955, 0.0, 0.0, 0.8424042898437758, 0.0, 0.0, 0.0, 0.0, 0.04323489183997365, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2997198089695268, 0.0, 0.0, 0.09877179787471602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.36530436236505814, 0.0, 0.0, 0.0, 0.0, 0.6114198560066337, 0.538693529249165, 0.0, 0.0, 0.0, 0.014312907460573414, 0.015762245768879076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03693357747227013, 0.0, 0.0, 0.5249268945825, 0.0, 0.0, 0.16471382065012125, 0.0, 0.0, 0.0, 0.304090416701445, 0.48915218766248414, 0.0, 0.020376509279081044, 0.0, 0.11062878301178729, 0.26154278602954106, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1338990979320024, 0.0, 0.12169019076516314, 0.0, 0.0, 0.0, 0.5524220216872981, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13426647560262422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05161008110067911, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.007893769925822126, 0.008693100403012733, 0.0, 1.169538837435482, 0.0, 0.5817658012805581, 0.3172103076471354, 0.0, 0.22838627747698767, 0.0, 0.10226945824142554, 0.0, 0.020369387834492953, 0.0, 0.20675490808600527, 0.48677742001957014, 0.6262431249386917, 0.151645446757169, 0.20817481578766972, 0.0, 0.0, 0.0668476153746235, 0.5758263086091524, 0.4536026680375212, 0.09887690089373365, 0.018895630454912823, 0.0, 0.06101333098633492, 0.38664812220872247, 0.0, 0.0, 0.7304510924229297, 0.030046419431745734, 0.0, 1.1003509629444073, 0.5194953755737197, 1.1578838988668234, 0.48875095960339066, 0.0, 0.1128462605244655, 0.0, 0.0, 0.0, 0.4791947947301635, 0.0, 0.03259627779739397, 0.10028189990101041, 0.029465846845003113, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22859113464308234, 0.0, 0.11646855789532944, 0.12693945289885786, 0.0, 0.0, 0.20330790896109577, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1873449680464739, 0.0, 0.0, 0.06173899342973636, 0.0, 0.0, 0.04476882030066193, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04375496463125991, 0.38217838780949126, 0.336719559414533, 0.04092456729054698, 0.0, 0.04229882731958149, 0.0, 0.0, 0.0, 0.1452994629839798, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0184335582446928, 0.0, 0.0, 0.0, 0.057199110071214684, 0.0, 0.14103517741623545, 0.03340505872611428, 0.0, 0.0, 0.0, 0.05811339385405451, 0.0, 0.0, 0.0, 0.0, 0.044222795803071285, 0.0, 0.06455569991448866, 0.0, 0.0, 0.05037647535437417, 0.008312394942553907, 0.0, 0.1621478774157853, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005416039933812771, 0.0, 0.0, 0.0, 0.0398756195493532, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05075809733341722, 0.0, 0.03562215281502755, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19049409924372604, 0.0, 0.0, 0.20255925674743036, 0.0, 0.0, 0.0, 0.0, 0.11222926185446927, 0.0, 0.22599925727813394, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18212734324380878, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21653477423901774, 0.0, 0.0, 0.008644589577152558, 0.009519948749861491, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.022306831770080617, 0.0, 0.0, 0.003074570476841778, 0.0, 0.008145346800616094, 0.0, 0.0, 0.0, 0.08511345922427967, 0.18366197461769765, 0.025789383308915437, 0.008297215015175531, 0.0, 0.09184984081220632, 0.0668166427534811, 0.15796441417080423, 0.0, 0.0, 0.0, 0.0, 0.0, 0.024933369902885204, 0.0, 0.011259308615493588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02160071316022016, 0.0, 0.0, 0.0, 0.1015273549658925, 0.0, 0.3722773110385471, 0.0, 0.0, 0.0, 0.005704132382790829, 0.576786252698806, 0.6048982987919145, 0.3404333765031976, 0.0, 0.1776491403162125, 0.3619951063590594, 0.0, 0.0, 0.0, 0.0, 0.20056572202110787, 0.0, 0.4038849000985208, 0.0, 0.07292911426252524, 0.0, 0.0, 0.0, 0.0, 0.3254810866068793, 0.0, 0.0, 0.0, 0.0486152336987337, 0.0, 0.38697085430573647, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7532037777522111, 0.0, 0.0, 0.2947709821219489, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008564738540478935, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2647016620516834, 0.0, 0.0, 0.5486174586047213, 0.0, 0.0, 0.0, 0.0, 0.0]), 42), 42)),) julia> @finch_code begin Ct .= 0 for i = parallel(_) @@ -246,7 +246,7 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.1187145765025676, 0.0, 0.16555522612551515, 0.0, 0.0, 0.0, 0.0, 0.43509113842452285, 0.0, 0.0, 0.25672403787937165, 0.43862663884873543, 0.0, 0.0, 0.3519631419607619, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051120283482812334, 0.15945060967882835, 0.42044865267857073, 0.0, 0.019744477387695688, 0.0, 0.0, 0.0, 0.12726604148160792, 0.4480285054137333, 0.0, 0.41393771366257825, 0.0, 0.0, 0.1372243591915985, 0.12863434970716192, 0.0, 0.019238858430486484, 0.0, 0.2371659747040811, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.39682924637787165, 0.0, 0.8480118921637517, 0.0, 0.0, 0.0195483866997798, 0.0, 0.5990836331247341, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2618925497434801, 0.26117339231230247, 0.0, 0.0, 0.16216152735698644, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06997554550840408, 0.0, 0.0, 0.002400768013297612, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.4157511852632345, 0.5793963874059174, 0.0, 0.26436870752857605, 0.4172786501470117, 0.0, 0.0, 0.8079649846339338, 0.0, 0.0, 0.5764550461815096, 0.4229367652966696, 0.05379340446506314, 0.0, 0.0, 0.5795406808621261, 0.5877094760316834, 0.0, 0.0, 0.0, 0.0, 0.284387943824113, 0.0, 0.0, 0.0, 0.035174745039109515, 0.0, 0.0, 0.011970205674471077, 0.0, 0.0, 0.0, 0.0, 0.5436476197350472, 0.920039513761917, 0.0, 0.6198132723204128, 0.16799442509225773, 0.5753026732101696, 0.2043616977009669, 0.5065806869454675, 0.0, 0.0, 0.39160092945826996, 0.0, 0.11054447981865345, 0.0, 0.0, 0.9189729667337664, 0.0, 0.0, 0.6507053761422986, 0.6970188689802168, 0.0, 0.08297492397617155, 0.9062181287136433, 0.0, 0.059530976608982995, 0.012438951345378766, 0.0, 0.0, 0.0, 0.0, 0.2533819740366263, 0.9473531228336374, 0.06450793068804792, 0.0, 0.41573543153630554, 0.0, 0.0, 0.0, 0.7238062468593162, 0.0, 0.0, 0.3590904912393951, 0.07774042001084827, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6251886494903025, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44684741712517223, 0.0, 0.0, 0.0, 0.0, 0.010812740091707317, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8163131959379999, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2672156592426391, 0.0, 0.028807779838791864, 0.0, 0.0, 0.0, 0.025506753620224757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.022871104613233297, 0.0, 0.6057451127777128, 0.0, 0.0, 0.05122083512724408, 0.0, 0.0, 0.26967234588040656, 0.0, 0.0, 0.6655341287456478, 0.0, 0.41411417571013454, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29998038732284904, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06750566800337324, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3426210978919867, 0.3800174489235809, 0.0, 0.6531468239127369, 1.5341196475571879, 0.0, 0.0, 0.5993450019914057, 0.0, 0.0, 0.318944682359523, 0.0, 0.0, 0.0, 1.2766961856974943, 0.0, 0.47028907930153113, 0.46890260973852405, 0.0, 0.2635141940642454, 0.0, 0.06844040704623247, 0.6776383700271937, 0.08344450181255293, 0.0, 0.0, 0.13135428676134797, 0.1357944044209692, 0.0, 0.0, 0.0, 0.38624172924075223, 0.0, 0.0, 0.0, 0.23564395924169773, 0.0, 0.7014291092208349, 0.11139739784790205, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008393202836106917, 0.0, 0.22229541093446364, 0.2882110765245937, 0.0, 0.2931292388749959, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24423669216579333, 0.0, 0.07507242489058646, 0.0, 0.0, 0.14176191313790465, 0.0, 0.0, 0.0, 0.054753508738442806, 0.11008634170637227, 0.0, 0.0, 0.0, 0.0, 0.0, 0.024773126340884036, 0.0, 0.0, 0.38053755501306186, 0.0, 0.6713587667580375, 0.05335137428594376, 0.0, 0.0, 0.009224220899634665, 0.0, 0.07390888522469428, 0.1992308489896435, 0.12678608744717204, 0.0, 0.0546923223511062, 0.11313411705958114, 0.0, 0.0, 0.0, 0.0, 0.05169899432402749, 0.019742405777142896, 0.1769782400741126, 0.0, 0.0, 0.09297789149141053, 0.028906196325416873, 0.0, 0.0, 0.012919011582055164, 0.0, 0.0, 0.3208972845059436, 0.0, 0.0, 0.0046103209297173, 0.0, 0.0, 0.00416876885269193, 0.0729081194704697, 0.0, 0.0, 0.0, 0.07125538498910843, 0.0, 0.0, 0.03513444799266689, 0.0, 0.07540438323786366, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04369081060273281, 0.0, 0.0, 0.0, 0.014769980988042226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.017283118828420634, 0.006620940647292606, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006092931164902776, 0.0, 0.16137232276465496, 0.0, 0.15262637216887753, 0.013645384773351038, 0.16271613196948126, 0.0, 0.0, 0.0, 0.0, 0.17730029672438757, 0.41874765425641397, 0.054497803302564006, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10045113292307115, 0.27028417756519546, 0.07991567883089672, 0.0, 0.0, 0.0, 0.0, 0.0, 0.01798371330728596, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5859834957136911, 0.5086687281653502, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07646258969830243, 0.0, 0.0, 0.02773130153308066, 0.07708391588594585, 0.0, 0.0, 0.06185373806995992, 0.0, 0.0, 0.033137714842779345, 0.0, 0.0, 0.0, 0.0, 0.028021730318764978, 0.07388933025705045, 0.0, 0.021389015345232583, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046371970770837774, 0.04025364462832554, 0.2181921153062336, 0.4335185189335439, 0.0, 0.0, 1.0038009425423415, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4280152293034966, 0.0, 0.08414972142221414, 0.0, 0.3712598089597713, 0.0, 0.06370844553850769, 0.0, 0.0, 0.0, 0.0, 0.5083497561860121, 0.0, 0.0, 0.0, 0.17350738400022994, 0.0, 0.0, 0.0, 0.0, 0.5680638629882098, 0.4512837677833129, 0.036928112404588626, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6736518032785722, 0.0, 0.0, 0.0, 0.0, 0.3438277430889845, 0.1331574579932683, 0.8185600695730958, 0.0, 0.0, 0.017261448593960855, 0.0, 0.5289976863810653, 0.0, 0.0, 0.0, 0.0, 0.13826565194431473, 0.0, 0.12839377709982103, 0.8277070113616852, 0.0, 0.0, 0.3904546499995126, 0.08179569775458351, 0.0, 0.0, 0.0, 0.0, 0.16848803520369499, 0.0, 0.0, 0.005780600674157121, 0.0, 0.0, 0.0, 0.0, 0.042429105563066505, 0.0, 0.0, 0.5671026868317051, 0.5831842436077501, 0.0, 0.0, 0.5203885995071309, 0.0, 0.0, 0.0, 0.0, 0.03279957809056344, 0.20563143706052323, 0.8140555730584957, 0.0, 0.11735707443596549, 0.0, 0.0, 0.0, 0.0, 0.05942421719401875, 0.13531075914415133, 0.0, 0.22862377269710113, 0.0, 0.0, 0.0, 0.0, 0.009783289930470927, 0.0, 0.49666013194599, 0.01297478801242045, 0.004970474495620279, 0.0, 0.0, 0.0, 0.0, 0.18702095525297172, 0.0, 0.0, 0.49027730046536305, 0.0, 0.0, 0.0, 0.3100811795242501, 0.0, 0.5172830310180929, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5147075854808417, 0.0, 0.23506445593598685, 0.0, 0.0, 0.0984177418166802, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6597667532607603, 0.0, 0.7531258126074596, 0.0, 0.0, 0.0, 0.0, 0.009060495116628974, 0.0, 0.14938403565323904, 0.23931891774764502, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17320374473408556, 0.0, 0.0, 0.8859260157921318, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2593451028242532, 0.13535058061487634, 0.0, 0.17876385946442425, 0.5885021691653141, 0.4462993508157936, 0.0, 0.38646137613385273, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08841279830908562, 0.0, 0.0, 0.4090685041141252, 0.2385779614705672, 0.0, 0.32657075289021537, 0.0, 0.3891842232348578, 0.46695749861500585, 0.0, 0.20033954304824086, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6140772326336235, 0.21962331732895995, 0.0, 0.0, 0.21665980127772702, 0.0, 0.10259951624992725, 0.0040997688735825025, 0.0, 0.0, 0.0178257297768441, 0.0025383566681682393, 0.21683531480545457, 0.0, 0.027677402398657985, 0.0, 0.1880826476230884, 0.3419147609793875, 0.03227511522566195, 0.19053492425855037, 0.0, 0.06432217258278244, 0.0026780235214896283, 0.0, 0.0, 0.464125489835237, 0.09967606965443436, 0.0, 0.0, 0.0, 0.011788389508631971, 0.03206041622309702, 0.0, 0.0060682844433003185, 0.0, 0.0, 0.0, 0.010791956772858862, 0.0, 0.0, 0.0, 0.0, 0.4329905527364345, 0.14376890418721155, 0.6930376581272882, 0.0, 0.611818052941564, 0.6291676211651914, 0.0, 0.0, 0.5614206159067703, 0.48216800990329456, 0.0, 0.0, 0.4507229848159907, 0.0, 0.0, 0.8782428778065052, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06410974538727675, 0.23291225157991716, 0.08679043179604816, 0.0, 0.0, 0.08995902157278039, 0.8808378297797503, 0.0, 0.0, 0.0, 0.3618017482397369, 0.07709259450646033, 0.0, 0.22347789493902354, 0.0, 1.4151156566032244, 0.0, 0.0, 0.0876553401034732, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.35023812146064465, 0.10119869206094158, 0.0, 0.0, 0.0, 0.03421091843192662, 0.0, 0.18934530571059222, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.040031965441735276, 0.015335731346610126, 0.0, 0.0, 0.0, 0.0, 0.5012279391934354, 0.14361151525658541, 0.0, 0.05781748261134272, 0.17152855777668224, 0.0, 0.498484457540378, 0.0, 0.0, 0.7074889608036871, 0.0, 0.0, 0.0, 0.0, 0.0, 0.36413161255211174, 0.10650975776468122, 0.0027919607805886224, 0.1717164070699339, 0.0, 0.0, 0.0, 0.31636490805397033, 0.0, 0.0, 0.0, 0.3781004501122092, 0.1664160983543511, 0.0, 0.10894483484211534, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06899783350353156, 0.1313910038295779, 0.5458205926873976, 0.0, 0.2058361256028114, 0.0983057734206431, 0.006586106310131405, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13715236217863272, 0.026867165999227966, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0035515304259612105, 0.0, 0.0, 0.5329776529167246, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.397719517913955, 0.20668056810136554, 0.1307286941015916, 0.0, 0.19979734260211207, 0.13509882393613562, 0.0, 0.0, 0.0, 0.4428910220796438, 0.0, 0.10971922982381796, 0.20405686697329703, 0.0, 0.0, 0.0, 0.4155385933508652, 0.0, 0.030373091671251427, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02870549966274466, 0.0, 2.221236796150802e-5, 0.04518680503118196, 0.8557997812159583, 0.0, 0.0, 0.0, 0.33295230926411423, 0.0, 0.0, 0.1651823382455281, 0.0, 0.0, 0.10987547938954217, 0.038321493889877094, 0.0, 0.0, 0.9167265220224268, 0.0, 0.41223669995910156, 0.0062879102301798264, 0.006460790579658201, 0.0, 0.015093288171720337, 0.004653032070207847, 0.0, 0.0, 0.21192982566516394, 0.0, 0.5265530542756913, 0.004398370159579225, 0.3103332077675556, 0.0, 0.0, 0.21886457786346297, 0.058793164358353744, 0.24052003353974485, 0.5039916994286584, 0.08865805888962155, 0.0, 1.2109591957845456, 0.0, 0.4576423956337198, 0.13738787883657938, 0.3665641879979031, 0.00039223002823340837, 0.0, 0.6257753572135888, 0.0, 1.0620388990418166, 0.04837586177991647, 0.05564954721706949, 0.23699310888410263, 0.0060621596830514254, 1.2406804285104875, 0.0, 0.6055788924273563, 0.1024025590217045, 0.41360202805293217, 0.5476995216716073, 0.17831079467145505, 0.0, 0.0, 0.0, 0.14728996725917032, 0.19581503373322434, 0.10219463649126194, 0.0, 0.0, 1.213270546019433, 0.06327342954871182, 0.0, 0.0, 0.34855390390603164, 0.0, 0.0, 0.2854684709047343, 0.28462687503630496, 0.0, 0.0, 0.0, 0.06675489490570531, 0.4113308129658067, 0.0, 0.049609846106367136, 0.0, 0.0, 0.0, 0.0, 0.2938483162830928, 0.35256998241930354, 0.0, 0.15126367898557985, 0.0, 0.0, 0.1430373863296425, 0.0, 0.11979050068949273, 0.0, 0.0, 0.0, 0.2174719417996252, 0.18492143615091797, 0.5613745989840638, 0.0, 0.1269084936189851, 0.13050728832210684, 0.0, 0.008090983120695843, 0.11645462945856581, 0.45646266655488743, 0.0, 0.0, 0.018120109170533364, 0.0, 0.0, 0.18217259219167142, 0.0, 0.0, 0.23544229686275722, 0.0, 0.072369241454098, 0.0, 0.013298187548207349, 0.0, 0.15536962738337737, 0.0, 0.0, 0.0, 0.5485281455413065, 0.0, 0.0, 0.0, 0.07504798957314487, 0.13800884999205565, 0.023881103672210243, 0.4000634234277266, 0.0, 0.63983454521553, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1274757935226854, 0.0, 0.060340389443721644, 0.0, 0.0, 0.0, 0.0, 0.046886662511488715, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4105919579209241, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17717763704599515, 0.0, 0.0, 0.006078729370399735, 0.0, 0.0, 0.0, 0.4419304781486809, 0.004498905638339938, 0.0, 0.0, 0.06013187036225827, 0.061837053761552255, 0.158000195476362, 0.08245930986204707, 0.055178613203866224, 0.0, 0.3921588247960043, 0.051054375379452996, 0.0, 0.3113852203955569, 0.0, 0.08631714383210826, 0.016249403505819805, 0.0, 0.5064243516388502, 0.0, 0.0799687272151233, 0.0, 0.06016447367008715, 0.0, 0.0, 0.12723000596711698, 0.0, 0.0, 0.0, 0.0, 0.3344116617465516, 0.28448339782348236, 0.03555929040895464, 0.12972821265302345, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05771825347353467, 0.0, 0.06101920493228206, 0.0, 0.1422424089220273, 0.0, 0.0, 0.0850349690926388, 0.0, 0.6465489235087094, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9592391331341867, 0.0, 0.0, 0.0, 0.07533170200640231, 0.3935757364788316, 0.41733426606664215, 0.0, 0.0, 0.0, 0.0, 0.8096836326115127, 0.0, 0.0, 0.15672712010482948, 0.08471008784973191, 0.0, 0.0, 0.021315681001762884, 0.0, 0.0, 0.0, 0.6515686149424397, 0.0, 0.04354065349809789, 0.5887361460115157, 0.0, 0.3314629690186724, 0.08254082170798169, 0.0, 0.5363022284331493, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20539826744479112, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20437563182844645, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08512737043917705, 0.0, 0.0, 0.0, 0.21221590140088104, 0.0, 0.5922163084848736, 0.0, 0.054946173604955253, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11912480847073124, 0.10340745987043, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22405559305996067, 0.04389088686607588, 0.0, 0.8369237022137216, 0.0, 0.0, 0.303533841030579, 0.8437244477194209, 0.0, 0.0, 0.6770220530788269, 0.0, 0.08868596150524616, 0.0, 0.0, 0.0, 0.005801870585523199, 0.0, 0.3067127385215406, 1.9980597464483445, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1818471988215991, 0.0, 0.0, 0.0, 0.0, 0.09250846502860006, 0.0, 0.0, 0.0, 0.14804755431292183, 0.0, 0.3797383608658618, 0.39017892030987883, 0.0, 0.035065009177551926, 0.28100508860898343, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2656255916096575, 0.01029999428072384, 0.026319871200300066, 0.0, 0.0, 0.35174701729018143, 0.019026589888644814, 0.0, 0.0, 0.0, 0.0, 0.10260912587786382, 0.0, 0.0204467738415142, 0.0, 0.023687486390763176, 0.0, 0.0, 0.002174927201126577, 0.0, 0.09114373059640297, 0.0, 0.2642096712527522, 0.3907643461384895, 0.0, 0.0, 0.18051818330232947, 0.0, 0.3874221185422575, 0.6531078672631825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15551832566217896, 0.0, 0.1916820827839075, 0.0, 0.0, 0.08276135601321193, 0.0, 0.10030127909330487, 0.0, 0.0, 0.0, 0.10537887040654752, 0.0, 0.17805025311577488, 0.0, 0.010472659941918684, 0.0, 0.0, 0.007619143135798, 0.0, 0.12561988447587705, 0.0, 0.0, 0.7794014171836517, 0.0, 0.08402510727068294, 0.0, 0.3682135686649267, 0.08647369259665981, 0.09410614716697653, 0.611021014238459, 0.0, 0.0, 0.023955493193970948, 0.0, 0.0, 0.007434430348560844, 0.0, 0.0, 0.0, 0.24285369100807747, 0.0, 0.0, 0.0051185021691807515, 0.0, 0.0015127483220163092, 0.0, 0.0, 0.06096785123225053, 0.014193124550026902, 0.5775319451121608, 0.0, 0.0, 0.0, 0.007997400222196374, 0.6747251647940697, 0.0, 0.0, 0.0, 0.0, 0.7027693457851822, 0.0, 0.0, 0.055434654145900264, 0.0, 0.0, 0.0, 0.02587284155878174, 0.0, 0.42673143134824615, 0.004724246163513554, 0.4406790171730267, 0.0, 1.0342538585019783, 0.5747154140513469, 0.0, 0.9363482803339344, 0.7135280098555865, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9563104993907826, 0.0, 0.0, 0.0, 0.8295023845011231, 0.10509888461130146, 0.2471322355632557, 0.3801044173906537, 0.0, 0.0, 0.0, 0.1514367226333477, 0.0, 0.0, 0.0, 0.24534157695942965, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.052661051195310594, 0.6550399256456869, 0.5803102488724085, 0.0, 0.5319072548222628, 0.46172731619827034, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.026741428574906606, 0.0, 0.7082513040743756, 0.0, 0.0, 0.4418255985655133, 0.1449878921305842, 0.3039326972841545, 0.0, 0.0, 0.0, 1.198252644211342, 0.44500849169967277, 0.23918686672510267, 0.0, 0.0, 0.19736692078049992, 0.0, 0.0, 0.0, 0.0762301466058952, 0.3507440605568865, 0.4669973871873196, 0.0, 0.06417785026076955, 0.0, 0.0, 0.07892920039677795, 0.20151756987027533, 0.0, 0.5298004507120764, 0.006913800133275409, 0.0, 0.0742780358218034, 0.0, 0.6026732223863505, 0.0, 0.0, 0.5351202277676342, 0.0, 0.0, 0.9548891902757952, 0.02916984862304253, 0.0, 0.4970347785792808, 0.12683003730681902, 0.0180604034141702, 0.0, 0.2650052427173023, 0.0, 0.033791924886614616, 0.0, 0.04181580147667587, 0.0, 0.4621910495164758, 0.0, 0.0, 0.0190541328400638, 0.0, 0.17864673433347314, 0.014160348828667728, 0.8165447001064132, 0.09368415058058097, 0.9079968531646069, 0.08687864486537158, 0.19492858047186096, 0.10063554575175, 0.0, 0.09210666608746948, 0.01874477292287561, 0.03748966025771319, 0.0, 0.5779501492966836, 0.0012862204434733993, 0.220963909203652, 0.3086404911712966, 0.17631145912557372, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032159896791554, 0.0, 0.1846953640258127, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07139034913327573, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37871083555251084, 0.0, 0.0, 0.0, 0.0, 0.19265602282403793, 0.0, 0.0, 0.606424267788203, 0.011600938808477314, 0.0, 0.63655122023184, 0.8091094673344561, 0.15945386155042648, 0.21681046587583439, 0.5841977471111124, 0.14228431684797266, 0.0, 0.4919831840901785, 0.07005765326837811, 0.0, 0.4452652454663618, 0.0, 0.2225785522561698, 0.0, 0.0, 0.565764962530824, 0.0, 0.0, 0.0, 0.09016013522690633, 0.0, 0.0, 0.054929050345560504, 0.0, 0.0, 0.0397070718161962, 0.0, 0.3253549491861982, 0.39037279561642807, 0.09169366625332782, 0.16748228205826332, 0.0, 0.0, 0.6136975564576865, 0.0, 0.0, 0.3026006369046373, 0.0, 0.649431418360159, 0.08211939816658421, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8259750138040276, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5145740577075524, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.45723140022915015, 0.0, 0.0, 0.9202097992461084, 0.168004673879535, 0.0, 0.0, 0.1251531867765232, 0.0, 0.2137981131137785, 0.0, 0.013898368242301713, 0.0, 0.0, 0.7137867360685719, 0.0, 0.0, 0.1000729174155476, 0.0, 0.0, 0.03483089759667312, 0.12636252602014256, 0.0, 0.6417666786106352, 0.47874755782682904, 0.0, 0.0, 0.42719736321019475, 0.0, 0.269711179183823, 0.0, 0.0, 0.0, 0.0, 0.668274429237161, 0.0, 0.0, 0.19736413928693208, 0.0, 0.64140191275638, 0.0, 0.04878252313782071, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7804894714968978, 0.1354649020531392, 0.7521947991243342, 0.061565240681645095, 0.7064549771516211, 0.0, 0.0, 0.0, 0.1369213608036062, 0.598180503319145, 0.0, 0.4894142513129519, 0.14663698801711797, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14418506746458087, 0.027360830334206502, 0.0, 0.0, 0.11896445459410832, 0.016940356460817766, 0.08867849541915622, 0.0, 0.0, 0.0, 0.0, 0.014527597186767355, 0.0, 0.0, 0.0, 0.0, 0.017872458048705516, 0.09208038488681886, 0.0, 0.01328217046242409, 0.0, 0.0, 0.0, 0.0, 0.07867275819804301, 0.09439445944634833, 0.0, 0.040498210068061674, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.5786578146202624, 0.0, 0.3202961159483594, 0.3207279869105304, 0.5035217854841559, 0.0, 0.013671076975665627, 0.01669925591794789, 0.0, 0.0, 0.0, 0.5652457771225854, 0.0, 0.09766762955114001, 0.2831455624824939, 0.0, 1.0556185392068085, 0.2068017763866623, 0.0, 0.15942131380345745, 0.005607444973383372, 0.0, 0.056687675717707615, 0.2535497922885842, 0.4637407985590488, 0.22387274550179712, 0.5454655738973408, 0.08490666489615803, 0.3556465582001688, 0.0, 0.0, 0.31186727366054, 0.6972638697010188, 0.0, 0.0, 0.009518501694028625, 0.0, 0.5833334701399113, 0.6244214908493986, 0.0, 0.26168041250093527, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0131047746782154, 0.0, 0.6656645247350605, 0.0, 0.0, 0.0769882955934405, 0.0, 0.0, 0.34004774503974494, 0.08053504092577264, 0.006982581834800098, 0.5446249720805942, 0.0, 0.0, 0.31025177039320695, 0.2638902653915397, 0.0, 0.0, 0.0, 0.0, 0.2008136945182758, 0.0, 0.0, 0.19041992572397343, 0.05903622381609576, 0.0, 0.0589978949008293, 0.05133054295704808, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7141967536140789, 0.0, 0.11331087789790419, 0.0, 0.0, 0.13904571220904566, 0.16685503671570054, 0.0, 0.1461222249815685, 0.0, 0.0, 0.0, 0.1624667486179013, 0.0, 0.0, 0.0001466632220376543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.040061564188380784, 0.0, 0.0, 0.05925661356360367, 0.0, 0.20052213796576485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1322273764299389, 0.0, 0.07284319524978862, 0.0, 0.21698248889777863, 0.0, 0.22616177063294415, 0.0, 0.0, 0.0, 0.0, 0.52849490550171, 0.0, 0.71926878469886, 0.0, 0.6501927607213651, 0.0030355649865830615, 0.37799680598211977, 0.0, 0.0007078975665940506, 0.09351646752064424, 0.05681500695663011, 0.0, 0.20243859396970953, 0.0628704495708815, 0.001556209278473695, 0.0, 0.0, 0.0, 0.0, 0.0027171741525499, 0.0, 0.0, 0.0, 0.07038911039656341, 0.049709343960620045, 0.0, 0.018852918431012597, 0.26140762404567164, 0.049374687944063446, 0.0, 0.0, 0.5682508160039592, 0.08397693763382687, 0.0, 0.0, 1.1395457189674745, 0.10207861893624984, 0.006346754524020049, 0.07139718683099765, 0.0, 0.4257292397317542, 0.0, 0.0, 0.003459642976589088, 0.00011827788909935122, 0.29669071600135444, 0.0, 0.04645302583039929, 0.6403581026228157, 0.0, 0.0, 0.4035906657629842, 0.0, 0.0, 0.031770473502227184, 0.0, 0.10177861753458611, 0.08984803025006428, 0.2696383585775038, 0.0, 0.0, 0.0, 0.0, 0.4020058229022269, 0.8537152750348289, 0.27466570696380027, 0.0, 0.9014511503031993, 0.0, 0.0, 0.0, 0.3588364621034526, 0.0, 0.10358336916612662, 0.0, 0.8253783539224127, 0.003096290011755601, 0.3727209618097055, 0.0, 0.0, 0.0, 0.08512247762765326, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0016669318756259504, 0.0, 0.0, 0.9038241621401286, 0.23981242371494071, 0.0, 0.0, 0.0, 0.10303433366133424, 0.0, 0.0, 4.317142647672722e-5, 0.0, 0.07840647389573854, 0.0, 0.0, 0.0, 0.0, 0.36164895718336953, 0.011697025915496142, 0.0, 0.0, 0.0, 0.0, 0.001969151291048087, 0.0, 0.0016085698018090215, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8640055140280944, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10961290316901336, 0.0, 0.0, 0.0, 0.34012752342022284, 0.0, 0.09000159029348583, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.38387258660557405, 0.0, 0.0, 0.0, 0.04942864149427501, 0.0, 0.9641925530766522, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1618638919487994, 0.0, 0.0, 0.1434695556565637, 0.3651050198592113, 0.0, 0.04210320606021404, 0.5803955429188099, 0.0, 0.0, 0.36579879697476825, 0.4517875751113323, 0.0, 0.0, 0.0, 0.597783133294766, 0.0, 0.0, 0.6329135233850276, 0.0, 0.002597015658553236, 0.2174699638827603, 0.39061652165480276, 0.765918958416278, 0.0, 0.016481521625833693, 0.28751000269430316, 0.0, 0.1647131064041664, 0.0, 0.4521970394725687, 0.0, 0.0, 0.11039007420645473, 0.0, 0.0, 0.0, 0.902497226885166, 0.7436286750029288, 0.09842900387294973, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0017337381605838167, 0.0, 0.48184280820859876, 0.0, 0.0, 0.4182604044398821, 0.05413499724631636, 0.00395203096164986, 0.49703533424495255, 0.0, 0.0, 0.0, 0.43461516165530706, 0.0, 0.0, 0.2097986260899648, 0.0, 0.0, 0.0, 0.0032389406325184205, 0.11624028110212369, 0.0, 0.23514374437795085, 0.0, 0.013757851512121493, 0.0, 0.23992048040279412, 0.32911722925956555, 0.0, 0.18863648593265903, 0.5965040702112832, 0.0, 0.0, 0.006607346447861224, 0.005821424904675781, 0.2242736217811627, 0.0, 0.0, 0.02743682303358625, 0.03021510122691055, 0.4109976396191596, 0.016694351333046, 0.0, 0.0, 0.15588266372439724, 0.0, 0.7589538506473881, 0.0, 0.0, 0.9157838182946224, 0.07079903450052254, 0.0, 0.0, 0.0, 0.8133345120890082, 0.19376473666562866, 0.0, 0.0, 0.24554349589597185, 0.2326206471524158, 0.5829196459370383, 0.0, 0.344078222468009, 0.0, 0.5927124546739914, 0.21206748875282805, 0.5013588717575729, 0.1507046170639337, 0.0, 0.2922067750640437, 0.9112630304460252, 0.0, 0.42296978570223137, 0.0, 0.0, 0.0, 0.0, 0.47847449991115903, 0.0, 0.0, 0.0, 0.0, 0.02922391861250235, 0.003575617433634187, 0.0, 0.0, 0.18000379265062824, 0.0, 0.0, 0.0, 0.020223410318598516, 0.0, 0.0, 0.0, 0.0, 0.1194607408090099, 0.0, 0.18567470153771173, 0.015493204406064897, 0.0, 0.0, 0.22675090423473912, 0.0, 0.6338841242698132, 0.5245326238847832, 0.0019166419799919094, 0.6594541233567529, 0.0, 0.005139571264149575, 0.0, 0.0, 0.0, 0.014894820580065271, 0.0, 1.2034959876942206, 0.0, 0.25665804266856174, 0.012594729973842587, 0.0, 0.011446343678364038, 0.0, 0.0, 0.02279435489937408, 0.025102532455875536, 0.0, 0.0, 0.0, 0.0, 0.1307674017372415, 0.5572422675871412, 0.20860522647402835, 0.3439153754178085, 0.0, 0.7682359770495442, 0.05881943098741484, 0.0, 0.0, 0.7560476592821442, 0.06967644285195858, 0.0, 0.04321641535911349, 0.0, 0.0, 0.0, 0.8024673537053417, 0.0, 0.0, 0.0, 0.0, 0.1761844509232577, 0.8168042507595197, 0.0, 0.0, 0.0, 0.5887168313525647, 0.0, 0.0, 0.4050160345946778, 0.0, 0.28424121144843517, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04314478705768561, 0.17729851568072083, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06445720856859194, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10331544984256105, 0.2490312779322865, 0.0, 0.24280852181294071, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5198374016631779, 0.0, 0.0, 0.0, 0.13645064069986682, 0.0, 0.24758012015088376, 0.5314044104438821, 0.0, 0.0, 0.3110470576055099, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02359980206981429, 0.36163373919282166, 0.0, 0.0, 0.4835792742792758, 0.0, 0.3524294596638372, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27655502261887766, 0.0, 0.0, 0.0, 0.0, 0.22117286156450722, 0.0, 0.15521963759663626, 0.0, 0.0, 0.0, 0.0, 0.021723812939992326, 0.02392358642299197, 0.0, 0.9811990708246294, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4965569454339231, 0.08530918757868192, 0.0, 0.07823884141505981, 0.08129763345109173, 0.8580687524263778, 0.6125638634435169, 0.7792197114170356, 0.17406349022985984, 0.0, 0.7428281837408045, 0.0, 0.07932414385265583, 0.46154167819945197, 0.0, 0.5289001614381607, 0.0, 0.8287876866571131, 0.1679099089089469, 0.695722986230781, 0.0, 0.010707260605614142, 0.014687966352699852, 0.03846916856579124, 0.6678999803007167, 0.8946423775406338, 0.0, 0.0, 0.6928842432378984, 0.0, 0.8291172549334254, 0.0, 0.036214437271524916, 0.0, 0.6493274982169268, 0.0, 0.0, 0.0, 0.0, 0.022863259627981244, 0.7335275809594394, 0.03647235770741211, 0.0, 0.287070580153256, 0.13431771500769504, 0.14856735628547443, 0.15781940486580828, 0.0, 0.0, 0.323980207489089, 0.0, 0.02667757509153305, 0.33154611696012287, 0.008340998981572286, 0.0, 0.1964137723963185, 0.0, 0.18369526317696738, 0.0, 0.36991237719570497, 0.0, 0.0, 0.060663484669780686, 0.0, 0.0, 0.10293074255327075, 0.9555336304557553, 0.0, 0.2500171656161189, 0.5342857393564834, 0.17546263843294155, 0.0, 0.35442104566615373, 0.0, 0.0, 0.0, 0.0, 0.17621149415330922, 0.6121951999020001, 0.14104370661074167, 0.0, 0.03700642443953683, 0.5101360635898259, 0.0, 0.0, 0.398419677876043, 0.0, 0.0, 0.0, 0.23862742072997933, 0.0, 0.06314351493041778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32025466250143747, 0.0, 0.0, 0.0, 0.25412006584310015, 0.0, 0.2693181789862389, 0.0, 0.2858641430477511, 0.0, 0.12448957171647013, 0.0, 0.6764603455612473, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.007629531631679027, 0.008402105093687509, 0.1478058101242069, 0.005053168588900645, 0.0, 0.30372648283729076, 0.003980754378397801, 0.0, 0.0, 0.0, 0.0, 0.07450559902388645, 0.019687537166852037, 0.0, 0.08244653582028545, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16209616805705127, 0.0, 0.08979346385777931, 0.06518743281502334, 0.21315534710850095, 0.08369413937188341, 0.1394160455900761, 0.5610626715103558, 0.0, 0.0, 0.13968567626607642, 0.0, 0.0, 0.0, 0.0, 0.01924679403964147, 0.0, 0.0, 0.0, 0.0, 0.616722369104707, 0.0, 0.0, 0.5466375681050827, 0.0, 0.0, 0.013987945284851467, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09368066064257337, 0.0, 0.24818473838609467, 0.04865531902212218, 0.0, 0.009894965642192768, 0.0, 0.45825677816644195, 0.7857899124906229, 0.25281208870305677, 0.0, 0.8251354193653254, 0.0, 0.6275782447904167, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7597076021322064, 0.4559884064545227, 0.3430656338577527, 0.32001374263313714, 0.2977084759378876, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26332513624077, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07361684952632414, 0.0, 0.0, 0.0, 0.5420044017413929, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5785225932672249, 0.0, 0.0, 0.0, 0.6899231282082093, 0.33897374575165645, 0.4841896839083132, 0.0, 0.0, 0.0, 0.0, 0.6240541831707288, 0.0, 0.0, 0.5531361892215293, 0.4547991804243185, 0.0, 0.100152739355421, 0.0, 0.2440837061302026, 0.0, 0.0, 0.0, 0.0, 0.12076927556310874, 0.0, 0.0, 0.3415398112751411, 0.0, 0.0, 0.0, 0.010012600500133058, 0.0, 0.10122097549537463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6350391173534848, 0.0, 0.0, 0.5362493708751273, 0.3870491592555651, 0.0, 0.0, 0.011769944241680865, 0.3142045963597273, 0.0, 0.30124773979598957, 0.0, 0.3235765421156834, 0.0, 0.541761414379215, 0.0, 0.0, 0.8318031269227326, 0.0, 0.0, 0.0, 0.0, 0.0, 0.655176286023573, 0.0, 0.0, 0.12998028512957016, 0.09284961824757046, 0.5535451825358659, 0.6996061073192734, 0.06205996989121698, 0.0, 0.0, 0.0, 0.008692259029504977, 0.0, 0.08787316923443415, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5512977874061133, 0.0, 0.06274188232221303, 0.0860678272807259, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7913396090809787, 0.26152280681975265, 0.0, 0.0, 0.0, 0.0, 0.0, 0.028664478181671504, 0.0009799779903315728, 0.0032348889210802386, 0.0, 0.11837934340514084, 0.4864662292788164, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07382213914734657, 0.0, 0.0, 0.0, 0.17685571185867954, 0.2510513607906149, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0019118999997271302, 0.0, 0.04133793381575315, 0.2834737624180827, 0.6832843821792778, 0.0, 0.6662105748014928, 0.0, 0.5326269406399959, 0.0, 0.0, 0.0, 0.0, 0.10672810444069859, 0.0, 0.07123750254807154, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.007981914293001519, 0.10075857550012479, 0.009540391703188681, 0.0, 0.11580721042791553, 0.0, 0.0, 0.17856228523566461, 0.00048020843909893406, 0.0, 0.197593765283525, 0.0, 0.0, 0.0, 0.6194557197663932, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21520162666608084, 0.1562300971282056, 0.0, 0.0592523063663964, 0.0, 0.18612758103797813, 0.0, 0.2544272402257203, 0.15422821911002763, 0.0012917517157272594, 0.0, 0.0, 0.14907655404346837, 0.09429642888622711, 0.0, 0.0, 0.0, 0.0, 0.09600808583182174, 0.0, 0.005856583784053075, 0.08156012032053195, 0.09312148266647201, 0.0322184865015818, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03641255600507808, 0.0, 0.09646644914865622, 0.6107192924560144, 0.0, 0.0008311989920553221, 0.04768463204338608, 0.008402889219987731, 0.30542717141970227, 0.09826504505325136, 0.08476742117805344, 0.35700707759139916, 0.0, 0.052717960159591244, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29528928831604634, 0.0, 0.18118798681716172, 0.047489656233823854, 0.07375616702811215, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15842644268884615, 0.005416265593171256, 0.0, 0.0, 0.0, 0.06326712126451656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22847169102573353, 0.0, 0.11955753824812076, 0.0, 0.0, 0.0, 0.08074664695989245, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0029119331378805115, 0.0, 0.0, 0.1953274033599059, 0.0, 0.0, 0.0, 0.48520999511490304, 0.0, 0.0, 0.0, 0.0, 0.13603276168063752, 0.0, 0.06155663979875702, 0.0, 0.0, 0.0, 0.19100951475155065, 0.0, 0.05054327834442013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21557595738397023, 0.0, 0.0, 0.2988625665604049, 0.02775823823873608, 0.0, 0.5414732387378444, 0.0, 0.1751125450084881, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7653173403797493, 0.011610920930129028, 0.0, 0.6690009447860032, 0.007717112212206315, 0.0, 0.0, 0.0, 0.0, 0.0949800986519104, 0.0, 0.01759104522847652, 0.0272063292239745, 0.0, 0.18672851022958098, 0.14592398686801408, 0.0, 0.0, 0.06111532732066789, 0.0, 0.012109927581814974, 0.0, 0.3464253043638218, 0.014416979955844242, 0.0, 0.0, 0.004751074128394563, 0.0814923248235591, 0.960719872887566, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029410227635468144, 0.3902617128196832, 0.0, 0.0, 0.0, 0.0, 0.03936155946785215, 0.0, 0.0, 0.0, 0.0, 0.03226521554976169, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029868187491618223, 0.0, 0.007848954300217155, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02618395857766568, 0.0, 0.0, 0.0, 0.02729344001455739, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16043383601301778, 0.0, 0.08114240967089056, 0.0, 0.12944151616666955, 0.0, 0.0, 0.8424042898437758, 0.0, 0.0, 0.0, 0.0, 0.04323489183997365, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2997198089695268, 0.0, 0.0, 0.09877179787471602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.36530436236505814, 0.0, 0.0, 0.0, 0.0, 0.6114198560066337, 0.538693529249165, 0.0, 0.0, 0.0, 0.014312907460573414, 0.015762245768879076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03693357747227013, 0.0, 0.0, 0.5249268945825, 0.0, 0.0, 0.16471382065012125, 0.0, 0.0, 0.0, 0.304090416701445, 0.48915218766248414, 0.0, 0.020376509279081044, 0.0, 0.11062878301178729, 0.26154278602954106, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1338990979320024, 0.0, 0.12169019076516314, 0.0, 0.0, 0.0, 0.5524220216872981, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13426647560262422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05161008110067911, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.007893769925822126, 0.008693100403012733, 0.0, 1.169538837435482, 0.0, 0.5817658012805581, 0.3172103076471354, 0.0, 0.22838627747698767, 0.0, 0.10226945824142554, 0.0, 0.020369387834492953, 0.0, 0.20675490808600527, 0.48677742001957014, 0.6262431249386917, 0.151645446757169, 0.20817481578766972, 0.0, 0.0, 0.0668476153746235, 0.5758263086091524, 0.4536026680375212, 0.09887690089373365, 0.018895630454912823, 0.0, 0.06101333098633492, 0.38664812220872247, 0.0, 0.0, 0.7304510924229297, 0.030046419431745734, 0.0, 1.1003509629444073, 0.5194953755737197, 1.1578838988668234, 0.48875095960339066, 0.0, 0.1128462605244655, 0.0, 0.0, 0.0, 0.4791947947301635, 0.0, 0.03259627779739397, 0.10028189990101041, 0.029465846845003113, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22859113464308234, 0.0, 0.11646855789532944, 0.12693945289885786, 0.0, 0.0, 0.20330790896109577, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1873449680464739, 0.0, 0.0, 0.06173899342973636, 0.0, 0.0, 0.04476882030066193, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04375496463125991, 0.38217838780949126, 0.336719559414533, 0.04092456729054698, 0.0, 0.04229882731958149, 0.0, 0.0, 0.0, 0.1452994629839798, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0184335582446928, 0.0, 0.0, 0.0, 0.057199110071214684, 0.0, 0.14103517741623545, 0.03340505872611428, 0.0, 0.0, 0.0, 0.05811339385405451, 0.0, 0.0, 0.0, 0.0, 0.044222795803071285, 0.0, 0.06455569991448866, 0.0, 0.0, 0.05037647535437417, 0.008312394942553907, 0.0, 0.1621478774157853, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005416039933812771, 0.0, 0.0, 0.0, 0.0398756195493532, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05075809733341722, 0.0, 0.03562215281502755, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19049409924372604, 0.0, 0.0, 0.20255925674743036, 0.0, 0.0, 0.0, 0.0, 0.11222926185446927, 0.0, 0.22599925727813394, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18212734324380878, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21653477423901774, 0.0, 0.0, 0.008644589577152558, 0.009519948749861491, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.022306831770080617, 0.0, 0.0, 0.003074570476841778, 0.0, 0.008145346800616094, 0.0, 0.0, 0.0, 0.08511345922427967, 0.18366197461769765, 0.025789383308915437, 0.008297215015175531, 0.0, 0.09184984081220632, 0.0668166427534811, 0.15796441417080423, 0.0, 0.0, 0.0, 0.0, 0.0, 0.024933369902885204, 0.0, 0.011259308615493588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02160071316022016, 0.0, 0.0, 0.0, 0.1015273549658925, 0.0, 0.3722773110385471, 0.0, 0.0, 0.0, 0.005704132382790829, 0.576786252698806, 0.6048982987919145, 0.3404333765031976, 0.0, 0.1776491403162125, 0.3619951063590594, 0.0, 0.0, 0.0, 0.0, 0.20056572202110787, 0.0, 0.4038849000985208, 0.0, 0.07292911426252524, 0.0, 0.0, 0.0, 0.0, 0.3254810866068793, 0.0, 0.0, 0.0, 0.0486152336987337, 0.0, 0.38697085430573647, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7532037777522111, 0.0, 0.0, 0.2947709821219489, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008564738540478935, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2647016620516834, 0.0, 0.0, 0.5486174586047213, 0.0, 0.0, 0.0, 0.0, 0.0]), 42), 42)),) julia> @finch_code begin Ct .= 0 for i = _ @@ -498,7 +498,7 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.1187145765025676, 0.0, 0.16555522612551515, 0.0, 0.0, 0.0, 0.0, 0.43509113842452285, 0.0, 0.0, 0.25672403787937165, 0.43862663884873543, 0.0, 0.0, 0.3519631419607619, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051120283482812334, 0.15945060967882835, 0.42044865267857073, 0.0, 0.019744477387695688, 0.0, 0.0, 0.0, 0.12726604148160792, 0.4480285054137333, 0.0, 0.41393771366257825, 0.0, 0.0, 0.1372243591915985, 0.12863434970716192, 0.0, 0.019238858430486484, 0.0, 0.2371659747040811, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.39682924637787165, 0.0, 0.8480118921637517, 0.0, 0.0, 0.0195483866997798, 0.0, 0.5990836331247341, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2618925497434801, 0.26117339231230247, 0.0, 0.0, 0.16216152735698644, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06997554550840408, 0.0, 0.0, 0.002400768013297612, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.4157511852632345, 0.5793963874059174, 0.0, 0.26436870752857605, 0.4172786501470117, 0.0, 0.0, 0.8079649846339338, 0.0, 0.0, 0.5764550461815096, 0.4229367652966696, 0.05379340446506314, 0.0, 0.0, 0.5795406808621261, 0.5877094760316834, 0.0, 0.0, 0.0, 0.0, 0.284387943824113, 0.0, 0.0, 0.0, 0.035174745039109515, 0.0, 0.0, 0.011970205674471077, 0.0, 0.0, 0.0, 0.0, 0.5436476197350472, 0.920039513761917, 0.0, 0.6198132723204128, 0.16799442509225773, 0.5753026732101696, 0.2043616977009669, 0.5065806869454675, 0.0, 0.0, 0.39160092945826996, 0.0, 0.11054447981865345, 0.0, 0.0, 0.9189729667337664, 0.0, 0.0, 0.6507053761422986, 0.6970188689802168, 0.0, 0.08297492397617155, 0.9062181287136433, 0.0, 0.059530976608982995, 0.012438951345378766, 0.0, 0.0, 0.0, 0.0, 0.2533819740366263, 0.9473531228336374, 0.06450793068804792, 0.0, 0.41573543153630554, 0.0, 0.0, 0.0, 0.7238062468593162, 0.0, 0.0, 0.3590904912393951, 0.07774042001084827, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6251886494903025, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44684741712517223, 0.0, 0.0, 0.0, 0.0, 0.010812740091707317, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8163131959379999, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2672156592426391, 0.0, 0.028807779838791864, 0.0, 0.0, 0.0, 0.025506753620224757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.022871104613233297, 0.0, 0.6057451127777128, 0.0, 0.0, 0.05122083512724408, 0.0, 0.0, 0.26967234588040656, 0.0, 0.0, 0.6655341287456478, 0.0, 0.41411417571013454, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29998038732284904, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06750566800337324, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3426210978919867, 0.3800174489235809, 0.0, 0.6531468239127369, 1.5341196475571879, 0.0, 0.0, 0.5993450019914057, 0.0, 0.0, 0.318944682359523, 0.0, 0.0, 0.0, 1.2766961856974943, 0.0, 0.47028907930153113, 0.46890260973852405, 0.0, 0.2635141940642454, 0.0, 0.06844040704623247, 0.6776383700271937, 0.08344450181255293, 0.0, 0.0, 0.13135428676134797, 0.1357944044209692, 0.0, 0.0, 0.0, 0.38624172924075223, 0.0, 0.0, 0.0, 0.23564395924169773, 0.0, 0.7014291092208349, 0.11139739784790205, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008393202836106917, 0.0, 0.22229541093446364, 0.2882110765245937, 0.0, 0.2931292388749959, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24423669216579333, 0.0, 0.07507242489058646, 0.0, 0.0, 0.14176191313790465, 0.0, 0.0, 0.0, 0.054753508738442806, 0.11008634170637227, 0.0, 0.0, 0.0, 0.0, 0.0, 0.024773126340884036, 0.0, 0.0, 0.38053755501306186, 0.0, 0.6713587667580375, 0.05335137428594376, 0.0, 0.0, 0.009224220899634665, 0.0, 0.07390888522469428, 0.1992308489896435, 0.12678608744717204, 0.0, 0.0546923223511062, 0.11313411705958114, 0.0, 0.0, 0.0, 0.0, 0.05169899432402749, 0.019742405777142896, 0.1769782400741126, 0.0, 0.0, 0.09297789149141053, 0.028906196325416873, 0.0, 0.0, 0.012919011582055164, 0.0, 0.0, 0.3208972845059436, 0.0, 0.0, 0.0046103209297173, 0.0, 0.0, 0.00416876885269193, 0.0729081194704697, 0.0, 0.0, 0.0, 0.07125538498910843, 0.0, 0.0, 0.03513444799266689, 0.0, 0.07540438323786366, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04369081060273281, 0.0, 0.0, 0.0, 0.014769980988042226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.017283118828420634, 0.006620940647292606, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006092931164902776, 0.0, 0.16137232276465496, 0.0, 0.15262637216887753, 0.013645384773351038, 0.16271613196948126, 0.0, 0.0, 0.0, 0.0, 0.17730029672438757, 0.41874765425641397, 0.054497803302564006, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10045113292307115, 0.27028417756519546, 0.07991567883089672, 0.0, 0.0, 0.0, 0.0, 0.0, 0.01798371330728596, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5859834957136911, 0.5086687281653502, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07646258969830243, 0.0, 0.0, 0.02773130153308066, 0.07708391588594585, 0.0, 0.0, 0.06185373806995992, 0.0, 0.0, 0.033137714842779345, 0.0, 0.0, 0.0, 0.0, 0.028021730318764978, 0.07388933025705045, 0.0, 0.021389015345232583, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046371970770837774, 0.04025364462832554, 0.2181921153062336, 0.4335185189335439, 0.0, 0.0, 1.0038009425423415, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4280152293034966, 0.0, 0.08414972142221414, 0.0, 0.3712598089597713, 0.0, 0.06370844553850769, 0.0, 0.0, 0.0, 0.0, 0.5083497561860121, 0.0, 0.0, 0.0, 0.17350738400022994, 0.0, 0.0, 0.0, 0.0, 0.5680638629882098, 0.4512837677833129, 0.036928112404588626, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6736518032785722, 0.0, 0.0, 0.0, 0.0, 0.3438277430889845, 0.1331574579932683, 0.8185600695730958, 0.0, 0.0, 0.017261448593960855, 0.0, 0.5289976863810653, 0.0, 0.0, 0.0, 0.0, 0.13826565194431473, 0.0, 0.12839377709982103, 0.8277070113616852, 0.0, 0.0, 0.3904546499995126, 0.08179569775458351, 0.0, 0.0, 0.0, 0.0, 0.16848803520369499, 0.0, 0.0, 0.005780600674157121, 0.0, 0.0, 0.0, 0.0, 0.042429105563066505, 0.0, 0.0, 0.5671026868317051, 0.5831842436077501, 0.0, 0.0, 0.5203885995071309, 0.0, 0.0, 0.0, 0.0, 0.03279957809056344, 0.20563143706052323, 0.8140555730584957, 0.0, 0.11735707443596549, 0.0, 0.0, 0.0, 0.0, 0.05942421719401875, 0.13531075914415133, 0.0, 0.22862377269710113, 0.0, 0.0, 0.0, 0.0, 0.009783289930470927, 0.0, 0.49666013194599, 0.01297478801242045, 0.004970474495620279, 0.0, 0.0, 0.0, 0.0, 0.18702095525297172, 0.0, 0.0, 0.49027730046536305, 0.0, 0.0, 0.0, 0.3100811795242501, 0.0, 0.5172830310180929, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5147075854808417, 0.0, 0.23506445593598685, 0.0, 0.0, 0.0984177418166802, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6597667532607603, 0.0, 0.7531258126074596, 0.0, 0.0, 0.0, 0.0, 0.009060495116628974, 0.0, 0.14938403565323904, 0.23931891774764502, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17320374473408556, 0.0, 0.0, 0.8859260157921318, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2593451028242532, 0.13535058061487634, 0.0, 0.17876385946442425, 0.5885021691653141, 0.4462993508157936, 0.0, 0.38646137613385273, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08841279830908562, 0.0, 0.0, 0.4090685041141252, 0.2385779614705672, 0.0, 0.32657075289021537, 0.0, 0.3891842232348578, 0.46695749861500585, 0.0, 0.20033954304824086, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6140772326336235, 0.21962331732895995, 0.0, 0.0, 0.21665980127772702, 0.0, 0.10259951624992725, 0.0040997688735825025, 0.0, 0.0, 0.0178257297768441, 0.0025383566681682393, 0.21683531480545457, 0.0, 0.027677402398657985, 0.0, 0.1880826476230884, 0.3419147609793875, 0.03227511522566195, 0.19053492425855037, 0.0, 0.06432217258278244, 0.0026780235214896283, 0.0, 0.0, 0.464125489835237, 0.09967606965443436, 0.0, 0.0, 0.0, 0.011788389508631971, 0.03206041622309702, 0.0, 0.0060682844433003185, 0.0, 0.0, 0.0, 0.010791956772858862, 0.0, 0.0, 0.0, 0.0, 0.4329905527364345, 0.14376890418721155, 0.6930376581272882, 0.0, 0.611818052941564, 0.6291676211651914, 0.0, 0.0, 0.5614206159067703, 0.48216800990329456, 0.0, 0.0, 0.4507229848159907, 0.0, 0.0, 0.8782428778065052, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06410974538727675, 0.23291225157991716, 0.08679043179604816, 0.0, 0.0, 0.08995902157278039, 0.8808378297797503, 0.0, 0.0, 0.0, 0.3618017482397369, 0.07709259450646033, 0.0, 0.22347789493902354, 0.0, 1.4151156566032244, 0.0, 0.0, 0.0876553401034732, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.35023812146064465, 0.10119869206094158, 0.0, 0.0, 0.0, 0.03421091843192662, 0.0, 0.18934530571059222, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.040031965441735276, 0.015335731346610126, 0.0, 0.0, 0.0, 0.0, 0.5012279391934354, 0.14361151525658541, 0.0, 0.05781748261134272, 0.17152855777668224, 0.0, 0.498484457540378, 0.0, 0.0, 0.7074889608036871, 0.0, 0.0, 0.0, 0.0, 0.0, 0.36413161255211174, 0.10650975776468122, 0.0027919607805886224, 0.1717164070699339, 0.0, 0.0, 0.0, 0.31636490805397033, 0.0, 0.0, 0.0, 0.3781004501122092, 0.1664160983543511, 0.0, 0.10894483484211534, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06899783350353156, 0.1313910038295779, 0.5458205926873976, 0.0, 0.2058361256028114, 0.0983057734206431, 0.006586106310131405, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13715236217863272, 0.026867165999227966, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0035515304259612105, 0.0, 0.0, 0.5329776529167246, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.397719517913955, 0.20668056810136554, 0.1307286941015916, 0.0, 0.19979734260211207, 0.13509882393613562, 0.0, 0.0, 0.0, 0.4428910220796438, 0.0, 0.10971922982381796, 0.20405686697329703, 0.0, 0.0, 0.0, 0.4155385933508652, 0.0, 0.030373091671251427, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02870549966274466, 0.0, 2.221236796150802e-5, 0.04518680503118196, 0.8557997812159583, 0.0, 0.0, 0.0, 0.33295230926411423, 0.0, 0.0, 0.1651823382455281, 0.0, 0.0, 0.10987547938954217, 0.038321493889877094, 0.0, 0.0, 0.9167265220224268, 0.0, 0.41223669995910156, 0.0062879102301798264, 0.006460790579658201, 0.0, 0.015093288171720337, 0.004653032070207847, 0.0, 0.0, 0.21192982566516394, 0.0, 0.5265530542756913, 0.004398370159579225, 0.3103332077675556, 0.0, 0.0, 0.21886457786346297, 0.058793164358353744, 0.24052003353974485, 0.5039916994286584, 0.08865805888962155, 0.0, 1.2109591957845456, 0.0, 0.4576423956337198, 0.13738787883657938, 0.3665641879979031, 0.00039223002823340837, 0.0, 0.6257753572135888, 0.0, 1.0620388990418166, 0.04837586177991647, 0.05564954721706949, 0.23699310888410263, 0.0060621596830514254, 1.2406804285104875, 0.0, 0.6055788924273563, 0.1024025590217045, 0.41360202805293217, 0.5476995216716073, 0.17831079467145505, 0.0, 0.0, 0.0, 0.14728996725917032, 0.19581503373322434, 0.10219463649126194, 0.0, 0.0, 1.213270546019433, 0.06327342954871182, 0.0, 0.0, 0.34855390390603164, 0.0, 0.0, 0.2854684709047343, 0.28462687503630496, 0.0, 0.0, 0.0, 0.06675489490570531, 0.4113308129658067, 0.0, 0.049609846106367136, 0.0, 0.0, 0.0, 0.0, 0.2938483162830928, 0.35256998241930354, 0.0, 0.15126367898557985, 0.0, 0.0, 0.1430373863296425, 0.0, 0.11979050068949273, 0.0, 0.0, 0.0, 0.2174719417996252, 0.18492143615091797, 0.5613745989840638, 0.0, 0.1269084936189851, 0.13050728832210684, 0.0, 0.008090983120695843, 0.11645462945856581, 0.45646266655488743, 0.0, 0.0, 0.018120109170533364, 0.0, 0.0, 0.18217259219167142, 0.0, 0.0, 0.23544229686275722, 0.0, 0.072369241454098, 0.0, 0.013298187548207349, 0.0, 0.15536962738337737, 0.0, 0.0, 0.0, 0.5485281455413065, 0.0, 0.0, 0.0, 0.07504798957314487, 0.13800884999205565, 0.023881103672210243, 0.4000634234277266, 0.0, 0.63983454521553, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1274757935226854, 0.0, 0.060340389443721644, 0.0, 0.0, 0.0, 0.0, 0.046886662511488715, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4105919579209241, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17717763704599515, 0.0, 0.0, 0.006078729370399735, 0.0, 0.0, 0.0, 0.4419304781486809, 0.004498905638339938, 0.0, 0.0, 0.06013187036225827, 0.061837053761552255, 0.158000195476362, 0.08245930986204707, 0.055178613203866224, 0.0, 0.3921588247960043, 0.051054375379452996, 0.0, 0.3113852203955569, 0.0, 0.08631714383210826, 0.016249403505819805, 0.0, 0.5064243516388502, 0.0, 0.0799687272151233, 0.0, 0.06016447367008715, 0.0, 0.0, 0.12723000596711698, 0.0, 0.0, 0.0, 0.0, 0.3344116617465516, 0.28448339782348236, 0.03555929040895464, 0.12972821265302345, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05771825347353467, 0.0, 0.06101920493228206, 0.0, 0.1422424089220273, 0.0, 0.0, 0.0850349690926388, 0.0, 0.6465489235087094, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9592391331341867, 0.0, 0.0, 0.0, 0.07533170200640231, 0.3935757364788316, 0.41733426606664215, 0.0, 0.0, 0.0, 0.0, 0.8096836326115127, 0.0, 0.0, 0.15672712010482948, 0.08471008784973191, 0.0, 0.0, 0.021315681001762884, 0.0, 0.0, 0.0, 0.6515686149424397, 0.0, 0.04354065349809789, 0.5887361460115157, 0.0, 0.3314629690186724, 0.08254082170798169, 0.0, 0.5363022284331493, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20539826744479112, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20437563182844645, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08512737043917705, 0.0, 0.0, 0.0, 0.21221590140088104, 0.0, 0.5922163084848736, 0.0, 0.054946173604955253, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11912480847073124, 0.10340745987043, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22405559305996067, 0.04389088686607588, 0.0, 0.8369237022137216, 0.0, 0.0, 0.303533841030579, 0.8437244477194209, 0.0, 0.0, 0.6770220530788269, 0.0, 0.08868596150524616, 0.0, 0.0, 0.0, 0.005801870585523199, 0.0, 0.3067127385215406, 1.9980597464483445, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1818471988215991, 0.0, 0.0, 0.0, 0.0, 0.09250846502860006, 0.0, 0.0, 0.0, 0.14804755431292183, 0.0, 0.3797383608658618, 0.39017892030987883, 0.0, 0.035065009177551926, 0.28100508860898343, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2656255916096575, 0.01029999428072384, 0.026319871200300066, 0.0, 0.0, 0.35174701729018143, 0.019026589888644814, 0.0, 0.0, 0.0, 0.0, 0.10260912587786382, 0.0, 0.0204467738415142, 0.0, 0.023687486390763176, 0.0, 0.0, 0.002174927201126577, 0.0, 0.09114373059640297, 0.0, 0.2642096712527522, 0.3907643461384895, 0.0, 0.0, 0.18051818330232947, 0.0, 0.3874221185422575, 0.6531078672631825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15551832566217896, 0.0, 0.1916820827839075, 0.0, 0.0, 0.08276135601321193, 0.0, 0.10030127909330487, 0.0, 0.0, 0.0, 0.10537887040654752, 0.0, 0.17805025311577488, 0.0, 0.010472659941918684, 0.0, 0.0, 0.007619143135798, 0.0, 0.12561988447587705, 0.0, 0.0, 0.7794014171836517, 0.0, 0.08402510727068294, 0.0, 0.3682135686649267, 0.08647369259665981, 0.09410614716697653, 0.611021014238459, 0.0, 0.0, 0.023955493193970948, 0.0, 0.0, 0.007434430348560844, 0.0, 0.0, 0.0, 0.24285369100807747, 0.0, 0.0, 0.0051185021691807515, 0.0, 0.0015127483220163092, 0.0, 0.0, 0.06096785123225053, 0.014193124550026902, 0.5775319451121608, 0.0, 0.0, 0.0, 0.007997400222196374, 0.6747251647940697, 0.0, 0.0, 0.0, 0.0, 0.7027693457851822, 0.0, 0.0, 0.055434654145900264, 0.0, 0.0, 0.0, 0.02587284155878174, 0.0, 0.42673143134824615, 0.004724246163513554, 0.4406790171730267, 0.0, 1.0342538585019783, 0.5747154140513469, 0.0, 0.9363482803339344, 0.7135280098555865, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9563104993907826, 0.0, 0.0, 0.0, 0.8295023845011231, 0.10509888461130146, 0.2471322355632557, 0.3801044173906537, 0.0, 0.0, 0.0, 0.1514367226333477, 0.0, 0.0, 0.0, 0.24534157695942965, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.052661051195310594, 0.6550399256456869, 0.5803102488724085, 0.0, 0.5319072548222628, 0.46172731619827034, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.026741428574906606, 0.0, 0.7082513040743756, 0.0, 0.0, 0.4418255985655133, 0.1449878921305842, 0.3039326972841545, 0.0, 0.0, 0.0, 1.198252644211342, 0.44500849169967277, 0.23918686672510267, 0.0, 0.0, 0.19736692078049992, 0.0, 0.0, 0.0, 0.0762301466058952, 0.3507440605568865, 0.4669973871873196, 0.0, 0.06417785026076955, 0.0, 0.0, 0.07892920039677795, 0.20151756987027533, 0.0, 0.5298004507120764, 0.006913800133275409, 0.0, 0.0742780358218034, 0.0, 0.6026732223863505, 0.0, 0.0, 0.5351202277676342, 0.0, 0.0, 0.9548891902757952, 0.02916984862304253, 0.0, 0.4970347785792808, 0.12683003730681902, 0.0180604034141702, 0.0, 0.2650052427173023, 0.0, 0.033791924886614616, 0.0, 0.04181580147667587, 0.0, 0.4621910495164758, 0.0, 0.0, 0.0190541328400638, 0.0, 0.17864673433347314, 0.014160348828667728, 0.8165447001064132, 0.09368415058058097, 0.9079968531646069, 0.08687864486537158, 0.19492858047186096, 0.10063554575175, 0.0, 0.09210666608746948, 0.01874477292287561, 0.03748966025771319, 0.0, 0.5779501492966836, 0.0012862204434733993, 0.220963909203652, 0.3086404911712966, 0.17631145912557372, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032159896791554, 0.0, 0.1846953640258127, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07139034913327573, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37871083555251084, 0.0, 0.0, 0.0, 0.0, 0.19265602282403793, 0.0, 0.0, 0.606424267788203, 0.011600938808477314, 0.0, 0.63655122023184, 0.8091094673344561, 0.15945386155042648, 0.21681046587583439, 0.5841977471111124, 0.14228431684797266, 0.0, 0.4919831840901785, 0.07005765326837811, 0.0, 0.4452652454663618, 0.0, 0.2225785522561698, 0.0, 0.0, 0.565764962530824, 0.0, 0.0, 0.0, 0.09016013522690633, 0.0, 0.0, 0.054929050345560504, 0.0, 0.0, 0.0397070718161962, 0.0, 0.3253549491861982, 0.39037279561642807, 0.09169366625332782, 0.16748228205826332, 0.0, 0.0, 0.6136975564576865, 0.0, 0.0, 0.3026006369046373, 0.0, 0.649431418360159, 0.08211939816658421, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8259750138040276, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5145740577075524, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.45723140022915015, 0.0, 0.0, 0.9202097992461084, 0.168004673879535, 0.0, 0.0, 0.1251531867765232, 0.0, 0.2137981131137785, 0.0, 0.013898368242301713, 0.0, 0.0, 0.7137867360685719, 0.0, 0.0, 0.1000729174155476, 0.0, 0.0, 0.03483089759667312, 0.12636252602014256, 0.0, 0.6417666786106352, 0.47874755782682904, 0.0, 0.0, 0.42719736321019475, 0.0, 0.269711179183823, 0.0, 0.0, 0.0, 0.0, 0.668274429237161, 0.0, 0.0, 0.19736413928693208, 0.0, 0.64140191275638, 0.0, 0.04878252313782071, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7804894714968978, 0.1354649020531392, 0.7521947991243342, 0.061565240681645095, 0.7064549771516211, 0.0, 0.0, 0.0, 0.1369213608036062, 0.598180503319145, 0.0, 0.4894142513129519, 0.14663698801711797, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14418506746458087, 0.027360830334206502, 0.0, 0.0, 0.11896445459410832, 0.016940356460817766, 0.08867849541915622, 0.0, 0.0, 0.0, 0.0, 0.014527597186767355, 0.0, 0.0, 0.0, 0.0, 0.017872458048705516, 0.09208038488681886, 0.0, 0.01328217046242409, 0.0, 0.0, 0.0, 0.0, 0.07867275819804301, 0.09439445944634833, 0.0, 0.040498210068061674, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.5786578146202624, 0.0, 0.3202961159483594, 0.3207279869105304, 0.5035217854841559, 0.0, 0.013671076975665627, 0.01669925591794789, 0.0, 0.0, 0.0, 0.5652457771225854, 0.0, 0.09766762955114001, 0.2831455624824939, 0.0, 1.0556185392068085, 0.2068017763866623, 0.0, 0.15942131380345745, 0.005607444973383372, 0.0, 0.056687675717707615, 0.2535497922885842, 0.4637407985590488, 0.22387274550179712, 0.5454655738973408, 0.08490666489615803, 0.3556465582001688, 0.0, 0.0, 0.31186727366054, 0.6972638697010188, 0.0, 0.0, 0.009518501694028625, 0.0, 0.5833334701399113, 0.6244214908493986, 0.0, 0.26168041250093527, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0131047746782154, 0.0, 0.6656645247350605, 0.0, 0.0, 0.0769882955934405, 0.0, 0.0, 0.34004774503974494, 0.08053504092577264, 0.006982581834800098, 0.5446249720805942, 0.0, 0.0, 0.31025177039320695, 0.2638902653915397, 0.0, 0.0, 0.0, 0.0, 0.2008136945182758, 0.0, 0.0, 0.19041992572397343, 0.05903622381609576, 0.0, 0.0589978949008293, 0.05133054295704808, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7141967536140789, 0.0, 0.11331087789790419, 0.0, 0.0, 0.13904571220904566, 0.16685503671570054, 0.0, 0.1461222249815685, 0.0, 0.0, 0.0, 0.1624667486179013, 0.0, 0.0, 0.0001466632220376543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.040061564188380784, 0.0, 0.0, 0.05925661356360367, 0.0, 0.20052213796576485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1322273764299389, 0.0, 0.07284319524978862, 0.0, 0.21698248889777863, 0.0, 0.22616177063294415, 0.0, 0.0, 0.0, 0.0, 0.52849490550171, 0.0, 0.71926878469886, 0.0, 0.6501927607213651, 0.0030355649865830615, 0.37799680598211977, 0.0, 0.0007078975665940506, 0.09351646752064424, 0.05681500695663011, 0.0, 0.20243859396970953, 0.0628704495708815, 0.001556209278473695, 0.0, 0.0, 0.0, 0.0, 0.0027171741525499, 0.0, 0.0, 0.0, 0.07038911039656341, 0.049709343960620045, 0.0, 0.018852918431012597, 0.26140762404567164, 0.049374687944063446, 0.0, 0.0, 0.5682508160039592, 0.08397693763382687, 0.0, 0.0, 1.1395457189674745, 0.10207861893624984, 0.006346754524020049, 0.07139718683099765, 0.0, 0.4257292397317542, 0.0, 0.0, 0.003459642976589088, 0.00011827788909935122, 0.29669071600135444, 0.0, 0.04645302583039929, 0.6403581026228157, 0.0, 0.0, 0.4035906657629842, 0.0, 0.0, 0.031770473502227184, 0.0, 0.10177861753458611, 0.08984803025006428, 0.2696383585775038, 0.0, 0.0, 0.0, 0.0, 0.4020058229022269, 0.8537152750348289, 0.27466570696380027, 0.0, 0.9014511503031993, 0.0, 0.0, 0.0, 0.3588364621034526, 0.0, 0.10358336916612662, 0.0, 0.8253783539224127, 0.003096290011755601, 0.3727209618097055, 0.0, 0.0, 0.0, 0.08512247762765326, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0016669318756259504, 0.0, 0.0, 0.9038241621401286, 0.23981242371494071, 0.0, 0.0, 0.0, 0.10303433366133424, 0.0, 0.0, 4.317142647672722e-5, 0.0, 0.07840647389573854, 0.0, 0.0, 0.0, 0.0, 0.36164895718336953, 0.011697025915496142, 0.0, 0.0, 0.0, 0.0, 0.001969151291048087, 0.0, 0.0016085698018090215, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8640055140280944, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10961290316901336, 0.0, 0.0, 0.0, 0.34012752342022284, 0.0, 0.09000159029348583, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.38387258660557405, 0.0, 0.0, 0.0, 0.04942864149427501, 0.0, 0.9641925530766522, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1618638919487994, 0.0, 0.0, 0.1434695556565637, 0.3651050198592113, 0.0, 0.04210320606021404, 0.5803955429188099, 0.0, 0.0, 0.36579879697476825, 0.4517875751113323, 0.0, 0.0, 0.0, 0.597783133294766, 0.0, 0.0, 0.6329135233850276, 0.0, 0.002597015658553236, 0.2174699638827603, 0.39061652165480276, 0.765918958416278, 0.0, 0.016481521625833693, 0.28751000269430316, 0.0, 0.1647131064041664, 0.0, 0.4521970394725687, 0.0, 0.0, 0.11039007420645473, 0.0, 0.0, 0.0, 0.902497226885166, 0.7436286750029288, 0.09842900387294973, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0017337381605838167, 0.0, 0.48184280820859876, 0.0, 0.0, 0.4182604044398821, 0.05413499724631636, 0.00395203096164986, 0.49703533424495255, 0.0, 0.0, 0.0, 0.43461516165530706, 0.0, 0.0, 0.2097986260899648, 0.0, 0.0, 0.0, 0.0032389406325184205, 0.11624028110212369, 0.0, 0.23514374437795085, 0.0, 0.013757851512121493, 0.0, 0.23992048040279412, 0.32911722925956555, 0.0, 0.18863648593265903, 0.5965040702112832, 0.0, 0.0, 0.006607346447861224, 0.005821424904675781, 0.2242736217811627, 0.0, 0.0, 0.02743682303358625, 0.03021510122691055, 0.4109976396191596, 0.016694351333046, 0.0, 0.0, 0.15588266372439724, 0.0, 0.7589538506473881, 0.0, 0.0, 0.9157838182946224, 0.07079903450052254, 0.0, 0.0, 0.0, 0.8133345120890082, 0.19376473666562866, 0.0, 0.0, 0.24554349589597185, 0.2326206471524158, 0.5829196459370383, 0.0, 0.344078222468009, 0.0, 0.5927124546739914, 0.21206748875282805, 0.5013588717575729, 0.1507046170639337, 0.0, 0.2922067750640437, 0.9112630304460252, 0.0, 0.42296978570223137, 0.0, 0.0, 0.0, 0.0, 0.47847449991115903, 0.0, 0.0, 0.0, 0.0, 0.02922391861250235, 0.003575617433634187, 0.0, 0.0, 0.18000379265062824, 0.0, 0.0, 0.0, 0.020223410318598516, 0.0, 0.0, 0.0, 0.0, 0.1194607408090099, 0.0, 0.18567470153771173, 0.015493204406064897, 0.0, 0.0, 0.22675090423473912, 0.0, 0.6338841242698132, 0.5245326238847832, 0.0019166419799919094, 0.6594541233567529, 0.0, 0.005139571264149575, 0.0, 0.0, 0.0, 0.014894820580065271, 0.0, 1.2034959876942206, 0.0, 0.25665804266856174, 0.012594729973842587, 0.0, 0.011446343678364038, 0.0, 0.0, 0.02279435489937408, 0.025102532455875536, 0.0, 0.0, 0.0, 0.0, 0.1307674017372415, 0.5572422675871412, 0.20860522647402835, 0.3439153754178085, 0.0, 0.7682359770495442, 0.05881943098741484, 0.0, 0.0, 0.7560476592821442, 0.06967644285195858, 0.0, 0.04321641535911349, 0.0, 0.0, 0.0, 0.8024673537053417, 0.0, 0.0, 0.0, 0.0, 0.1761844509232577, 0.8168042507595197, 0.0, 0.0, 0.0, 0.5887168313525647, 0.0, 0.0, 0.4050160345946778, 0.0, 0.28424121144843517, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04314478705768561, 0.17729851568072083, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06445720856859194, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10331544984256105, 0.2490312779322865, 0.0, 0.24280852181294071, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5198374016631779, 0.0, 0.0, 0.0, 0.13645064069986682, 0.0, 0.24758012015088376, 0.5314044104438821, 0.0, 0.0, 0.3110470576055099, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02359980206981429, 0.36163373919282166, 0.0, 0.0, 0.4835792742792758, 0.0, 0.3524294596638372, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27655502261887766, 0.0, 0.0, 0.0, 0.0, 0.22117286156450722, 0.0, 0.15521963759663626, 0.0, 0.0, 0.0, 0.0, 0.021723812939992326, 0.02392358642299197, 0.0, 0.9811990708246294, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4965569454339231, 0.08530918757868192, 0.0, 0.07823884141505981, 0.08129763345109173, 0.8580687524263778, 0.6125638634435169, 0.7792197114170356, 0.17406349022985984, 0.0, 0.7428281837408045, 0.0, 0.07932414385265583, 0.46154167819945197, 0.0, 0.5289001614381607, 0.0, 0.8287876866571131, 0.1679099089089469, 0.695722986230781, 0.0, 0.010707260605614142, 0.014687966352699852, 0.03846916856579124, 0.6678999803007167, 0.8946423775406338, 0.0, 0.0, 0.6928842432378984, 0.0, 0.8291172549334254, 0.0, 0.036214437271524916, 0.0, 0.6493274982169268, 0.0, 0.0, 0.0, 0.0, 0.022863259627981244, 0.7335275809594394, 0.03647235770741211, 0.0, 0.287070580153256, 0.13431771500769504, 0.14856735628547443, 0.15781940486580828, 0.0, 0.0, 0.323980207489089, 0.0, 0.02667757509153305, 0.33154611696012287, 0.008340998981572286, 0.0, 0.1964137723963185, 0.0, 0.18369526317696738, 0.0, 0.36991237719570497, 0.0, 0.0, 0.060663484669780686, 0.0, 0.0, 0.10293074255327075, 0.9555336304557553, 0.0, 0.2500171656161189, 0.5342857393564834, 0.17546263843294155, 0.0, 0.35442104566615373, 0.0, 0.0, 0.0, 0.0, 0.17621149415330922, 0.6121951999020001, 0.14104370661074167, 0.0, 0.03700642443953683, 0.5101360635898259, 0.0, 0.0, 0.398419677876043, 0.0, 0.0, 0.0, 0.23862742072997933, 0.0, 0.06314351493041778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32025466250143747, 0.0, 0.0, 0.0, 0.25412006584310015, 0.0, 0.2693181789862389, 0.0, 0.2858641430477511, 0.0, 0.12448957171647013, 0.0, 0.6764603455612473, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.007629531631679027, 0.008402105093687509, 0.1478058101242069, 0.005053168588900645, 0.0, 0.30372648283729076, 0.003980754378397801, 0.0, 0.0, 0.0, 0.0, 0.07450559902388645, 0.019687537166852037, 0.0, 0.08244653582028545, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16209616805705127, 0.0, 0.08979346385777931, 0.06518743281502334, 0.21315534710850095, 0.08369413937188341, 0.1394160455900761, 0.5610626715103558, 0.0, 0.0, 0.13968567626607642, 0.0, 0.0, 0.0, 0.0, 0.01924679403964147, 0.0, 0.0, 0.0, 0.0, 0.616722369104707, 0.0, 0.0, 0.5466375681050827, 0.0, 0.0, 0.013987945284851467, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09368066064257337, 0.0, 0.24818473838609467, 0.04865531902212218, 0.0, 0.009894965642192768, 0.0, 0.45825677816644195, 0.7857899124906229, 0.25281208870305677, 0.0, 0.8251354193653254, 0.0, 0.6275782447904167, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7597076021322064, 0.4559884064545227, 0.3430656338577527, 0.32001374263313714, 0.2977084759378876, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26332513624077, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07361684952632414, 0.0, 0.0, 0.0, 0.5420044017413929, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5785225932672249, 0.0, 0.0, 0.0, 0.6899231282082093, 0.33897374575165645, 0.4841896839083132, 0.0, 0.0, 0.0, 0.0, 0.6240541831707288, 0.0, 0.0, 0.5531361892215293, 0.4547991804243185, 0.0, 0.100152739355421, 0.0, 0.2440837061302026, 0.0, 0.0, 0.0, 0.0, 0.12076927556310874, 0.0, 0.0, 0.3415398112751411, 0.0, 0.0, 0.0, 0.010012600500133058, 0.0, 0.10122097549537463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6350391173534848, 0.0, 0.0, 0.5362493708751273, 0.3870491592555651, 0.0, 0.0, 0.011769944241680865, 0.3142045963597273, 0.0, 0.30124773979598957, 0.0, 0.3235765421156834, 0.0, 0.541761414379215, 0.0, 0.0, 0.8318031269227326, 0.0, 0.0, 0.0, 0.0, 0.0, 0.655176286023573, 0.0, 0.0, 0.12998028512957016, 0.09284961824757046, 0.5535451825358659, 0.6996061073192734, 0.06205996989121698, 0.0, 0.0, 0.0, 0.008692259029504977, 0.0, 0.08787316923443415, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5512977874061133, 0.0, 0.06274188232221303, 0.0860678272807259, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7913396090809787, 0.26152280681975265, 0.0, 0.0, 0.0, 0.0, 0.0, 0.028664478181671504, 0.0009799779903315728, 0.0032348889210802386, 0.0, 0.11837934340514084, 0.4864662292788164, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07382213914734657, 0.0, 0.0, 0.0, 0.17685571185867954, 0.2510513607906149, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0019118999997271302, 0.0, 0.04133793381575315, 0.2834737624180827, 0.6832843821792778, 0.0, 0.6662105748014928, 0.0, 0.5326269406399959, 0.0, 0.0, 0.0, 0.0, 0.10672810444069859, 0.0, 0.07123750254807154, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.007981914293001519, 0.10075857550012479, 0.009540391703188681, 0.0, 0.11580721042791553, 0.0, 0.0, 0.17856228523566461, 0.00048020843909893406, 0.0, 0.197593765283525, 0.0, 0.0, 0.0, 0.6194557197663932, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21520162666608084, 0.1562300971282056, 0.0, 0.0592523063663964, 0.0, 0.18612758103797813, 0.0, 0.2544272402257203, 0.15422821911002763, 0.0012917517157272594, 0.0, 0.0, 0.14907655404346837, 0.09429642888622711, 0.0, 0.0, 0.0, 0.0, 0.09600808583182174, 0.0, 0.005856583784053075, 0.08156012032053195, 0.09312148266647201, 0.0322184865015818, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03641255600507808, 0.0, 0.09646644914865622, 0.6107192924560144, 0.0, 0.0008311989920553221, 0.04768463204338608, 0.008402889219987731, 0.30542717141970227, 0.09826504505325136, 0.08476742117805344, 0.35700707759139916, 0.0, 0.052717960159591244, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29528928831604634, 0.0, 0.18118798681716172, 0.047489656233823854, 0.07375616702811215, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15842644268884615, 0.005416265593171256, 0.0, 0.0, 0.0, 0.06326712126451656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22847169102573353, 0.0, 0.11955753824812076, 0.0, 0.0, 0.0, 0.08074664695989245, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0029119331378805115, 0.0, 0.0, 0.1953274033599059, 0.0, 0.0, 0.0, 0.48520999511490304, 0.0, 0.0, 0.0, 0.0, 0.13603276168063752, 0.0, 0.06155663979875702, 0.0, 0.0, 0.0, 0.19100951475155065, 0.0, 0.05054327834442013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21557595738397023, 0.0, 0.0, 0.2988625665604049, 0.02775823823873608, 0.0, 0.5414732387378444, 0.0, 0.1751125450084881, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7653173403797493, 0.011610920930129028, 0.0, 0.6690009447860032, 0.007717112212206315, 0.0, 0.0, 0.0, 0.0, 0.0949800986519104, 0.0, 0.01759104522847652, 0.0272063292239745, 0.0, 0.18672851022958098, 0.14592398686801408, 0.0, 0.0, 0.06111532732066789, 0.0, 0.012109927581814974, 0.0, 0.3464253043638218, 0.014416979955844242, 0.0, 0.0, 0.004751074128394563, 0.0814923248235591, 0.960719872887566, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029410227635468144, 0.3902617128196832, 0.0, 0.0, 0.0, 0.0, 0.03936155946785215, 0.0, 0.0, 0.0, 0.0, 0.03226521554976169, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029868187491618223, 0.0, 0.007848954300217155, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02618395857766568, 0.0, 0.0, 0.0, 0.02729344001455739, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16043383601301778, 0.0, 0.08114240967089056, 0.0, 0.12944151616666955, 0.0, 0.0, 0.8424042898437758, 0.0, 0.0, 0.0, 0.0, 0.04323489183997365, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2997198089695268, 0.0, 0.0, 0.09877179787471602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.36530436236505814, 0.0, 0.0, 0.0, 0.0, 0.6114198560066337, 0.538693529249165, 0.0, 0.0, 0.0, 0.014312907460573414, 0.015762245768879076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03693357747227013, 0.0, 0.0, 0.5249268945825, 0.0, 0.0, 0.16471382065012125, 0.0, 0.0, 0.0, 0.304090416701445, 0.48915218766248414, 0.0, 0.020376509279081044, 0.0, 0.11062878301178729, 0.26154278602954106, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1338990979320024, 0.0, 0.12169019076516314, 0.0, 0.0, 0.0, 0.5524220216872981, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13426647560262422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05161008110067911, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.007893769925822126, 0.008693100403012733, 0.0, 1.169538837435482, 0.0, 0.5817658012805581, 0.3172103076471354, 0.0, 0.22838627747698767, 0.0, 0.10226945824142554, 0.0, 0.020369387834492953, 0.0, 0.20675490808600527, 0.48677742001957014, 0.6262431249386917, 0.151645446757169, 0.20817481578766972, 0.0, 0.0, 0.0668476153746235, 0.5758263086091524, 0.4536026680375212, 0.09887690089373365, 0.018895630454912823, 0.0, 0.06101333098633492, 0.38664812220872247, 0.0, 0.0, 0.7304510924229297, 0.030046419431745734, 0.0, 1.1003509629444073, 0.5194953755737197, 1.1578838988668234, 0.48875095960339066, 0.0, 0.1128462605244655, 0.0, 0.0, 0.0, 0.4791947947301635, 0.0, 0.03259627779739397, 0.10028189990101041, 0.029465846845003113, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22859113464308234, 0.0, 0.11646855789532944, 0.12693945289885786, 0.0, 0.0, 0.20330790896109577, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1873449680464739, 0.0, 0.0, 0.06173899342973636, 0.0, 0.0, 0.04476882030066193, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04375496463125991, 0.38217838780949126, 0.336719559414533, 0.04092456729054698, 0.0, 0.04229882731958149, 0.0, 0.0, 0.0, 0.1452994629839798, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0184335582446928, 0.0, 0.0, 0.0, 0.057199110071214684, 0.0, 0.14103517741623545, 0.03340505872611428, 0.0, 0.0, 0.0, 0.05811339385405451, 0.0, 0.0, 0.0, 0.0, 0.044222795803071285, 0.0, 0.06455569991448866, 0.0, 0.0, 0.05037647535437417, 0.008312394942553907, 0.0, 0.1621478774157853, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005416039933812771, 0.0, 0.0, 0.0, 0.0398756195493532, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05075809733341722, 0.0, 0.03562215281502755, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19049409924372604, 0.0, 0.0, 0.20255925674743036, 0.0, 0.0, 0.0, 0.0, 0.11222926185446927, 0.0, 0.22599925727813394, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18212734324380878, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21653477423901774, 0.0, 0.0, 0.008644589577152558, 0.009519948749861491, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.022306831770080617, 0.0, 0.0, 0.003074570476841778, 0.0, 0.008145346800616094, 0.0, 0.0, 0.0, 0.08511345922427967, 0.18366197461769765, 0.025789383308915437, 0.008297215015175531, 0.0, 0.09184984081220632, 0.0668166427534811, 0.15796441417080423, 0.0, 0.0, 0.0, 0.0, 0.0, 0.024933369902885204, 0.0, 0.011259308615493588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02160071316022016, 0.0, 0.0, 0.0, 0.1015273549658925, 0.0, 0.3722773110385471, 0.0, 0.0, 0.0, 0.005704132382790829, 0.576786252698806, 0.6048982987919145, 0.3404333765031976, 0.0, 0.1776491403162125, 0.3619951063590594, 0.0, 0.0, 0.0, 0.0, 0.20056572202110787, 0.0, 0.4038849000985208, 0.0, 0.07292911426252524, 0.0, 0.0, 0.0, 0.0, 0.3254810866068793, 0.0, 0.0, 0.0, 0.0486152336987337, 0.0, 0.38697085430573647, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7532037777522111, 0.0, 0.0, 0.2947709821219489, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008564738540478935, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2647016620516834, 0.0, 0.0, 0.5486174586047213, 0.0, 0.0, 0.0, 0.0, 0.0]), 42), 42)),) julia> @finch_code begin Ct .= 0 for j = parallel(_) @@ -734,7 +734,7 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.1187145765025676, 0.0, 0.16555522612551515, 0.0, 0.0, 0.0, 0.0, 0.43509113842452285, 0.0, 0.0, 0.25672403787937165, 0.43862663884873543, 0.0, 0.0, 0.3519631419607619, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051120283482812334, 0.15945060967882835, 0.42044865267857073, 0.0, 0.019744477387695688, 0.0, 0.0, 0.0, 0.12726604148160792, 0.4480285054137333, 0.0, 0.41393771366257825, 0.0, 0.0, 0.1372243591915985, 0.12863434970716192, 0.0, 0.019238858430486484, 0.0, 0.2371659747040811, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.39682924637787165, 0.0, 0.8480118921637517, 0.0, 0.0, 0.0195483866997798, 0.0, 0.5990836331247341, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2618925497434801, 0.26117339231230247, 0.0, 0.0, 0.16216152735698644, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06997554550840408, 0.0, 0.0, 0.002400768013297612, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.4157511852632345, 0.5793963874059174, 0.0, 0.26436870752857605, 0.4172786501470117, 0.0, 0.0, 0.8079649846339338, 0.0, 0.0, 0.5764550461815096, 0.4229367652966696, 0.05379340446506314, 0.0, 0.0, 0.5795406808621261, 0.5877094760316834, 0.0, 0.0, 0.0, 0.0, 0.284387943824113, 0.0, 0.0, 0.0, 0.035174745039109515, 0.0, 0.0, 0.011970205674471077, 0.0, 0.0, 0.0, 0.0, 0.5436476197350472, 0.920039513761917, 0.0, 0.6198132723204128, 0.16799442509225773, 0.5753026732101696, 0.2043616977009669, 0.5065806869454675, 0.0, 0.0, 0.39160092945826996, 0.0, 0.11054447981865345, 0.0, 0.0, 0.9189729667337664, 0.0, 0.0, 0.6507053761422986, 0.6970188689802168, 0.0, 0.08297492397617155, 0.9062181287136433, 0.0, 0.059530976608982995, 0.012438951345378766, 0.0, 0.0, 0.0, 0.0, 0.2533819740366263, 0.9473531228336374, 0.06450793068804792, 0.0, 0.41573543153630554, 0.0, 0.0, 0.0, 0.7238062468593162, 0.0, 0.0, 0.3590904912393951, 0.07774042001084827, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6251886494903025, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44684741712517223, 0.0, 0.0, 0.0, 0.0, 0.010812740091707317, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8163131959379999, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2672156592426391, 0.0, 0.028807779838791864, 0.0, 0.0, 0.0, 0.025506753620224757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.022871104613233297, 0.0, 0.6057451127777128, 0.0, 0.0, 0.05122083512724408, 0.0, 0.0, 0.26967234588040656, 0.0, 0.0, 0.6655341287456478, 0.0, 0.41411417571013454, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29998038732284904, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06750566800337324, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3426210978919867, 0.3800174489235809, 0.0, 0.6531468239127369, 1.5341196475571879, 0.0, 0.0, 0.5993450019914057, 0.0, 0.0, 0.318944682359523, 0.0, 0.0, 0.0, 1.2766961856974943, 0.0, 0.47028907930153113, 0.46890260973852405, 0.0, 0.2635141940642454, 0.0, 0.06844040704623247, 0.6776383700271937, 0.08344450181255293, 0.0, 0.0, 0.13135428676134797, 0.1357944044209692, 0.0, 0.0, 0.0, 0.38624172924075223, 0.0, 0.0, 0.0, 0.23564395924169773, 0.0, 0.7014291092208349, 0.11139739784790205, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008393202836106917, 0.0, 0.22229541093446364, 0.2882110765245937, 0.0, 0.2931292388749959, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24423669216579333, 0.0, 0.07507242489058646, 0.0, 0.0, 0.14176191313790465, 0.0, 0.0, 0.0, 0.054753508738442806, 0.11008634170637227, 0.0, 0.0, 0.0, 0.0, 0.0, 0.024773126340884036, 0.0, 0.0, 0.38053755501306186, 0.0, 0.6713587667580375, 0.05335137428594376, 0.0, 0.0, 0.009224220899634665, 0.0, 0.07390888522469428, 0.1992308489896435, 0.12678608744717204, 0.0, 0.0546923223511062, 0.11313411705958114, 0.0, 0.0, 0.0, 0.0, 0.05169899432402749, 0.019742405777142896, 0.1769782400741126, 0.0, 0.0, 0.09297789149141053, 0.028906196325416873, 0.0, 0.0, 0.012919011582055164, 0.0, 0.0, 0.3208972845059436, 0.0, 0.0, 0.0046103209297173, 0.0, 0.0, 0.00416876885269193, 0.0729081194704697, 0.0, 0.0, 0.0, 0.07125538498910843, 0.0, 0.0, 0.03513444799266689, 0.0, 0.07540438323786366, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04369081060273281, 0.0, 0.0, 0.0, 0.014769980988042226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.017283118828420634, 0.006620940647292606, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006092931164902776, 0.0, 0.16137232276465496, 0.0, 0.15262637216887753, 0.013645384773351038, 0.16271613196948126, 0.0, 0.0, 0.0, 0.0, 0.17730029672438757, 0.41874765425641397, 0.054497803302564006, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10045113292307115, 0.27028417756519546, 0.07991567883089672, 0.0, 0.0, 0.0, 0.0, 0.0, 0.01798371330728596, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5859834957136911, 0.5086687281653502, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07646258969830243, 0.0, 0.0, 0.02773130153308066, 0.07708391588594585, 0.0, 0.0, 0.06185373806995992, 0.0, 0.0, 0.033137714842779345, 0.0, 0.0, 0.0, 0.0, 0.028021730318764978, 0.07388933025705045, 0.0, 0.021389015345232583, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046371970770837774, 0.04025364462832554, 0.2181921153062336, 0.4335185189335439, 0.0, 0.0, 1.0038009425423415, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4280152293034966, 0.0, 0.08414972142221414, 0.0, 0.3712598089597713, 0.0, 0.06370844553850769, 0.0, 0.0, 0.0, 0.0, 0.5083497561860121, 0.0, 0.0, 0.0, 0.17350738400022994, 0.0, 0.0, 0.0, 0.0, 0.5680638629882098, 0.4512837677833129, 0.036928112404588626, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6736518032785722, 0.0, 0.0, 0.0, 0.0, 0.3438277430889845, 0.1331574579932683, 0.8185600695730958, 0.0, 0.0, 0.017261448593960855, 0.0, 0.5289976863810653, 0.0, 0.0, 0.0, 0.0, 0.13826565194431473, 0.0, 0.12839377709982103, 0.8277070113616852, 0.0, 0.0, 0.3904546499995126, 0.08179569775458351, 0.0, 0.0, 0.0, 0.0, 0.16848803520369499, 0.0, 0.0, 0.005780600674157121, 0.0, 0.0, 0.0, 0.0, 0.042429105563066505, 0.0, 0.0, 0.5671026868317051, 0.5831842436077501, 0.0, 0.0, 0.5203885995071309, 0.0, 0.0, 0.0, 0.0, 0.03279957809056344, 0.20563143706052323, 0.8140555730584957, 0.0, 0.11735707443596549, 0.0, 0.0, 0.0, 0.0, 0.05942421719401875, 0.13531075914415133, 0.0, 0.22862377269710113, 0.0, 0.0, 0.0, 0.0, 0.009783289930470927, 0.0, 0.49666013194599, 0.01297478801242045, 0.004970474495620279, 0.0, 0.0, 0.0, 0.0, 0.18702095525297172, 0.0, 0.0, 0.49027730046536305, 0.0, 0.0, 0.0, 0.3100811795242501, 0.0, 0.5172830310180929, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5147075854808417, 0.0, 0.23506445593598685, 0.0, 0.0, 0.0984177418166802, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6597667532607603, 0.0, 0.7531258126074596, 0.0, 0.0, 0.0, 0.0, 0.009060495116628974, 0.0, 0.14938403565323904, 0.23931891774764502, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17320374473408556, 0.0, 0.0, 0.8859260157921318, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2593451028242532, 0.13535058061487634, 0.0, 0.17876385946442425, 0.5885021691653141, 0.4462993508157936, 0.0, 0.38646137613385273, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08841279830908562, 0.0, 0.0, 0.4090685041141252, 0.2385779614705672, 0.0, 0.32657075289021537, 0.0, 0.3891842232348578, 0.46695749861500585, 0.0, 0.20033954304824086, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6140772326336235, 0.21962331732895995, 0.0, 0.0, 0.21665980127772702, 0.0, 0.10259951624992725, 0.0040997688735825025, 0.0, 0.0, 0.0178257297768441, 0.0025383566681682393, 0.21683531480545457, 0.0, 0.027677402398657985, 0.0, 0.1880826476230884, 0.3419147609793875, 0.03227511522566195, 0.19053492425855037, 0.0, 0.06432217258278244, 0.0026780235214896283, 0.0, 0.0, 0.464125489835237, 0.09967606965443436, 0.0, 0.0, 0.0, 0.011788389508631971, 0.03206041622309702, 0.0, 0.0060682844433003185, 0.0, 0.0, 0.0, 0.010791956772858862, 0.0, 0.0, 0.0, 0.0, 0.4329905527364345, 0.14376890418721155, 0.6930376581272882, 0.0, 0.611818052941564, 0.6291676211651914, 0.0, 0.0, 0.5614206159067703, 0.48216800990329456, 0.0, 0.0, 0.4507229848159907, 0.0, 0.0, 0.8782428778065052, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06410974538727675, 0.23291225157991716, 0.08679043179604816, 0.0, 0.0, 0.08995902157278039, 0.8808378297797503, 0.0, 0.0, 0.0, 0.3618017482397369, 0.07709259450646033, 0.0, 0.22347789493902354, 0.0, 1.4151156566032244, 0.0, 0.0, 0.0876553401034732, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.35023812146064465, 0.10119869206094158, 0.0, 0.0, 0.0, 0.03421091843192662, 0.0, 0.18934530571059222, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.040031965441735276, 0.015335731346610126, 0.0, 0.0, 0.0, 0.0, 0.5012279391934354, 0.14361151525658541, 0.0, 0.05781748261134272, 0.17152855777668224, 0.0, 0.498484457540378, 0.0, 0.0, 0.7074889608036871, 0.0, 0.0, 0.0, 0.0, 0.0, 0.36413161255211174, 0.10650975776468122, 0.0027919607805886224, 0.1717164070699339, 0.0, 0.0, 0.0, 0.31636490805397033, 0.0, 0.0, 0.0, 0.3781004501122092, 0.1664160983543511, 0.0, 0.10894483484211534, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06899783350353156, 0.1313910038295779, 0.5458205926873976, 0.0, 0.2058361256028114, 0.0983057734206431, 0.006586106310131405, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13715236217863272, 0.026867165999227966, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0035515304259612105, 0.0, 0.0, 0.5329776529167246, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.397719517913955, 0.20668056810136554, 0.1307286941015916, 0.0, 0.19979734260211207, 0.13509882393613562, 0.0, 0.0, 0.0, 0.4428910220796438, 0.0, 0.10971922982381796, 0.20405686697329703, 0.0, 0.0, 0.0, 0.4155385933508652, 0.0, 0.030373091671251427, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02870549966274466, 0.0, 2.221236796150802e-5, 0.04518680503118196, 0.8557997812159583, 0.0, 0.0, 0.0, 0.33295230926411423, 0.0, 0.0, 0.1651823382455281, 0.0, 0.0, 0.10987547938954217, 0.038321493889877094, 0.0, 0.0, 0.9167265220224268, 0.0, 0.41223669995910156, 0.0062879102301798264, 0.006460790579658201, 0.0, 0.015093288171720337, 0.004653032070207847, 0.0, 0.0, 0.21192982566516394, 0.0, 0.5265530542756913, 0.004398370159579225, 0.3103332077675556, 0.0, 0.0, 0.21886457786346297, 0.058793164358353744, 0.24052003353974485, 0.5039916994286584, 0.08865805888962155, 0.0, 1.2109591957845456, 0.0, 0.4576423956337198, 0.13738787883657938, 0.3665641879979031, 0.00039223002823340837, 0.0, 0.6257753572135888, 0.0, 1.0620388990418166, 0.04837586177991647, 0.05564954721706949, 0.23699310888410263, 0.0060621596830514254, 1.2406804285104875, 0.0, 0.6055788924273563, 0.1024025590217045, 0.41360202805293217, 0.5476995216716073, 0.17831079467145505, 0.0, 0.0, 0.0, 0.14728996725917032, 0.19581503373322434, 0.10219463649126194, 0.0, 0.0, 1.213270546019433, 0.06327342954871182, 0.0, 0.0, 0.34855390390603164, 0.0, 0.0, 0.2854684709047343, 0.28462687503630496, 0.0, 0.0, 0.0, 0.06675489490570531, 0.4113308129658067, 0.0, 0.049609846106367136, 0.0, 0.0, 0.0, 0.0, 0.2938483162830928, 0.35256998241930354, 0.0, 0.15126367898557985, 0.0, 0.0, 0.1430373863296425, 0.0, 0.11979050068949273, 0.0, 0.0, 0.0, 0.2174719417996252, 0.18492143615091797, 0.5613745989840638, 0.0, 0.1269084936189851, 0.13050728832210684, 0.0, 0.008090983120695843, 0.11645462945856581, 0.45646266655488743, 0.0, 0.0, 0.018120109170533364, 0.0, 0.0, 0.18217259219167142, 0.0, 0.0, 0.23544229686275722, 0.0, 0.072369241454098, 0.0, 0.013298187548207349, 0.0, 0.15536962738337737, 0.0, 0.0, 0.0, 0.5485281455413065, 0.0, 0.0, 0.0, 0.07504798957314487, 0.13800884999205565, 0.023881103672210243, 0.4000634234277266, 0.0, 0.63983454521553, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1274757935226854, 0.0, 0.060340389443721644, 0.0, 0.0, 0.0, 0.0, 0.046886662511488715, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4105919579209241, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17717763704599515, 0.0, 0.0, 0.006078729370399735, 0.0, 0.0, 0.0, 0.4419304781486809, 0.004498905638339938, 0.0, 0.0, 0.06013187036225827, 0.061837053761552255, 0.158000195476362, 0.08245930986204707, 0.055178613203866224, 0.0, 0.3921588247960043, 0.051054375379452996, 0.0, 0.3113852203955569, 0.0, 0.08631714383210826, 0.016249403505819805, 0.0, 0.5064243516388502, 0.0, 0.0799687272151233, 0.0, 0.06016447367008715, 0.0, 0.0, 0.12723000596711698, 0.0, 0.0, 0.0, 0.0, 0.3344116617465516, 0.28448339782348236, 0.03555929040895464, 0.12972821265302345, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05771825347353467, 0.0, 0.06101920493228206, 0.0, 0.1422424089220273, 0.0, 0.0, 0.0850349690926388, 0.0, 0.6465489235087094, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9592391331341867, 0.0, 0.0, 0.0, 0.07533170200640231, 0.3935757364788316, 0.41733426606664215, 0.0, 0.0, 0.0, 0.0, 0.8096836326115127, 0.0, 0.0, 0.15672712010482948, 0.08471008784973191, 0.0, 0.0, 0.021315681001762884, 0.0, 0.0, 0.0, 0.6515686149424397, 0.0, 0.04354065349809789, 0.5887361460115157, 0.0, 0.3314629690186724, 0.08254082170798169, 0.0, 0.5363022284331493, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20539826744479112, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20437563182844645, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08512737043917705, 0.0, 0.0, 0.0, 0.21221590140088104, 0.0, 0.5922163084848736, 0.0, 0.054946173604955253, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11912480847073124, 0.10340745987043, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22405559305996067, 0.04389088686607588, 0.0, 0.8369237022137216, 0.0, 0.0, 0.303533841030579, 0.8437244477194209, 0.0, 0.0, 0.6770220530788269, 0.0, 0.08868596150524616, 0.0, 0.0, 0.0, 0.005801870585523199, 0.0, 0.3067127385215406, 1.9980597464483445, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1818471988215991, 0.0, 0.0, 0.0, 0.0, 0.09250846502860006, 0.0, 0.0, 0.0, 0.14804755431292183, 0.0, 0.3797383608658618, 0.39017892030987883, 0.0, 0.035065009177551926, 0.28100508860898343, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2656255916096575, 0.01029999428072384, 0.026319871200300066, 0.0, 0.0, 0.35174701729018143, 0.019026589888644814, 0.0, 0.0, 0.0, 0.0, 0.10260912587786382, 0.0, 0.0204467738415142, 0.0, 0.023687486390763176, 0.0, 0.0, 0.002174927201126577, 0.0, 0.09114373059640297, 0.0, 0.2642096712527522, 0.3907643461384895, 0.0, 0.0, 0.18051818330232947, 0.0, 0.3874221185422575, 0.6531078672631825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15551832566217896, 0.0, 0.1916820827839075, 0.0, 0.0, 0.08276135601321193, 0.0, 0.10030127909330487, 0.0, 0.0, 0.0, 0.10537887040654752, 0.0, 0.17805025311577488, 0.0, 0.010472659941918684, 0.0, 0.0, 0.007619143135798, 0.0, 0.12561988447587705, 0.0, 0.0, 0.7794014171836517, 0.0, 0.08402510727068294, 0.0, 0.3682135686649267, 0.08647369259665981, 0.09410614716697653, 0.611021014238459, 0.0, 0.0, 0.023955493193970948, 0.0, 0.0, 0.007434430348560844, 0.0, 0.0, 0.0, 0.24285369100807747, 0.0, 0.0, 0.0051185021691807515, 0.0, 0.0015127483220163092, 0.0, 0.0, 0.06096785123225053, 0.014193124550026902, 0.5775319451121608, 0.0, 0.0, 0.0, 0.007997400222196374, 0.6747251647940697, 0.0, 0.0, 0.0, 0.0, 0.7027693457851822, 0.0, 0.0, 0.055434654145900264, 0.0, 0.0, 0.0, 0.02587284155878174, 0.0, 0.42673143134824615, 0.004724246163513554, 0.4406790171730267, 0.0, 1.0342538585019783, 0.5747154140513469, 0.0, 0.9363482803339344, 0.7135280098555865, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9563104993907826, 0.0, 0.0, 0.0, 0.8295023845011231, 0.10509888461130146, 0.2471322355632557, 0.3801044173906537, 0.0, 0.0, 0.0, 0.1514367226333477, 0.0, 0.0, 0.0, 0.24534157695942965, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.052661051195310594, 0.6550399256456869, 0.5803102488724085, 0.0, 0.5319072548222628, 0.46172731619827034, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.026741428574906606, 0.0, 0.7082513040743756, 0.0, 0.0, 0.4418255985655133, 0.1449878921305842, 0.3039326972841545, 0.0, 0.0, 0.0, 1.198252644211342, 0.44500849169967277, 0.23918686672510267, 0.0, 0.0, 0.19736692078049992, 0.0, 0.0, 0.0, 0.0762301466058952, 0.3507440605568865, 0.4669973871873196, 0.0, 0.06417785026076955, 0.0, 0.0, 0.07892920039677795, 0.20151756987027533, 0.0, 0.5298004507120764, 0.006913800133275409, 0.0, 0.0742780358218034, 0.0, 0.6026732223863505, 0.0, 0.0, 0.5351202277676342, 0.0, 0.0, 0.9548891902757952, 0.02916984862304253, 0.0, 0.4970347785792808, 0.12683003730681902, 0.0180604034141702, 0.0, 0.2650052427173023, 0.0, 0.033791924886614616, 0.0, 0.04181580147667587, 0.0, 0.4621910495164758, 0.0, 0.0, 0.0190541328400638, 0.0, 0.17864673433347314, 0.014160348828667728, 0.8165447001064132, 0.09368415058058097, 0.9079968531646069, 0.08687864486537158, 0.19492858047186096, 0.10063554575175, 0.0, 0.09210666608746948, 0.01874477292287561, 0.03748966025771319, 0.0, 0.5779501492966836, 0.0012862204434733993, 0.220963909203652, 0.3086404911712966, 0.17631145912557372, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032159896791554, 0.0, 0.1846953640258127, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07139034913327573, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37871083555251084, 0.0, 0.0, 0.0, 0.0, 0.19265602282403793, 0.0, 0.0, 0.606424267788203, 0.011600938808477314, 0.0, 0.63655122023184, 0.8091094673344561, 0.15945386155042648, 0.21681046587583439, 0.5841977471111124, 0.14228431684797266, 0.0, 0.4919831840901785, 0.07005765326837811, 0.0, 0.4452652454663618, 0.0, 0.2225785522561698, 0.0, 0.0, 0.565764962530824, 0.0, 0.0, 0.0, 0.09016013522690633, 0.0, 0.0, 0.054929050345560504, 0.0, 0.0, 0.0397070718161962, 0.0, 0.3253549491861982, 0.39037279561642807, 0.09169366625332782, 0.16748228205826332, 0.0, 0.0, 0.6136975564576865, 0.0, 0.0, 0.3026006369046373, 0.0, 0.649431418360159, 0.08211939816658421, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8259750138040276, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5145740577075524, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.45723140022915015, 0.0, 0.0, 0.9202097992461084, 0.168004673879535, 0.0, 0.0, 0.1251531867765232, 0.0, 0.2137981131137785, 0.0, 0.013898368242301713, 0.0, 0.0, 0.7137867360685719, 0.0, 0.0, 0.1000729174155476, 0.0, 0.0, 0.03483089759667312, 0.12636252602014256, 0.0, 0.6417666786106352, 0.47874755782682904, 0.0, 0.0, 0.42719736321019475, 0.0, 0.269711179183823, 0.0, 0.0, 0.0, 0.0, 0.668274429237161, 0.0, 0.0, 0.19736413928693208, 0.0, 0.64140191275638, 0.0, 0.04878252313782071, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7804894714968978, 0.1354649020531392, 0.7521947991243342, 0.061565240681645095, 0.7064549771516211, 0.0, 0.0, 0.0, 0.1369213608036062, 0.598180503319145, 0.0, 0.4894142513129519, 0.14663698801711797, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14418506746458087, 0.027360830334206502, 0.0, 0.0, 0.11896445459410832, 0.016940356460817766, 0.08867849541915622, 0.0, 0.0, 0.0, 0.0, 0.014527597186767355, 0.0, 0.0, 0.0, 0.0, 0.017872458048705516, 0.09208038488681886, 0.0, 0.01328217046242409, 0.0, 0.0, 0.0, 0.0, 0.07867275819804301, 0.09439445944634833, 0.0, 0.040498210068061674, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.5786578146202624, 0.0, 0.3202961159483594, 0.3207279869105304, 0.5035217854841559, 0.0, 0.013671076975665627, 0.01669925591794789, 0.0, 0.0, 0.0, 0.5652457771225854, 0.0, 0.09766762955114001, 0.2831455624824939, 0.0, 1.0556185392068085, 0.2068017763866623, 0.0, 0.15942131380345745, 0.005607444973383372, 0.0, 0.056687675717707615, 0.2535497922885842, 0.4637407985590488, 0.22387274550179712, 0.5454655738973408, 0.08490666489615803, 0.3556465582001688, 0.0, 0.0, 0.31186727366054, 0.6972638697010188, 0.0, 0.0, 0.009518501694028625, 0.0, 0.5833334701399113, 0.6244214908493986, 0.0, 0.26168041250093527, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0131047746782154, 0.0, 0.6656645247350605, 0.0, 0.0, 0.0769882955934405, 0.0, 0.0, 0.34004774503974494, 0.08053504092577264, 0.006982581834800098, 0.5446249720805942, 0.0, 0.0, 0.31025177039320695, 0.2638902653915397, 0.0, 0.0, 0.0, 0.0, 0.2008136945182758, 0.0, 0.0, 0.19041992572397343, 0.05903622381609576, 0.0, 0.0589978949008293, 0.05133054295704808, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7141967536140789, 0.0, 0.11331087789790419, 0.0, 0.0, 0.13904571220904566, 0.16685503671570054, 0.0, 0.1461222249815685, 0.0, 0.0, 0.0, 0.1624667486179013, 0.0, 0.0, 0.0001466632220376543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.040061564188380784, 0.0, 0.0, 0.05925661356360367, 0.0, 0.20052213796576485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1322273764299389, 0.0, 0.07284319524978862, 0.0, 0.21698248889777863, 0.0, 0.22616177063294415, 0.0, 0.0, 0.0, 0.0, 0.52849490550171, 0.0, 0.71926878469886, 0.0, 0.6501927607213651, 0.0030355649865830615, 0.37799680598211977, 0.0, 0.0007078975665940506, 0.09351646752064424, 0.05681500695663011, 0.0, 0.20243859396970953, 0.0628704495708815, 0.001556209278473695, 0.0, 0.0, 0.0, 0.0, 0.0027171741525499, 0.0, 0.0, 0.0, 0.07038911039656341, 0.049709343960620045, 0.0, 0.018852918431012597, 0.26140762404567164, 0.049374687944063446, 0.0, 0.0, 0.5682508160039592, 0.08397693763382687, 0.0, 0.0, 1.1395457189674745, 0.10207861893624984, 0.006346754524020049, 0.07139718683099765, 0.0, 0.4257292397317542, 0.0, 0.0, 0.003459642976589088, 0.00011827788909935122, 0.29669071600135444, 0.0, 0.04645302583039929, 0.6403581026228157, 0.0, 0.0, 0.4035906657629842, 0.0, 0.0, 0.031770473502227184, 0.0, 0.10177861753458611, 0.08984803025006428, 0.2696383585775038, 0.0, 0.0, 0.0, 0.0, 0.4020058229022269, 0.8537152750348289, 0.27466570696380027, 0.0, 0.9014511503031993, 0.0, 0.0, 0.0, 0.3588364621034526, 0.0, 0.10358336916612662, 0.0, 0.8253783539224127, 0.003096290011755601, 0.3727209618097055, 0.0, 0.0, 0.0, 0.08512247762765326, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0016669318756259504, 0.0, 0.0, 0.9038241621401286, 0.23981242371494071, 0.0, 0.0, 0.0, 0.10303433366133424, 0.0, 0.0, 4.317142647672722e-5, 0.0, 0.07840647389573854, 0.0, 0.0, 0.0, 0.0, 0.36164895718336953, 0.011697025915496142, 0.0, 0.0, 0.0, 0.0, 0.001969151291048087, 0.0, 0.0016085698018090215, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8640055140280944, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10961290316901336, 0.0, 0.0, 0.0, 0.34012752342022284, 0.0, 0.09000159029348583, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.38387258660557405, 0.0, 0.0, 0.0, 0.04942864149427501, 0.0, 0.9641925530766522, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1618638919487994, 0.0, 0.0, 0.1434695556565637, 0.3651050198592113, 0.0, 0.04210320606021404, 0.5803955429188099, 0.0, 0.0, 0.36579879697476825, 0.4517875751113323, 0.0, 0.0, 0.0, 0.597783133294766, 0.0, 0.0, 0.6329135233850276, 0.0, 0.002597015658553236, 0.2174699638827603, 0.39061652165480276, 0.765918958416278, 0.0, 0.016481521625833693, 0.28751000269430316, 0.0, 0.1647131064041664, 0.0, 0.4521970394725687, 0.0, 0.0, 0.11039007420645473, 0.0, 0.0, 0.0, 0.902497226885166, 0.7436286750029288, 0.09842900387294973, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0017337381605838167, 0.0, 0.48184280820859876, 0.0, 0.0, 0.4182604044398821, 0.05413499724631636, 0.00395203096164986, 0.49703533424495255, 0.0, 0.0, 0.0, 0.43461516165530706, 0.0, 0.0, 0.2097986260899648, 0.0, 0.0, 0.0, 0.0032389406325184205, 0.11624028110212369, 0.0, 0.23514374437795085, 0.0, 0.013757851512121493, 0.0, 0.23992048040279412, 0.32911722925956555, 0.0, 0.18863648593265903, 0.5965040702112832, 0.0, 0.0, 0.006607346447861224, 0.005821424904675781, 0.2242736217811627, 0.0, 0.0, 0.02743682303358625, 0.03021510122691055, 0.4109976396191596, 0.016694351333046, 0.0, 0.0, 0.15588266372439724, 0.0, 0.7589538506473881, 0.0, 0.0, 0.9157838182946224, 0.07079903450052254, 0.0, 0.0, 0.0, 0.8133345120890082, 0.19376473666562866, 0.0, 0.0, 0.24554349589597185, 0.2326206471524158, 0.5829196459370383, 0.0, 0.344078222468009, 0.0, 0.5927124546739914, 0.21206748875282805, 0.5013588717575729, 0.1507046170639337, 0.0, 0.2922067750640437, 0.9112630304460252, 0.0, 0.42296978570223137, 0.0, 0.0, 0.0, 0.0, 0.47847449991115903, 0.0, 0.0, 0.0, 0.0, 0.02922391861250235, 0.003575617433634187, 0.0, 0.0, 0.18000379265062824, 0.0, 0.0, 0.0, 0.020223410318598516, 0.0, 0.0, 0.0, 0.0, 0.1194607408090099, 0.0, 0.18567470153771173, 0.015493204406064897, 0.0, 0.0, 0.22675090423473912, 0.0, 0.6338841242698132, 0.5245326238847832, 0.0019166419799919094, 0.6594541233567529, 0.0, 0.005139571264149575, 0.0, 0.0, 0.0, 0.014894820580065271, 0.0, 1.2034959876942206, 0.0, 0.25665804266856174, 0.012594729973842587, 0.0, 0.011446343678364038, 0.0, 0.0, 0.02279435489937408, 0.025102532455875536, 0.0, 0.0, 0.0, 0.0, 0.1307674017372415, 0.5572422675871412, 0.20860522647402835, 0.3439153754178085, 0.0, 0.7682359770495442, 0.05881943098741484, 0.0, 0.0, 0.7560476592821442, 0.06967644285195858, 0.0, 0.04321641535911349, 0.0, 0.0, 0.0, 0.8024673537053417, 0.0, 0.0, 0.0, 0.0, 0.1761844509232577, 0.8168042507595197, 0.0, 0.0, 0.0, 0.5887168313525647, 0.0, 0.0, 0.4050160345946778, 0.0, 0.28424121144843517, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04314478705768561, 0.17729851568072083, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06445720856859194, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10331544984256105, 0.2490312779322865, 0.0, 0.24280852181294071, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5198374016631779, 0.0, 0.0, 0.0, 0.13645064069986682, 0.0, 0.24758012015088376, 0.5314044104438821, 0.0, 0.0, 0.3110470576055099, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02359980206981429, 0.36163373919282166, 0.0, 0.0, 0.4835792742792758, 0.0, 0.3524294596638372, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27655502261887766, 0.0, 0.0, 0.0, 0.0, 0.22117286156450722, 0.0, 0.15521963759663626, 0.0, 0.0, 0.0, 0.0, 0.021723812939992326, 0.02392358642299197, 0.0, 0.9811990708246294, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4965569454339231, 0.08530918757868192, 0.0, 0.07823884141505981, 0.08129763345109173, 0.8580687524263778, 0.6125638634435169, 0.7792197114170356, 0.17406349022985984, 0.0, 0.7428281837408045, 0.0, 0.07932414385265583, 0.46154167819945197, 0.0, 0.5289001614381607, 0.0, 0.8287876866571131, 0.1679099089089469, 0.695722986230781, 0.0, 0.010707260605614142, 0.014687966352699852, 0.03846916856579124, 0.6678999803007167, 0.8946423775406338, 0.0, 0.0, 0.6928842432378984, 0.0, 0.8291172549334254, 0.0, 0.036214437271524916, 0.0, 0.6493274982169268, 0.0, 0.0, 0.0, 0.0, 0.022863259627981244, 0.7335275809594394, 0.03647235770741211, 0.0, 0.287070580153256, 0.13431771500769504, 0.14856735628547443, 0.15781940486580828, 0.0, 0.0, 0.323980207489089, 0.0, 0.02667757509153305, 0.33154611696012287, 0.008340998981572286, 0.0, 0.1964137723963185, 0.0, 0.18369526317696738, 0.0, 0.36991237719570497, 0.0, 0.0, 0.060663484669780686, 0.0, 0.0, 0.10293074255327075, 0.9555336304557553, 0.0, 0.2500171656161189, 0.5342857393564834, 0.17546263843294155, 0.0, 0.35442104566615373, 0.0, 0.0, 0.0, 0.0, 0.17621149415330922, 0.6121951999020001, 0.14104370661074167, 0.0, 0.03700642443953683, 0.5101360635898259, 0.0, 0.0, 0.398419677876043, 0.0, 0.0, 0.0, 0.23862742072997933, 0.0, 0.06314351493041778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32025466250143747, 0.0, 0.0, 0.0, 0.25412006584310015, 0.0, 0.2693181789862389, 0.0, 0.2858641430477511, 0.0, 0.12448957171647013, 0.0, 0.6764603455612473, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.007629531631679027, 0.008402105093687509, 0.1478058101242069, 0.005053168588900645, 0.0, 0.30372648283729076, 0.003980754378397801, 0.0, 0.0, 0.0, 0.0, 0.07450559902388645, 0.019687537166852037, 0.0, 0.08244653582028545, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16209616805705127, 0.0, 0.08979346385777931, 0.06518743281502334, 0.21315534710850095, 0.08369413937188341, 0.1394160455900761, 0.5610626715103558, 0.0, 0.0, 0.13968567626607642, 0.0, 0.0, 0.0, 0.0, 0.01924679403964147, 0.0, 0.0, 0.0, 0.0, 0.616722369104707, 0.0, 0.0, 0.5466375681050827, 0.0, 0.0, 0.013987945284851467, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09368066064257337, 0.0, 0.24818473838609467, 0.04865531902212218, 0.0, 0.009894965642192768, 0.0, 0.45825677816644195, 0.7857899124906229, 0.25281208870305677, 0.0, 0.8251354193653254, 0.0, 0.6275782447904167, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7597076021322064, 0.4559884064545227, 0.3430656338577527, 0.32001374263313714, 0.2977084759378876, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26332513624077, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07361684952632414, 0.0, 0.0, 0.0, 0.5420044017413929, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5785225932672249, 0.0, 0.0, 0.0, 0.6899231282082093, 0.33897374575165645, 0.4841896839083132, 0.0, 0.0, 0.0, 0.0, 0.6240541831707288, 0.0, 0.0, 0.5531361892215293, 0.4547991804243185, 0.0, 0.100152739355421, 0.0, 0.2440837061302026, 0.0, 0.0, 0.0, 0.0, 0.12076927556310874, 0.0, 0.0, 0.3415398112751411, 0.0, 0.0, 0.0, 0.010012600500133058, 0.0, 0.10122097549537463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6350391173534848, 0.0, 0.0, 0.5362493708751273, 0.3870491592555651, 0.0, 0.0, 0.011769944241680865, 0.3142045963597273, 0.0, 0.30124773979598957, 0.0, 0.3235765421156834, 0.0, 0.541761414379215, 0.0, 0.0, 0.8318031269227326, 0.0, 0.0, 0.0, 0.0, 0.0, 0.655176286023573, 0.0, 0.0, 0.12998028512957016, 0.09284961824757046, 0.5535451825358659, 0.6996061073192734, 0.06205996989121698, 0.0, 0.0, 0.0, 0.008692259029504977, 0.0, 0.08787316923443415, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5512977874061133, 0.0, 0.06274188232221303, 0.0860678272807259, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7913396090809787, 0.26152280681975265, 0.0, 0.0, 0.0, 0.0, 0.0, 0.028664478181671504, 0.0009799779903315728, 0.0032348889210802386, 0.0, 0.11837934340514084, 0.4864662292788164, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07382213914734657, 0.0, 0.0, 0.0, 0.17685571185867954, 0.2510513607906149, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0019118999997271302, 0.0, 0.04133793381575315, 0.2834737624180827, 0.6832843821792778, 0.0, 0.6662105748014928, 0.0, 0.5326269406399959, 0.0, 0.0, 0.0, 0.0, 0.10672810444069859, 0.0, 0.07123750254807154, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.007981914293001519, 0.10075857550012479, 0.009540391703188681, 0.0, 0.11580721042791553, 0.0, 0.0, 0.17856228523566461, 0.00048020843909893406, 0.0, 0.197593765283525, 0.0, 0.0, 0.0, 0.6194557197663932, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21520162666608084, 0.1562300971282056, 0.0, 0.0592523063663964, 0.0, 0.18612758103797813, 0.0, 0.2544272402257203, 0.15422821911002763, 0.0012917517157272594, 0.0, 0.0, 0.14907655404346837, 0.09429642888622711, 0.0, 0.0, 0.0, 0.0, 0.09600808583182174, 0.0, 0.005856583784053075, 0.08156012032053195, 0.09312148266647201, 0.0322184865015818, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03641255600507808, 0.0, 0.09646644914865622, 0.6107192924560144, 0.0, 0.0008311989920553221, 0.04768463204338608, 0.008402889219987731, 0.30542717141970227, 0.09826504505325136, 0.08476742117805344, 0.35700707759139916, 0.0, 0.052717960159591244, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29528928831604634, 0.0, 0.18118798681716172, 0.047489656233823854, 0.07375616702811215, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15842644268884615, 0.005416265593171256, 0.0, 0.0, 0.0, 0.06326712126451656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22847169102573353, 0.0, 0.11955753824812076, 0.0, 0.0, 0.0, 0.08074664695989245, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0029119331378805115, 0.0, 0.0, 0.1953274033599059, 0.0, 0.0, 0.0, 0.48520999511490304, 0.0, 0.0, 0.0, 0.0, 0.13603276168063752, 0.0, 0.06155663979875702, 0.0, 0.0, 0.0, 0.19100951475155065, 0.0, 0.05054327834442013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21557595738397023, 0.0, 0.0, 0.2988625665604049, 0.02775823823873608, 0.0, 0.5414732387378444, 0.0, 0.1751125450084881, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7653173403797493, 0.011610920930129028, 0.0, 0.6690009447860032, 0.007717112212206315, 0.0, 0.0, 0.0, 0.0, 0.0949800986519104, 0.0, 0.01759104522847652, 0.0272063292239745, 0.0, 0.18672851022958098, 0.14592398686801408, 0.0, 0.0, 0.06111532732066789, 0.0, 0.012109927581814974, 0.0, 0.3464253043638218, 0.014416979955844242, 0.0, 0.0, 0.004751074128394563, 0.0814923248235591, 0.960719872887566, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029410227635468144, 0.3902617128196832, 0.0, 0.0, 0.0, 0.0, 0.03936155946785215, 0.0, 0.0, 0.0, 0.0, 0.03226521554976169, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029868187491618223, 0.0, 0.007848954300217155, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02618395857766568, 0.0, 0.0, 0.0, 0.02729344001455739, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16043383601301778, 0.0, 0.08114240967089056, 0.0, 0.12944151616666955, 0.0, 0.0, 0.8424042898437758, 0.0, 0.0, 0.0, 0.0, 0.04323489183997365, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2997198089695268, 0.0, 0.0, 0.09877179787471602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.36530436236505814, 0.0, 0.0, 0.0, 0.0, 0.6114198560066337, 0.538693529249165, 0.0, 0.0, 0.0, 0.014312907460573414, 0.015762245768879076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03693357747227013, 0.0, 0.0, 0.5249268945825, 0.0, 0.0, 0.16471382065012125, 0.0, 0.0, 0.0, 0.304090416701445, 0.48915218766248414, 0.0, 0.020376509279081044, 0.0, 0.11062878301178729, 0.26154278602954106, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1338990979320024, 0.0, 0.12169019076516314, 0.0, 0.0, 0.0, 0.5524220216872981, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13426647560262422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05161008110067911, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.007893769925822126, 0.008693100403012733, 0.0, 1.169538837435482, 0.0, 0.5817658012805581, 0.3172103076471354, 0.0, 0.22838627747698767, 0.0, 0.10226945824142554, 0.0, 0.020369387834492953, 0.0, 0.20675490808600527, 0.48677742001957014, 0.6262431249386917, 0.151645446757169, 0.20817481578766972, 0.0, 0.0, 0.0668476153746235, 0.5758263086091524, 0.4536026680375212, 0.09887690089373365, 0.018895630454912823, 0.0, 0.06101333098633492, 0.38664812220872247, 0.0, 0.0, 0.7304510924229297, 0.030046419431745734, 0.0, 1.1003509629444073, 0.5194953755737197, 1.1578838988668234, 0.48875095960339066, 0.0, 0.1128462605244655, 0.0, 0.0, 0.0, 0.4791947947301635, 0.0, 0.03259627779739397, 0.10028189990101041, 0.029465846845003113, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22859113464308234, 0.0, 0.11646855789532944, 0.12693945289885786, 0.0, 0.0, 0.20330790896109577, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1873449680464739, 0.0, 0.0, 0.06173899342973636, 0.0, 0.0, 0.04476882030066193, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04375496463125991, 0.38217838780949126, 0.336719559414533, 0.04092456729054698, 0.0, 0.04229882731958149, 0.0, 0.0, 0.0, 0.1452994629839798, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0184335582446928, 0.0, 0.0, 0.0, 0.057199110071214684, 0.0, 0.14103517741623545, 0.03340505872611428, 0.0, 0.0, 0.0, 0.05811339385405451, 0.0, 0.0, 0.0, 0.0, 0.044222795803071285, 0.0, 0.06455569991448866, 0.0, 0.0, 0.05037647535437417, 0.008312394942553907, 0.0, 0.1621478774157853, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005416039933812771, 0.0, 0.0, 0.0, 0.0398756195493532, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05075809733341722, 0.0, 0.03562215281502755, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19049409924372604, 0.0, 0.0, 0.20255925674743036, 0.0, 0.0, 0.0, 0.0, 0.11222926185446927, 0.0, 0.22599925727813394, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18212734324380878, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21653477423901774, 0.0, 0.0, 0.008644589577152558, 0.009519948749861491, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.022306831770080617, 0.0, 0.0, 0.003074570476841778, 0.0, 0.008145346800616094, 0.0, 0.0, 0.0, 0.08511345922427967, 0.18366197461769765, 0.025789383308915437, 0.008297215015175531, 0.0, 0.09184984081220632, 0.0668166427534811, 0.15796441417080423, 0.0, 0.0, 0.0, 0.0, 0.0, 0.024933369902885204, 0.0, 0.011259308615493588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02160071316022016, 0.0, 0.0, 0.0, 0.1015273549658925, 0.0, 0.3722773110385471, 0.0, 0.0, 0.0, 0.005704132382790829, 0.576786252698806, 0.6048982987919145, 0.3404333765031976, 0.0, 0.1776491403162125, 0.3619951063590594, 0.0, 0.0, 0.0, 0.0, 0.20056572202110787, 0.0, 0.4038849000985208, 0.0, 0.07292911426252524, 0.0, 0.0, 0.0, 0.0, 0.3254810866068793, 0.0, 0.0, 0.0, 0.0486152336987337, 0.0, 0.38697085430573647, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7532037777522111, 0.0, 0.0, 0.2947709821219489, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008564738540478935, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2647016620516834, 0.0, 0.0, 0.5486174586047213, 0.0, 0.0, 0.0, 0.0, 0.0]), 42), 42)),) julia> @finch_code begin Ct .= 0 for j = _ @@ -1015,7 +1015,7 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.1187145765025676, 0.0, 0.16555522612551515, 0.0, 0.0, 0.0, 0.0, 0.43509113842452285, 0.0, 0.0, 0.25672403787937165, 0.43862663884873543, 0.0, 0.0, 0.3519631419607619, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051120283482812334, 0.15945060967882835, 0.42044865267857073, 0.0, 0.019744477387695688, 0.0, 0.0, 0.0, 0.12726604148160792, 0.4480285054137333, 0.0, 0.41393771366257825, 0.0, 0.0, 0.1372243591915985, 0.12863434970716192, 0.0, 0.019238858430486484, 0.0, 0.2371659747040811, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.39682924637787165, 0.0, 0.8480118921637517, 0.0, 0.0, 0.0195483866997798, 0.0, 0.5990836331247341, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2618925497434801, 0.26117339231230247, 0.0, 0.0, 0.16216152735698644, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06997554550840408, 0.0, 0.0, 0.002400768013297612, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.4157511852632345, 0.5793963874059174, 0.0, 0.26436870752857605, 0.4172786501470117, 0.0, 0.0, 0.8079649846339338, 0.0, 0.0, 0.5764550461815096, 0.4229367652966696, 0.05379340446506314, 0.0, 0.0, 0.5795406808621261, 0.5877094760316834, 0.0, 0.0, 0.0, 0.0, 0.284387943824113, 0.0, 0.0, 0.0, 0.035174745039109515, 0.0, 0.0, 0.011970205674471077, 0.0, 0.0, 0.0, 0.0, 0.5436476197350472, 0.920039513761917, 0.0, 0.6198132723204128, 0.16799442509225773, 0.5753026732101696, 0.2043616977009669, 0.5065806869454675, 0.0, 0.0, 0.39160092945826996, 0.0, 0.11054447981865345, 0.0, 0.0, 0.9189729667337664, 0.0, 0.0, 0.6507053761422986, 0.6970188689802168, 0.0, 0.08297492397617155, 0.9062181287136433, 0.0, 0.059530976608982995, 0.012438951345378766, 0.0, 0.0, 0.0, 0.0, 0.2533819740366263, 0.9473531228336374, 0.06450793068804792, 0.0, 0.41573543153630554, 0.0, 0.0, 0.0, 0.7238062468593162, 0.0, 0.0, 0.3590904912393951, 0.07774042001084827, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6251886494903025, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44684741712517223, 0.0, 0.0, 0.0, 0.0, 0.010812740091707317, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8163131959379999, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2672156592426391, 0.0, 0.028807779838791864, 0.0, 0.0, 0.0, 0.025506753620224757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.022871104613233297, 0.0, 0.6057451127777128, 0.0, 0.0, 0.05122083512724408, 0.0, 0.0, 0.26967234588040656, 0.0, 0.0, 0.6655341287456478, 0.0, 0.41411417571013454, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29998038732284904, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06750566800337324, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3426210978919867, 0.3800174489235809, 0.0, 0.6531468239127369, 1.5341196475571879, 0.0, 0.0, 0.5993450019914057, 0.0, 0.0, 0.318944682359523, 0.0, 0.0, 0.0, 1.2766961856974943, 0.0, 0.47028907930153113, 0.46890260973852405, 0.0, 0.2635141940642454, 0.0, 0.06844040704623247, 0.6776383700271937, 0.08344450181255293, 0.0, 0.0, 0.13135428676134797, 0.1357944044209692, 0.0, 0.0, 0.0, 0.38624172924075223, 0.0, 0.0, 0.0, 0.23564395924169773, 0.0, 0.7014291092208349, 0.11139739784790205, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008393202836106917, 0.0, 0.22229541093446364, 0.2882110765245937, 0.0, 0.2931292388749959, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24423669216579333, 0.0, 0.07507242489058646, 0.0, 0.0, 0.14176191313790465, 0.0, 0.0, 0.0, 0.054753508738442806, 0.11008634170637227, 0.0, 0.0, 0.0, 0.0, 0.0, 0.024773126340884036, 0.0, 0.0, 0.38053755501306186, 0.0, 0.6713587667580375, 0.05335137428594376, 0.0, 0.0, 0.009224220899634665, 0.0, 0.07390888522469428, 0.1992308489896435, 0.12678608744717204, 0.0, 0.0546923223511062, 0.11313411705958114, 0.0, 0.0, 0.0, 0.0, 0.05169899432402749, 0.019742405777142896, 0.1769782400741126, 0.0, 0.0, 0.09297789149141053, 0.028906196325416873, 0.0, 0.0, 0.012919011582055164, 0.0, 0.0, 0.3208972845059436, 0.0, 0.0, 0.0046103209297173, 0.0, 0.0, 0.00416876885269193, 0.0729081194704697, 0.0, 0.0, 0.0, 0.07125538498910843, 0.0, 0.0, 0.03513444799266689, 0.0, 0.07540438323786366, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04369081060273281, 0.0, 0.0, 0.0, 0.014769980988042226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.017283118828420634, 0.006620940647292606, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006092931164902776, 0.0, 0.16137232276465496, 0.0, 0.15262637216887753, 0.013645384773351038, 0.16271613196948126, 0.0, 0.0, 0.0, 0.0, 0.17730029672438757, 0.41874765425641397, 0.054497803302564006, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10045113292307115, 0.27028417756519546, 0.07991567883089672, 0.0, 0.0, 0.0, 0.0, 0.0, 0.01798371330728596, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5859834957136911, 0.5086687281653502, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07646258969830243, 0.0, 0.0, 0.02773130153308066, 0.07708391588594585, 0.0, 0.0, 0.06185373806995992, 0.0, 0.0, 0.033137714842779345, 0.0, 0.0, 0.0, 0.0, 0.028021730318764978, 0.07388933025705045, 0.0, 0.021389015345232583, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046371970770837774, 0.04025364462832554, 0.2181921153062336, 0.4335185189335439, 0.0, 0.0, 1.0038009425423415, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4280152293034966, 0.0, 0.08414972142221414, 0.0, 0.3712598089597713, 0.0, 0.06370844553850769, 0.0, 0.0, 0.0, 0.0, 0.5083497561860121, 0.0, 0.0, 0.0, 0.17350738400022994, 0.0, 0.0, 0.0, 0.0, 0.5680638629882098, 0.4512837677833129, 0.036928112404588626, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6736518032785722, 0.0, 0.0, 0.0, 0.0, 0.3438277430889845, 0.1331574579932683, 0.8185600695730958, 0.0, 0.0, 0.017261448593960855, 0.0, 0.5289976863810653, 0.0, 0.0, 0.0, 0.0, 0.13826565194431473, 0.0, 0.12839377709982103, 0.8277070113616852, 0.0, 0.0, 0.3904546499995126, 0.08179569775458351, 0.0, 0.0, 0.0, 0.0, 0.16848803520369499, 0.0, 0.0, 0.005780600674157121, 0.0, 0.0, 0.0, 0.0, 0.042429105563066505, 0.0, 0.0, 0.5671026868317051, 0.5831842436077501, 0.0, 0.0, 0.5203885995071309, 0.0, 0.0, 0.0, 0.0, 0.03279957809056344, 0.20563143706052323, 0.8140555730584957, 0.0, 0.11735707443596549, 0.0, 0.0, 0.0, 0.0, 0.05942421719401875, 0.13531075914415133, 0.0, 0.22862377269710113, 0.0, 0.0, 0.0, 0.0, 0.009783289930470927, 0.0, 0.49666013194599, 0.01297478801242045, 0.004970474495620279, 0.0, 0.0, 0.0, 0.0, 0.18702095525297172, 0.0, 0.0, 0.49027730046536305, 0.0, 0.0, 0.0, 0.3100811795242501, 0.0, 0.5172830310180929, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5147075854808417, 0.0, 0.23506445593598685, 0.0, 0.0, 0.0984177418166802, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6597667532607603, 0.0, 0.7531258126074596, 0.0, 0.0, 0.0, 0.0, 0.009060495116628974, 0.0, 0.14938403565323904, 0.23931891774764502, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17320374473408556, 0.0, 0.0, 0.8859260157921318, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2593451028242532, 0.13535058061487634, 0.0, 0.17876385946442425, 0.5885021691653141, 0.4462993508157936, 0.0, 0.38646137613385273, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08841279830908562, 0.0, 0.0, 0.4090685041141252, 0.2385779614705672, 0.0, 0.32657075289021537, 0.0, 0.3891842232348578, 0.46695749861500585, 0.0, 0.20033954304824086, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6140772326336235, 0.21962331732895995, 0.0, 0.0, 0.21665980127772702, 0.0, 0.10259951624992725, 0.0040997688735825025, 0.0, 0.0, 0.0178257297768441, 0.0025383566681682393, 0.21683531480545457, 0.0, 0.027677402398657985, 0.0, 0.1880826476230884, 0.3419147609793875, 0.03227511522566195, 0.19053492425855037, 0.0, 0.06432217258278244, 0.0026780235214896283, 0.0, 0.0, 0.464125489835237, 0.09967606965443436, 0.0, 0.0, 0.0, 0.011788389508631971, 0.03206041622309702, 0.0, 0.0060682844433003185, 0.0, 0.0, 0.0, 0.010791956772858862, 0.0, 0.0, 0.0, 0.0, 0.4329905527364345, 0.14376890418721155, 0.6930376581272882, 0.0, 0.611818052941564, 0.6291676211651914, 0.0, 0.0, 0.5614206159067703, 0.48216800990329456, 0.0, 0.0, 0.4507229848159907, 0.0, 0.0, 0.8782428778065052, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06410974538727675, 0.23291225157991716, 0.08679043179604816, 0.0, 0.0, 0.08995902157278039, 0.8808378297797503, 0.0, 0.0, 0.0, 0.3618017482397369, 0.07709259450646033, 0.0, 0.22347789493902354, 0.0, 1.4151156566032244, 0.0, 0.0, 0.0876553401034732, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.35023812146064465, 0.10119869206094158, 0.0, 0.0, 0.0, 0.03421091843192662, 0.0, 0.18934530571059222, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.040031965441735276, 0.015335731346610126, 0.0, 0.0, 0.0, 0.0, 0.5012279391934354, 0.14361151525658541, 0.0, 0.05781748261134272, 0.17152855777668224, 0.0, 0.498484457540378, 0.0, 0.0, 0.7074889608036871, 0.0, 0.0, 0.0, 0.0, 0.0, 0.36413161255211174, 0.10650975776468122, 0.0027919607805886224, 0.1717164070699339, 0.0, 0.0, 0.0, 0.31636490805397033, 0.0, 0.0, 0.0, 0.3781004501122092, 0.1664160983543511, 0.0, 0.10894483484211534, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06899783350353156, 0.1313910038295779, 0.5458205926873976, 0.0, 0.2058361256028114, 0.0983057734206431, 0.006586106310131405, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13715236217863272, 0.026867165999227966, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0035515304259612105, 0.0, 0.0, 0.5329776529167246, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.397719517913955, 0.20668056810136554, 0.1307286941015916, 0.0, 0.19979734260211207, 0.13509882393613562, 0.0, 0.0, 0.0, 0.4428910220796438, 0.0, 0.10971922982381796, 0.20405686697329703, 0.0, 0.0, 0.0, 0.4155385933508652, 0.0, 0.030373091671251427, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02870549966274466, 0.0, 2.221236796150802e-5, 0.04518680503118196, 0.8557997812159583, 0.0, 0.0, 0.0, 0.33295230926411423, 0.0, 0.0, 0.1651823382455281, 0.0, 0.0, 0.10987547938954217, 0.038321493889877094, 0.0, 0.0, 0.9167265220224268, 0.0, 0.41223669995910156, 0.0062879102301798264, 0.006460790579658201, 0.0, 0.015093288171720337, 0.004653032070207847, 0.0, 0.0, 0.21192982566516394, 0.0, 0.5265530542756913, 0.004398370159579225, 0.3103332077675556, 0.0, 0.0, 0.21886457786346297, 0.058793164358353744, 0.24052003353974485, 0.5039916994286584, 0.08865805888962155, 0.0, 1.2109591957845456, 0.0, 0.4576423956337198, 0.13738787883657938, 0.3665641879979031, 0.00039223002823340837, 0.0, 0.6257753572135888, 0.0, 1.0620388990418166, 0.04837586177991647, 0.05564954721706949, 0.23699310888410263, 0.0060621596830514254, 1.2406804285104875, 0.0, 0.6055788924273563, 0.1024025590217045, 0.41360202805293217, 0.5476995216716073, 0.17831079467145505, 0.0, 0.0, 0.0, 0.14728996725917032, 0.19581503373322434, 0.10219463649126194, 0.0, 0.0, 1.213270546019433, 0.06327342954871182, 0.0, 0.0, 0.34855390390603164, 0.0, 0.0, 0.2854684709047343, 0.28462687503630496, 0.0, 0.0, 0.0, 0.06675489490570531, 0.4113308129658067, 0.0, 0.049609846106367136, 0.0, 0.0, 0.0, 0.0, 0.2938483162830928, 0.35256998241930354, 0.0, 0.15126367898557985, 0.0, 0.0, 0.1430373863296425, 0.0, 0.11979050068949273, 0.0, 0.0, 0.0, 0.2174719417996252, 0.18492143615091797, 0.5613745989840638, 0.0, 0.1269084936189851, 0.13050728832210684, 0.0, 0.008090983120695843, 0.11645462945856581, 0.45646266655488743, 0.0, 0.0, 0.018120109170533364, 0.0, 0.0, 0.18217259219167142, 0.0, 0.0, 0.23544229686275722, 0.0, 0.072369241454098, 0.0, 0.013298187548207349, 0.0, 0.15536962738337737, 0.0, 0.0, 0.0, 0.5485281455413065, 0.0, 0.0, 0.0, 0.07504798957314487, 0.13800884999205565, 0.023881103672210243, 0.4000634234277266, 0.0, 0.63983454521553, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1274757935226854, 0.0, 0.060340389443721644, 0.0, 0.0, 0.0, 0.0, 0.046886662511488715, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4105919579209241, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17717763704599515, 0.0, 0.0, 0.006078729370399735, 0.0, 0.0, 0.0, 0.4419304781486809, 0.004498905638339938, 0.0, 0.0, 0.06013187036225827, 0.061837053761552255, 0.158000195476362, 0.08245930986204707, 0.055178613203866224, 0.0, 0.3921588247960043, 0.051054375379452996, 0.0, 0.3113852203955569, 0.0, 0.08631714383210826, 0.016249403505819805, 0.0, 0.5064243516388502, 0.0, 0.0799687272151233, 0.0, 0.06016447367008715, 0.0, 0.0, 0.12723000596711698, 0.0, 0.0, 0.0, 0.0, 0.3344116617465516, 0.28448339782348236, 0.03555929040895464, 0.12972821265302345, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05771825347353467, 0.0, 0.06101920493228206, 0.0, 0.1422424089220273, 0.0, 0.0, 0.0850349690926388, 0.0, 0.6465489235087094, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9592391331341867, 0.0, 0.0, 0.0, 0.07533170200640231, 0.3935757364788316, 0.41733426606664215, 0.0, 0.0, 0.0, 0.0, 0.8096836326115127, 0.0, 0.0, 0.15672712010482948, 0.08471008784973191, 0.0, 0.0, 0.021315681001762884, 0.0, 0.0, 0.0, 0.6515686149424397, 0.0, 0.04354065349809789, 0.5887361460115157, 0.0, 0.3314629690186724, 0.08254082170798169, 0.0, 0.5363022284331493, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20539826744479112, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20437563182844645, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08512737043917705, 0.0, 0.0, 0.0, 0.21221590140088104, 0.0, 0.5922163084848736, 0.0, 0.054946173604955253, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11912480847073124, 0.10340745987043, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22405559305996067, 0.04389088686607588, 0.0, 0.8369237022137216, 0.0, 0.0, 0.303533841030579, 0.8437244477194209, 0.0, 0.0, 0.6770220530788269, 0.0, 0.08868596150524616, 0.0, 0.0, 0.0, 0.005801870585523199, 0.0, 0.3067127385215406, 1.9980597464483445, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1818471988215991, 0.0, 0.0, 0.0, 0.0, 0.09250846502860006, 0.0, 0.0, 0.0, 0.14804755431292183, 0.0, 0.3797383608658618, 0.39017892030987883, 0.0, 0.035065009177551926, 0.28100508860898343, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2656255916096575, 0.01029999428072384, 0.026319871200300066, 0.0, 0.0, 0.35174701729018143, 0.019026589888644814, 0.0, 0.0, 0.0, 0.0, 0.10260912587786382, 0.0, 0.0204467738415142, 0.0, 0.023687486390763176, 0.0, 0.0, 0.002174927201126577, 0.0, 0.09114373059640297, 0.0, 0.2642096712527522, 0.3907643461384895, 0.0, 0.0, 0.18051818330232947, 0.0, 0.3874221185422575, 0.6531078672631825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15551832566217896, 0.0, 0.1916820827839075, 0.0, 0.0, 0.08276135601321193, 0.0, 0.10030127909330487, 0.0, 0.0, 0.0, 0.10537887040654752, 0.0, 0.17805025311577488, 0.0, 0.010472659941918684, 0.0, 0.0, 0.007619143135798, 0.0, 0.12561988447587705, 0.0, 0.0, 0.7794014171836517, 0.0, 0.08402510727068294, 0.0, 0.3682135686649267, 0.08647369259665981, 0.09410614716697653, 0.611021014238459, 0.0, 0.0, 0.023955493193970948, 0.0, 0.0, 0.007434430348560844, 0.0, 0.0, 0.0, 0.24285369100807747, 0.0, 0.0, 0.0051185021691807515, 0.0, 0.0015127483220163092, 0.0, 0.0, 0.06096785123225053, 0.014193124550026902, 0.5775319451121608, 0.0, 0.0, 0.0, 0.007997400222196374, 0.6747251647940697, 0.0, 0.0, 0.0, 0.0, 0.7027693457851822, 0.0, 0.0, 0.055434654145900264, 0.0, 0.0, 0.0, 0.02587284155878174, 0.0, 0.42673143134824615, 0.004724246163513554, 0.4406790171730267, 0.0, 1.0342538585019783, 0.5747154140513469, 0.0, 0.9363482803339344, 0.7135280098555865, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9563104993907826, 0.0, 0.0, 0.0, 0.8295023845011231, 0.10509888461130146, 0.2471322355632557, 0.3801044173906537, 0.0, 0.0, 0.0, 0.1514367226333477, 0.0, 0.0, 0.0, 0.24534157695942965, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.052661051195310594, 0.6550399256456869, 0.5803102488724085, 0.0, 0.5319072548222628, 0.46172731619827034, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.026741428574906606, 0.0, 0.7082513040743756, 0.0, 0.0, 0.4418255985655133, 0.1449878921305842, 0.3039326972841545, 0.0, 0.0, 0.0, 1.198252644211342, 0.44500849169967277, 0.23918686672510267, 0.0, 0.0, 0.19736692078049992, 0.0, 0.0, 0.0, 0.0762301466058952, 0.3507440605568865, 0.4669973871873196, 0.0, 0.06417785026076955, 0.0, 0.0, 0.07892920039677795, 0.20151756987027533, 0.0, 0.5298004507120764, 0.006913800133275409, 0.0, 0.0742780358218034, 0.0, 0.6026732223863505, 0.0, 0.0, 0.5351202277676342, 0.0, 0.0, 0.9548891902757952, 0.02916984862304253, 0.0, 0.4970347785792808, 0.12683003730681902, 0.0180604034141702, 0.0, 0.2650052427173023, 0.0, 0.033791924886614616, 0.0, 0.04181580147667587, 0.0, 0.4621910495164758, 0.0, 0.0, 0.0190541328400638, 0.0, 0.17864673433347314, 0.014160348828667728, 0.8165447001064132, 0.09368415058058097, 0.9079968531646069, 0.08687864486537158, 0.19492858047186096, 0.10063554575175, 0.0, 0.09210666608746948, 0.01874477292287561, 0.03748966025771319, 0.0, 0.5779501492966836, 0.0012862204434733993, 0.220963909203652, 0.3086404911712966, 0.17631145912557372, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032159896791554, 0.0, 0.1846953640258127, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07139034913327573, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37871083555251084, 0.0, 0.0, 0.0, 0.0, 0.19265602282403793, 0.0, 0.0, 0.606424267788203, 0.011600938808477314, 0.0, 0.63655122023184, 0.8091094673344561, 0.15945386155042648, 0.21681046587583439, 0.5841977471111124, 0.14228431684797266, 0.0, 0.4919831840901785, 0.07005765326837811, 0.0, 0.4452652454663618, 0.0, 0.2225785522561698, 0.0, 0.0, 0.565764962530824, 0.0, 0.0, 0.0, 0.09016013522690633, 0.0, 0.0, 0.054929050345560504, 0.0, 0.0, 0.0397070718161962, 0.0, 0.3253549491861982, 0.39037279561642807, 0.09169366625332782, 0.16748228205826332, 0.0, 0.0, 0.6136975564576865, 0.0, 0.0, 0.3026006369046373, 0.0, 0.649431418360159, 0.08211939816658421, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8259750138040276, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5145740577075524, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.45723140022915015, 0.0, 0.0, 0.9202097992461084, 0.168004673879535, 0.0, 0.0, 0.1251531867765232, 0.0, 0.2137981131137785, 0.0, 0.013898368242301713, 0.0, 0.0, 0.7137867360685719, 0.0, 0.0, 0.1000729174155476, 0.0, 0.0, 0.03483089759667312, 0.12636252602014256, 0.0, 0.6417666786106352, 0.47874755782682904, 0.0, 0.0, 0.42719736321019475, 0.0, 0.269711179183823, 0.0, 0.0, 0.0, 0.0, 0.668274429237161, 0.0, 0.0, 0.19736413928693208, 0.0, 0.64140191275638, 0.0, 0.04878252313782071, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7804894714968978, 0.1354649020531392, 0.7521947991243342, 0.061565240681645095, 0.7064549771516211, 0.0, 0.0, 0.0, 0.1369213608036062, 0.598180503319145, 0.0, 0.4894142513129519, 0.14663698801711797, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14418506746458087, 0.027360830334206502, 0.0, 0.0, 0.11896445459410832, 0.016940356460817766, 0.08867849541915622, 0.0, 0.0, 0.0, 0.0, 0.014527597186767355, 0.0, 0.0, 0.0, 0.0, 0.017872458048705516, 0.09208038488681886, 0.0, 0.01328217046242409, 0.0, 0.0, 0.0, 0.0, 0.07867275819804301, 0.09439445944634833, 0.0, 0.040498210068061674, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.5786578146202624, 0.0, 0.3202961159483594, 0.3207279869105304, 0.5035217854841559, 0.0, 0.013671076975665627, 0.01669925591794789, 0.0, 0.0, 0.0, 0.5652457771225854, 0.0, 0.09766762955114001, 0.2831455624824939, 0.0, 1.0556185392068085, 0.2068017763866623, 0.0, 0.15942131380345745, 0.005607444973383372, 0.0, 0.056687675717707615, 0.2535497922885842, 0.4637407985590488, 0.22387274550179712, 0.5454655738973408, 0.08490666489615803, 0.3556465582001688, 0.0, 0.0, 0.31186727366054, 0.6972638697010188, 0.0, 0.0, 0.009518501694028625, 0.0, 0.5833334701399113, 0.6244214908493986, 0.0, 0.26168041250093527, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0131047746782154, 0.0, 0.6656645247350605, 0.0, 0.0, 0.0769882955934405, 0.0, 0.0, 0.34004774503974494, 0.08053504092577264, 0.006982581834800098, 0.5446249720805942, 0.0, 0.0, 0.31025177039320695, 0.2638902653915397, 0.0, 0.0, 0.0, 0.0, 0.2008136945182758, 0.0, 0.0, 0.19041992572397343, 0.05903622381609576, 0.0, 0.0589978949008293, 0.05133054295704808, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7141967536140789, 0.0, 0.11331087789790419, 0.0, 0.0, 0.13904571220904566, 0.16685503671570054, 0.0, 0.1461222249815685, 0.0, 0.0, 0.0, 0.1624667486179013, 0.0, 0.0, 0.0001466632220376543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.040061564188380784, 0.0, 0.0, 0.05925661356360367, 0.0, 0.20052213796576485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1322273764299389, 0.0, 0.07284319524978862, 0.0, 0.21698248889777863, 0.0, 0.22616177063294415, 0.0, 0.0, 0.0, 0.0, 0.52849490550171, 0.0, 0.71926878469886, 0.0, 0.6501927607213651, 0.0030355649865830615, 0.37799680598211977, 0.0, 0.0007078975665940506, 0.09351646752064424, 0.05681500695663011, 0.0, 0.20243859396970953, 0.0628704495708815, 0.001556209278473695, 0.0, 0.0, 0.0, 0.0, 0.0027171741525499, 0.0, 0.0, 0.0, 0.07038911039656341, 0.049709343960620045, 0.0, 0.018852918431012597, 0.26140762404567164, 0.049374687944063446, 0.0, 0.0, 0.5682508160039592, 0.08397693763382687, 0.0, 0.0, 1.1395457189674745, 0.10207861893624984, 0.006346754524020049, 0.07139718683099765, 0.0, 0.4257292397317542, 0.0, 0.0, 0.003459642976589088, 0.00011827788909935122, 0.29669071600135444, 0.0, 0.04645302583039929, 0.6403581026228157, 0.0, 0.0, 0.4035906657629842, 0.0, 0.0, 0.031770473502227184, 0.0, 0.10177861753458611, 0.08984803025006428, 0.2696383585775038, 0.0, 0.0, 0.0, 0.0, 0.4020058229022269, 0.8537152750348289, 0.27466570696380027, 0.0, 0.9014511503031993, 0.0, 0.0, 0.0, 0.3588364621034526, 0.0, 0.10358336916612662, 0.0, 0.8253783539224127, 0.003096290011755601, 0.3727209618097055, 0.0, 0.0, 0.0, 0.08512247762765326, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0016669318756259504, 0.0, 0.0, 0.9038241621401286, 0.23981242371494071, 0.0, 0.0, 0.0, 0.10303433366133424, 0.0, 0.0, 4.317142647672722e-5, 0.0, 0.07840647389573854, 0.0, 0.0, 0.0, 0.0, 0.36164895718336953, 0.011697025915496142, 0.0, 0.0, 0.0, 0.0, 0.001969151291048087, 0.0, 0.0016085698018090215, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8640055140280944, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10961290316901336, 0.0, 0.0, 0.0, 0.34012752342022284, 0.0, 0.09000159029348583, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.38387258660557405, 0.0, 0.0, 0.0, 0.04942864149427501, 0.0, 0.9641925530766522, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1618638919487994, 0.0, 0.0, 0.1434695556565637, 0.3651050198592113, 0.0, 0.04210320606021404, 0.5803955429188099, 0.0, 0.0, 0.36579879697476825, 0.4517875751113323, 0.0, 0.0, 0.0, 0.597783133294766, 0.0, 0.0, 0.6329135233850276, 0.0, 0.002597015658553236, 0.2174699638827603, 0.39061652165480276, 0.765918958416278, 0.0, 0.016481521625833693, 0.28751000269430316, 0.0, 0.1647131064041664, 0.0, 0.4521970394725687, 0.0, 0.0, 0.11039007420645473, 0.0, 0.0, 0.0, 0.902497226885166, 0.7436286750029288, 0.09842900387294973, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0017337381605838167, 0.0, 0.48184280820859876, 0.0, 0.0, 0.4182604044398821, 0.05413499724631636, 0.00395203096164986, 0.49703533424495255, 0.0, 0.0, 0.0, 0.43461516165530706, 0.0, 0.0, 0.2097986260899648, 0.0, 0.0, 0.0, 0.0032389406325184205, 0.11624028110212369, 0.0, 0.23514374437795085, 0.0, 0.013757851512121493, 0.0, 0.23992048040279412, 0.32911722925956555, 0.0, 0.18863648593265903, 0.5965040702112832, 0.0, 0.0, 0.006607346447861224, 0.005821424904675781, 0.2242736217811627, 0.0, 0.0, 0.02743682303358625, 0.03021510122691055, 0.4109976396191596, 0.016694351333046, 0.0, 0.0, 0.15588266372439724, 0.0, 0.7589538506473881, 0.0, 0.0, 0.9157838182946224, 0.07079903450052254, 0.0, 0.0, 0.0, 0.8133345120890082, 0.19376473666562866, 0.0, 0.0, 0.24554349589597185, 0.2326206471524158, 0.5829196459370383, 0.0, 0.344078222468009, 0.0, 0.5927124546739914, 0.21206748875282805, 0.5013588717575729, 0.1507046170639337, 0.0, 0.2922067750640437, 0.9112630304460252, 0.0, 0.42296978570223137, 0.0, 0.0, 0.0, 0.0, 0.47847449991115903, 0.0, 0.0, 0.0, 0.0, 0.02922391861250235, 0.003575617433634187, 0.0, 0.0, 0.18000379265062824, 0.0, 0.0, 0.0, 0.020223410318598516, 0.0, 0.0, 0.0, 0.0, 0.1194607408090099, 0.0, 0.18567470153771173, 0.015493204406064897, 0.0, 0.0, 0.22675090423473912, 0.0, 0.6338841242698132, 0.5245326238847832, 0.0019166419799919094, 0.6594541233567529, 0.0, 0.005139571264149575, 0.0, 0.0, 0.0, 0.014894820580065271, 0.0, 1.2034959876942206, 0.0, 0.25665804266856174, 0.012594729973842587, 0.0, 0.011446343678364038, 0.0, 0.0, 0.02279435489937408, 0.025102532455875536, 0.0, 0.0, 0.0, 0.0, 0.1307674017372415, 0.5572422675871412, 0.20860522647402835, 0.3439153754178085, 0.0, 0.7682359770495442, 0.05881943098741484, 0.0, 0.0, 0.7560476592821442, 0.06967644285195858, 0.0, 0.04321641535911349, 0.0, 0.0, 0.0, 0.8024673537053417, 0.0, 0.0, 0.0, 0.0, 0.1761844509232577, 0.8168042507595197, 0.0, 0.0, 0.0, 0.5887168313525647, 0.0, 0.0, 0.4050160345946778, 0.0, 0.28424121144843517, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04314478705768561, 0.17729851568072083, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06445720856859194, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10331544984256105, 0.2490312779322865, 0.0, 0.24280852181294071, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5198374016631779, 0.0, 0.0, 0.0, 0.13645064069986682, 0.0, 0.24758012015088376, 0.5314044104438821, 0.0, 0.0, 0.3110470576055099, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02359980206981429, 0.36163373919282166, 0.0, 0.0, 0.4835792742792758, 0.0, 0.3524294596638372, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27655502261887766, 0.0, 0.0, 0.0, 0.0, 0.22117286156450722, 0.0, 0.15521963759663626, 0.0, 0.0, 0.0, 0.0, 0.021723812939992326, 0.02392358642299197, 0.0, 0.9811990708246294, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4965569454339231, 0.08530918757868192, 0.0, 0.07823884141505981, 0.08129763345109173, 0.8580687524263778, 0.6125638634435169, 0.7792197114170356, 0.17406349022985984, 0.0, 0.7428281837408045, 0.0, 0.07932414385265583, 0.46154167819945197, 0.0, 0.5289001614381607, 0.0, 0.8287876866571131, 0.1679099089089469, 0.695722986230781, 0.0, 0.010707260605614142, 0.014687966352699852, 0.03846916856579124, 0.6678999803007167, 0.8946423775406338, 0.0, 0.0, 0.6928842432378984, 0.0, 0.8291172549334254, 0.0, 0.036214437271524916, 0.0, 0.6493274982169268, 0.0, 0.0, 0.0, 0.0, 0.022863259627981244, 0.7335275809594394, 0.03647235770741211, 0.0, 0.287070580153256, 0.13431771500769504, 0.14856735628547443, 0.15781940486580828, 0.0, 0.0, 0.323980207489089, 0.0, 0.02667757509153305, 0.33154611696012287, 0.008340998981572286, 0.0, 0.1964137723963185, 0.0, 0.18369526317696738, 0.0, 0.36991237719570497, 0.0, 0.0, 0.060663484669780686, 0.0, 0.0, 0.10293074255327075, 0.9555336304557553, 0.0, 0.2500171656161189, 0.5342857393564834, 0.17546263843294155, 0.0, 0.35442104566615373, 0.0, 0.0, 0.0, 0.0, 0.17621149415330922, 0.6121951999020001, 0.14104370661074167, 0.0, 0.03700642443953683, 0.5101360635898259, 0.0, 0.0, 0.398419677876043, 0.0, 0.0, 0.0, 0.23862742072997933, 0.0, 0.06314351493041778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32025466250143747, 0.0, 0.0, 0.0, 0.25412006584310015, 0.0, 0.2693181789862389, 0.0, 0.2858641430477511, 0.0, 0.12448957171647013, 0.0, 0.6764603455612473, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.007629531631679027, 0.008402105093687509, 0.1478058101242069, 0.005053168588900645, 0.0, 0.30372648283729076, 0.003980754378397801, 0.0, 0.0, 0.0, 0.0, 0.07450559902388645, 0.019687537166852037, 0.0, 0.08244653582028545, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16209616805705127, 0.0, 0.08979346385777931, 0.06518743281502334, 0.21315534710850095, 0.08369413937188341, 0.1394160455900761, 0.5610626715103558, 0.0, 0.0, 0.13968567626607642, 0.0, 0.0, 0.0, 0.0, 0.01924679403964147, 0.0, 0.0, 0.0, 0.0, 0.616722369104707, 0.0, 0.0, 0.5466375681050827, 0.0, 0.0, 0.013987945284851467, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09368066064257337, 0.0, 0.24818473838609467, 0.04865531902212218, 0.0, 0.009894965642192768, 0.0, 0.45825677816644195, 0.7857899124906229, 0.25281208870305677, 0.0, 0.8251354193653254, 0.0, 0.6275782447904167, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7597076021322064, 0.4559884064545227, 0.3430656338577527, 0.32001374263313714, 0.2977084759378876, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26332513624077, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07361684952632414, 0.0, 0.0, 0.0, 0.5420044017413929, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5785225932672249, 0.0, 0.0, 0.0, 0.6899231282082093, 0.33897374575165645, 0.4841896839083132, 0.0, 0.0, 0.0, 0.0, 0.6240541831707288, 0.0, 0.0, 0.5531361892215293, 0.4547991804243185, 0.0, 0.100152739355421, 0.0, 0.2440837061302026, 0.0, 0.0, 0.0, 0.0, 0.12076927556310874, 0.0, 0.0, 0.3415398112751411, 0.0, 0.0, 0.0, 0.010012600500133058, 0.0, 0.10122097549537463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6350391173534848, 0.0, 0.0, 0.5362493708751273, 0.3870491592555651, 0.0, 0.0, 0.011769944241680865, 0.3142045963597273, 0.0, 0.30124773979598957, 0.0, 0.3235765421156834, 0.0, 0.541761414379215, 0.0, 0.0, 0.8318031269227326, 0.0, 0.0, 0.0, 0.0, 0.0, 0.655176286023573, 0.0, 0.0, 0.12998028512957016, 0.09284961824757046, 0.5535451825358659, 0.6996061073192734, 0.06205996989121698, 0.0, 0.0, 0.0, 0.008692259029504977, 0.0, 0.08787316923443415, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5512977874061133, 0.0, 0.06274188232221303, 0.0860678272807259, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7913396090809787, 0.26152280681975265, 0.0, 0.0, 0.0, 0.0, 0.0, 0.028664478181671504, 0.0009799779903315728, 0.0032348889210802386, 0.0, 0.11837934340514084, 0.4864662292788164, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07382213914734657, 0.0, 0.0, 0.0, 0.17685571185867954, 0.2510513607906149, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0019118999997271302, 0.0, 0.04133793381575315, 0.2834737624180827, 0.6832843821792778, 0.0, 0.6662105748014928, 0.0, 0.5326269406399959, 0.0, 0.0, 0.0, 0.0, 0.10672810444069859, 0.0, 0.07123750254807154, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.007981914293001519, 0.10075857550012479, 0.009540391703188681, 0.0, 0.11580721042791553, 0.0, 0.0, 0.17856228523566461, 0.00048020843909893406, 0.0, 0.197593765283525, 0.0, 0.0, 0.0, 0.6194557197663932, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21520162666608084, 0.1562300971282056, 0.0, 0.0592523063663964, 0.0, 0.18612758103797813, 0.0, 0.2544272402257203, 0.15422821911002763, 0.0012917517157272594, 0.0, 0.0, 0.14907655404346837, 0.09429642888622711, 0.0, 0.0, 0.0, 0.0, 0.09600808583182174, 0.0, 0.005856583784053075, 0.08156012032053195, 0.09312148266647201, 0.0322184865015818, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03641255600507808, 0.0, 0.09646644914865622, 0.6107192924560144, 0.0, 0.0008311989920553221, 0.04768463204338608, 0.008402889219987731, 0.30542717141970227, 0.09826504505325136, 0.08476742117805344, 0.35700707759139916, 0.0, 0.052717960159591244, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29528928831604634, 0.0, 0.18118798681716172, 0.047489656233823854, 0.07375616702811215, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15842644268884615, 0.005416265593171256, 0.0, 0.0, 0.0, 0.06326712126451656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22847169102573353, 0.0, 0.11955753824812076, 0.0, 0.0, 0.0, 0.08074664695989245, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0029119331378805115, 0.0, 0.0, 0.1953274033599059, 0.0, 0.0, 0.0, 0.48520999511490304, 0.0, 0.0, 0.0, 0.0, 0.13603276168063752, 0.0, 0.06155663979875702, 0.0, 0.0, 0.0, 0.19100951475155065, 0.0, 0.05054327834442013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21557595738397023, 0.0, 0.0, 0.2988625665604049, 0.02775823823873608, 0.0, 0.5414732387378444, 0.0, 0.1751125450084881, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7653173403797493, 0.011610920930129028, 0.0, 0.6690009447860032, 0.007717112212206315, 0.0, 0.0, 0.0, 0.0, 0.0949800986519104, 0.0, 0.01759104522847652, 0.0272063292239745, 0.0, 0.18672851022958098, 0.14592398686801408, 0.0, 0.0, 0.06111532732066789, 0.0, 0.012109927581814974, 0.0, 0.3464253043638218, 0.014416979955844242, 0.0, 0.0, 0.004751074128394563, 0.0814923248235591, 0.960719872887566, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029410227635468144, 0.3902617128196832, 0.0, 0.0, 0.0, 0.0, 0.03936155946785215, 0.0, 0.0, 0.0, 0.0, 0.03226521554976169, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029868187491618223, 0.0, 0.007848954300217155, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02618395857766568, 0.0, 0.0, 0.0, 0.02729344001455739, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16043383601301778, 0.0, 0.08114240967089056, 0.0, 0.12944151616666955, 0.0, 0.0, 0.8424042898437758, 0.0, 0.0, 0.0, 0.0, 0.04323489183997365, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2997198089695268, 0.0, 0.0, 0.09877179787471602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.36530436236505814, 0.0, 0.0, 0.0, 0.0, 0.6114198560066337, 0.538693529249165, 0.0, 0.0, 0.0, 0.014312907460573414, 0.015762245768879076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03693357747227013, 0.0, 0.0, 0.5249268945825, 0.0, 0.0, 0.16471382065012125, 0.0, 0.0, 0.0, 0.304090416701445, 0.48915218766248414, 0.0, 0.020376509279081044, 0.0, 0.11062878301178729, 0.26154278602954106, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1338990979320024, 0.0, 0.12169019076516314, 0.0, 0.0, 0.0, 0.5524220216872981, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13426647560262422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05161008110067911, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.007893769925822126, 0.008693100403012733, 0.0, 1.169538837435482, 0.0, 0.5817658012805581, 0.3172103076471354, 0.0, 0.22838627747698767, 0.0, 0.10226945824142554, 0.0, 0.020369387834492953, 0.0, 0.20675490808600527, 0.48677742001957014, 0.6262431249386917, 0.151645446757169, 0.20817481578766972, 0.0, 0.0, 0.0668476153746235, 0.5758263086091524, 0.4536026680375212, 0.09887690089373365, 0.018895630454912823, 0.0, 0.06101333098633492, 0.38664812220872247, 0.0, 0.0, 0.7304510924229297, 0.030046419431745734, 0.0, 1.1003509629444073, 0.5194953755737197, 1.1578838988668234, 0.48875095960339066, 0.0, 0.1128462605244655, 0.0, 0.0, 0.0, 0.4791947947301635, 0.0, 0.03259627779739397, 0.10028189990101041, 0.029465846845003113, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22859113464308234, 0.0, 0.11646855789532944, 0.12693945289885786, 0.0, 0.0, 0.20330790896109577, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1873449680464739, 0.0, 0.0, 0.06173899342973636, 0.0, 0.0, 0.04476882030066193, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04375496463125991, 0.38217838780949126, 0.336719559414533, 0.04092456729054698, 0.0, 0.04229882731958149, 0.0, 0.0, 0.0, 0.1452994629839798, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0184335582446928, 0.0, 0.0, 0.0, 0.057199110071214684, 0.0, 0.14103517741623545, 0.03340505872611428, 0.0, 0.0, 0.0, 0.05811339385405451, 0.0, 0.0, 0.0, 0.0, 0.044222795803071285, 0.0, 0.06455569991448866, 0.0, 0.0, 0.05037647535437417, 0.008312394942553907, 0.0, 0.1621478774157853, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005416039933812771, 0.0, 0.0, 0.0, 0.0398756195493532, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05075809733341722, 0.0, 0.03562215281502755, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19049409924372604, 0.0, 0.0, 0.20255925674743036, 0.0, 0.0, 0.0, 0.0, 0.11222926185446927, 0.0, 0.22599925727813394, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18212734324380878, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21653477423901774, 0.0, 0.0, 0.008644589577152558, 0.009519948749861491, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.022306831770080617, 0.0, 0.0, 0.003074570476841778, 0.0, 0.008145346800616094, 0.0, 0.0, 0.0, 0.08511345922427967, 0.18366197461769765, 0.025789383308915437, 0.008297215015175531, 0.0, 0.09184984081220632, 0.0668166427534811, 0.15796441417080423, 0.0, 0.0, 0.0, 0.0, 0.0, 0.024933369902885204, 0.0, 0.011259308615493588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02160071316022016, 0.0, 0.0, 0.0, 0.1015273549658925, 0.0, 0.3722773110385471, 0.0, 0.0, 0.0, 0.005704132382790829, 0.576786252698806, 0.6048982987919145, 0.3404333765031976, 0.0, 0.1776491403162125, 0.3619951063590594, 0.0, 0.0, 0.0, 0.0, 0.20056572202110787, 0.0, 0.4038849000985208, 0.0, 0.07292911426252524, 0.0, 0.0, 0.0, 0.0, 0.3254810866068793, 0.0, 0.0, 0.0, 0.0486152336987337, 0.0, 0.38697085430573647, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7532037777522111, 0.0, 0.0, 0.2947709821219489, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008564738540478935, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2647016620516834, 0.0, 0.0, 0.5486174586047213, 0.0, 0.0, 0.0, 0.0, 0.0]), 42), 42)),) julia> @finch_code begin Ct .= 0 for j = parallel(_) @@ -1313,5 +1313,5 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.1187145765025676, 0.0, 0.16555522612551515, 0.0, 0.0, 0.0, 0.0, 0.43509113842452285, 0.0, 0.0, 0.25672403787937165, 0.43862663884873543, 0.0, 0.0, 0.3519631419607619, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051120283482812334, 0.15945060967882835, 0.42044865267857073, 0.0, 0.019744477387695688, 0.0, 0.0, 0.0, 0.12726604148160792, 0.4480285054137333, 0.0, 0.41393771366257825, 0.0, 0.0, 0.1372243591915985, 0.12863434970716192, 0.0, 0.019238858430486484, 0.0, 0.2371659747040811, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.39682924637787165, 0.0, 0.8480118921637517, 0.0, 0.0, 0.0195483866997798, 0.0, 0.5990836331247341, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2618925497434801, 0.26117339231230247, 0.0, 0.0, 0.16216152735698644, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06997554550840408, 0.0, 0.0, 0.002400768013297612, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.4157511852632345, 0.5793963874059174, 0.0, 0.26436870752857605, 0.4172786501470117, 0.0, 0.0, 0.8079649846339338, 0.0, 0.0, 0.5764550461815096, 0.4229367652966696, 0.05379340446506314, 0.0, 0.0, 0.5795406808621261, 0.5877094760316834, 0.0, 0.0, 0.0, 0.0, 0.284387943824113, 0.0, 0.0, 0.0, 0.035174745039109515, 0.0, 0.0, 0.011970205674471077, 0.0, 0.0, 0.0, 0.0, 0.5436476197350472, 0.920039513761917, 0.0, 0.6198132723204128, 0.16799442509225773, 0.5753026732101696, 0.2043616977009669, 0.5065806869454675, 0.0, 0.0, 0.39160092945826996, 0.0, 0.11054447981865345, 0.0, 0.0, 0.9189729667337664, 0.0, 0.0, 0.6507053761422986, 0.6970188689802168, 0.0, 0.08297492397617155, 0.9062181287136433, 0.0, 0.059530976608982995, 0.012438951345378766, 0.0, 0.0, 0.0, 0.0, 0.2533819740366263, 0.9473531228336374, 0.06450793068804792, 0.0, 0.41573543153630554, 0.0, 0.0, 0.0, 0.7238062468593162, 0.0, 0.0, 0.3590904912393951, 0.07774042001084827, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6251886494903025, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44684741712517223, 0.0, 0.0, 0.0, 0.0, 0.010812740091707317, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8163131959379999, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2672156592426391, 0.0, 0.028807779838791864, 0.0, 0.0, 0.0, 0.025506753620224757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.022871104613233297, 0.0, 0.6057451127777128, 0.0, 0.0, 0.05122083512724408, 0.0, 0.0, 0.26967234588040656, 0.0, 0.0, 0.6655341287456478, 0.0, 0.41411417571013454, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29998038732284904, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06750566800337324, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3426210978919867, 0.3800174489235809, 0.0, 0.6531468239127369, 1.5341196475571879, 0.0, 0.0, 0.5993450019914057, 0.0, 0.0, 0.318944682359523, 0.0, 0.0, 0.0, 1.2766961856974943, 0.0, 0.47028907930153113, 0.46890260973852405, 0.0, 0.2635141940642454, 0.0, 0.06844040704623247, 0.6776383700271937, 0.08344450181255293, 0.0, 0.0, 0.13135428676134797, 0.1357944044209692, 0.0, 0.0, 0.0, 0.38624172924075223, 0.0, 0.0, 0.0, 0.23564395924169773, 0.0, 0.7014291092208349, 0.11139739784790205, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008393202836106917, 0.0, 0.22229541093446364, 0.2882110765245937, 0.0, 0.2931292388749959, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24423669216579333, 0.0, 0.07507242489058646, 0.0, 0.0, 0.14176191313790465, 0.0, 0.0, 0.0, 0.054753508738442806, 0.11008634170637227, 0.0, 0.0, 0.0, 0.0, 0.0, 0.024773126340884036, 0.0, 0.0, 0.38053755501306186, 0.0, 0.6713587667580375, 0.05335137428594376, 0.0, 0.0, 0.009224220899634665, 0.0, 0.07390888522469428, 0.1992308489896435, 0.12678608744717204, 0.0, 0.0546923223511062, 0.11313411705958114, 0.0, 0.0, 0.0, 0.0, 0.05169899432402749, 0.019742405777142896, 0.1769782400741126, 0.0, 0.0, 0.09297789149141053, 0.028906196325416873, 0.0, 0.0, 0.012919011582055164, 0.0, 0.0, 0.3208972845059436, 0.0, 0.0, 0.0046103209297173, 0.0, 0.0, 0.00416876885269193, 0.0729081194704697, 0.0, 0.0, 0.0, 0.07125538498910843, 0.0, 0.0, 0.03513444799266689, 0.0, 0.07540438323786366, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04369081060273281, 0.0, 0.0, 0.0, 0.014769980988042226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.017283118828420634, 0.006620940647292606, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006092931164902776, 0.0, 0.16137232276465496, 0.0, 0.15262637216887753, 0.013645384773351038, 0.16271613196948126, 0.0, 0.0, 0.0, 0.0, 0.17730029672438757, 0.41874765425641397, 0.054497803302564006, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10045113292307115, 0.27028417756519546, 0.07991567883089672, 0.0, 0.0, 0.0, 0.0, 0.0, 0.01798371330728596, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5859834957136911, 0.5086687281653502, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07646258969830243, 0.0, 0.0, 0.02773130153308066, 0.07708391588594585, 0.0, 0.0, 0.06185373806995992, 0.0, 0.0, 0.033137714842779345, 0.0, 0.0, 0.0, 0.0, 0.028021730318764978, 0.07388933025705045, 0.0, 0.021389015345232583, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046371970770837774, 0.04025364462832554, 0.2181921153062336, 0.4335185189335439, 0.0, 0.0, 1.0038009425423415, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4280152293034966, 0.0, 0.08414972142221414, 0.0, 0.3712598089597713, 0.0, 0.06370844553850769, 0.0, 0.0, 0.0, 0.0, 0.5083497561860121, 0.0, 0.0, 0.0, 0.17350738400022994, 0.0, 0.0, 0.0, 0.0, 0.5680638629882098, 0.4512837677833129, 0.036928112404588626, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6736518032785722, 0.0, 0.0, 0.0, 0.0, 0.3438277430889845, 0.1331574579932683, 0.8185600695730958, 0.0, 0.0, 0.017261448593960855, 0.0, 0.5289976863810653, 0.0, 0.0, 0.0, 0.0, 0.13826565194431473, 0.0, 0.12839377709982103, 0.8277070113616852, 0.0, 0.0, 0.3904546499995126, 0.08179569775458351, 0.0, 0.0, 0.0, 0.0, 0.16848803520369499, 0.0, 0.0, 0.005780600674157121, 0.0, 0.0, 0.0, 0.0, 0.042429105563066505, 0.0, 0.0, 0.5671026868317051, 0.5831842436077501, 0.0, 0.0, 0.5203885995071309, 0.0, 0.0, 0.0, 0.0, 0.03279957809056344, 0.20563143706052323, 0.8140555730584957, 0.0, 0.11735707443596549, 0.0, 0.0, 0.0, 0.0, 0.05942421719401875, 0.13531075914415133, 0.0, 0.22862377269710113, 0.0, 0.0, 0.0, 0.0, 0.009783289930470927, 0.0, 0.49666013194599, 0.01297478801242045, 0.004970474495620279, 0.0, 0.0, 0.0, 0.0, 0.18702095525297172, 0.0, 0.0, 0.49027730046536305, 0.0, 0.0, 0.0, 0.3100811795242501, 0.0, 0.5172830310180929, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5147075854808417, 0.0, 0.23506445593598685, 0.0, 0.0, 0.0984177418166802, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6597667532607603, 0.0, 0.7531258126074596, 0.0, 0.0, 0.0, 0.0, 0.009060495116628974, 0.0, 0.14938403565323904, 0.23931891774764502, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17320374473408556, 0.0, 0.0, 0.8859260157921318, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2593451028242532, 0.13535058061487634, 0.0, 0.17876385946442425, 0.5885021691653141, 0.4462993508157936, 0.0, 0.38646137613385273, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08841279830908562, 0.0, 0.0, 0.4090685041141252, 0.2385779614705672, 0.0, 0.32657075289021537, 0.0, 0.3891842232348578, 0.46695749861500585, 0.0, 0.20033954304824086, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6140772326336235, 0.21962331732895995, 0.0, 0.0, 0.21665980127772702, 0.0, 0.10259951624992725, 0.0040997688735825025, 0.0, 0.0, 0.0178257297768441, 0.0025383566681682393, 0.21683531480545457, 0.0, 0.027677402398657985, 0.0, 0.1880826476230884, 0.3419147609793875, 0.03227511522566195, 0.19053492425855037, 0.0, 0.06432217258278244, 0.0026780235214896283, 0.0, 0.0, 0.464125489835237, 0.09967606965443436, 0.0, 0.0, 0.0, 0.011788389508631971, 0.03206041622309702, 0.0, 0.0060682844433003185, 0.0, 0.0, 0.0, 0.010791956772858862, 0.0, 0.0, 0.0, 0.0, 0.4329905527364345, 0.14376890418721155, 0.6930376581272882, 0.0, 0.611818052941564, 0.6291676211651914, 0.0, 0.0, 0.5614206159067703, 0.48216800990329456, 0.0, 0.0, 0.4507229848159907, 0.0, 0.0, 0.8782428778065052, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06410974538727675, 0.23291225157991716, 0.08679043179604816, 0.0, 0.0, 0.08995902157278039, 0.8808378297797503, 0.0, 0.0, 0.0, 0.3618017482397369, 0.07709259450646033, 0.0, 0.22347789493902354, 0.0, 1.4151156566032244, 0.0, 0.0, 0.0876553401034732, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.35023812146064465, 0.10119869206094158, 0.0, 0.0, 0.0, 0.03421091843192662, 0.0, 0.18934530571059222, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.040031965441735276, 0.015335731346610126, 0.0, 0.0, 0.0, 0.0, 0.5012279391934354, 0.14361151525658541, 0.0, 0.05781748261134272, 0.17152855777668224, 0.0, 0.498484457540378, 0.0, 0.0, 0.7074889608036871, 0.0, 0.0, 0.0, 0.0, 0.0, 0.36413161255211174, 0.10650975776468122, 0.0027919607805886224, 0.1717164070699339, 0.0, 0.0, 0.0, 0.31636490805397033, 0.0, 0.0, 0.0, 0.3781004501122092, 0.1664160983543511, 0.0, 0.10894483484211534, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06899783350353156, 0.1313910038295779, 0.5458205926873976, 0.0, 0.2058361256028114, 0.0983057734206431, 0.006586106310131405, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13715236217863272, 0.026867165999227966, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0035515304259612105, 0.0, 0.0, 0.5329776529167246, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.397719517913955, 0.20668056810136554, 0.1307286941015916, 0.0, 0.19979734260211207, 0.13509882393613562, 0.0, 0.0, 0.0, 0.4428910220796438, 0.0, 0.10971922982381796, 0.20405686697329703, 0.0, 0.0, 0.0, 0.4155385933508652, 0.0, 0.030373091671251427, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02870549966274466, 0.0, 2.221236796150802e-5, 0.04518680503118196, 0.8557997812159583, 0.0, 0.0, 0.0, 0.33295230926411423, 0.0, 0.0, 0.1651823382455281, 0.0, 0.0, 0.10987547938954217, 0.038321493889877094, 0.0, 0.0, 0.9167265220224268, 0.0, 0.41223669995910156, 0.0062879102301798264, 0.006460790579658201, 0.0, 0.015093288171720337, 0.004653032070207847, 0.0, 0.0, 0.21192982566516394, 0.0, 0.5265530542756913, 0.004398370159579225, 0.3103332077675556, 0.0, 0.0, 0.21886457786346297, 0.058793164358353744, 0.24052003353974485, 0.5039916994286584, 0.08865805888962155, 0.0, 1.2109591957845456, 0.0, 0.4576423956337198, 0.13738787883657938, 0.3665641879979031, 0.00039223002823340837, 0.0, 0.6257753572135888, 0.0, 1.0620388990418166, 0.04837586177991647, 0.05564954721706949, 0.23699310888410263, 0.0060621596830514254, 1.2406804285104875, 0.0, 0.6055788924273563, 0.1024025590217045, 0.41360202805293217, 0.5476995216716073, 0.17831079467145505, 0.0, 0.0, 0.0, 0.14728996725917032, 0.19581503373322434, 0.10219463649126194, 0.0, 0.0, 1.213270546019433, 0.06327342954871182, 0.0, 0.0, 0.34855390390603164, 0.0, 0.0, 0.2854684709047343, 0.28462687503630496, 0.0, 0.0, 0.0, 0.06675489490570531, 0.4113308129658067, 0.0, 0.049609846106367136, 0.0, 0.0, 0.0, 0.0, 0.2938483162830928, 0.35256998241930354, 0.0, 0.15126367898557985, 0.0, 0.0, 0.1430373863296425, 0.0, 0.11979050068949273, 0.0, 0.0, 0.0, 0.2174719417996252, 0.18492143615091797, 0.5613745989840638, 0.0, 0.1269084936189851, 0.13050728832210684, 0.0, 0.008090983120695843, 0.11645462945856581, 0.45646266655488743, 0.0, 0.0, 0.018120109170533364, 0.0, 0.0, 0.18217259219167142, 0.0, 0.0, 0.23544229686275722, 0.0, 0.072369241454098, 0.0, 0.013298187548207349, 0.0, 0.15536962738337737, 0.0, 0.0, 0.0, 0.5485281455413065, 0.0, 0.0, 0.0, 0.07504798957314487, 0.13800884999205565, 0.023881103672210243, 0.4000634234277266, 0.0, 0.63983454521553, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1274757935226854, 0.0, 0.060340389443721644, 0.0, 0.0, 0.0, 0.0, 0.046886662511488715, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4105919579209241, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17717763704599515, 0.0, 0.0, 0.006078729370399735, 0.0, 0.0, 0.0, 0.4419304781486809, 0.004498905638339938, 0.0, 0.0, 0.06013187036225827, 0.061837053761552255, 0.158000195476362, 0.08245930986204707, 0.055178613203866224, 0.0, 0.3921588247960043, 0.051054375379452996, 0.0, 0.3113852203955569, 0.0, 0.08631714383210826, 0.016249403505819805, 0.0, 0.5064243516388502, 0.0, 0.0799687272151233, 0.0, 0.06016447367008715, 0.0, 0.0, 0.12723000596711698, 0.0, 0.0, 0.0, 0.0, 0.3344116617465516, 0.28448339782348236, 0.03555929040895464, 0.12972821265302345, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05771825347353467, 0.0, 0.06101920493228206, 0.0, 0.1422424089220273, 0.0, 0.0, 0.0850349690926388, 0.0, 0.6465489235087094, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9592391331341867, 0.0, 0.0, 0.0, 0.07533170200640231, 0.3935757364788316, 0.41733426606664215, 0.0, 0.0, 0.0, 0.0, 0.8096836326115127, 0.0, 0.0, 0.15672712010482948, 0.08471008784973191, 0.0, 0.0, 0.021315681001762884, 0.0, 0.0, 0.0, 0.6515686149424397, 0.0, 0.04354065349809789, 0.5887361460115157, 0.0, 0.3314629690186724, 0.08254082170798169, 0.0, 0.5363022284331493, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20539826744479112, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20437563182844645, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08512737043917705, 0.0, 0.0, 0.0, 0.21221590140088104, 0.0, 0.5922163084848736, 0.0, 0.054946173604955253, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11912480847073124, 0.10340745987043, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22405559305996067, 0.04389088686607588, 0.0, 0.8369237022137216, 0.0, 0.0, 0.303533841030579, 0.8437244477194209, 0.0, 0.0, 0.6770220530788269, 0.0, 0.08868596150524616, 0.0, 0.0, 0.0, 0.005801870585523199, 0.0, 0.3067127385215406, 1.9980597464483445, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1818471988215991, 0.0, 0.0, 0.0, 0.0, 0.09250846502860006, 0.0, 0.0, 0.0, 0.14804755431292183, 0.0, 0.3797383608658618, 0.39017892030987883, 0.0, 0.035065009177551926, 0.28100508860898343, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2656255916096575, 0.01029999428072384, 0.026319871200300066, 0.0, 0.0, 0.35174701729018143, 0.019026589888644814, 0.0, 0.0, 0.0, 0.0, 0.10260912587786382, 0.0, 0.0204467738415142, 0.0, 0.023687486390763176, 0.0, 0.0, 0.002174927201126577, 0.0, 0.09114373059640297, 0.0, 0.2642096712527522, 0.3907643461384895, 0.0, 0.0, 0.18051818330232947, 0.0, 0.3874221185422575, 0.6531078672631825, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15551832566217896, 0.0, 0.1916820827839075, 0.0, 0.0, 0.08276135601321193, 0.0, 0.10030127909330487, 0.0, 0.0, 0.0, 0.10537887040654752, 0.0, 0.17805025311577488, 0.0, 0.010472659941918684, 0.0, 0.0, 0.007619143135798, 0.0, 0.12561988447587705, 0.0, 0.0, 0.7794014171836517, 0.0, 0.08402510727068294, 0.0, 0.3682135686649267, 0.08647369259665981, 0.09410614716697653, 0.611021014238459, 0.0, 0.0, 0.023955493193970948, 0.0, 0.0, 0.007434430348560844, 0.0, 0.0, 0.0, 0.24285369100807747, 0.0, 0.0, 0.0051185021691807515, 0.0, 0.0015127483220163092, 0.0, 0.0, 0.06096785123225053, 0.014193124550026902, 0.5775319451121608, 0.0, 0.0, 0.0, 0.007997400222196374, 0.6747251647940697, 0.0, 0.0, 0.0, 0.0, 0.7027693457851822, 0.0, 0.0, 0.055434654145900264, 0.0, 0.0, 0.0, 0.02587284155878174, 0.0, 0.42673143134824615, 0.004724246163513554, 0.4406790171730267, 0.0, 1.0342538585019783, 0.5747154140513469, 0.0, 0.9363482803339344, 0.7135280098555865, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9563104993907826, 0.0, 0.0, 0.0, 0.8295023845011231, 0.10509888461130146, 0.2471322355632557, 0.3801044173906537, 0.0, 0.0, 0.0, 0.1514367226333477, 0.0, 0.0, 0.0, 0.24534157695942965, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.052661051195310594, 0.6550399256456869, 0.5803102488724085, 0.0, 0.5319072548222628, 0.46172731619827034, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.026741428574906606, 0.0, 0.7082513040743756, 0.0, 0.0, 0.4418255985655133, 0.1449878921305842, 0.3039326972841545, 0.0, 0.0, 0.0, 1.198252644211342, 0.44500849169967277, 0.23918686672510267, 0.0, 0.0, 0.19736692078049992, 0.0, 0.0, 0.0, 0.0762301466058952, 0.3507440605568865, 0.4669973871873196, 0.0, 0.06417785026076955, 0.0, 0.0, 0.07892920039677795, 0.20151756987027533, 0.0, 0.5298004507120764, 0.006913800133275409, 0.0, 0.0742780358218034, 0.0, 0.6026732223863505, 0.0, 0.0, 0.5351202277676342, 0.0, 0.0, 0.9548891902757952, 0.02916984862304253, 0.0, 0.4970347785792808, 0.12683003730681902, 0.0180604034141702, 0.0, 0.2650052427173023, 0.0, 0.033791924886614616, 0.0, 0.04181580147667587, 0.0, 0.4621910495164758, 0.0, 0.0, 0.0190541328400638, 0.0, 0.17864673433347314, 0.014160348828667728, 0.8165447001064132, 0.09368415058058097, 0.9079968531646069, 0.08687864486537158, 0.19492858047186096, 0.10063554575175, 0.0, 0.09210666608746948, 0.01874477292287561, 0.03748966025771319, 0.0, 0.5779501492966836, 0.0012862204434733993, 0.220963909203652, 0.3086404911712966, 0.17631145912557372, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3032159896791554, 0.0, 0.1846953640258127, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07139034913327573, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37871083555251084, 0.0, 0.0, 0.0, 0.0, 0.19265602282403793, 0.0, 0.0, 0.606424267788203, 0.011600938808477314, 0.0, 0.63655122023184, 0.8091094673344561, 0.15945386155042648, 0.21681046587583439, 0.5841977471111124, 0.14228431684797266, 0.0, 0.4919831840901785, 0.07005765326837811, 0.0, 0.4452652454663618, 0.0, 0.2225785522561698, 0.0, 0.0, 0.565764962530824, 0.0, 0.0, 0.0, 0.09016013522690633, 0.0, 0.0, 0.054929050345560504, 0.0, 0.0, 0.0397070718161962, 0.0, 0.3253549491861982, 0.39037279561642807, 0.09169366625332782, 0.16748228205826332, 0.0, 0.0, 0.6136975564576865, 0.0, 0.0, 0.3026006369046373, 0.0, 0.649431418360159, 0.08211939816658421, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8259750138040276, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5145740577075524, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.45723140022915015, 0.0, 0.0, 0.9202097992461084, 0.168004673879535, 0.0, 0.0, 0.1251531867765232, 0.0, 0.2137981131137785, 0.0, 0.013898368242301713, 0.0, 0.0, 0.7137867360685719, 0.0, 0.0, 0.1000729174155476, 0.0, 0.0, 0.03483089759667312, 0.12636252602014256, 0.0, 0.6417666786106352, 0.47874755782682904, 0.0, 0.0, 0.42719736321019475, 0.0, 0.269711179183823, 0.0, 0.0, 0.0, 0.0, 0.668274429237161, 0.0, 0.0, 0.19736413928693208, 0.0, 0.64140191275638, 0.0, 0.04878252313782071, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7804894714968978, 0.1354649020531392, 0.7521947991243342, 0.061565240681645095, 0.7064549771516211, 0.0, 0.0, 0.0, 0.1369213608036062, 0.598180503319145, 0.0, 0.4894142513129519, 0.14663698801711797, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14418506746458087, 0.027360830334206502, 0.0, 0.0, 0.11896445459410832, 0.016940356460817766, 0.08867849541915622, 0.0, 0.0, 0.0, 0.0, 0.014527597186767355, 0.0, 0.0, 0.0, 0.0, 0.017872458048705516, 0.09208038488681886, 0.0, 0.01328217046242409, 0.0, 0.0, 0.0, 0.0, 0.07867275819804301, 0.09439445944634833, 0.0, 0.040498210068061674, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.5786578146202624, 0.0, 0.3202961159483594, 0.3207279869105304, 0.5035217854841559, 0.0, 0.013671076975665627, 0.01669925591794789, 0.0, 0.0, 0.0, 0.5652457771225854, 0.0, 0.09766762955114001, 0.2831455624824939, 0.0, 1.0556185392068085, 0.2068017763866623, 0.0, 0.15942131380345745, 0.005607444973383372, 0.0, 0.056687675717707615, 0.2535497922885842, 0.4637407985590488, 0.22387274550179712, 0.5454655738973408, 0.08490666489615803, 0.3556465582001688, 0.0, 0.0, 0.31186727366054, 0.6972638697010188, 0.0, 0.0, 0.009518501694028625, 0.0, 0.5833334701399113, 0.6244214908493986, 0.0, 0.26168041250093527, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0131047746782154, 0.0, 0.6656645247350605, 0.0, 0.0, 0.0769882955934405, 0.0, 0.0, 0.34004774503974494, 0.08053504092577264, 0.006982581834800098, 0.5446249720805942, 0.0, 0.0, 0.31025177039320695, 0.2638902653915397, 0.0, 0.0, 0.0, 0.0, 0.2008136945182758, 0.0, 0.0, 0.19041992572397343, 0.05903622381609576, 0.0, 0.0589978949008293, 0.05133054295704808, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7141967536140789, 0.0, 0.11331087789790419, 0.0, 0.0, 0.13904571220904566, 0.16685503671570054, 0.0, 0.1461222249815685, 0.0, 0.0, 0.0, 0.1624667486179013, 0.0, 0.0, 0.0001466632220376543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.040061564188380784, 0.0, 0.0, 0.05925661356360367, 0.0, 0.20052213796576485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1322273764299389, 0.0, 0.07284319524978862, 0.0, 0.21698248889777863, 0.0, 0.22616177063294415, 0.0, 0.0, 0.0, 0.0, 0.52849490550171, 0.0, 0.71926878469886, 0.0, 0.6501927607213651, 0.0030355649865830615, 0.37799680598211977, 0.0, 0.0007078975665940506, 0.09351646752064424, 0.05681500695663011, 0.0, 0.20243859396970953, 0.0628704495708815, 0.001556209278473695, 0.0, 0.0, 0.0, 0.0, 0.0027171741525499, 0.0, 0.0, 0.0, 0.07038911039656341, 0.049709343960620045, 0.0, 0.018852918431012597, 0.26140762404567164, 0.049374687944063446, 0.0, 0.0, 0.5682508160039592, 0.08397693763382687, 0.0, 0.0, 1.1395457189674745, 0.10207861893624984, 0.006346754524020049, 0.07139718683099765, 0.0, 0.4257292397317542, 0.0, 0.0, 0.003459642976589088, 0.00011827788909935122, 0.29669071600135444, 0.0, 0.04645302583039929, 0.6403581026228157, 0.0, 0.0, 0.4035906657629842, 0.0, 0.0, 0.031770473502227184, 0.0, 0.10177861753458611, 0.08984803025006428, 0.2696383585775038, 0.0, 0.0, 0.0, 0.0, 0.4020058229022269, 0.8537152750348289, 0.27466570696380027, 0.0, 0.9014511503031993, 0.0, 0.0, 0.0, 0.3588364621034526, 0.0, 0.10358336916612662, 0.0, 0.8253783539224127, 0.003096290011755601, 0.3727209618097055, 0.0, 0.0, 0.0, 0.08512247762765326, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0016669318756259504, 0.0, 0.0, 0.9038241621401286, 0.23981242371494071, 0.0, 0.0, 0.0, 0.10303433366133424, 0.0, 0.0, 4.317142647672722e-5, 0.0, 0.07840647389573854, 0.0, 0.0, 0.0, 0.0, 0.36164895718336953, 0.011697025915496142, 0.0, 0.0, 0.0, 0.0, 0.001969151291048087, 0.0, 0.0016085698018090215, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8640055140280944, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10961290316901336, 0.0, 0.0, 0.0, 0.34012752342022284, 0.0, 0.09000159029348583, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.38387258660557405, 0.0, 0.0, 0.0, 0.04942864149427501, 0.0, 0.9641925530766522, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1618638919487994, 0.0, 0.0, 0.1434695556565637, 0.3651050198592113, 0.0, 0.04210320606021404, 0.5803955429188099, 0.0, 0.0, 0.36579879697476825, 0.4517875751113323, 0.0, 0.0, 0.0, 0.597783133294766, 0.0, 0.0, 0.6329135233850276, 0.0, 0.002597015658553236, 0.2174699638827603, 0.39061652165480276, 0.765918958416278, 0.0, 0.016481521625833693, 0.28751000269430316, 0.0, 0.1647131064041664, 0.0, 0.4521970394725687, 0.0, 0.0, 0.11039007420645473, 0.0, 0.0, 0.0, 0.902497226885166, 0.7436286750029288, 0.09842900387294973, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0017337381605838167, 0.0, 0.48184280820859876, 0.0, 0.0, 0.4182604044398821, 0.05413499724631636, 0.00395203096164986, 0.49703533424495255, 0.0, 0.0, 0.0, 0.43461516165530706, 0.0, 0.0, 0.2097986260899648, 0.0, 0.0, 0.0, 0.0032389406325184205, 0.11624028110212369, 0.0, 0.23514374437795085, 0.0, 0.013757851512121493, 0.0, 0.23992048040279412, 0.32911722925956555, 0.0, 0.18863648593265903, 0.5965040702112832, 0.0, 0.0, 0.006607346447861224, 0.005821424904675781, 0.2242736217811627, 0.0, 0.0, 0.02743682303358625, 0.03021510122691055, 0.4109976396191596, 0.016694351333046, 0.0, 0.0, 0.15588266372439724, 0.0, 0.7589538506473881, 0.0, 0.0, 0.9157838182946224, 0.07079903450052254, 0.0, 0.0, 0.0, 0.8133345120890082, 0.19376473666562866, 0.0, 0.0, 0.24554349589597185, 0.2326206471524158, 0.5829196459370383, 0.0, 0.344078222468009, 0.0, 0.5927124546739914, 0.21206748875282805, 0.5013588717575729, 0.1507046170639337, 0.0, 0.2922067750640437, 0.9112630304460252, 0.0, 0.42296978570223137, 0.0, 0.0, 0.0, 0.0, 0.47847449991115903, 0.0, 0.0, 0.0, 0.0, 0.02922391861250235, 0.003575617433634187, 0.0, 0.0, 0.18000379265062824, 0.0, 0.0, 0.0, 0.020223410318598516, 0.0, 0.0, 0.0, 0.0, 0.1194607408090099, 0.0, 0.18567470153771173, 0.015493204406064897, 0.0, 0.0, 0.22675090423473912, 0.0, 0.6338841242698132, 0.5245326238847832, 0.0019166419799919094, 0.6594541233567529, 0.0, 0.005139571264149575, 0.0, 0.0, 0.0, 0.014894820580065271, 0.0, 1.2034959876942206, 0.0, 0.25665804266856174, 0.012594729973842587, 0.0, 0.011446343678364038, 0.0, 0.0, 0.02279435489937408, 0.025102532455875536, 0.0, 0.0, 0.0, 0.0, 0.1307674017372415, 0.5572422675871412, 0.20860522647402835, 0.3439153754178085, 0.0, 0.7682359770495442, 0.05881943098741484, 0.0, 0.0, 0.7560476592821442, 0.06967644285195858, 0.0, 0.04321641535911349, 0.0, 0.0, 0.0, 0.8024673537053417, 0.0, 0.0, 0.0, 0.0, 0.1761844509232577, 0.8168042507595197, 0.0, 0.0, 0.0, 0.5887168313525647, 0.0, 0.0, 0.4050160345946778, 0.0, 0.28424121144843517, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04314478705768561, 0.17729851568072083, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06445720856859194, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10331544984256105, 0.2490312779322865, 0.0, 0.24280852181294071, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5198374016631779, 0.0, 0.0, 0.0, 0.13645064069986682, 0.0, 0.24758012015088376, 0.5314044104438821, 0.0, 0.0, 0.3110470576055099, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02359980206981429, 0.36163373919282166, 0.0, 0.0, 0.4835792742792758, 0.0, 0.3524294596638372, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27655502261887766, 0.0, 0.0, 0.0, 0.0, 0.22117286156450722, 0.0, 0.15521963759663626, 0.0, 0.0, 0.0, 0.0, 0.021723812939992326, 0.02392358642299197, 0.0, 0.9811990708246294, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4965569454339231, 0.08530918757868192, 0.0, 0.07823884141505981, 0.08129763345109173, 0.8580687524263778, 0.6125638634435169, 0.7792197114170356, 0.17406349022985984, 0.0, 0.7428281837408045, 0.0, 0.07932414385265583, 0.46154167819945197, 0.0, 0.5289001614381607, 0.0, 0.8287876866571131, 0.1679099089089469, 0.695722986230781, 0.0, 0.010707260605614142, 0.014687966352699852, 0.03846916856579124, 0.6678999803007167, 0.8946423775406338, 0.0, 0.0, 0.6928842432378984, 0.0, 0.8291172549334254, 0.0, 0.036214437271524916, 0.0, 0.6493274982169268, 0.0, 0.0, 0.0, 0.0, 0.022863259627981244, 0.7335275809594394, 0.03647235770741211, 0.0, 0.287070580153256, 0.13431771500769504, 0.14856735628547443, 0.15781940486580828, 0.0, 0.0, 0.323980207489089, 0.0, 0.02667757509153305, 0.33154611696012287, 0.008340998981572286, 0.0, 0.1964137723963185, 0.0, 0.18369526317696738, 0.0, 0.36991237719570497, 0.0, 0.0, 0.060663484669780686, 0.0, 0.0, 0.10293074255327075, 0.9555336304557553, 0.0, 0.2500171656161189, 0.5342857393564834, 0.17546263843294155, 0.0, 0.35442104566615373, 0.0, 0.0, 0.0, 0.0, 0.17621149415330922, 0.6121951999020001, 0.14104370661074167, 0.0, 0.03700642443953683, 0.5101360635898259, 0.0, 0.0, 0.398419677876043, 0.0, 0.0, 0.0, 0.23862742072997933, 0.0, 0.06314351493041778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32025466250143747, 0.0, 0.0, 0.0, 0.25412006584310015, 0.0, 0.2693181789862389, 0.0, 0.2858641430477511, 0.0, 0.12448957171647013, 0.0, 0.6764603455612473, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.007629531631679027, 0.008402105093687509, 0.1478058101242069, 0.005053168588900645, 0.0, 0.30372648283729076, 0.003980754378397801, 0.0, 0.0, 0.0, 0.0, 0.07450559902388645, 0.019687537166852037, 0.0, 0.08244653582028545, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16209616805705127, 0.0, 0.08979346385777931, 0.06518743281502334, 0.21315534710850095, 0.08369413937188341, 0.1394160455900761, 0.5610626715103558, 0.0, 0.0, 0.13968567626607642, 0.0, 0.0, 0.0, 0.0, 0.01924679403964147, 0.0, 0.0, 0.0, 0.0, 0.616722369104707, 0.0, 0.0, 0.5466375681050827, 0.0, 0.0, 0.013987945284851467, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09368066064257337, 0.0, 0.24818473838609467, 0.04865531902212218, 0.0, 0.009894965642192768, 0.0, 0.45825677816644195, 0.7857899124906229, 0.25281208870305677, 0.0, 0.8251354193653254, 0.0, 0.6275782447904167, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7597076021322064, 0.4559884064545227, 0.3430656338577527, 0.32001374263313714, 0.2977084759378876, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26332513624077, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07361684952632414, 0.0, 0.0, 0.0, 0.5420044017413929, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5785225932672249, 0.0, 0.0, 0.0, 0.6899231282082093, 0.33897374575165645, 0.4841896839083132, 0.0, 0.0, 0.0, 0.0, 0.6240541831707288, 0.0, 0.0, 0.5531361892215293, 0.4547991804243185, 0.0, 0.100152739355421, 0.0, 0.2440837061302026, 0.0, 0.0, 0.0, 0.0, 0.12076927556310874, 0.0, 0.0, 0.3415398112751411, 0.0, 0.0, 0.0, 0.010012600500133058, 0.0, 0.10122097549537463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6350391173534848, 0.0, 0.0, 0.5362493708751273, 0.3870491592555651, 0.0, 0.0, 0.011769944241680865, 0.3142045963597273, 0.0, 0.30124773979598957, 0.0, 0.3235765421156834, 0.0, 0.541761414379215, 0.0, 0.0, 0.8318031269227326, 0.0, 0.0, 0.0, 0.0, 0.0, 0.655176286023573, 0.0, 0.0, 0.12998028512957016, 0.09284961824757046, 0.5535451825358659, 0.6996061073192734, 0.06205996989121698, 0.0, 0.0, 0.0, 0.008692259029504977, 0.0, 0.08787316923443415, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5512977874061133, 0.0, 0.06274188232221303, 0.0860678272807259, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7913396090809787, 0.26152280681975265, 0.0, 0.0, 0.0, 0.0, 0.0, 0.028664478181671504, 0.0009799779903315728, 0.0032348889210802386, 0.0, 0.11837934340514084, 0.4864662292788164, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07382213914734657, 0.0, 0.0, 0.0, 0.17685571185867954, 0.2510513607906149, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0019118999997271302, 0.0, 0.04133793381575315, 0.2834737624180827, 0.6832843821792778, 0.0, 0.6662105748014928, 0.0, 0.5326269406399959, 0.0, 0.0, 0.0, 0.0, 0.10672810444069859, 0.0, 0.07123750254807154, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.007981914293001519, 0.10075857550012479, 0.009540391703188681, 0.0, 0.11580721042791553, 0.0, 0.0, 0.17856228523566461, 0.00048020843909893406, 0.0, 0.197593765283525, 0.0, 0.0, 0.0, 0.6194557197663932, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21520162666608084, 0.1562300971282056, 0.0, 0.0592523063663964, 0.0, 0.18612758103797813, 0.0, 0.2544272402257203, 0.15422821911002763, 0.0012917517157272594, 0.0, 0.0, 0.14907655404346837, 0.09429642888622711, 0.0, 0.0, 0.0, 0.0, 0.09600808583182174, 0.0, 0.005856583784053075, 0.08156012032053195, 0.09312148266647201, 0.0322184865015818, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03641255600507808, 0.0, 0.09646644914865622, 0.6107192924560144, 0.0, 0.0008311989920553221, 0.04768463204338608, 0.008402889219987731, 0.30542717141970227, 0.09826504505325136, 0.08476742117805344, 0.35700707759139916, 0.0, 0.052717960159591244, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29528928831604634, 0.0, 0.18118798681716172, 0.047489656233823854, 0.07375616702811215, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15842644268884615, 0.005416265593171256, 0.0, 0.0, 0.0, 0.06326712126451656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22847169102573353, 0.0, 0.11955753824812076, 0.0, 0.0, 0.0, 0.08074664695989245, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0029119331378805115, 0.0, 0.0, 0.1953274033599059, 0.0, 0.0, 0.0, 0.48520999511490304, 0.0, 0.0, 0.0, 0.0, 0.13603276168063752, 0.0, 0.06155663979875702, 0.0, 0.0, 0.0, 0.19100951475155065, 0.0, 0.05054327834442013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21557595738397023, 0.0, 0.0, 0.2988625665604049, 0.02775823823873608, 0.0, 0.5414732387378444, 0.0, 0.1751125450084881, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7653173403797493, 0.011610920930129028, 0.0, 0.6690009447860032, 0.007717112212206315, 0.0, 0.0, 0.0, 0.0, 0.0949800986519104, 0.0, 0.01759104522847652, 0.0272063292239745, 0.0, 0.18672851022958098, 0.14592398686801408, 0.0, 0.0, 0.06111532732066789, 0.0, 0.012109927581814974, 0.0, 0.3464253043638218, 0.014416979955844242, 0.0, 0.0, 0.004751074128394563, 0.0814923248235591, 0.960719872887566, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029410227635468144, 0.3902617128196832, 0.0, 0.0, 0.0, 0.0, 0.03936155946785215, 0.0, 0.0, 0.0, 0.0, 0.03226521554976169, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029868187491618223, 0.0, 0.007848954300217155, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02618395857766568, 0.0, 0.0, 0.0, 0.02729344001455739, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16043383601301778, 0.0, 0.08114240967089056, 0.0, 0.12944151616666955, 0.0, 0.0, 0.8424042898437758, 0.0, 0.0, 0.0, 0.0, 0.04323489183997365, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2997198089695268, 0.0, 0.0, 0.09877179787471602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.36530436236505814, 0.0, 0.0, 0.0, 0.0, 0.6114198560066337, 0.538693529249165, 0.0, 0.0, 0.0, 0.014312907460573414, 0.015762245768879076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03693357747227013, 0.0, 0.0, 0.5249268945825, 0.0, 0.0, 0.16471382065012125, 0.0, 0.0, 0.0, 0.304090416701445, 0.48915218766248414, 0.0, 0.020376509279081044, 0.0, 0.11062878301178729, 0.26154278602954106, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1338990979320024, 0.0, 0.12169019076516314, 0.0, 0.0, 0.0, 0.5524220216872981, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13426647560262422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05161008110067911, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.007893769925822126, 0.008693100403012733, 0.0, 1.169538837435482, 0.0, 0.5817658012805581, 0.3172103076471354, 0.0, 0.22838627747698767, 0.0, 0.10226945824142554, 0.0, 0.020369387834492953, 0.0, 0.20675490808600527, 0.48677742001957014, 0.6262431249386917, 0.151645446757169, 0.20817481578766972, 0.0, 0.0, 0.0668476153746235, 0.5758263086091524, 0.4536026680375212, 0.09887690089373365, 0.018895630454912823, 0.0, 0.06101333098633492, 0.38664812220872247, 0.0, 0.0, 0.7304510924229297, 0.030046419431745734, 0.0, 1.1003509629444073, 0.5194953755737197, 1.1578838988668234, 0.48875095960339066, 0.0, 0.1128462605244655, 0.0, 0.0, 0.0, 0.4791947947301635, 0.0, 0.03259627779739397, 0.10028189990101041, 0.029465846845003113, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22859113464308234, 0.0, 0.11646855789532944, 0.12693945289885786, 0.0, 0.0, 0.20330790896109577, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1873449680464739, 0.0, 0.0, 0.06173899342973636, 0.0, 0.0, 0.04476882030066193, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04375496463125991, 0.38217838780949126, 0.336719559414533, 0.04092456729054698, 0.0, 0.04229882731958149, 0.0, 0.0, 0.0, 0.1452994629839798, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0184335582446928, 0.0, 0.0, 0.0, 0.057199110071214684, 0.0, 0.14103517741623545, 0.03340505872611428, 0.0, 0.0, 0.0, 0.05811339385405451, 0.0, 0.0, 0.0, 0.0, 0.044222795803071285, 0.0, 0.06455569991448866, 0.0, 0.0, 0.05037647535437417, 0.008312394942553907, 0.0, 0.1621478774157853, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005416039933812771, 0.0, 0.0, 0.0, 0.0398756195493532, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05075809733341722, 0.0, 0.03562215281502755, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19049409924372604, 0.0, 0.0, 0.20255925674743036, 0.0, 0.0, 0.0, 0.0, 0.11222926185446927, 0.0, 0.22599925727813394, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18212734324380878, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21653477423901774, 0.0, 0.0, 0.008644589577152558, 0.009519948749861491, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.022306831770080617, 0.0, 0.0, 0.003074570476841778, 0.0, 0.008145346800616094, 0.0, 0.0, 0.0, 0.08511345922427967, 0.18366197461769765, 0.025789383308915437, 0.008297215015175531, 0.0, 0.09184984081220632, 0.0668166427534811, 0.15796441417080423, 0.0, 0.0, 0.0, 0.0, 0.0, 0.024933369902885204, 0.0, 0.011259308615493588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02160071316022016, 0.0, 0.0, 0.0, 0.1015273549658925, 0.0, 0.3722773110385471, 0.0, 0.0, 0.0, 0.005704132382790829, 0.576786252698806, 0.6048982987919145, 0.3404333765031976, 0.0, 0.1776491403162125, 0.3619951063590594, 0.0, 0.0, 0.0, 0.0, 0.20056572202110787, 0.0, 0.4038849000985208, 0.0, 0.07292911426252524, 0.0, 0.0, 0.0, 0.0, 0.3254810866068793, 0.0, 0.0, 0.0, 0.0486152336987337, 0.0, 0.38697085430573647, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7532037777522111, 0.0, 0.0, 0.2947709821219489, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008564738540478935, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2647016620516834, 0.0, 0.0, 0.5486174586047213, 0.0, 0.0, 0.0, 0.0, 0.0]), 42), 42)),) From 4133403191a0bb8c7eab0e099a5c602f89dd2064 Mon Sep 17 00:00:00 2001 From: teocollin1995 Date: Mon, 19 Feb 2024 16:27:38 -0500 Subject: [PATCH 08/41] just one problem --- .../debug_parallel_spmms_atomics.txt | 20 +++++++++---------- .../debug_parallel_spmms_no_atomics.txt | 12 +++++------ test/test_parallel.jl | 14 ++++++------- 3 files changed, 23 insertions(+), 23 deletions(-) diff --git a/test/reference64/debug_parallel_spmms_atomics.txt b/test/reference64/debug_parallel_spmms_atomics.txt index b3f7151ad..d0853352e 100644 --- a/test/reference64/debug_parallel_spmms_atomics.txt +++ b/test/reference64/debug_parallel_spmms_atomics.txt @@ -8,7 +8,7 @@ julia> @finch begin end end end -(CR = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.0, 0.5960995400087008, 0.0, 0.0, 0.46121971296621317, 0.0, 0.1341136169173934, 0.0, 0.6613178775714327, 0.0, 0.0, 0.0, 0.0, 0.31233701358881993, 0.0, 0.0, 0.0, 0.42428295532646376, 0.0, 0.04433289125435014, 0.1771852692198303, 0.0, 0.2102135380786222, 0.0, 0.29289346791587945, 0.1864042064610544, 0.1847622901670141, 0.0047837035165779595, 0.7809783797805827, 0.24637196495074015, 0.0, 0.5657923421369488, 0.2611932808057722, 0.0, 1.1390711256090715, 0.0, 0.0, 0.15310516154880033, 0.0, 0.536745361655064, 0.11084632541017801, 0.24887017850829343, 0.6316463638637531, 1.4711963896826616, 0.6112779722436283, 0.5079606239011155, 0.15942216163041661, 0.21541936537958353, 0.10295208772558359, 0.0, 1.3699774598840704, 0.6364841478802473, 0.38335626793892197, 0.0, 0.2992892574327959, 0.10527060545292, 0.0, 0.0, 0.7485372018432481, 0.2715216678914851, 0.2667902419370478, 0.0, 0.5814665590695893, 0.051682188310845374, 0.0, 0.0, 0.3934310017151073, 0.0, 0.0, 0.5957893409486428, 0.3316317367913752, 0.9200295815926001, 0.0, 0.0, 0.6623087915165122, 0.0, 1.5766760492233103, 0.0, 0.0, 0.3039866668414091, 0.0, 0.024309812685391816, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14306886144088826, 0.0, 0.0, 0.0, 0.13834293702511197, 0.0, 0.0, 0.0, 0.07697281314241891, 0.0, 0.13882210022663904, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11718373909917448, 0.05171175921797154, 0.0, 0.0, 0.047041804166349496, 0.0, 0.0, 0.0, 0.21780680053585874, 0.005280433697773762, 0.0, 0.01227888835211436, 0.1637490848480197, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.405774970647805, 0.2291279765469989, 1.2574751546051093, 0.5180330897538964, 0.48968357404421875, 0.5301529810315024, 0.0, 0.0, 0.0, 0.8112619638066929, 0.0, 0.7833417149382808, 0.0, 0.0, 0.11442625626708748, 0.11485555134200548, 0.22833033865638044, 0.0, 0.0, 0.0, 0.0, 0.2864165259642358, 0.16027108725841735, 0.0, 0.09011936406874124, 0.4181806897076036, 0.0, 1.0569606821068054, 0.624691204995156, 0.7081544908696379, 0.0, 0.8795184016973987, 0.0, 0.0, 0.021853263477242018, 0.11238129351491766, 0.0, 0.0, 0.045824320207715985, 0.0, 0.196064039018767, 0.0, 0.07081867255234689, 0.0, 0.0407459744321428, 0.0, 0.09807635051343538, 0.010124069007427254, 0.0, 0.0, 0.0, 0.0, 0.6116811031756639, 0.0, 0.0, 0.6208028352439049, 0.0, 0.17504030998808598, 0.020658826838531718, 0.719367580349619, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.015728258754898257, 0.07298380500117611, 0.0, 0.06012022906808051, 0.0, 0.0, 0.5330380962469254, 0.02965305516643559, 0.0, 0.18001272855172004, 0.035235037447174065, 0.0, 0.01349449214577584, 0.0, 0.0, 0.0, 0.2359915438569738, 0.03810280561257924, 0.0, 0.0, 0.0, 0.3884686133510988, 0.0, 0.0, 0.21968925488132546, 0.0, 0.0, 0.4324936557273746, 0.0, 0.6879094987723802, 0.0, 0.0, 0.0, 0.0, 0.7898693359448322, 0.0, 0.5391987426673219, 0.25853076675450826, 0.0, 0.38031280775654097, 0.0, 0.3853638210122371, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.2217547802058863, 0.05709933484072306, 0.0, 0.0, 0.8484028226584724, 0.23257686384566284, 0.0, 0.0, 1.258622241947537, 0.0, 0.0, 0.11665876134553779, 0.3184837856872295, 0.7880482843371591, 0.0, 0.0, 0.0, 0.0, 0.23284042288536255, 0.0, 0.3804712136528319, 1.113036382623302, 0.8298038026635118, 0.0, 0.0, 0.0, 0.0, 0.0, 0.020690565683442904, 0.2610758590649183, 0.0, 0.0, 0.06193402719103672, 0.024569168683420507, 0.6450876041294853, 0.0, 0.5615893961519662, 0.0, 0.5487968919612313, 0.0, 0.6425734859953806, 0.0, 0.2979704099021757, 0.323777504790907, 0.66722521578591, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4069961680965457, 0.7713681046585987, 0.3594743508741288, 0.8852608548606914, 0.0, 0.0, 0.0, 0.0, 0.017250929899566992, 0.05738201561649353, 0.0, 0.040237899717394485, 0.8673210549972237, 0.0, 0.0, 0.7245534868749944, 0.0, 0.16727086778943756, 0.0, 0.0, 0.0, 0.0, 0.29250184542509544, 0.0, 0.0, 0.06729223300830636, 0.0, 0.3824979967457689, 0.0, 0.23769547992450338, 0.825352628558087, 0.5791520520364314, 0.0, 0.0, 0.6822104427959106, 0.5410434317660799, 0.0, 1.0013182252763115, 0.0, 0.0, 0.03410163433510291, 0.0, 0.38656596036997387, 0.673387919520239, 0.0, 0.0, 0.0, 0.06524513264320482, 0.3778876017229726, 0.0, 0.3042658440871357, 0.03546389486517897, 0.0, 0.3811330360259428, 0.09125614750074176, 0.38639776526497555, 0.0, 0.7956019813194058, 0.17107520161825185, 0.2528672125099372, 0.0, 0.0, 0.0, 0.0, 0.3715122812201797, 0.0, 0.0, 0.0, 0.8636878110328885, 0.3725673215613031, 0.19161493799862908, 0.2947877363978017, 0.8277903198901483, 1.043787991594994, 0.4556846854932056, 0.018960059119328472, 0.0, 0.8179077818243863, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16243732090346746, 0.0, 0.0934593474548136, 0.26288293993414813, 0.0, 0.6986592631730956, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.23290649501046135, 0.0, 0.0, 0.0, 0.0749770448177764, 0.0, 0.0, 0.5829804395566012, 0.0, 0.08903205884730546, 0.036076025185782915, 0.16740350145604724, 0.0, 0.13789822076519753, 0.0, 0.0, 0.0, 0.7803684622045182, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1343991941662123, 0.0, 0.0, 0.1265714212875754, 0.580645942127824, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4164388584828146, 0.0, 0.6383936083527437, 0.0, 0.0, 0.0, 0.0, 0.18608051379305826, 0.0, 0.04744673193981907, 0.0, 0.0, 0.0, 0.0, 0.3666656532257351, 0.017984084638402044, 0.0, 0.0516031884810454, 0.11619024662048777, 0.5090994962453932, 0.1702286192926929, 0.017754543539629426, 0.11487736756877703, 0.0, 0.0, 0.0035637729173098607, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6218776818900951, 0.10343438219926053, 0.0, 0.016806683142264318, 0.019961035657552893, 0.0, 0.39238409513228256, 0.22883526349683764, 0.0, 0.02328369860187438, 0.02966268912006465, 0.0, 0.0, 0.0, 0.08243560528569996, 0.6624744276069285, 0.0, 0.10804564627221094, 0.0, 0.0, 0.0, 0.0, 0.0, 0.272827698328812, 0.0, 0.0, 0.0, 0.10351845069306231, 0.022056761782947687, 0.04806113374409372, 1.421033050846094, 0.09272463621214155, 0.32902390084105787, 0.5088305985866386, 0.09822819388787048, 0.0, 0.0, 0.0965876885856362, 0.0, 0.0, 0.18492863169572316, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13526587090401476, 0.0, 0.022328727233527985, 0.0999580342692439, 0.0, 0.0, 0.09557781244125038, 0.13831210655132378, 0.0, 0.0, 0.1791768991068296, 0.16163641825142586, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.42053340750746143, 0.0, 0.10552005335412863, 0.0, 0.0, 0.16311354370934733, 0.0, 0.2824114978735204, 0.0, 0.0, 0.43639300384810376, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1671480967875291, 0.644888932873856, 0.3129032598040877, 0.48675890221085816, 0.17823949364009248, 0.1415399106044285, 0.18516682441734925, 0.5312977885248659, 0.07587099582542241, 0.0, 0.0, 0.6986300116510127, 0.0, 0.0, 0.7938925894205694, 0.36599606323996975, 0.26363118368222405, 0.2342915285475447, 0.0, 0.1869965760541939, 0.1160920939359052, 0.38732669798663727, 0.0, 0.1313693926537813, 0.14845591773543332, 0.0, 0.0, 0.5636663205749514, 0.0, 0.0, 1.5099082548197433, 0.12877106200933913, 0.12876355501777378, 0.4806583412843819, 0.8527242204514415, 0.2611825233475998, 0.2169329303973436, 0.0, 0.19905771354664345, 0.0, 0.3188159099664727, 0.0, 0.49573252746154944, 0.5909004107452918, 0.44608316126371567, 0.9987235012950566, 0.0, 0.0, 0.06543436335390052, 0.0, 0.0, 0.0, 0.7452854681453724, 0.940549219662451, 0.32866688095435376, 0.0, 0.04977979297413422, 0.0, 0.15266515341831127, 0.0, 0.0, 0.8226750512812447, 0.0, 0.0, 0.2520932611368793, 0.32856303804715215, 0.1846788611041856, 0.6288326287259721, 0.15594781886009731, 0.0, 0.0, 0.39056006775570395, 0.2454733448499023, 0.0, 0.1875080652559859, 0.0, 0.0, 0.0, 0.4604079993134017, 0.0, 0.0, 0.0, 0.0, 0.11979185177691755, 0.14227491555369362, 0.0, 0.09024327543210102, 0.648783267363574, 0.0, 0.0, 0.0, 0.5408163510237757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5311068240495873, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5314003925728801, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02394551122470378, 0.0, 0.0, 0.0, 0.12486249633500378, 0.0, 0.0, 0.05765112857402609, 0.0, 0.14315109316509972, 0.05676601866921535, 0.0, 0.6434826644263494, 0.0, 0.14460219857592263, 0.0, 0.0, 0.10860788610026072, 0.0, 0.04705670771446048, 0.4709967737248388, 0.0, 0.0, 0.13612521976378897, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.130371257969619, 0.0, 0.11349639269154894, 0.0, 0.11804878144850195, 0.3189646877579158, 0.0, 0.0, 0.0, 0.0, 0.1348452367929846, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1550934497155318, 0.13060726382480906, 0.0, 0.0, 0.232086697214264, 0.0, 0.14806165017632722, 0.0, 0.23898925029638524, 0.0, 0.0, 0.23731337239548533, 0.0, 0.10980801230053783, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19058666211884384, 0.0, 0.1810493697276433, 0.0, 0.0, 0.27986722280655724, 0.06847318480810846, 0.0, 0.026224205266550244, 0.0, 0.0, 0.0, 0.07178447214794542, 0.0, 0.0, 0.0, 0.0, 0.04423801290959719, 0.4450997362670805, 0.0, 0.0, 0.0, 0.014396013780263936, 0.0, 0.0, 0.08159130602818511, 0.28786198512647176, 0.0, 0.0, 0.0, 0.15886186536955227, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03988435480164781, 0.0, 0.03472184333660239, 0.15861587093052232, 0.03393091079863592, 0.0, 0.0, 0.0, 0.1458998203965446, 0.0, 0.2746045410027491, 0.0, 0.08937012005405864, 0.0, 0.0, 0.0, 0.0, 0.4360685101718207, 0.0, 0.0, 0.12479631040323635, 0.1679293189285873, 0.33750713984681247, 0.0, 0.38279076464536926, 0.0, 0.39766804122994015, 0.0, 0.0, 0.0, 0.0, 0.37584745957186994, 0.0, 0.0, 0.0, 0.0, 0.0034663505048984434, 0.0, 0.0, 0.0, 0.24932174401673268, 0.8269366380921026, 0.058350744167210526, 0.2821315817160027, 0.01073228148503296, 0.0, 0.0, 0.5523198324520332, 0.0, 0.0, 0.0, 0.2765513539344097, 0.2765352317665175, 0.0, 0.0, 0.0, 0.16196672196012962, 0.0, 0.0, 0.23047763471347846, 0.0, 0.4983211934020315, 0.0, 0.0, 0.0, 0.0, 0.08410733405320571, 0.0, 0.0, 0.38342855882543897, 0.031078189534518876, 0.0, 0.0, 0.07997079449394401, 0.0, 0.0, 0.0, 0.14991888400189204, 0.0, 0.0, 0.0, 0.2539339452562683, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005527553201922959, 0.24701032777367607, 0.3818735212726353, 0.0, 0.0, 0.3141045412174539, 0.4613820899583969, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7846194794668536, 0.0, 0.0, 0.2023929406035883, 0.5525420395033789, 0.0, 0.0, 0.0, 0.18332122951817006, 0.0, 0.0, 0.0, 0.6600849079661362, 0.0, 0.271071887942947, 0.6931869379662654, 0.0, 0.19544958497754947, 0.0, 0.0, 0.23106411956503142, 0.04163915085675471, 0.0, 0.2740671699579846, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5951890435738816, 0.0, 0.0, 0.5617261879013651, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.648112900028134, 0.0, 0.2097693617911403, 0.23188027210282897, 0.6330438111437964, 0.515238068631253, 0.8059496022277759, 0.0, 0.3600721428836477, 0.0, 0.37406645349624035, 0.43324551668887895, 0.7562549741789008, 0.0, 0.46837434729653293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.23452450510075076, 0.0, 0.0, 0.26538707979997495, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9037040684567715, 0.2601228730720389, 0.0, 0.0, 0.0, 0.3385307797226737, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6960140675899867, 0.0, 0.0, 0.0, 0.34167761524179585, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.47179884257042837, 0.0, 0.5873339130881751, 0.07760784608974701, 0.0, 0.5108116353650718, 0.0, 0.23018263458044896, 0.0, 0.0, 0.0, 0.6389281667373347, 0.0, 0.0, 0.0, 0.6317086674243048, 0.5424555939717753, 0.0, 0.019597125946055532, 0.0, 0.5067616269530796, 0.0, 0.0, 0.0, 0.0, 0.33135639687759366, 0.0, 0.11009229928191128, 0.0, 0.0, 0.0018449546833188399, 0.0, 0.1894047148704815, 0.0, 0.21786525780326826, 0.00027956067335572354, 0.0, 0.0, 0.00044372512905081096, 0.0, 0.0, 0.10913586880079368, 0.0, 0.0, 0.2387319450019063, 0.04302093934347575, 0.0, 0.28316204466710054, 0.0, 0.6259961005310473, 0.044339116197027774, 0.0, 0.0006891565473784903, 0.0, 0.0, 0.419692560541072, 0.00023711054076719368, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0009518757697360345, 0.0, 0.0, 0.0, 0.0, 0.04412247836479926, 0.33175278809136916, 0.1836910307282294, 0.43316264355459233, 0.0, 0.0, 0.0, 0.0, 0.6109591315701846, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7410212481907629, 0.09694039812399863, 0.0, 0.0, 0.04700242398333341, 0.0, 0.0, 0.15679640166544176, 0.0, 0.0, 0.008354862966629384, 0.8660916115221005, 0.12095883829401362, 0.0, 0.0, 0.13982615201680984, 0.0, 0.37030015075124356, 0.0, 0.10806680870328135, 0.2674021581377063, 0.0, 0.0, 0.43695074134110806, 0.0, 0.0, 0.0, 0.4193595253139995, 0.0, 0.0, 0.4223604117691241, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6519628347852473, 0.09593394582722056, 0.0, 1.2263197607192593, 0.0, 0.1420268730458006, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6547968394353947, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.015993676263376118, 0.0, 0.0, 0.0, 0.0, 0.0, 1.032250106596857, 0.0, 0.0, 0.0, 0.19977559392448785, 0.0, 0.0, 0.0, 0.13350148436716802, 0.05064120692385946, 0.0, 0.014278692130393579, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02476251362124448, 0.0, 0.0, 0.6971876314261916, 0.0, 0.32368749507325995, 0.0, 0.38665695047334026, 0.043481909227645874, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2863863682111852, 0.0, 0.0, 0.0, 0.0, 0.5166026604428106, 0.6135609292207037, 0.0, 1.390585308090751, 0.549724406362488, 0.0, 0.0, 0.0, 0.4946354029419938, 0.0, 0.0, 0.1817622353630416, 0.0, 0.0, 0.45001527975922945, 0.19067060021024376, 0.0, 0.0, 0.0, 0.0, 0.0, 0.45026402504954754, 0.09862023599471978, 0.0, 0.0, 0.08971409788917951, 0.0, 0.0, 0.0, 0.14718404588236259, 0.02028941343776962, 0.0, 0.0, 0.12879470754337072, 0.5384698277835859, 0.0493264459266498, 0.0, 0.6385356001321869, 0.0, 0.0, 0.0, 0.418599297830268, 0.0, 0.24084377286368372, 0.0, 0.0, 0.3927421561776119, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11479167979031016, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.287331205334526, 0.0, 0.0, 0.09296754420278937, 0.4313970938087158, 0.0, 0.3553622902870886, 0.0, 0.0, 0.0, 0.1752750739858479, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5721777681112366, 0.16584672881862064, 0.0, 0.0, 0.2750129568642962, 0.11193872117738499, 0.0, 0.694851503366924, 0.0, 0.11176089578249619, 0.03642730011196224, 0.46499012378889537, 0.0, 0.0, 0.10537656529716292, 0.2572556947482873, 0.11427779100841323, 0.4566419402676079, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31905429658438084, 0.4568943484348684, 0.0, 0.1009223375517615, 0.0, 0.08785925235754827, 0.2524568576131555, 0.5979718371844858, 0.0, 0.08718397040627182, 0.27019243222928785, 0.0, 0.2405201444721306, 0.11212903697332216, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12097427611620017, 0.7029459229987706, 0.2907862782736388, 0.0, 0.3020877732114353, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2423919969263556, 0.0, 0.5763734567059631, 0.0, 0.0, 0.0, 0.0, 0.6067232814043334, 0.18939678992121056, 0.0, 0.0, 0.21432072089475862, 0.0, 0.0, 0.0, 0.0, 0.5821831861883047, 0.0, 0.0, 0.210081711445218, 0.21006946427095974, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.030280314291377, 0.15413531598416644, 0.25247193164811527, 0.0, 0.0, 0.12848497078723173, 0.6000304051931176, 0.0, 0.0, 0.0, 0.0, 0.12617822046935606, 0.3320268939864614, 0.7056657766261163, 0.42848148251018003, 0.057345877924903164, 0.0, 0.3774481983482792, 0.12624796529690785, 0.1619902770277746, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005688878127237202, 0.38175135193372894, 0.1765840237536124, 0.0, 0.0, 0.3566318392645057, 0.0, 0.0, 0.0, 0.16683268933188872, 0.04345497812697982, 0.0, 0.492592677155673, 0.0, 0.0, 0.0, 0.0, 0.0831404672292756, 0.0, 0.0, 0.36055293254501974, 0.0, 0.4863131526725521, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005464010493446822, 0.24417078834728798, 0.0, 0.0, 0.22169348923343446, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11593686293818574, 0.0, 0.0, 0.0, 0.6095590933370347, 0.0, 0.2443761776038196, 0.0, 0.0, 0.0, 0.1960956643223869, 0.6074859425565672, 0.18650669482426485, 1.0378655385571516, 0.0, 0.17276762871577947, 0.6940099427692358, 0.0, 0.0, 0.32388236546386096, 0.0, 0.3977584774978917, 0.09850727254096922, 0.0, 0.09435872182534573, 0.32210695479773005, 0.0, 0.9450119024745318, 0.0, 0.7282651614947167, 0.795671006556338, 0.21972174528863647, 1.1800722708951874, 0.0, 0.15406122012703197, 0.23245444095199302, 0.0, 1.1450754137286316, 0.0, 0.0, 0.718432895790501, 0.0, 0.9074772544907516, 0.0, 0.0, 0.2150644825695137, 0.7387278090737696, 0.0, 0.49627306106648184, 0.6533650950107276, 0.0, 0.0, 0.0, 0.724606488987317, 0.701411910713477, 0.6206261403696766, 0.28804332377271413, 0.2959105186195655, 0.0, 0.6182919293124655, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.589003768060014, 0.0, 0.0, 0.08271977351575115, 0.0, 0.0, 0.0, 0.9105812282174285, 0.31789001879047846, 0.02411461886183569, 0.2829221743477605, 0.6706620073355701, 0.0, 0.1930731864260551, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06133637967837149, 0.6242346410782087, 0.6952909143002654, 0.3591573776849567, 0.0, 0.7449872409938767, 0.08923909973645693, 0.1173521535256719, 0.0, 0.0, 0.5729798828820618, 0.10656596459419354, 0.0, 0.1545328680391799, 0.27421690202209187, 0.0, 0.0, 0.3698254914307633, 0.5140663186573865, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13863750342668263, 0.6433193065819665, 0.0, 0.5299326895193157, 0.007712410329912944, 0.34464525874742236, 0.34174148456366615, 0.2613783001228934, 0.0, 0.0, 0.05371570560505797, 0.0, 0.02057231153731605, 0.0, 0.33150273239870404, 0.0, 0.0, 0.008405062468217761, 0.0, 0.34649855374487837, 0.298371589011109, 0.0, 0.1892535264101524, 0.0, 0.016081030317329964, 0.0, 0.0, 0.1306616194660838, 0.0, 0.0, 0.2714046321541056, 0.0, 0.0, 0.0, 0.024299507869495213, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16509417733903173, 0.0, 0.0, 0.1501849497452071, 0.1748418064456664, 0.0010568489849475794, 0.047227517247298824, 0.051672489777017716, 0.0, 0.11982535720931763, 0.0, 0.0, 0.2618551646604837, 0.0, 0.0, 0.12090296292900765, 0.0, 0.0, 0.44988696818935897, 0.0, 0.19121191419677455, 0.0, 0.0, 0.49693256130088725, 0.0, 0.0, 0.0, 0.5670859092292977, 0.0, 0.0, 0.0, 0.5653233896265278, 0.0, 0.0, 0.18955075438556615, 0.050614759394524644, 0.0, 0.0, 0.0, 0.0, 0.6124985176197848, 0.02840624719573524, 0.0, 0.0, 0.6585018821667253, 0.0, 0.669914086084765, 0.0, 0.4435524229524026, 0.0, 0.0, 0.24959071834233698, 0.6741825496608898, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15847771480322562, 0.0, 0.0, 0.0, 0.11420329312106789, 0.3695819846260272, 0.18933569121558752, 0.0, 0.0, 0.0, 0.02103165349726233, 0.2655614054905834, 0.0, 0.8117959138331444, 0.0, 0.3439446042563599, 0.0, 0.0, 0.1019714241481598, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13231107356042507, 0.0, 0.07339739754334103, 0.13018370224494802, 0.03407665122672999, 0.2789846158904475, 0.0, 0.04141177300212955, 0.0, 0.21059108800059795, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14821858886776432, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.45102261330920507, 0.05046558139935084, 0.0, 0.12130428936757616, 0.0, 0.12601881654664268, 0.003171787898412092, 0.00527620372181328, 0.0, 0.0, 0.013576794847610305, 0.0, 0.0, 0.0, 0.025452015886005885, 0.4384052118279088, 0.0, 0.0, 0.0, 0.0790086903216001, 0.15275039095222206, 0.0, 0.08940594755444543, 0.0, 0.0, 0.003492578790207725, 0.0, 0.5882017770828334, 0.0, 0.0, 0.14092784541391168, 0.7983017352473682, 0.0, 0.0, 0.0, 0.1117819777173795, 0.0, 0.0, 0.03862278430066002, 0.1785535098526168, 0.4378163685245537, 0.21613953941654523, 0.8670541670659707, 0.30872969047516546, 0.0, 0.073895246778613, 0.0, 0.0, 0.8448370570321526, 0.006826318289568987, 0.24453895548705643, 0.0, 0.6685102691932127, 0.0, 0.0, 0.07127880649817865, 0.032929653726359844, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.018587651907083814, 0.0, 0.19986879579794362, 0.2170189952300144, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2805164076738779, 0.0]), 42), 42)),) +(CR = Tensor(Dense{Int64}(Dense{Int64}(Element{0, Int64, Int64}([-311528392542676525, 3802864504850227773, 7132563740294941325, -7734229606977869371, 4610816547292327398, -231875892530149519, 6479067223724325995, -5993925410246119408, 7769769731936043186, 6508773581643622648, 8377470195368681305, -5026402568726958822, 1827804178661326297, 8945035746065187189, 9142616182405809812, -6444208854588150036, 3277304349445109851, 4784032081641147304, -6760158860367436072, -2973384685745632037, -8129972329073734262, 777092723910886802, -3245293789031672332, -3523460009327721843, -5684260890958137224, -8265569238908005417, 8801036620359715779, 3266176164242776697, -2137918316110048538, -3323946906471089812, -3314215782571951707, 778527069577570500, 8137954887180256780, 8430989329655386292, -606788686983349880, -4214419631996394082, -6982805642717038791, 4797874315021516200, -2404366658509915138, -9177912505471373539, -7126158702130095549, -1766466893224773589, 8924417853649894089, -4674003454091887679, 2257428816284239881, -1332826559188755030, -8548057139935380399, -6301259390274164526, -3288288979021163907, 6879439315951637090, 4337023968316665593, 6946150187905484505, 1010965014357589050, 5912572766312215522, -752662070435057852, 8324512872143105908, 3863764696845398606, 5389249056777042937, -1935499292012667397, 7268079289042811102, 9015678537102606643, 5924330619075555357, -7424534445741392445, -629875664608289672, 8384040311367110728, 4366481991429755226, 799319475113248361, 915077563132424308, -402689656772636859, -4955233076805992406, 7164775445931617845, -3741939346817651094, 626388912028592424, 7629488070185682238, 2229303825265914208, -5262491359642418345, -4880619796691544255, -3925706312675979806, 4696878665903208702, 5071857546218785861, -3376912663266974892, 8653621680026928799, 1396781445024355796, 621390305019145984, 8372778663022275550, -7480329048309833839, 1560173607708756635, -3514469212498253617, 2082849966979030776, 2855014826193932577, -6098003633715037270, 4973995505549769974, -934656248683882969, -7138618497546152206, -8796608146899612477, 2599534084177250165, -3661022375209093319, 6753861788669983217, 8879020977128083301, -1369089299051099462, -5718241577534868428, -4601048383104503916, -7761404906865992561, -4766352168228543906, -7581342006403310193, 5305627711042476897, -798942769184694703, -7013308532278854794, 2556970310791640083, -8310154389049907193, 1935579670641235148, -9182270706148454992, 9150818649447775758, -6638702227973546141, 650090674291676413, 8236754832241948399, 790792765911863457, -347542563766738388, 3388642901454996993, 5348134068670085253, 5074530787207075513, 1395232644756449952, 8090997313784423115, -1550511403107108256, 8571008051355695605, 1306564260425723057, 5818833840846631664, 8799033188003922464, 5410444795730799007, -3373047473574331090, -8548302006770261151, 5021861578667389638, -432669836523104479, -6438627394278666063, -7251108417612047114, -6291884531541975330, 6537071113687438992, 8966161431802402633, -5259240086960564044, 3503163060697962605, -4065148945903097744, -1777564193334828938, 1747809001727155632, -3417070383920828456, -4980740299784891473, -559866941814657186, -6426350914229905139, -5679160652862202404, -6211678578062624482, 848841581372246207, -2989862519366817864, -9055561009588072094, 6765006199830890923, -2062587279559167170, -7502248691809669785, 7718809563802492192, 3633483956842288096, -5531671318896978179, 5326224353406326292, 6726394281003005045, -1713581532815293882, 6024523542812863783, -1763399164735930073, 4266920826307605526, 622375407618332670, 4341466034596968525, 7715246185820712492, -5773491122824348016, -1826385467445025486, -7822412245781439819, 8017872321912493505, 6373242139699342871, -6944882458072813137, 4697620715257964034, -4365394206032703789, -547148396038045198, -5035570107494867275, 7793404466643051559, 4469721766633126697, 1166061378200498396, 1554858931156904800, -2361412551770162450, -7930855384212681335, 1713868002622874066, 7409111426406558639, -512154663509791484, 6537275880940401093, -3910570248961609024, -3836656625145607293, -8938294775136724153, -6507444214278732621, -1150538280928728183, 6973878162312254627, 6572969588409572611, 1002231209937518033, 6908277548248118165, -6022132921017429451, -7025870997712287358, 683251940863450233, 2493524975192955782, -7276639915615857470, -103883638664277997, -5314704606673142253, -7038752337314182336, 5560169698698056371, -5881866866010041715, -4469522438057826665, -8939893843141765247, 2642101218897762188, -3300172923916323330, 6352877754718065190, 4084338072180105389, -4342549113399200393, 4279374017424089065, 4398221897453782925, 2422944416491435362, 7922267869330361805, 5995998007128456283, 6280625043231339994, -3275865643381161731, 4383174748559532813, -8546441422012175712, -7893577028946492213, 9027885389349284629, -6125149023153379003, -4956546681275572683, 5715129565539777013, 6623276731031366799, 7560337431809868738, -31750236024934407, -3810198350997910123, -1146409313986505151, -428701850515027514, -468073762720447669, -1390050471520983211, 2835265798923663700, 5764913612679834112, 958810651968247391, -3797815661291407520, 6460520626648203269, 211708702104126221, 2261091765752400712, -2964977199137046896, -4385151649562144001, 3116185924188946137, 6739692152509783528, -5305436920427785009, -2907282851691115609, 447743807557596132, 63862440751247066, 3514479843707153842, 5999601496287905231, -3654531195335519906, -2542600877922342253, -7290989393844413666, 9085469624507262735, -541455872346318235, -7971088789235032060, 7689978220151207746, -2711513566589271239, -8343310657572295416, -4167999392509592540, -9039445678299213909, -7170301895717218884, 6291529442536905084, -3374963351675626609, -5373168051494346318, -5497601031482005775, -2916886395075307235, -3883261685502767633, 9179413910741410099, 6289334284246669717, 4234089800929872794, -2655732539271996720, -3035070633871992593, -2437303472975627474, 8832963047795505553, -829388827821593367, -5370201744962103593, -8911288617151731105, 6714137128155914855, -6937785380240140879, -4804598248727707302, 8750156478448565502, 2574912636013720638, -4885946830234328537, 7521358135764728226, 535303159333155897, 8138574657622192110, 2456224430349956627, -8992321412901943906, -7281936363115109639, 2704721690134351097, -7216651923179770008, -6506422878573197942, 8915586083417585942, 5371232788505226594, -1740133450893903245, -982304251078917805, 2244112516915558506, -3114958008453226, -4610260728675861751, -1143025776890919762, 8288487391050636375, 4388285265909577760, 1232243352541145132, -7717830768524962099, -5901227017481054829, -6100861997340233106, 8279906479564605152, -5427340363020812495, 7436873303994409336, 4437395942259467556, -5486323029786467602, -749419638916086313, 387633405786106344, -2444684956722819414, -8879980142125000057, 9032213405251538238, -196725452198675903, 4109301537930725517, 6117388314164827016, 8847370785979768678, 77521133169697924, 7077666419656637399, 133555131055822904, 61998257733475790, 5697558321456541168, 7399783912995781559, 1137891396677380707, 5074079993681838043, -657911960963882852, 1137470059873220310, 7020780662981280391, -9177001920397809522, 790362239680355816, 600172032624920855, 8543420636741980368, 4528589445176971886, 5960728324702488119, 5514186694424436532, -5432336659913866735, -2057725448378912415, 3911807348846574985, -2933766100391426874, 1800193705806185930, -7054816631402652609, 7183265689053958885, 5699677378061885134, 4220153114531888679, 8286682243768326060, -3718825949288568614, 4247279726743304081, 3401929723154371418, -7791632387902813891, -8525035833654653815, 4642847250936202202, 8571834255563384580, -615080775143020047, -9141302276862944236, 2497129230952559091, -8795367116044177149, 4697020691819045650, 8078487089138316076, -6314877087348456338, -8272915201734457268, 6950678089694500897, 5377750684446461249, -921140928622983181, -1520460049452102693, -3177121019444108678, -4051624390692544861, -2825784479508224090, -5008690521298053399, 1770783004922494527, -5527822838273234845, -4503771241503652292, -4788400236276842410, 5619353998326498739, -3701011697076308480, -8034418559493520412, 6350765187233515105, 982558642287986027, -1448602610424440694, -5618483166513344245, -6278878478122580648, 7537160758203387055, -6154847048393471752, -3053777167706908675, 102968748125835682, -4368004269290628803, 3948417958341752791, 3441688668713259055, 5686013332820589556, -6793945691483312138, -5657337314720073764, -2316326789392298880, 8429883766104818531, 5672048876768223736, 4801755278649149250, 2457832606218017605, 5660898524916791368, 9008328499307364991, 7282355400911599490, -675022808189279520, 1248812713894084058, 4295529333031152182, 235010168203572616, -4332156008277813622, 1584706501703338551, 3224219654798343804, -2046414069220643115, -4768268609286612707, -4595767465089756149, 432385139172141595, 5744340903783987934, -5907814276982578230, 571373857369851574, -4615364944658920518, 985558362311014501, 1146748558906210730, 7358527181149231649, 2960234619888514885, -4221579384574605709, -33577900070920492, -1383491017420984722, -6667111422768545223, 2209578116218914144, -6192696716189832095, -8682232579400392473, 3926742208689603882, -2605251114517028176, -3432143345789886934, 956256818538240068, 7048231574365916809, 5172150567611355985, -7087473940080722223, 2829725628381946973, 6615614511402804897, 5597114989308889913, -6360862330806523233, 7263403909484904208, 1722745349057533175, -6250859958048377022, 7854765438825869947, 4544273279457948494, 6871378735684121062, -3351123348798445569, -3070913893427269938, 4474858432188499679, -3027153348937151936, 6723187138491054590, -4633043728650674379, -6923489996304544514, -7608004350687835922, 8618729303360011673, 6145931189986425565, -700125041702955627, -7361791825514005778, -3052622408661881441, 8247111715450418050, 7644850195268952347, 201981812631246530, -5366187106284689552, 2240979599738100899, -8929354876130746907, 622748136125783190, -2241977980877970148, -8690707102946532636, 1816258902369550876, 6082608921810779350, 3313569380430314248, 7003634692020991413, 5388495764620726128, -5530822942131330273, 7182058408716498125, 6272977706245272491, -1611832087259919849, 6304118920652930260, 2664243321321065829, -6991256246863621561, 7763559060359215549, -1363294210753473603, -5984590649126030611, 8835145660544963598, -4339100511013335484, -7658343482117166946, 4767592705684863404, 6567026582399699474, 1241984525409511450, -5043459788309072162, -6788638110335657665, 3425502247489073842, -3386866538103387786, -3435764054745173624, 6561588844054851309, 6358866269624109218, -2265970059794978437, 981754089422755666, 303360095818360815, -1637078045909787216, 5039180299052306271, -5050307403632054071, -4916014943876365639, -4786790738315442642, -4112969230517500969, -2053067729163411292, -5506471273731989096, -9192763281442671194, -9154538478094146297, 844512131685900736, 5622194151159285613, 8194896671418306404, 1412467403218231788, 3881564188099745981, -6535023704129633935, -4422084769610503611, 2842323006370744908, -472587132304431690, 5418894508652286502, 5354997878416558687, -4192781941439730955, -3177986442565831154, 8055846518519871975, -2415348653243756702, 3420189508094535959, 632472561226799626, 9048880056639467255, -4088888662813871032, 5342377372296981891, 4269139230891294005, -6717542854769676338, 5697661121986271761, -1342180587334633568, 336875038379374793, -1762255469438213123, -1771219285192270657, 8879943609619899579, -6124059468186375892, 8286471420479395455, 5543997467023211823, 5320361181567019590, 8958205738403874292, 3782571393394012068, -8985467336212511099, 4358217428218486255, 5323123421330561591, 5764541270351390266, -6963051555266077147, -8117203354060625734, -3369353168590364075, 8066080865612783830, -5493399428262160806, -8062951269302324167, -7795183678321688541, 4270469270852553336, 5515134373073409924, -4715340744920803950, 2105370441481331601, 377342343915534328, 9024587429061028407, 3950645024865924468, -7513885460653066738, 5679113338470321965, -4007675874528217094, 685254662537812760, -7675519858059415042, 901700859132852851, 3306012866190376430, 2408392168740675300, -1818210664377266977, -5985536775766332429, 6859135827266771568, 6142180884473663150, 1662736140744539339, -5748205425049442259, -1431038593146932184, -7772606991892607571, -348435608257889917, 3323776957236852960, -4109021388662695665, -1035387926833810113, -6252075674217952235, -1688047783032235782, 4835484251275026119, -1130434861387672189, -552211881628052457, -9041375001510857971, -8608662509892950952, 8688323792329827521, 4639288709326029154, -7997418775765929203, -536103785062713510, -6343663721617708900, -3154255286206413772, 7778544095371035370, -6087249532642040836, -2119136938453566451, -688238790820179873, -6835440198851144923, 5315054982053402284, 8173102513358076492, -2069317718895641958, -4771766013066052606, 931917254490650404, -557345458441442938, 3220011825320527555, -1158400632381301374, 7109875313372060233, 280358344723014545, 1781923481723729313, -1805499844278566084, 5814569477732551196, -2166719128253350835, -7610231454586483844, -410436740688301883, -8413621775294896865, -8989368555919190902, -7176709214957782648, -7904552684938415090, 6506593041716222957, -64275500919664736, -2441305534489441569, -8607529290606256433, 2704494450480538341, 8252863318644872588, 7679830104172517933, -1362881973065009152, 3227375449815221716, 4230416557459228451, 749940150731561981, -3955830997208866872, -1058276989298619601, -1641422116181591194, -822466760760516658, -2021155498858226231, 5043089523958593235, 9160523363278870467, 2440291487886579299, -5076764184565375538, 4008082098413400136, -2574196012088549257, 1815165426871122463, -1810363067796950052, 4564660363457428284, -2979682748740342374, 1263528409113807511, 664902837787653319, -7730990515836195905, -2880800962758009323, -7855792495166800696, -3741677040754952297, 4706538099020817013, -9136310530026765146, 6214908330569213306, -3306943983211023738, 2006683290226313727, -6277376814587543000, 5070401159692077631, -8643576681302494805, 8696392328149980718, -2881724085663247400, -3287341067959381540, 4490394380103475251, -2388135268153109148, -3688564781415624446, 6498489205468056363, -5500244887538822899, 2180911647749845602, 8505364545645231746, 836973405812942824, -4740164100896755286, 5278723018552192484, -1437440665187625187, -323731977913999807, 7961288608439452300, -6431662516133743485, 3288471137468863622, 1094976596329727971, -7153147127300532286, -2269332560827388244, -8443034525381127221, -7259595132044303319, 6598374410643793929, 5408651494181464015, -2202304456831760230, 5063787465367491805, -486043291012940650, 6661198455654543904, -6677120136819219766, 6873215010129388137, -8544492697357908484, -4891416620674641993, 6278728749137780699, 6140179405370666573, -2530674188465907541, -5542826884668502138, -4624987738903378785, 6055897868744384304, 1893227478513103707, -5998481717337431109, 3830666628195019250, -5536286911313861609, 3200695281108542221, -6354873668485439169, -7106406847876828463, 7267111195904963580, 7933454732992989449, -1704431805338802811, -7611850130507733188, 812223521137539840, 5028737084052092939, 1988409904336613546, 5452332172318207897, 721364426528035202, -8061778870788033499, 6206577632233922077, -3358825340647308897, 2615281023954623119, 5796586417262572998, -197225006894562884, 196909717615705016, -247775495361433931, 7935788894770135235, 2974543031667961203, 5518401755150062594, 4289467554573218060, -2110026776485502130, 7660756127445162484, 3210017035054168881, 4490480744367531310, 5560337963744008127, 1101969946984775230, 5426060883804367122, -7414569778895362694, -2574548713218219896, -8667400765660450694, -5823705257574844942, 8997571444431443269, 7042636308067180449, -5283570316461887039, 8142095188421778064, 3651820187667613831, -4106900401332576063, 5096961868284753927, 1281307679037151525, 3157982099299110758, 5964579201184846556, 4180328246833948732, -7591589437120250551, -5609987180487736705, -4487816973319572586, -1552743699661830151, -2960134158460000031, 388000481836191254, 4969717821228980736, 4894250187668109836, 3314809537038085119, 4588524784136728210, -2535627291226530894, -5684084138082962342, -1286085397614972483, -7103165809748549698, -6678458086474660614, -7506274041001472908, -5757410831092511843, 3076084975765635926, 7850034963640689904, -8651748294440545843, 194609034680985428, 8961175923080965683, -93748348755505189, 8117513138674933995, -2327127188025401628, 9187079670668733343, 6176196235074071579, -2820708281421643585, 7702825886158486334, -5855613686156591038, 7799351880585559652, 4934874524942948135, 478516408624230993, -4965206657008516450, 269236596925883928, 1073428163366009326, 7126792485072910069, 7569987982476504769, 8262969537673837817, -7393607729414256813, 4017211294382715408, -1453708362719534126, 4307169287498447691, -9096393784442866629, 8699405990322605810, -1035874136575275173, 5307229917593282401, 1276194578649014061, 7817361645793510414, 8807328459013683574, -6765725969608803740, 3805877505873456422, -2895703504735894621, -5230950451898686709, -6669061264839270575, -5138851837205629206, -1835119422478560204, 2603594006469150259, -2868548477659140639, -3022288051024437226, -2534068374958773882, -8740036738980731237, 2422761568693286421, 2502279617218189169, 5653397006733775922, -8039795195496143176, -6114200605642013428, 4738401726556400980, -1124125357168446237, -1348538616798334459, 5166727242185760724, -8859072289987873964, -7821112919434789020, 558406059872965377, -652528105474834764, -6029896875260562574, 2091769615884194159, -216079402402926518, 887407835530247623, -4090364169749485345, -2641220401477988829, -7119863260277045123, -7186889934574275077, 1786346915042454610, -1034431575705158448, 2644876102600825848, 8628759535217154371, -5076435861824768815, 5595534221719835067, 6278270011273397462, -1987507060144813825, -4918793481045561857, -8270154588131917026, -8468046916149675701, 7176601854751293210, 56669650886358090, -3166866242311034523, 8564531909892678053, -8455196864544157950, -7257596480926253873, 6959408330130435752, 3028838432902894936, 4424195858928857704, 6121497124194972504, -5469042773842318014, 2159359821694864340, -5947113653447376879, -1257220895728861725, 1392685009302569024, 7648830520509108133, -7371898747435017516, -845894640102415955, 8686498035411426229, 5985907670960414557, -7006168817797129900, 5479137187044139679, 4647241554359727919, -7056835850526619003, -6083660857753840170, -8047496266502346341, -7226197892441689165, 741327366913048535, -3711828024047014264, 3862158898379466077, 449693655808431935, -4882540886884501973, -7383637210504776854, 620553667069897427, -6713481484814371951, -7543587771860356019, 810524291612691607, -3659121362368402512, -5595441051298399244, 8088291422822166417, -6303984734444135248, -678233978165917904, 3617704513102699155, -5352941627192876325, -5816949687022080463, -9169168096039126102, 7975547379037659726, 4623395118382308799, 2509276746373528458, 5235508280732183917, -8712780009966718399, -7712552639387445993, 6759061446299827503, 9164297432474703925, -1110357104587476086, 1829423683580763459, -3799180270173028795, 8306026342220315310, -2726954641281485486, -1863888117327900205, -402316169456308966, 3744050168945036153, 4528951249037614908, 4258594066663919620, -3980786014056604956, -6634679619236991963, -4774774115148739666, -1688262812036369479, -3034548033917499658, -5071122385621078715, 1588376700080465528, -7759058167839367430, -4775874273596731934, 3221595815258590133, -6828959650403546499, 4346943720922699157, 4928547898720269926, -8589044593817257493, -5081781874907419607, 951694801960191091, -4667459908101512289, 4206977884410966721, -5197565432654930036, 3326560315392948439, -5878101577814599326, -8546474537134600654, 4309823164209170224, -3850248640668593914, 8681749283296418130, 4990534815930281841, -7750801661905292077, -3291032507257295915, 6665735555297233110, 7050489721279484184, 4317248664266774559, 9186786829891405296, 4166168050877046636, 7493753755601945303, 6899283068593432141, -5031904746579415020, 2565085644824379929, 3944502551732855469, 2189710644855030524, 2255493561976705206, 271365360135379886, 4294982312243112084, -5660229707439867961, 800423085895901894, 8347122627753775462, 6822896499937221573, -7651490681616894, -5297285646106039108, 1608114244844304377, 5839483976720836889, 8241560863719005179, -4129441230004651128, 3479615647121648386, -3074954311106453268, -3412316248640445049, 1216386815926349358, 2626756706523947064, 7368591831166517715, -1142163371321856898, -372851778878484647, 5995055175251528039, 5499555783411494776, 2016478622954748816, 1279886563391834469, 5165391760856510060, 734258640138801802, -7445758287171966471, 5839000974438980820, -5125341234978471209, 121392944104683131, 6179055483354016942, 9063275686698059196, 1720815667965783260, -2090747494244625688, -7864214085579409526, 6028043825066031897, -870947118366293771, 7376428769075962994, 1893490138897624353, -2886384328350744909, 5229519170995839908, 3782678275042073308, 8444457277148000247, 7575393971659806405, -5934742581324588974, -957376746896582101, -1823443228678068953, -7406349357662140793, -7066353634914162328, -932893465250817358, -6158979365981425485, -3999272364858205076, 4376092228086515820, 2513046484924596765, 1682565735361783149, 6869702267679149853, 3598461422649849004, 6721690358813739611, -5015414950752771986, 5196130127330595784, -8263471740181652146, 5701551820088369908, 4253014790918207382, 2681305943933975380, -802509536169972911, -2921706024223960837, -9084398191436379512, -7519519527403626152, 3410883059237029545, 2095075860303886315, 7914139912546804769, -8370416930809779762, -7044648509550560506, -4902792417226064745, 8930318598773654893, -8039939177580969146, 7860061109504978153, 419124991549078423, 52439998177737723, 76668279870828606, 2400418361498442757, -6792499803763550020, 3154574853391034842, 7821968058100120318, 3866940609041914244, -2451342656371401396, 6905559753998185538, 6642467155099476743, 9184008300019616920, -2170183067760494195, -1717224464730633452, 5546156896245179429, -2017194334177493538, 5813836834777993870, -5037970301511180119, -6283363831235414834, -2112512675648312385, 491800089892071944, 1091841107193066408, 8220715112944896727, -4061073684265419648, -6814505748970986107, 8035167421124665899, 4919021796047562901, -8884884164310583259, 6153891825926211445, 4869639300001698143, 3837324736330986571, -1644424597952783500, -6432957171918516733, -3788559728040549625, -9017234204035095885, 7974176819879521382, 8518789095085259635, -3908843812016366962, 6951099628380613842, -8130281757214184420, 697619035660462877, -5347667485898134831, -7870811613775178028, -6511218273726014463, -333041748521768769, 5107911109826800955, 3300477209814784624, -1708767489614571672, 1525551322408592196, 9080360653706424402, -6708214637440210952, -8631288433031181655, 2969113138124740044, -6647892099329100204, -6988290737149534654, 7213791800550484241, -3515983215941949272, 2776751762191199071, 4071933170036566928, -4265187988772916685, -2837771298453665817, -3090388734688474776, 5082944286075818548, 609755467484712029, 4072847486654097862, 8529301158860902869, 946912055446259682, -2248520461543232716, 5002603540450016650, -7275890548477817354, 1780246636470144442, -269706394334676566, -8177505231864803521, -4808125464463073144, 3775199331707802161, 2135641040248441133, -6436387871891641508, -7300737480287384013, -3360643109416540838, -8725466580297208946, 352291131791977996, 8394782611214630132, 17475987862371471, -4488499446877241684, 6767262301426119887, -2769737041134652019, -3193753686399895142, 7241778878096412757, 7797099283865407968, -2671749878988612917, 4696277170143113298, -5423752625035881763, -670732946661190647, -5711362811761083541, 4199832504691110757, -8677080819421441869, 3205643745224196359, 543646793087604365, -6804492024407055184, -848262837790928773, 387374760481732684, -9059158253510589576, -5856801177533266560, -7432011656959400529, 2198315888507745377, -7784997841364446485, 5347278335471818322, -6869526283408290890, 1352984110104423676, 6604074908186486860, 3540137177162802697, 1016927313450879985, 4071162570240874321, -5551488416681382753, -1504833906763233366, -5197958147423262666, -195819750883991358, -3945019213013735347, 6902249401976467405, -8912844306838907648, 4722491225058563626, 8140893302518733651, -5690073294438117370, -5969694801694774088, 7487125160865276118, 3007343065818503767, -2137534930747931929, 2809569435246364642, -4144004208315175629, 5255075717374606982, 7626373563000023350, 8149042251253369001, -8408446547381679894, 1486032901530289193, 4064054887282446575, 1589944372692791144, 6449119204549353091, -8068500293077637628, -4352463204946506034, 2337319196167003851, 4645391736645529886, 2010913571168295586, 1067508280099262661, -6129726247014324152, -611394079563159886, 2374062997617988521, 2762859988315805754, 4077923914156429843, -9041689727396256791, 8413929943723227620, 2773700164543912806, -3519424763423213991, 3151293449748791827, 5483423829303258017, -5946703767041794347, -6685640504011780936, 7701491958403800059, -3979073630416352084, 1302223521793369618, -4739375335957240500, 1273557423668894202, -8157791041761503052, -1958803071486003789, 7995561814538810256, 6436799742219583197, -5386107234107497189, 1105429829723289433, 5041979046245310635, 2772779352725880615, 6104391435732090158, 509237612818462766, -8907837183171812543, 8961506241364999076, 8373135239934695333, 7751397787702975214, -7720289196893704743, -5554204491061059859, -8487390470244497973, 2351786434290874202, -2862041859356855047, -6701648002700596727, -4990806288016181990, 5702555028297223797, -7412013855987842169, 646706808393679723, 2860990118563046086, 7347537387001437151, 6617834339254038549, -4724711214635521652, 6892741295472734065, -6093187166351286471, 7856072582143761513, -4312704304396901639, 5815988893927131312, -9010852855013400179, -709193276924158629, 8842697574196472282, 7172961009424657280, -3086117591933807359, 280668548915001621, 5623299142074972937, 6672160606420637960, 7754570087534551249, 4152353032828795027, 7269286384995548933, -6251412664921890878, 5732127079576970324, 7234424551899679503, -3642728981546782033, -3638300185011093242, 758429305061830090, 6807454373907029375, -2407746269258439538, 4041466388407032509, 4412608899209555624, -3826881076377531812, 8863453888803774091, -7624394860603430636, -8586227141178724702, -8333849234994046518, 5466525086493196113, 8976129229655792662, -6761513090258468865, 2757033529591673069, 2729369021924837617, -5342219263217653521, -3682680090127880756, -4024262810569674934, 5734119662788048810, 7267386939198869053, -5732042765175834343, 8098289276583123084, 5528374394051795198, -8832084056016214993, 918234824385712530, 676970414934466709, -5794527027417515112, 7833682562510519926, 27750847269835893, -2141504133172325665, -393870739762170378, 6628987571319571919, 3042161428414889656, 8319098477369136797, 3714381407608491489, 6871028708069796695, -9116209644422794377, -898115304925379815, -6100921916446089973, 2407259165779504625, -7824595574994867809, -7812941900040155346, -3874610317902165720, -383060374023677741, 2565489144529271919, -2775667212831852387, -8490494758318716088, -5768969488081270158, -4163725029626196551, 425158554688666490, 236621108823379185, 5592527110007246515, 2250712273533240792, -6996902570942094740, -4316193418261480778, -423017690736900269, 6499561801793623752, 5999756229412561116, 2122709403244307390, -6614237089257075273, -4438754439933732943, 7755990109693945275, -3828302258654058750, -4536174171928321428, -294446715323926202, 935637585377645959, 2493495210256659688, -7065985576821599091, 4771064322299072228, -8324047390232687097, -6214767548469241356, 661838500088622926, -5496419443662109009, 1769360504705134935, 8594133951145052917, 1919665994205776303, -2829008152524712179, -3534926825330291593, -5392109943851106148, -9174936343936187588, 431831984523785014, -3478733297737652068, 3625098395866689397, -2265434394587802483, 1898173869432619635, 3905980956606711904, 4899181388449222978, -8560503291870850826, 2442336170526152937, 4758854970978333179, 2576950350674509603, -3159727556622278707, 6463385243237218927, -4244656898675278709, -3639733836666543106, 5150557251574321755, -1847330250029237854, 7990644495793807288, -4844220065225521206, 5669665901579369390, -8516756017270853386, -2163641417216885795, -419690911529103853, 8389050361839906714, -4755603407177446434, -3628876977205345798, 6346120274506356620, 2897382412678952073, 2892018529361149983, -3105945328483409777, 397471260119955477, -5924914980966965208, 3259916578022711299, 3584107160451422225, 7335984245174911695, -740299529193763425, -1132793386238322552, -8882624640591065694, -3132393138391844276, 5819861013084344169, -7875274867444632753, 8187945432875751521, 2367121363901039734, 5703419689657841727, 4107383082803893848, 4567302762139612814, 4413573636895389667, -7908655157105234973, 6012542666924997773, 1543290098636558500, 1167829086925604611, 2777803534220614400, 5402112821476681615, 7508255472390188504, 4371085781904923839, 1633853775080032376, -3977888499508807807, -3454635082436672696, -5633966314565017765, -8027628515978432555, 3204939451242551097, -1194334364385733269, 4715733242512836960, -2424390587904992168, -8598491278835370190, -909646813366796865, -6282299275378582741, 1091786653924799826, -7151604730926028, -1952001457689034822, 6594682270311865613, 5297253419387719327, 7174384514581700900, 4179089671585649194, -1438112379026769819, 5863458219802778896, -6258500577607877153, -3191184177787625636, 5247643985080738052, -4249605461827630928, 848024707032423852, 2578176992048298935, 4277106059776803841, 1027307997622416172, -2034184717655156741, -4032075691921298833, -1725223926910214795, -8355218558445840600, -807432826419964742, -8691053822978844932, 5190610597372914740, -5685703413827560197, 1201444270328420824, -8573622742179143460, -5120225676224448990, -5713210850430827610, -4407146778693477095, 6616043013230938178, -455203650113225090, 1257217750953438197, 7038774887541165092, -7978022942807666493, -6027283969716886506, 2039426148959366399, 2349300899242575287, 412136285666780739, 6737962169699689176, 5396043023802829490, -7375578319123588090, 848689289605827984, -8962743046285584688, -4978454835941389091, -6810534590182341273, -7904631394849341310, 4986473973338859037, -5186820242653188418, 5733494837941841739, 220945504840061108, -6134138428611997085, 1839281472386260502, -3959944160474481058, -3734459438928472268, 3721194299693987183, 6767703249986874259, 2045991906683057358, -8742954565638258573, 2420326502842248753, -367492685541062268, 4355219222598868416, 8572842933899504804, -3701739195979978554, -7764549138235732147, -8598925157129974153, -1207019761626072373, -4766444500353057904, -7001982766296723356, -2193148807691074317, 2257290521599354392, 8810412979742623813, 8490414288126231798, 5852946775791635490, -4580603465805866303, -2205977094397869034, 246619722621583797, 8701711500730861947, -5723159815829278387, 2413055362373823891, 4026630626738278077, 626257627860460242, 2574073136387432412, 1225984626747539527, 4932610320264372136, 5801172410851190171, 7046043975985485604, 6725048163205005162, -7576705462287398067, -2531652356020173951, 6390475535474516267, 7954408693665804646, 1212769581897394400, 6930146611691842308, 3315566551407884820, -1691904946575510235, 2663199435933348098, 6910705755054739103, -1445154807745938237, -1305866680652390683, -4123655378022181618, -8064221424814919501, 7446614750020132187, -5068110728266677912, -2030505626005615587, 2000339047753778091, 8498499418863079418, 293614270927881287, -7692468401008699966, -3672609321985504948, -7142451754177878046, -2896478347708996217, 8782220829960750497, 6479357669621747111, 1193728541266948796, 2292573676038833952, -8855412556553540266, 317468215313058893, -2724448286275139831, -4850615461204879897, -864740314491768661, -2490524393871915862, -5497905834125156430, -8861963624388260436, -897462606730994032, -400305460423163334, -82260487316074112, 2335306980672653822, 7810394748744828878, -1713283213271910906, 2687818835146282560, 6112149537489265528, -7705775471756675233, -6212557483975450875, 3316513936364892531, -2247846567664673941, -6242171865364499591, 1864513425979011482, 1142454994086149910, 3839287919838368040, 506402678586865400, 7148330854725749930, -1563308216343959635, -5964480677519945158, -280002382744552497, 5866510398096934772, -4453231543043354473, -7773402607793519054, -3834638464799366814, -3278979331036933950, 3772051427216111937, 1707017430062992775, -102267837227575076, 4184520795854560136, 7597254842510533611, -8279104207355801361, 600209822568521256, -3193350568000648133, -7833434008084958161, 5377254431830388749, 6469619144829771684, 6052343019477107280, 245305866791464031, 5924851661031465757, 3055811671924051893, -7757673726764291611, 5425488801254271646, -1230513747359704646, -8856055219109968322, -4731754271270239734, -3264856159650276367, 8368480760176687700, 8143173203566375840, -1210747890098141143, 5295731456734954614, -7498167121192897541, -3428045625716315797, -4791314006867460823, 2948723375377110370, -3810064731319107123, -9202716795541515555, 6148653665839630204, 2848560055796753936, 1954069631098137796, 4697862255330998161, -193476793171573000, 9194232325669679334, 2656267557937312535, 784853794420870025, -624555491147103224, -8631140942763948473, -2331918944750595202, 6315237728705772778, 2538347749394059355, 7413989927117471885, -3517357964246821289, 5421999950889627853, -6721616076848566230, -6069691543165016804, -2059672142945104532, -1276872363769808299, -2332106662160828140, -9190658909128292389, 998308533634505219, 8907745002351060091, 9115911785525303560, -5194650919107828434, -9003424612543715863, -3769760580289899712, 7344040885552774285, -1843874887890373545, -2979057855708079246, 3927517266022277004, -6833174667206608458, 7205558902237879956, -7422227807001150653, 2892291292690035479, 1284760228866985595, 1579008536286502803, -8186844164684197837, -3187052903249540562, 8095458229268227600, -942456947636162847, -197259298036992424, 5750027500961963107, -8780627866791874144, 4516587109721854134, -6756980873638829294, 6089727200252654253, 6090966007180500784, 6469485832367150258, 3727493373269336793, 6291666731217101540, -7084732212740878330, -7903055913758755665, 4891022811619987916, -8624979534479996969, -3150803291726511210, 2623467983448099462, -7840898703047755463, 959779825982640998, -4501449511014022632, 8158799952216643156, 6178308647687332151, 3246276148886561759, -4425465515852070203, 1247832115472580356, -7050642510907647091, 1732161476419586910, -4164009650339589679, 7901878537714761394, 4178886057429322163, 7443735283409136954, 3014006097182656664, -8798335101393201203, -5618885033101121558, -569071355841480030, 1465565160996165613, 835907336590737450, 1257219254618299668, 2609819195336490748, 8938460768518194998, 1062342481094570886, -4375128033036425666, -404853979334087511, -1834092297765356110, -3519968044035730035, 342399303427600858, -2532143186992956190, -1777167417949977190, -4568326529056220102, -3304778777115413905, 5811787797216829954, -8020456284040308452, -3042194865030802631, -6446259211561084653, 4438782287801714457, 2161950337870754038, -1710982377937381651, 3293767809639986307, -8498661003156499972, 2778304605465959957, 4396759401194328589, 5809309630589945276, -3761311896714212621, 3342130357882968747, -793660217799580436, 2646163611383045898, -2416033543020295149, -6095464533266716295, 1769382373075867919, 5769921217545593205, -2763147873675394053, -1414369372293739819, 552238703840022885, 3971959281509960737, 5871938996071876746, 9144138102870479074, -7051583752714084284, 7997594892977403594, 6973237725993655918, 6759721585491969005, -8474802266062078918, 6556741587070699944, 1797176452359594013, 6068615299846548272, 6190047022681470000, 8025324066560663415, -6635968656501651102, -4801756026236962503, -2019199295183210468, -3662481029228087433, -4145069547545433261, -3049242395576128771, 4037435087481423908, 8741081107921224099, -4245153772169063194, 4568953288012583293, 7712589346562801891, -3215613063795247515, -8858591175844031521, -2087790524802605170, 1417733501490955314, -9063725495583630514, -655483526137291502, -1191912813457342762, 7566687464776014044, -8141381772450745660, -4279904944725432103, 6315788478946072243, 7002063045159257489, -6590365664777896890, -4679403751815604977, 8714069546965743554, 309533184730636769, 4316355607870589378, -8249109378692746867, -4536319397565701860, -3305013732482176309, 2701230281724653072, 2915853436366935644, -5927461005461889274, -5702708199784995265, -6433065803429162631, -4180970319895671172, 4849896012027919472, -5561528520719418585, 9123566069177685279, 622220666159857096, -708782930522252335, 5707712868431236809, 5313827561404790193, -5799394264768564243, -1774362590765209798, -6918953997843796104, -1980381867595314801, 1327414459290737935, 5553240067124633984, -6296091561738456701, 145974771717445135, -8724843072185840624, 37791342206206222, -4696476260914498163, -4576914265385553592, 5910120660565540139, -5970819293263084113, -595010541964357447, -3312166820520539819, 2138938008172669579, 1754706572008805133, 5509391222621898877, -5305407397355808074, -4612573236316801425, -788151160991829846, 3475822491801193714, 7334847274467493432, -2738273231885091334, -1394144455222408656, 8445783368824786530, 1090934155240864175, 3666668840304884557, -7481508096164382026, 5809539258269464286]), 42), 42)),) julia> @finch_code begin Ct .= 0 for i = _ @@ -45,7 +45,7 @@ quote Ct_lvl_2_locks[idx] = make_lock(eltype(Vector{Base.Threads.SpinLock})) end Finch.resize_if_smaller!(Ct_lvl_3_val, pos_stop) - Finch.fill_range!(Ct_lvl_3_val, 0.0, 1, pos_stop) + Finch.fill_range!(Ct_lvl_3_val, 0, 1, pos_stop) for i_4 = 1:A_lvl.shape[1] B_lvl_q = B_lvl_ptr[1] B_lvl_q_stop = B_lvl_ptr[1 + 1] @@ -291,7 +291,7 @@ quote qos_2 = qos * A_lvl.shape[1] resize!(Ct_lvl_2_locks, qos_2) resize!(Ct_lvl_3_val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}((AtomicLevel){Vector{Base.Threads.SpinLock}, ElementLevel{0.0, Float64, Int64, Vector{Float64}}}(Ct_lvl_4, Ct_lvl_2_locks), A_lvl.shape[1]), B_lvl.shape[2])),) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}((AtomicLevel){Vector{Base.Threads.SpinLock}, ElementLevel{0, Int64, Int64, Vector{Int64}}}(Ct_lvl_4, Ct_lvl_2_locks), A_lvl.shape[1]), B_lvl.shape[2])),) end julia> @finch begin Ct .= 0 @@ -303,7 +303,7 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Atomic([Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0)], Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.0, 0.5960995400087008, 0.0, 0.0, 0.46121971296621317, 0.0, 0.1341136169173934, 0.0, 0.6613178775714327, 0.0, 0.0, 0.0, 0.0, 0.31233701358881993, 0.0, 0.0, 0.0, 0.42428295532646376, 0.0, 0.04433289125435014, 0.1771852692198303, 0.0, 0.2102135380786222, 0.0, 0.29289346791587945, 0.1864042064610544, 0.1847622901670141, 0.0047837035165779595, 0.7809783797805827, 0.24637196495074015, 0.0, 0.5657923421369488, 0.2611932808057722, 0.0, 1.1390711256090715, 0.0, 0.0, 0.15310516154880033, 0.0, 0.536745361655064, 0.11084632541017801, 0.24887017850829343, 0.6316463638637531, 1.4711963896826616, 0.6112779722436283, 0.5079606239011155, 0.15942216163041661, 0.21541936537958353, 0.10295208772558359, 0.0, 1.3699774598840704, 0.6364841478802473, 0.38335626793892197, 0.0, 0.2992892574327959, 0.10527060545292, 0.0, 0.0, 0.7485372018432481, 0.2715216678914851, 0.2667902419370478, 0.0, 0.5814665590695893, 0.051682188310845374, 0.0, 0.0, 0.3934310017151073, 0.0, 0.0, 0.5957893409486428, 0.3316317367913752, 0.9200295815926001, 0.0, 0.0, 0.6623087915165122, 0.0, 1.5766760492233103, 0.0, 0.0, 0.3039866668414091, 0.0, 0.024309812685391816, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14306886144088826, 0.0, 0.0, 0.0, 0.13834293702511197, 0.0, 0.0, 0.0, 0.07697281314241891, 0.0, 0.13882210022663904, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11718373909917448, 0.05171175921797154, 0.0, 0.0, 0.047041804166349496, 0.0, 0.0, 0.0, 0.21780680053585874, 0.005280433697773762, 0.0, 0.01227888835211436, 0.1637490848480197, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.405774970647805, 0.2291279765469989, 1.2574751546051093, 0.5180330897538964, 0.48968357404421875, 0.5301529810315024, 0.0, 0.0, 0.0, 0.8112619638066929, 0.0, 0.7833417149382808, 0.0, 0.0, 0.11442625626708748, 0.11485555134200548, 0.22833033865638044, 0.0, 0.0, 0.0, 0.0, 0.2864165259642358, 0.16027108725841735, 0.0, 0.09011936406874124, 0.4181806897076036, 0.0, 1.0569606821068054, 0.624691204995156, 0.7081544908696379, 0.0, 0.8795184016973987, 0.0, 0.0, 0.021853263477242018, 0.11238129351491766, 0.0, 0.0, 0.045824320207715985, 0.0, 0.196064039018767, 0.0, 0.07081867255234689, 0.0, 0.0407459744321428, 0.0, 0.09807635051343538, 0.010124069007427254, 0.0, 0.0, 0.0, 0.0, 0.6116811031756639, 0.0, 0.0, 0.6208028352439049, 0.0, 0.17504030998808598, 0.020658826838531718, 0.719367580349619, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.015728258754898257, 0.07298380500117611, 0.0, 0.06012022906808051, 0.0, 0.0, 0.5330380962469254, 0.02965305516643559, 0.0, 0.18001272855172004, 0.035235037447174065, 0.0, 0.01349449214577584, 0.0, 0.0, 0.0, 0.2359915438569738, 0.03810280561257924, 0.0, 0.0, 0.0, 0.3884686133510988, 0.0, 0.0, 0.21968925488132546, 0.0, 0.0, 0.4324936557273746, 0.0, 0.6879094987723802, 0.0, 0.0, 0.0, 0.0, 0.7898693359448322, 0.0, 0.5391987426673219, 0.25853076675450826, 0.0, 0.38031280775654097, 0.0, 0.3853638210122371, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.2217547802058863, 0.05709933484072306, 0.0, 0.0, 0.8484028226584724, 0.23257686384566284, 0.0, 0.0, 1.258622241947537, 0.0, 0.0, 0.11665876134553779, 0.3184837856872295, 0.7880482843371591, 0.0, 0.0, 0.0, 0.0, 0.23284042288536255, 0.0, 0.3804712136528319, 1.113036382623302, 0.8298038026635118, 0.0, 0.0, 0.0, 0.0, 0.0, 0.020690565683442904, 0.2610758590649183, 0.0, 0.0, 0.06193402719103672, 0.024569168683420507, 0.6450876041294853, 0.0, 0.5615893961519662, 0.0, 0.5487968919612313, 0.0, 0.6425734859953806, 0.0, 0.2979704099021757, 0.323777504790907, 0.66722521578591, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4069961680965457, 0.7713681046585987, 0.3594743508741288, 0.8852608548606914, 0.0, 0.0, 0.0, 0.0, 0.017250929899566992, 0.05738201561649353, 0.0, 0.040237899717394485, 0.8673210549972237, 0.0, 0.0, 0.7245534868749944, 0.0, 0.16727086778943756, 0.0, 0.0, 0.0, 0.0, 0.29250184542509544, 0.0, 0.0, 0.06729223300830636, 0.0, 0.3824979967457689, 0.0, 0.23769547992450338, 0.825352628558087, 0.5791520520364314, 0.0, 0.0, 0.6822104427959106, 0.5410434317660799, 0.0, 1.0013182252763115, 0.0, 0.0, 0.03410163433510291, 0.0, 0.38656596036997387, 0.673387919520239, 0.0, 0.0, 0.0, 0.06524513264320482, 0.3778876017229726, 0.0, 0.3042658440871357, 0.03546389486517897, 0.0, 0.3811330360259428, 0.09125614750074176, 0.38639776526497555, 0.0, 0.7956019813194058, 0.17107520161825185, 0.2528672125099372, 0.0, 0.0, 0.0, 0.0, 0.3715122812201797, 0.0, 0.0, 0.0, 0.8636878110328885, 0.3725673215613031, 0.19161493799862908, 0.2947877363978017, 0.8277903198901483, 1.043787991594994, 0.4556846854932056, 0.018960059119328472, 0.0, 0.8179077818243863, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16243732090346746, 0.0, 0.0934593474548136, 0.26288293993414813, 0.0, 0.6986592631730956, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.23290649501046135, 0.0, 0.0, 0.0, 0.0749770448177764, 0.0, 0.0, 0.5829804395566012, 0.0, 0.08903205884730546, 0.036076025185782915, 0.16740350145604724, 0.0, 0.13789822076519753, 0.0, 0.0, 0.0, 0.7803684622045182, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1343991941662123, 0.0, 0.0, 0.1265714212875754, 0.580645942127824, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4164388584828146, 0.0, 0.6383936083527437, 0.0, 0.0, 0.0, 0.0, 0.18608051379305826, 0.0, 0.04744673193981907, 0.0, 0.0, 0.0, 0.0, 0.3666656532257351, 0.017984084638402044, 0.0, 0.0516031884810454, 0.11619024662048777, 0.5090994962453932, 0.1702286192926929, 0.017754543539629426, 0.11487736756877703, 0.0, 0.0, 0.0035637729173098607, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6218776818900951, 0.10343438219926053, 0.0, 0.016806683142264318, 0.019961035657552893, 0.0, 0.39238409513228256, 0.22883526349683764, 0.0, 0.02328369860187438, 0.02966268912006465, 0.0, 0.0, 0.0, 0.08243560528569996, 0.6624744276069285, 0.0, 0.10804564627221094, 0.0, 0.0, 0.0, 0.0, 0.0, 0.272827698328812, 0.0, 0.0, 0.0, 0.10351845069306231, 0.022056761782947687, 0.04806113374409372, 1.421033050846094, 0.09272463621214155, 0.32902390084105787, 0.5088305985866386, 0.09822819388787048, 0.0, 0.0, 0.0965876885856362, 0.0, 0.0, 0.18492863169572316, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13526587090401476, 0.0, 0.022328727233527985, 0.0999580342692439, 0.0, 0.0, 0.09557781244125038, 0.13831210655132378, 0.0, 0.0, 0.1791768991068296, 0.16163641825142586, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.42053340750746143, 0.0, 0.10552005335412863, 0.0, 0.0, 0.16311354370934733, 0.0, 0.2824114978735204, 0.0, 0.0, 0.43639300384810376, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1671480967875291, 0.644888932873856, 0.3129032598040877, 0.48675890221085816, 0.17823949364009248, 0.1415399106044285, 0.18516682441734925, 0.5312977885248659, 0.07587099582542241, 0.0, 0.0, 0.6986300116510127, 0.0, 0.0, 0.7938925894205694, 0.36599606323996975, 0.26363118368222405, 0.2342915285475447, 0.0, 0.1869965760541939, 0.1160920939359052, 0.38732669798663727, 0.0, 0.1313693926537813, 0.14845591773543332, 0.0, 0.0, 0.5636663205749514, 0.0, 0.0, 1.5099082548197433, 0.12877106200933913, 0.12876355501777378, 0.4806583412843819, 0.8527242204514415, 0.2611825233475998, 0.2169329303973436, 0.0, 0.19905771354664345, 0.0, 0.3188159099664727, 0.0, 0.49573252746154944, 0.5909004107452918, 0.44608316126371567, 0.9987235012950566, 0.0, 0.0, 0.06543436335390052, 0.0, 0.0, 0.0, 0.7452854681453724, 0.940549219662451, 0.32866688095435376, 0.0, 0.04977979297413422, 0.0, 0.15266515341831127, 0.0, 0.0, 0.8226750512812447, 0.0, 0.0, 0.2520932611368793, 0.32856303804715215, 0.1846788611041856, 0.6288326287259721, 0.15594781886009731, 0.0, 0.0, 0.39056006775570395, 0.2454733448499023, 0.0, 0.1875080652559859, 0.0, 0.0, 0.0, 0.4604079993134017, 0.0, 0.0, 0.0, 0.0, 0.11979185177691755, 0.14227491555369362, 0.0, 0.09024327543210102, 0.648783267363574, 0.0, 0.0, 0.0, 0.5408163510237757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5311068240495873, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5314003925728801, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02394551122470378, 0.0, 0.0, 0.0, 0.12486249633500378, 0.0, 0.0, 0.05765112857402609, 0.0, 0.14315109316509972, 0.05676601866921535, 0.0, 0.6434826644263494, 0.0, 0.14460219857592263, 0.0, 0.0, 0.10860788610026072, 0.0, 0.04705670771446048, 0.4709967737248388, 0.0, 0.0, 0.13612521976378897, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.130371257969619, 0.0, 0.11349639269154894, 0.0, 0.11804878144850195, 0.3189646877579158, 0.0, 0.0, 0.0, 0.0, 0.1348452367929846, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1550934497155318, 0.13060726382480906, 0.0, 0.0, 0.232086697214264, 0.0, 0.14806165017632722, 0.0, 0.23898925029638524, 0.0, 0.0, 0.23731337239548533, 0.0, 0.10980801230053783, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19058666211884384, 0.0, 0.1810493697276433, 0.0, 0.0, 0.27986722280655724, 0.06847318480810846, 0.0, 0.026224205266550244, 0.0, 0.0, 0.0, 0.07178447214794542, 0.0, 0.0, 0.0, 0.0, 0.04423801290959719, 0.4450997362670805, 0.0, 0.0, 0.0, 0.014396013780263936, 0.0, 0.0, 0.08159130602818511, 0.28786198512647176, 0.0, 0.0, 0.0, 0.15886186536955227, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03988435480164781, 0.0, 0.03472184333660239, 0.15861587093052232, 0.03393091079863592, 0.0, 0.0, 0.0, 0.1458998203965446, 0.0, 0.2746045410027491, 0.0, 0.08937012005405864, 0.0, 0.0, 0.0, 0.0, 0.4360685101718207, 0.0, 0.0, 0.12479631040323635, 0.1679293189285873, 0.33750713984681247, 0.0, 0.38279076464536926, 0.0, 0.39766804122994015, 0.0, 0.0, 0.0, 0.0, 0.37584745957186994, 0.0, 0.0, 0.0, 0.0, 0.0034663505048984434, 0.0, 0.0, 0.0, 0.24932174401673268, 0.8269366380921026, 0.058350744167210526, 0.2821315817160027, 0.01073228148503296, 0.0, 0.0, 0.5523198324520332, 0.0, 0.0, 0.0, 0.2765513539344097, 0.2765352317665175, 0.0, 0.0, 0.0, 0.16196672196012962, 0.0, 0.0, 0.23047763471347846, 0.0, 0.4983211934020315, 0.0, 0.0, 0.0, 0.0, 0.08410733405320571, 0.0, 0.0, 0.38342855882543897, 0.031078189534518876, 0.0, 0.0, 0.07997079449394401, 0.0, 0.0, 0.0, 0.14991888400189204, 0.0, 0.0, 0.0, 0.2539339452562683, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005527553201922959, 0.24701032777367607, 0.3818735212726353, 0.0, 0.0, 0.3141045412174539, 0.4613820899583969, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7846194794668536, 0.0, 0.0, 0.2023929406035883, 0.5525420395033789, 0.0, 0.0, 0.0, 0.18332122951817006, 0.0, 0.0, 0.0, 0.6600849079661362, 0.0, 0.271071887942947, 0.6931869379662654, 0.0, 0.19544958497754947, 0.0, 0.0, 0.23106411956503142, 0.04163915085675471, 0.0, 0.2740671699579846, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5951890435738816, 0.0, 0.0, 0.5617261879013651, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.648112900028134, 0.0, 0.2097693617911403, 0.23188027210282897, 0.6330438111437964, 0.515238068631253, 0.8059496022277759, 0.0, 0.3600721428836477, 0.0, 0.37406645349624035, 0.43324551668887895, 0.7562549741789008, 0.0, 0.46837434729653293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.23452450510075076, 0.0, 0.0, 0.26538707979997495, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9037040684567715, 0.2601228730720389, 0.0, 0.0, 0.0, 0.3385307797226737, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6960140675899867, 0.0, 0.0, 0.0, 0.34167761524179585, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.47179884257042837, 0.0, 0.5873339130881751, 0.07760784608974701, 0.0, 0.5108116353650718, 0.0, 0.23018263458044896, 0.0, 0.0, 0.0, 0.6389281667373347, 0.0, 0.0, 0.0, 0.6317086674243048, 0.5424555939717753, 0.0, 0.019597125946055532, 0.0, 0.5067616269530796, 0.0, 0.0, 0.0, 0.0, 0.33135639687759366, 0.0, 0.11009229928191128, 0.0, 0.0, 0.0018449546833188399, 0.0, 0.1894047148704815, 0.0, 0.21786525780326826, 0.00027956067335572354, 0.0, 0.0, 0.00044372512905081096, 0.0, 0.0, 0.10913586880079368, 0.0, 0.0, 0.2387319450019063, 0.04302093934347575, 0.0, 0.28316204466710054, 0.0, 0.6259961005310473, 0.044339116197027774, 0.0, 0.0006891565473784903, 0.0, 0.0, 0.419692560541072, 0.00023711054076719368, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0009518757697360345, 0.0, 0.0, 0.0, 0.0, 0.04412247836479926, 0.33175278809136916, 0.1836910307282294, 0.43316264355459233, 0.0, 0.0, 0.0, 0.0, 0.6109591315701846, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7410212481907629, 0.09694039812399863, 0.0, 0.0, 0.04700242398333341, 0.0, 0.0, 0.15679640166544176, 0.0, 0.0, 0.008354862966629384, 0.8660916115221005, 0.12095883829401362, 0.0, 0.0, 0.13982615201680984, 0.0, 0.37030015075124356, 0.0, 0.10806680870328135, 0.2674021581377063, 0.0, 0.0, 0.43695074134110806, 0.0, 0.0, 0.0, 0.4193595253139995, 0.0, 0.0, 0.4223604117691241, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6519628347852473, 0.09593394582722056, 0.0, 1.2263197607192593, 0.0, 0.1420268730458006, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6547968394353947, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.015993676263376118, 0.0, 0.0, 0.0, 0.0, 0.0, 1.032250106596857, 0.0, 0.0, 0.0, 0.19977559392448785, 0.0, 0.0, 0.0, 0.13350148436716802, 0.05064120692385946, 0.0, 0.014278692130393579, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02476251362124448, 0.0, 0.0, 0.6971876314261916, 0.0, 0.32368749507325995, 0.0, 0.38665695047334026, 0.043481909227645874, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2863863682111852, 0.0, 0.0, 0.0, 0.0, 0.5166026604428106, 0.6135609292207037, 0.0, 1.390585308090751, 0.549724406362488, 0.0, 0.0, 0.0, 0.4946354029419938, 0.0, 0.0, 0.1817622353630416, 0.0, 0.0, 0.45001527975922945, 0.19067060021024376, 0.0, 0.0, 0.0, 0.0, 0.0, 0.45026402504954754, 0.09862023599471978, 0.0, 0.0, 0.08971409788917951, 0.0, 0.0, 0.0, 0.14718404588236259, 0.02028941343776962, 0.0, 0.0, 0.12879470754337072, 0.5384698277835859, 0.0493264459266498, 0.0, 0.6385356001321869, 0.0, 0.0, 0.0, 0.418599297830268, 0.0, 0.24084377286368372, 0.0, 0.0, 0.3927421561776119, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11479167979031016, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.287331205334526, 0.0, 0.0, 0.09296754420278937, 0.4313970938087158, 0.0, 0.3553622902870886, 0.0, 0.0, 0.0, 0.1752750739858479, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5721777681112366, 0.16584672881862064, 0.0, 0.0, 0.2750129568642962, 0.11193872117738499, 0.0, 0.694851503366924, 0.0, 0.11176089578249619, 0.03642730011196224, 0.46499012378889537, 0.0, 0.0, 0.10537656529716292, 0.2572556947482873, 0.11427779100841323, 0.4566419402676079, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31905429658438084, 0.4568943484348684, 0.0, 0.1009223375517615, 0.0, 0.08785925235754827, 0.2524568576131555, 0.5979718371844858, 0.0, 0.08718397040627182, 0.27019243222928785, 0.0, 0.2405201444721306, 0.11212903697332216, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12097427611620017, 0.7029459229987706, 0.2907862782736388, 0.0, 0.3020877732114353, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2423919969263556, 0.0, 0.5763734567059631, 0.0, 0.0, 0.0, 0.0, 0.6067232814043334, 0.18939678992121056, 0.0, 0.0, 0.21432072089475862, 0.0, 0.0, 0.0, 0.0, 0.5821831861883047, 0.0, 0.0, 0.210081711445218, 0.21006946427095974, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.030280314291377, 0.15413531598416644, 0.25247193164811527, 0.0, 0.0, 0.12848497078723173, 0.6000304051931176, 0.0, 0.0, 0.0, 0.0, 0.12617822046935606, 0.3320268939864614, 0.7056657766261163, 0.42848148251018003, 0.057345877924903164, 0.0, 0.3774481983482792, 0.12624796529690785, 0.1619902770277746, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005688878127237202, 0.38175135193372894, 0.1765840237536124, 0.0, 0.0, 0.3566318392645057, 0.0, 0.0, 0.0, 0.16683268933188872, 0.04345497812697982, 0.0, 0.492592677155673, 0.0, 0.0, 0.0, 0.0, 0.0831404672292756, 0.0, 0.0, 0.36055293254501974, 0.0, 0.4863131526725521, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005464010493446822, 0.24417078834728798, 0.0, 0.0, 0.22169348923343446, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11593686293818574, 0.0, 0.0, 0.0, 0.6095590933370347, 0.0, 0.2443761776038196, 0.0, 0.0, 0.0, 0.1960956643223869, 0.6074859425565672, 0.18650669482426485, 1.0378655385571516, 0.0, 0.17276762871577947, 0.6940099427692358, 0.0, 0.0, 0.32388236546386096, 0.0, 0.3977584774978917, 0.09850727254096922, 0.0, 0.09435872182534573, 0.32210695479773005, 0.0, 0.9450119024745318, 0.0, 0.7282651614947167, 0.795671006556338, 0.21972174528863647, 1.1800722708951874, 0.0, 0.15406122012703197, 0.23245444095199302, 0.0, 1.1450754137286316, 0.0, 0.0, 0.718432895790501, 0.0, 0.9074772544907516, 0.0, 0.0, 0.2150644825695137, 0.7387278090737696, 0.0, 0.49627306106648184, 0.6533650950107276, 0.0, 0.0, 0.0, 0.724606488987317, 0.701411910713477, 0.6206261403696766, 0.28804332377271413, 0.2959105186195655, 0.0, 0.6182919293124655, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.589003768060014, 0.0, 0.0, 0.08271977351575115, 0.0, 0.0, 0.0, 0.9105812282174285, 0.31789001879047846, 0.02411461886183569, 0.2829221743477605, 0.6706620073355701, 0.0, 0.1930731864260551, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06133637967837149, 0.6242346410782087, 0.6952909143002654, 0.3591573776849567, 0.0, 0.7449872409938767, 0.08923909973645693, 0.1173521535256719, 0.0, 0.0, 0.5729798828820618, 0.10656596459419354, 0.0, 0.1545328680391799, 0.27421690202209187, 0.0, 0.0, 0.3698254914307633, 0.5140663186573865, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13863750342668263, 0.6433193065819665, 0.0, 0.5299326895193157, 0.007712410329912944, 0.34464525874742236, 0.34174148456366615, 0.2613783001228934, 0.0, 0.0, 0.05371570560505797, 0.0, 0.02057231153731605, 0.0, 0.33150273239870404, 0.0, 0.0, 0.008405062468217761, 0.0, 0.34649855374487837, 0.298371589011109, 0.0, 0.1892535264101524, 0.0, 0.016081030317329964, 0.0, 0.0, 0.1306616194660838, 0.0, 0.0, 0.2714046321541056, 0.0, 0.0, 0.0, 0.024299507869495213, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16509417733903173, 0.0, 0.0, 0.1501849497452071, 0.1748418064456664, 0.0010568489849475794, 0.047227517247298824, 0.051672489777017716, 0.0, 0.11982535720931763, 0.0, 0.0, 0.2618551646604837, 0.0, 0.0, 0.12090296292900765, 0.0, 0.0, 0.44988696818935897, 0.0, 0.19121191419677455, 0.0, 0.0, 0.49693256130088725, 0.0, 0.0, 0.0, 0.5670859092292977, 0.0, 0.0, 0.0, 0.5653233896265278, 0.0, 0.0, 0.18955075438556615, 0.050614759394524644, 0.0, 0.0, 0.0, 0.0, 0.6124985176197848, 0.02840624719573524, 0.0, 0.0, 0.6585018821667253, 0.0, 0.669914086084765, 0.0, 0.4435524229524026, 0.0, 0.0, 0.24959071834233698, 0.6741825496608898, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15847771480322562, 0.0, 0.0, 0.0, 0.11420329312106789, 0.3695819846260272, 0.18933569121558752, 0.0, 0.0, 0.0, 0.02103165349726233, 0.2655614054905834, 0.0, 0.8117959138331444, 0.0, 0.3439446042563599, 0.0, 0.0, 0.1019714241481598, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13231107356042507, 0.0, 0.07339739754334103, 0.13018370224494802, 0.03407665122672999, 0.2789846158904475, 0.0, 0.04141177300212955, 0.0, 0.21059108800059795, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14821858886776432, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.45102261330920507, 0.05046558139935084, 0.0, 0.12130428936757616, 0.0, 0.12601881654664268, 0.003171787898412092, 0.00527620372181328, 0.0, 0.0, 0.013576794847610305, 0.0, 0.0, 0.0, 0.025452015886005885, 0.4384052118279088, 0.0, 0.0, 0.0, 0.0790086903216001, 0.15275039095222206, 0.0, 0.08940594755444543, 0.0, 0.0, 0.003492578790207725, 0.0, 0.5882017770828334, 0.0, 0.0, 0.14092784541391168, 0.7983017352473682, 0.0, 0.0, 0.0, 0.1117819777173795, 0.0, 0.0, 0.03862278430066002, 0.1785535098526168, 0.4378163685245537, 0.21613953941654523, 0.8670541670659707, 0.30872969047516546, 0.0, 0.073895246778613, 0.0, 0.0, 0.8448370570321526, 0.006826318289568987, 0.24453895548705643, 0.0, 0.6685102691932127, 0.0, 0.0, 0.07127880649817865, 0.032929653726359844, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.018587651907083814, 0.0, 0.19986879579794362, 0.2170189952300144, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2805164076738779, 0.0])), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Atomic([Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0)], Element{0, Int64, Int64}([-7852945239420660260, 3802864504850227773, 7132563740294941325, -7734229606977869371, 4610816547292327398, -231875892530149519, 6479067223724325995, -5993925410246119408, 7769769731936043186, 6508773581643622648, 8377470195368681305, -5026402568726958822, 1827804178661326297, 8945035746065187189, 9142616182405809812, -6444208854588150036, 3277304349445109851, 4784032081641147304, -6760158860367436072, -2973384685745632037, -8129972329073734262, 777092723910886802, -3245293789031672332, -3523460009327721843, 2918555815140811990, -8265569238908005417, 8801036620359715779, -4389685962177437849, -2137918316110048538, -3323946906471089812, -3314215782571951707, 778527069577570500, 8137954887180256780, -1449505600878168980, -606788686983349880, -4214419631996394082, -6982805642717038791, 4797874315021516200, -5482864460890143793, -9177912505471373539, -7126158702130095549, -1766466893224773589, 3638231163231949755, -4674003454091887679, 2257428816284239881, -1332826559188755030, -8548057139935380399, -6301259390274164526, -3288288979021163907, 6879439315951637090, -3835737217327853145, 6946150187905484505, 1010965014357589050, 5912572766312215522, -752662070435057852, 8324512872143105908, -8900647382996764479, 5389249056777042937, -1935499292012667397, 2848753909332170903, 9015678537102606643, 5924330619075555357, -7424534445741392445, -5600321413798073996, 8384040311367110728, 4366481991429755226, 799319475113248361, 915077563132424308, -5228690859154680766, -4955233076805992406, 7164775445931617845, -3741939346817651094, 4768331828354054553, 7629488070185682238, 2229303825265914208, -5262491359642418345, 6811771686481969504, -3925706312675979806, 4696878665903208702, 9013503350500413278, -3376912663266974892, 8653621680026928799, 1396781445024355796, 621390305019145984, 8372778663022275550, -7480329048309833839, 1560173607708756635, -3514469212498253617, 2082849966979030776, 2855014826193932577, -6098003633715037270, 4973995505549769974, -934656248683882969, -7138618497546152206, -8796608146899612477, 2599534084177250165, -3661022375209093319, 8439818100222661491, 8879020977128083301, -1369089299051099462, -5718241577534868428, -4601048383104503916, 178015583525721472, -4766352168228543906, -7581342006403310193, 5305627711042476897, -798942769184694703, -7013308532278854794, 2556970310791640083, -8310154389049907193, 1935579670641235148, -9182270706148454992, 6116070734446565692, -6638702227973546141, 650090674291676413, 8236754832241948399, -9198994051622221936, -347542563766738388, 3388642901454996993, 5348134068670085253, 5074530787207075513, 1395232644756449952, 8090997313784423115, -1550511403107108256, 8571008051355695605, 1306564260425723057, 5922529389724171586, 8799033188003922464, 5410444795730799007, -3373047473574331090, -8548302006770261151, 5021861578667389638, -432669836523104479, -6438627394278666063, -7251108417612047114, -6291884531541975330, 6537071113687438992, 8966161431802402633, -5259240086960564044, 3503163060697962605, -4065148945903097744, -1777564193334828938, 1747809001727155632, -3417070383920828456, -4980740299784891473, -559866941814657186, -6426350914229905139, -5679160652862202404, -6211678578062624482, 848841581372246207, -2989862519366817864, -9055561009588072094, 6765006199830890923, -2062587279559167170, -7502248691809669785, 7718809563802492192, 3633483956842288096, -5531671318896978179, 5326224353406326292, 6726394281003005045, -3084004046040097502, 6024523542812863783, -1763399164735930073, 4266920826307605526, 622375407618332670, 924750278369831554, 7715246185820712492, -851172504061428819, -1826385467445025486, -7822412245781439819, 8017872321912493505, 6373242139699342871, -6944882458072813137, 4697620715257964034, -4365394206032703789, -547148396038045198, -5035570107494867275, 7793404466643051559, 1881499215940437004, 1166061378200498396, 7869675745020435628, -2361412551770162450, -7930855384212681335, 1713868002622874066, 1815164889887382324, -512154663509791484, 6537275880940401093, -3910570248961609024, -3836656625145607293, -8938294775136724153, 3137992178936692074, -1150538280928728183, 6973878162312254627, 6572969588409572611, 1002231209937518033, 6908277548248118165, -6022132921017429451, -7025870997712287358, 683251940863450233, 7973207760137559178, -7276639915615857470, -103883638664277997, -5314704606673142253, -7038752337314182336, 5560169698698056371, -5881866866010041715, -4469522438057826665, -8939893843141765247, 2642101218897762188, -3300172923916323330, 3406877150223971060, -4599989828244211563, -4689672051384272495, 4279374017424089065, 4398221897453782925, 2422944416491435362, 7922267869330361805, 5995998007128456283, 6280625043231339994, 1281719705789272621, 4383174748559532813, -8546441422012175712, -7893577028946492213, 9027885389349284629, -6125149023153379003, -4956546681275572683, 5715129565539777013, 2892249326173122423, 7560337431809868738, -31750236024934407, -3810198350997910123, -1146409313986505151, -428701850515027514, -468073762720447669, -205535322238921579, 2835265798923663700, 5764913612679834112, 958810651968247391, -3797815661291407520, 6460520626648203269, 211708702104126221, 2261091765752400712, -2964977199137046896, -5182340784991289715, 3116185924188946137, -5761351368673475568, -5305436920427785009, -2907282851691115609, 447743807557596132, 63862440751247066, 3514479843707153842, 5999601496287905231, -3654531195335519906, -2542600877922342253, -7290989393844413666, 9085469624507262735, -2187820520454032667, -7971088789235032060, 7689978220151207746, -6091093344151125224, 4146313462351794903, -4167999392509592540, -9039445678299213909, -2897620361955974656, 6291529442536905084, -3374963351675626609, 5237654850422667445, -5497601031482005775, -2916886395075307235, -3883261685502767633, 9179413910741410099, 6289334284246669717, 4234089800929872794, -2655732539271996720, -3035070633871992593, -2437303472975627474, 8832963047795505553, -829388827821593367, -6040699764313360703, -8911288617151731105, 6714137128155914855, -6937785380240140879, 6843680808443863386, 8750156478448565502, 2574912636013720638, -4885946830234328537, 7521358135764728226, 535303159333155897, 8138574657622192110, 4034520194043626939, -8992321412901943906, -7281936363115109639, -8021896963196621378, -7216651923179770008, -6506422878573197942, 8915586083417585942, 5371232788505226594, -1740133450893903245, -982304251078917805, 2244112516915558506, -3114958008453226, -4610260728675861751, -1143025776890919762, 8288487391050636375, 4388285265909577760, 1232243352541145132, -7717830768524962099, 1009870943563687751, -6100861997340233106, -2693097123288405810, -8966860417189303788, 7436873303994409336, -6866257591078604457, -5486323029786467602, -749419638916086313, 387633405786106344, -2444684956722819414, -8879980142125000057, 9032213405251538238, -196725452198675903, 4109301537930725517, 6117388314164827016, 4382653125308287762, 77521133169697924, 7077666419656637399, 133555131055822904, -5646416627939285533, 5697558321456541168, 7399783912995781559, 1137891396677380707, 5074079993681838043, -657911960963882852, 1137470059873220310, 7020780662981280391, -9177001920397809522, 790362239680355816, 600172032624920855, 8543420636741980368, 4528589445176971886, -8166399503465287620, 5514186694424436532, -5432336659913866735, -9101698761136084341, 3911807348846574985, -2933766100391426874, 1800193705806185930, -7054816631402652609, 7183265689053958885, 5699677378061885134, 4220153114531888679, 8286682243768326060, -3718825949288568614, 4247279726743304081, 3401929723154371418, -7791632387902813891, -8525035833654653815, 5197629274650133894, 8571834255563384580, -615080775143020047, -9141302276862944236, 2497129230952559091, -3719206893743333508, 4697020691819045650, 8078487089138316076, -6314877087348456338, -6022391240308026330, 6950678089694500897, 5377750684446461249, -921140928622983181, -1520460049452102693, -8497197529519753794, -4051624390692544861, -2825784479508224090, -5008690521298053399, 1770783004922494527, -13148767819519113, -4503771241503652292, -4788400236276842410, 5619353998326498739, -3701011697076308480, -8034418559493520412, 6350765187233515105, 982558642287986027, -1448602610424440694, -5618483166513344245, -6278878478122580648, 7537160758203387055, -6154847048393471752, 6245902540254353496, 102968748125835682, 3380786423909888574, 3948417958341752791, -280169358260137594, 5686013332820589556, -6793945691483312138, -5657337314720073764, -2316326789392298880, -4866926317354982963, 5672048876768223736, 4801755278649149250, -8527375304959792767, 5660898524916791368, 9008328499307364991, 7282355400911599490, -4441459441233669588, 1248812713894084058, 4295529333031152182, 235010168203572616, -4332156008277813622, -3630222689564383817, 3224219654798343804, -2046414069220643115, -4768268609286612707, -4595767465089756149, 432385139172141595, 5744340903783987934, -5907814276982578230, 571373857369851574, -4615364944658920518, 985558362311014501, -5069799483088262018, -1302185237448651425, 2960234619888514885, -4221579384574605709, -33577900070920492, -1383491017420984722, -6667111422768545223, 2209578116218914144, -6192696716189832095, -8682232579400392473, 3926742208689603882, -2605251114517028176, -3432143345789886934, 956256818538240068, 7048231574365916809, 5172150567611355985, -7087473940080722223, 2829725628381946973, 6615614511402804897, 5597114989308889913, -6360862330806523233, 7263403909484904208, 1722745349057533175, -6250859958048377022, 3841932226021965555, 4544273279457948494, 6871378735684121062, 323828819100839855, -3070913893427269938, 4474858432188499679, -3027153348937151936, 6723187138491054590, -4633043728650674379, -6923489996304544514, -7608004350687835922, 8618729303360011673, 6145931189986425565, -700125041702955627, -7361791825514005778, -3052622408661881441, 8247111715450418050, 7644850195268952347, 201981812631246530, -5366187106284689552, -2029797231246849282, -8929354876130746907, 7087397157118443141, -4238258482995696907, -8690707102946532636, 698882384912534156, -4794116262100392441, 3313569380430314248, 7003634692020991413, 7153034981607221582, -5530822942131330273, 7182058408716498125, 6272977706245272491, -1611832087259919849, 6304118920652930260, 2664243321321065829, -6991256246863621561, 7763559060359215549, -1363294210753473603, -5984590649126030611, 8835145660544963598, -4339100511013335484, -7658343482117166946, 4767592705684863404, 6567026582399699474, 1241984525409511450, -5043459788309072162, -6788638110335657665, 3067875880987570325, -3386866538103387786, -3435764054745173624, 6561588844054851309, 6358866269624109218, -2265970059794978437, 981754089422755666, -5796837225499776351, -1637078045909787216, 5039180299052306271, -805267853773756628, -4916014943876365639, -4786790738315442642, -4112969230517500969, -2053067729163411292, -5506471273731989096, -9192763281442671194, -9154538478094146297, 844512131685900736, 5622194151159285613, 8194896671418306404, 1412467403218231788, 3881564188099745981, -6535023704129633935, -4422084769610503611, 2576914033266992340, -472587132304431690, -6711994900235227794, 5354997878416558687, -4192781941439730955, -8276784137446227768, 8055846518519871975, -2415348653243756702, 3420189508094535959, 632472561226799626, -316915838599081463, -4088888662813871032, 5342377372296981891, -3801097690651839512, -6717542854769676338, 5697661121986271761, 3927988631544080837, 336875038379374793, -1762255469438213123, -6027642762916463535, 8879943609619899579, -184738763864498592, 8286471420479395455, -3671168160630258225, 5320361181567019590, 8958205738403874292, 3782571393394012068, -8985467336212511099, 4358217428218486255, 5323123421330561591, 5764541270351390266, -6963051555266077147, -8117203354060625734, -3369353168590364075, 8066080865612783830, -5493399428262160806, -8062951269302324167, -7795183678321688541, 4270469270852553336, 5515134373073409924, -4715340744920803950, 2105370441481331601, 377342343915534328, 9024587429061028407, 3950645024865924468, -7513885460653066738, -5143113390221691275, -4007675874528217094, 685254662537812760, -7675519858059415042, 901700859132852851, 3306012866190376430, 2408392168740675300, -1818210664377266977, 439608055324657585, 6859135827266771568, 6142180884473663150, 1662736140744539339, -5748205425049442259, -1431038593146932184, -7772606991892607571, -348435608257889917, 3323776957236852960, -4109021388662695665, -1035387926833810113, -6252075674217952235, -1688047783032235782, 4835484251275026119, 2539574017089547948, -552211881628052457, 5384536775555840272, -8608662509892950952, 8688323792329827521, 4639288709326029154, -7997418775765929203, -536103785062713510, -6343663721617708900, -3154255286206413772, 7778544095371035370, -6087249532642040836, -2119136938453566451, -688238790820179873, -6835440198851144923, 5656672416985601506, 8173102513358076492, 8890070247690982784, -4771766013066052606, 931917254490650404, -557345458441442938, 3220011825320527555, 4758599324177870490, 7109875313372060233, 280358344723014545, 4073635623147573470, -1805499844278566084, 5814569477732551196, -2166719128253350835, 7972222541364502368, -410436740688301883, -8413621775294896865, -8989368555919190902, -7176709214957782648, 5254791890939739259, 6506593041716222957, -64275500919664736, -2441305534489441569, -8607529290606256433, 2704494450480538341, 8252863318644872588, 4942203213553244593, -1362881973065009152, 3227375449815221716, 4230416557459228451, 4888346025621830176, -3745891300561966309, -1058276989298619601, -1641422116181591194, -822466760760516658, 2825161483390831391, 5043089523958593235, 9160523363278870467, 2440291487886579299, -5076764184565375538, 4008082098413400136, -2574196012088549257, 1815165426871122463, -1810363067796950052, 4564660363457428284, -2979682748740342374, 1263528409113807511, 664902837787653319, -7730990515836195905, -2880800962758009323, -7855792495166800696, -3741677040754952297, 4706538099020817013, -9136310530026765146, 6214908330569213306, -3306943983211023738, 2006683290226313727, -5195458884941167793, 5070401159692077631, -8643576681302494805, 8696392328149980718, -2881724085663247400, -3287341067959381540, -5751614067967906600, -2388135268153109148, -8469588793806311740, 6498489205468056363, -5500244887538822899, 2180911647749845602, 8505364545645231746, 836973405812942824, -4740164100896755286, 5278723018552192484, -1437440665187625187, 1912414053442122549, 7961288608439452300, -6431662516133743485, 3288471137468863622, 1094976596329727971, 2917604787022697684, -2269332560827388244, -8443034525381127221, -7259595132044303319, -2012053671767524104, 5408651494181464015, -2202304456831760230, 5063787465367491805, -486043291012940650, 6661198455654543904, -6677120136819219766, 6873215010129388137, -8544492697357908484, -4891416620674641993, 1066350291493174315, 6140179405370666573, -2530674188465907541, -5542826884668502138, -4624987738903378785, 6055897868744384304, 1893227478513103707, -5998481717337431109, 3830666628195019250, -5913931363817003441, 3200695281108542221, -6354873668485439169, -7106406847876828463, 7267111195904963580, 7933454732992989449, -1704431805338802811, -8696936927315328156, 812223521137539840, 5028737084052092939, 3407605794075165074, 5452332172318207897, 721364426528035202, -8061778870788033499, 6206577632233922077, -3358825340647308897, 2615281023954623119, 5796586417262572998, -197225006894562884, 196909717615705016, -247775495361433931, 7935788894770135235, 2974543031667961203, 5518401755150062594, 4289467554573218060, -2110026776485502130, 7660756127445162484, 2652618791759013773, 4490480744367531310, 5560337963744008127, 1101969946984775230, 5426060883804367122, -7414569778895362694, -2574548713218219896, -8667400765660450694, -5823705257574844942, 8997571444431443269, 7042636308067180449, -5283570316461887039, 8142095188421778064, -1181296329706394604, -4106900401332576063, 5096961868284753927, 1281307679037151525, -4021426169291977454, 5964579201184846556, -4988322673323777218, -7591589437120250551, 6121551103365558066, -4487816973319572586, -1552743699661830151, -2960134158460000031, 388000481836191254, 4969717821228980736, 4894250187668109836, 3314809537038085119, 4588524784136728210, 5638475739414110754, -5684084138082962342, -1286085397614972483, 8553120024705253495, -6678458086474660614, -7506274041001472908, -5757410831092511843, 3076084975765635926, 7850034963640689904, -8651748294440545843, 194609034680985428, 8961175923080965683, -93748348755505189, -3956994964458812590, -2327127188025401628, 9187079670668733343, 6176196235074071579, 3009606879975158151, 7702825886158486334, -5855613686156591038, 7799351880585559652, 4934874524942948135, -4524815086816888633, -4965206657008516450, 269236596925883928, 1073428163366009326, 7126792485072910069, 7569987982476504769, 8262969537673837817, -7393607729414256813, 4017211294382715408, -1453708362719534126, 4307169287498447691, -9096393784442866629, 8699405990322605810, -1035874136575275173, 1501762893680666911, 1276194578649014061, 2046811301114170274, 8998489168100364093, -6765725969608803740, 3805877505873456422, -2895703504735894621, -5230950451898686709, -6669061264839270575, -5138851837205629206, -1835119422478560204, 2603594006469150259, -2868548477659140639, -7304472927563130653, -2534068374958773882, 6121172275459048511, 2422761568693286421, -3154464100737039984, 5653397006733775922, -8039795195496143176, -6114200605642013428, 4738401726556400980, 7771670936381907321, -1348538616798334459, 5166727242185760724, 2241975167395940351, -7821112919434789020, 558406059872965377, -652528105474834764, -6029896875260562574, -9057992421702200599, -216079402402926518, 887407835530247623, -4090364169749485345, -9002718339211513139, -7119863260277045123, -7186889934574275077, 1786346915042454610, -1034431575705158448, 2644876102600825848, 8628759535217154371, 1714062364326055934, 5595534221719835067, 6278270011273397462, -1987507060144813825, -4918793481045561857, 4705805374047951498, -8468046916149675701, 7176601854751293210, 56669650886358090, 2450014310347923761, 8564531909892678053, -8455196864544157950, -7257596480926253873, 6959408330130435752, 3028838432902894936, 4424195858928857704, 6121497124194972504, -5469042773842318014, 2159359821694864340, -5947113653447376879, 4773753398554759043, -4920560136873612524, 7648830520509108133, -7371898747435017516, -845894640102415955, 8686498035411426229, 5985907670960414557, -7006168817797129900, 5479137187044139679, 4647241554359727919, -7056835850526619003, -6083660857753840170, -8047496266502346341, -7226197892441689165, 741327366913048535, -3711828024047014264, 3862158898379466077, 449693655808431935, -4882540886884501973, 355059938346446172, 620553667069897427, -6713481484814371951, -7543587771860356019, 810524291612691607, -3659121362368402512, -5595441051298399244, 8088291422822166417, -6303984734444135248, 2538192324764122524, 3617704513102699155, 318441833366879701, -5816949687022080463, -9169168096039126102, 3498136889899078646, -7683733487593609117, 2509276746373528458, 5235508280732183917, 7339694618503759905, -7712552639387445993, 6759061446299827503, 9164297432474703925, -1110357104587476086, 1829423683580763459, -3799180270173028795, 8306026342220315310, -2726954641281485486, -1863888117327900205, 8290803837007910428, 3744050168945036153, 4528951249037614908, 4258594066663919620, -3980786014056604956, -6634679619236991963, -4774774115148739666, -1688262812036369479, -3034548033917499658, -6138019552428793663, 1588376700080465528, -7759058167839367430, -4775874273596731934, 3221595815258590133, -6828959650403546499, 4346943720922699157, 4321429297150868675, -8589044593817257493, -5081781874907419607, 795506955051888424, -4667459908101512289, 4206977884410966721, -5197565432654930036, 3326560315392948439, -5878101577814599326, -8546474537134600654, 4309823164209170224, -3850248640668593914, 8681749283296418130, 4990534815930281841, -7750801661905292077, -3291032507257295915, 6665735555297233110, 7050489721279484184, 3121241993847386777, 9186786829891405296, 4166168050877046636, 7493753755601945303, 6899283068593432141, -8003769299659583968, 2565085644824379929, 3944502551732855469, 2189710644855030524, 2255493561976705206, -2028904478079631879, 4294982312243112084, -5660229707439867961, 800423085895901894, 8347122627753775462, -9101577785114185615, -4216452881448732796, -5297285646106039108, 1608114244844304377, 4322600483518696469, 8241560863719005179, -4129441230004651128, 3479615647121648386, -944237097498064686, -3412316248640445049, 1216386815926349358, 2626756706523947064, 7368591831166517715, -1142163371321856898, -372851778878484647, 5995055175251528039, 5499555783411494776, 7601686492886867132, 1279886563391834469, 5165391760856510060, 482439280342617310, -7445758287171966471, 5839000974438980820, -5125341234978471209, 121392944104683131, 6179055483354016942, 9063275686698059196, 1720815667965783260, -2090747494244625688, -7864214085579409526, 6028043825066031897, -870947118366293771, 7376428769075962994, 1893490138897624353, -7559210779123390159, 5229519170995839908, 3782678275042073308, 8444457277148000247, 7575393971659806405, -4109490609317660541, -957376746896582101, -1823443228678068953, -7406349357662140793, -7066353634914162328, -932893465250817358, -6158979365981425485, -3999272364858205076, 4376092228086515820, 2513046484924596765, 1682565735361783149, 6869702267679149853, 3598461422649849004, 6721690358813739611, -5015414950752771986, 5196130127330595784, 7895850317227961581, 5701551820088369908, 4253014790918207382, 2681305943933975380, -802509536169972911, -2921706024223960837, -9084398191436379512, -7519519527403626152, 3410883059237029545, 2095075860303886315, 7914139912546804769, -5208297295218658898, -7044648509550560506, -1909323676633451912, 8930318598773654893, -8039939177580969146, 7860061109504978153, 419124991549078423, 52439998177737723, 76668279870828606, 7926117908856309254, -6792499803763550020, 3154574853391034842, 5862475602994236150, 3866940609041914244, -2451342656371401396, 6905559753998185538, -2196985923367857975, -259009949159744310, -2170183067760494195, -1717224464730633452, 5546156896245179429, 4506845207597160820, 5813836834777993870, -5037970301511180119, -6283363831235414834, -2112512675648312385, 491800089892071944, 1091841107193066408, 7222413797760368389, -4061073684265419648, -6814505748970986107, 8035167421124665899, 4919021796047562901, -8884884164310583259, 6153891825926211445, 4869639300001698143, 3837324736330986571, 8636904264010803969, -6432957171918516733, -3788559728040549625, -9017234204035095885, 7974176819879521382, 8518789095085259635, -3908843812016366962, 6951099628380613842, -8130281757214184420, 697619035660462877, -5347667485898134831, -7870811613775178028, -1834786346436674311, -333041748521768769, 5107911109826800955, 3300477209814784624, -1708767489614571672, 1525551322408592196, 9080360653706424402, 1862002907449656483, -8631288433031181655, 2969113138124740044, -6647892099329100204, -6988290737149534654, 7213791800550484241, -3515983215941949272, 2776751762191199071, 4071933170036566928, 2542857362577342497, -2837771298453665817, -3090388734688474776, 5082944286075818548, 609755467484712029, 4072847486654097862, 8529301158860902869, 946912055446259682, -2248520461543232716, 5002603540450016650, -7275890548477817354, 5552567242686637655, -269706394334676566, -7398717228811622700, -4808125464463073144, 3775199331707802161, 2135641040248441133, 5816637985293937763, -8395349302799883021, -3360643109416540838, 2829560474022851198, 352291131791977996, 8394782611214630132, 17475987862371471, -4488499446877241684, 6767262301426119887, -2769737041134652019, -3193753686399895142, 7241778878096412757, 7797099283865407968, -2671749878988612917, 4696277170143113298, -5423752625035881763, -670732946661190647, -5711362811761083541, 4199832504691110757, -8677080819421441869, 3205643745224196359, 543646793087604365, 8503219288198855644, -848262837790928773, 387374760481732684, -9059158253510589576, -5856801177533266560, -7432011656959400529, 2198315888507745377, -7784997841364446485, 5347278335471818322, -6869526283408290890, 1352984110104423676, 6604074908186486860, 3540137177162802697, 1016927313450879985, 4071162570240874321, -5551488416681382753, -1504833906763233366, -5197958147423262666, -195819750883991358, -3945019213013735347, 6902249401976467405, -8912844306838907648, 4722491225058563626, 8140893302518733651, -5690073294438117370, -343581089371292977, 7487125160865276118, 1027267844838067655, -2137534930747931929, 2809569435246364642, -4144004208315175629, 5255075717374606982, 7626373563000023350, 8149042251253369001, -8408446547381679894, 1486032901530289193, 4064054887282446575, 1589944372692791144, 8551589340706916563, -8068500293077637628, -4352463204946506034, 1104988023160260811, 4645391736645529886, 2010913571168295586, -4673266332316019224, -6129726247014324152, -8746414242767683103, 2374062997617988521, 2762859988315805754, 4077923914156429843, -9041689727396256791, 8413929943723227620, 2773700164543912806, -3519424763423213991, 3151293449748791827, 5483423829303258017, -5946703767041794347, 6924471319109536589, 7701491958403800059, -3979073630416352084, 4050296355956131792, -4739375335957240500, 1273557423668894202, -8157791041761503052, -3460628271189892145, 7995561814538810256, 6436799742219583197, -5386107234107497189, 1105429829723289433, 5041979046245310635, 2772779352725880615, 6104391435732090158, 509237612818462766, -8907837183171812543, -4849921552569347853, 8373135239934695333, 7751397787702975214, -7720289196893704743, -5554204491061059859, 7770120768186700539, 2351786434290874202, -2862041859356855047, -8299453550863835259, -4990806288016181990, 5702555028297223797, -7412013855987842169, 646706808393679723, 2860990118563046086, 7347537387001437151, 6617834339254038549, -3251203956058986562, 6892741295472734065, -6093187166351286471, 6366349407510672509, -4312704304396901639, -6195786539509038928, -1449170463311090827, -709193276924158629, 8842697574196472282, 7172961009424657280, -3086117591933807359, 280668548915001621, 5623299142074972937, 6672160606420637960, 7754570087534551249, 4152353032828795027, 7269286384995548933, -6251412664921890878, 5732127079576970324, 7234424551899679503, -3642728981546782033, -3638300185011093242, 758429305061830090, 6807454373907029375, -2407746269258439538, 3182121106579414795, 4412608899209555624, -3826881076377531812, 5352059540893878558, -7624394860603430636, -8586227141178724702, -8333849234994046518, 5466525086493196113, -4736468741174250587, -6761513090258468865, 2757033529591673069, 2729369021924837617, -1440397775663379929, -3682680090127880756, -4024262810569674934, 5734119662788048810, 7267386939198869053, -5732042765175834343, 8098289276583123084, -4126848089642629947, -8832084056016214993, 918234824385712530, 676970414934466709, -5794527027417515112, 3290964827801383201, 27750847269835893, -2141504133172325665, -393870739762170378, 7341126657537991596, 3042161428414889656, 8319098477369136797, 3714381407608491489, 6871028708069796695, -9116209644422794377, -898115304925379815, -6100921916446089973, 2407259165779504625, -7824595574994867809, -7812941900040155346, -5362156552380630972, -7636933866430767357, 2565489144529271919, -2775667212831852387, -8490494758318716088, -5768969488081270158, -4163725029626196551, 425158554688666490, 236621108823379185, 5592527110007246515, 2250712273533240792, -6996902570942094740, -4316193418261480778, -423017690736900269, 6499561801793623752, 5999756229412561116, 2122709403244307390, -6614237089257075273, -4438754439933732943, 789637292451054077, -3828302258654058750, -4536174171928321428, -294446715323926202, 935637585377645959, 2493495210256659688, -7065985576821599091, 4771064322299072228, -8324047390232687097, -5445425345608658269, 661838500088622926, 7732518589889101302, 1769360504705134935, 8594133951145052917, 1546731758972081654, -6952941121480094423, 1665047803842622879, -5392109943851106148, 6178752138086101852, 431831984523785014, -3478733297737652068, 3625098395866689397, -2265434394587802483, 1898173869432619635, 3905980956606711904, 161742211489651122, -8560503291870850826, 2442336170526152937, 4387117302429090810, 2576950350674509603, -3159727556622278707, 6463385243237218927, -4244656898675278709, -3639733836666543106, 5150557251574321755, -1847330250029237854, 7990644495793807288, 6325210485967347078, 5669665901579369390, -8516756017270853386, -2163641417216885795, -419690911529103853, 8389050361839906714, -4755603407177446434, -3628876977205345798, 6346120274506356620, 2897382412678952073, 2892018529361149983, -3105945328483409777, 397471260119955477, -5924914980966965208, 3259916578022711299, 3584107160451422225, 7335984245174911695, -740299529193763425, -1132793386238322552, -8882624640591065694, -3132393138391844276, 5819861013084344169, -7875274867444632753, 8187945432875751521, 2367121363901039734, 5683244793647259503, 4107383082803893848, 7587180870095676331, 4413573636895389667, -7908655157105234973, 6012542666924997773, 1543290098636558500, 1167829086925604611, 2777803534220614400, 5402112821476681615, -6363368269235420996, 4371085781904923839, 1633853775080032376, -690845074949180188, -3454635082436672696, -5633966314565017765, 7670209807588770713, 3204939451242551097, -1194334364385733269, -6562358138680278599, -2424390587904992168, -8598491278835370190, -909646813366796865, -6282299275378582741, 1091786653924799826, -7151604730926028, -1952001457689034822, 6594682270311865613, 5297253419387719327, 7174384514581700900, 4179089671585649194, -1438112379026769819, 7830903689545303054, -6258500577607877153, -3191184177787625636, 5247643985080738052, -4249605461827630928, 848024707032423852, 2578176992048298935, 4277106059776803841, 1027307997622416172, -2034184717655156741, -4032075691921298833, -1725223926910214795, -8355218558445840600, -807432826419964742, -8691053822978844932, 5190610597372914740, -5685703413827560197, 8834097498441652178, -8573622742179143460, -5120225676224448990, -5713210850430827610, -4407146778693477095, -1232178234092987486, -455203650113225090, 1257217750953438197, -3000992489362198928, -7978022942807666493, -6027283969716886506, 2039426148959366399, 2349300899242575287, 412136285666780739, 6737962169699689176, 5396043023802829490, -7375578319123588090, 848689289605827984, -8962743046285584688, 5005546626448703271, -6810534590182341273, 6243718176309554767, 5704504967202978556, -5186820242653188418, 5733494837941841739, 220945504840061108, -6134138428611997085, 1839281472386260502, -3959944160474481058, -3734459438928472268, 3721194299693987183, 6767703249986874259, 2045991906683057358, -8742954565638258573, 1159933107177853644, -367492685541062268, 4355219222598868416, 8572842933899504804, -3701739195979978554, -7764549138235732147, -8598925157129974153, 8630394791613539087, -4766444500353057904, -7001982766296723356, -4509281008628660053, 2257290521599354392, 8810412979742623813, 8490414288126231798, 5852946775791635490, 565991384714764421, -2205977094397869034, 246619722621583797, 8701711500730861947, -5723159815829278387, 2413055362373823891, 4026630626738278077, 626257627860460242, 9048586282554266748, 1225984626747539527, 4932610320264372136, -1601402908635975756, 7046043975985485604, 6725048163205005162, -7576705462287398067, -2531652356020173951, 6390475535474516267, 4788643053430318685, 1212769581897394400, 6930146611691842308, 5201836123535642753, -1691904946575510235, 2663199435933348098, 6910705755054739103, -1445154807745938237, -1305866680652390683, -4123655378022181618, -8064221424814919501, 7446614750020132187, -5068110728266677912, -2030505626005615587, 2000339047753778091, -9099800368377379118, 8147724146984858620, -7692468401008699966, -3672609321985504948, -7142451754177878046, -2896478347708996217, 8782220829960750497, 8924188190885341159, 1193728541266948796, 2292573676038833952, -8855412556553540266, 317468215313058893, -2724448286275139831, -4850615461204879897, -864740314491768661, -2490524393871915862, 5939397460706106640, -8861963624388260436, -897462606730994032, -400305460423163334, -82260487316074112, 2335306980672653822, 7810394748744828878, -2237567985926212329, 2687818835146282560, 6112149537489265528, -7705775471756675233, -6212557483975450875, 3316513936364892531, 3929671093886264075, -6242171865364499591, 1864513425979011482, 1142454994086149910, 2109745038183423244, -5218788255965248853, 7148330854725749930, -6350213392518178678, -5964480677519945158, -280002382744552497, 5866510398096934772, -4453231543043354473, -7773402607793519054, -3834638464799366814, -3278979331036933950, 3772051427216111937, 1707017430062992775, 6633491810638318034, 4184520795854560136, 7597254842510533611, -8279104207355801361, 600209822568521256, -3193350568000648133, -7833434008084958161, 5377254431830388749, 6469619144829771684, -5766007922421549853, 245305866791464031, 5924851661031465757, 3055811671924051893, -7757673726764291611, 5425488801254271646, -1230513747359704646, -8856055219109968322, -4731754271270239734, -3264856159650276367, 8368480760176687700, 8143173203566375840, -1210747890098141143, 5295731456734954614, -7498167121192897541, -3428045625716315797, -4791314006867460823, 2948723375377110370, -3810064731319107123, -9202716795541515555, 6148653665839630204, 2848560055796753936, 1954069631098137796, 4697862255330998161, -193476793171573000, 9194232325669679334, 2656267557937312535, 216571313074995985, -624555491147103224, -8631140942763948473, -2331918944750595202, 4397027584363125867, 2538347749394059355, 7413989927117471885, -3517357964246821289, 975658892222707909, -6721616076848566230, -6069691543165016804, -1699756216060889754, -1276872363769808299, -2332106662160828140, -9190658909128292389, 998308533634505219, 8907745002351060091, 6966162761873418126, -5194650919107828434, -9003424612543715863, -3769760580289899712, 7344040885552774285, 8580824699370710315, -2979057855708079246, 3927517266022277004, -6833174667206608458, 7205558902237879956, -7422227807001150653, 2892291292690035479, 1284760228866985595, 1579008536286502803, -8186844164684197837, -3187052903249540562, -851709603269520241, -942456947636162847, -197259298036992424, 5750027500961963107, -2018037553987817304, 4516587109721854134, -6756980873638829294, 6089727200252654253, 6090966007180500784, 6469485832367150258, 3727493373269336793, 6291666731217101540, -7084732212740878330, -7903055913758755665, -1624170516471680444, -8624979534479996969, -3150803291726511210, 2623467983448099462, -7840898703047755463, 6195459232260184637, -4501449511014022632, 8158799952216643156, -3808461453592762235, -5731376923648533699, -4425465515852070203, 1247832115472580356, -7050642510907647091, 1632564478019437796, -4164009650339589679, 7901878537714761394, 7182754167453189923, 7443735283409136954, 3014006097182656664, -5618443559635495015, -5618885033101121558, -5722427897820759491, 1465565160996165613, 835907336590737450, 1257219254618299668, 2609819195336490748, 8938460768518194998, 1062342481094570886, -4375128033036425666, -404853979334087511, -1834092297765356110, -3519968044035730035, 342399303427600858, -2532143186992956190, -1777167417949977190, -4568326529056220102, -5737232779408480624, 5811787797216829954, -8020456284040308452, -3042194865030802631, -6446259211561084653, 4438782287801714457, 2161950337870754038, -1710982377937381651, -5866004210805338489, -8498661003156499972, 2778304605465959957, 4396759401194328589, 5809309630589945276, 8218348086650361303, 3342130357882968747, -793660217799580436, 2646163611383045898, -2416033543020295149, -6095464533266716295, 1769382373075867919, 5769921217545593205, 1483513476934797680, -1414369372293739819, 552238703840022885, 3971959281509960737, 5871938996071876746, 9144138102870479074, -7051583752714084284, 7997594892977403594, 619092365854049724, -8425857984263225571, -8474802266062078918, 6556741587070699944, 7216242330947147668, 6068615299846548272, 6190047022681470000, 8025324066560663415, -6635968656501651102, -4801756026236962503, -2019199295183210468, -3662481029228087433, -4145069547545433261, -3049242395576128771, 4037435087481423908, -3298406179824595912, -4245153772169063194, 6249637735652821419, 7712589346562801891, -3215613063795247515, -8858591175844031521, -2087790524802605170, 1417733501490955314, -9063725495583630514, -655483526137291502, -1191912813457342762, 7566687464776014044, -8141381772450745660, -4279904944725432103, 6315788478946072243, 7002063045159257489, -6590365664777896890, -4679403751815604977, 8714069546965743554, 309533184730636769, 4316355607870589378, -8249109378692746867, 1715917523820996495, -3305013732482176309, -6283738402495740501, 2915853436366935644, -8412631837984923299, -5702708199784995265, -6433065803429162631, -4180970319895671172, 4566414226601749606, -5561528520719418585, 9123566069177685279, 622220666159857096, -708782930522252335, 5707712868431236809, 5313827561404790193, -5799394264768564243, -1774362590765209798, -6918953997843796104, -1980381867595314801, 1327414459290737935, 5553240067124633984, -6296091561738456701, 145974771717445135, -8724843072185840624, 37791342206206222, -5669892701680001231, -4576914265385553592, 5910120660565540139, -5970819293263084113, -595010541964357447, -3312166820520539819, 2138938008172669579, 1754706572008805133, 5509391222621898877, -5410020369828183384, -4612573236316801425, -788151160991829846, 3475822491801193714, 5968496206040960656, -2738273231885091334, -1394144455222408656, 8445783368824786530, 1090934155240864175, 3666668840304884557, -7481508096164382026, 5809539258269464286])), 42), 42)),) julia> @finch_code begin Ct .= 0 for i = _ @@ -341,7 +341,7 @@ quote Ct_lvl_2_locks[idx] = make_lock(eltype(Vector{Base.Threads.SpinLock})) end Finch.resize_if_smaller!(Ct_lvl_3_val, pos_stop) - Finch.fill_range!(Ct_lvl_3_val, 0.0, 1, pos_stop) + Finch.fill_range!(Ct_lvl_3_val, 0, 1, pos_stop) for i_4 = 1:A_lvl.shape[1] locksArray = Ct_lvl_2_locks Ct_lvl_2_locks = moveto(Ct_lvl_2_locks, CPU(Threads.nthreads())) @@ -842,7 +842,7 @@ quote qos_2 = qos * A_lvl.shape[1] resize!(Ct_lvl_2_locks, qos_2) resize!(Ct_lvl_3_val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}((AtomicLevel){Vector{Base.Threads.SpinLock}, ElementLevel{0.0, Float64, Int64, Vector{Float64}}}(Ct_lvl_4, Ct_lvl_2_locks), A_lvl.shape[1]), B_lvl.shape[2])),) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}((AtomicLevel){Vector{Base.Threads.SpinLock}, ElementLevel{0, Int64, Int64, Vector{Int64}}}(Ct_lvl_4, Ct_lvl_2_locks), A_lvl.shape[1]), B_lvl.shape[2])),) end julia> @finch begin Ct .= 0 @@ -854,7 +854,7 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Atomic([Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0)], Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.0, 0.5960995400087008, 0.0, 0.0, 0.46121971296621317, 0.0, 0.1341136169173934, 0.0, 0.6613178775714327, 0.0, 0.0, 0.0, 0.0, 0.31233701358881993, 0.0, 0.0, 0.0, 0.42428295532646376, 0.0, 0.04433289125435014, 0.1771852692198303, 0.0, 0.2102135380786222, 0.0, 0.29289346791587945, 0.1864042064610544, 0.1847622901670141, 0.0047837035165779595, 0.7809783797805827, 0.24637196495074015, 0.0, 0.5657923421369488, 0.2611932808057722, 0.0, 1.1390711256090715, 0.0, 0.0, 0.15310516154880033, 0.0, 0.536745361655064, 0.11084632541017801, 0.24887017850829343, 0.6316463638637531, 1.4711963896826616, 0.6112779722436283, 0.5079606239011155, 0.15942216163041661, 0.21541936537958353, 0.10295208772558359, 0.0, 1.3699774598840704, 0.6364841478802473, 0.38335626793892197, 0.0, 0.2992892574327959, 0.10527060545292, 0.0, 0.0, 0.7485372018432481, 0.2715216678914851, 0.2667902419370478, 0.0, 0.5814665590695893, 0.051682188310845374, 0.0, 0.0, 0.3934310017151073, 0.0, 0.0, 0.5957893409486428, 0.3316317367913752, 0.9200295815926001, 0.0, 0.0, 0.6623087915165122, 0.0, 1.5766760492233103, 0.0, 0.0, 0.3039866668414091, 0.0, 0.024309812685391816, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14306886144088826, 0.0, 0.0, 0.0, 0.13834293702511197, 0.0, 0.0, 0.0, 0.07697281314241891, 0.0, 0.13882210022663904, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11718373909917448, 0.05171175921797154, 0.0, 0.0, 0.047041804166349496, 0.0, 0.0, 0.0, 0.21780680053585874, 0.005280433697773762, 0.0, 0.01227888835211436, 0.1637490848480197, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.405774970647805, 0.2291279765469989, 1.2574751546051093, 0.5180330897538964, 0.48968357404421875, 0.5301529810315024, 0.0, 0.0, 0.0, 0.8112619638066929, 0.0, 0.7833417149382808, 0.0, 0.0, 0.11442625626708748, 0.11485555134200548, 0.22833033865638044, 0.0, 0.0, 0.0, 0.0, 0.2864165259642358, 0.16027108725841735, 0.0, 0.09011936406874124, 0.4181806897076036, 0.0, 1.0569606821068054, 0.624691204995156, 0.7081544908696379, 0.0, 0.8795184016973986, 0.0, 0.0, 0.021853263477242018, 0.11238129351491766, 0.0, 0.0, 0.045824320207715985, 0.0, 0.196064039018767, 0.0, 0.07081867255234689, 0.0, 0.0407459744321428, 0.0, 0.09807635051343538, 0.010124069007427254, 0.0, 0.0, 0.0, 0.0, 0.6116811031756639, 0.0, 0.0, 0.6208028352439049, 0.0, 0.17504030998808598, 0.020658826838531718, 0.719367580349619, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.015728258754898257, 0.07298380500117611, 0.0, 0.06012022906808051, 0.0, 0.0, 0.5330380962469254, 0.02965305516643559, 0.0, 0.18001272855172004, 0.035235037447174065, 0.0, 0.01349449214577584, 0.0, 0.0, 0.0, 0.2359915438569738, 0.03810280561257924, 0.0, 0.0, 0.0, 0.3884686133510988, 0.0, 0.0, 0.21968925488132546, 0.0, 0.0, 0.4324936557273746, 0.0, 0.6879094987723802, 0.0, 0.0, 0.0, 0.0, 0.7898693359448322, 0.0, 0.5391987426673219, 0.25853076675450826, 0.0, 0.38031280775654097, 0.0, 0.3853638210122371, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.2217547802058863, 0.05709933484072306, 0.0, 0.0, 0.8484028226584724, 0.23257686384566284, 0.0, 0.0, 1.258622241947537, 0.0, 0.0, 0.11665876134553779, 0.3184837856872295, 0.7880482843371591, 0.0, 0.0, 0.0, 0.0, 0.23284042288536255, 0.0, 0.3804712136528319, 1.113036382623302, 0.8298038026635118, 0.0, 0.0, 0.0, 0.0, 0.0, 0.020690565683442904, 0.2610758590649183, 0.0, 0.0, 0.06193402719103672, 0.024569168683420507, 0.6450876041294853, 0.0, 0.5615893961519662, 0.0, 0.5487968919612313, 0.0, 0.6425734859953806, 0.0, 0.2979704099021757, 0.323777504790907, 0.66722521578591, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4069961680965457, 0.7713681046585987, 0.3594743508741288, 0.8852608548606914, 0.0, 0.0, 0.0, 0.0, 0.017250929899566992, 0.05738201561649353, 0.0, 0.040237899717394485, 0.8673210549972237, 0.0, 0.0, 0.7245534868749944, 0.0, 0.16727086778943756, 0.0, 0.0, 0.0, 0.0, 0.29250184542509544, 0.0, 0.0, 0.06729223300830636, 0.0, 0.3824979967457689, 0.0, 0.23769547992450338, 0.825352628558087, 0.5791520520364314, 0.0, 0.0, 0.6822104427959106, 0.5410434317660799, 0.0, 1.0013182252763118, 0.0, 0.0, 0.03410163433510291, 0.0, 0.38656596036997387, 0.673387919520239, 0.0, 0.0, 0.0, 0.06524513264320482, 0.3778876017229726, 0.0, 0.3042658440871357, 0.03546389486517897, 0.0, 0.3811330360259428, 0.09125614750074176, 0.38639776526497555, 0.0, 0.7956019813194058, 0.17107520161825185, 0.2528672125099372, 0.0, 0.0, 0.0, 0.0, 0.3715122812201797, 0.0, 0.0, 0.0, 0.8636878110328885, 0.3725673215613031, 0.19161493799862908, 0.2947877363978017, 0.8277903198901483, 1.043787991594994, 0.4556846854932056, 0.018960059119328472, 0.0, 0.8179077818243863, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16243732090346746, 0.0, 0.0934593474548136, 0.26288293993414813, 0.0, 0.6986592631730956, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.23290649501046135, 0.0, 0.0, 0.0, 0.0749770448177764, 0.0, 0.0, 0.5829804395566012, 0.0, 0.08903205884730546, 0.036076025185782915, 0.16740350145604724, 0.0, 0.13789822076519753, 0.0, 0.0, 0.0, 0.7803684622045182, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1343991941662123, 0.0, 0.0, 0.1265714212875754, 0.580645942127824, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4164388584828146, 0.0, 0.6383936083527437, 0.0, 0.0, 0.0, 0.0, 0.18608051379305826, 0.0, 0.04744673193981907, 0.0, 0.0, 0.0, 0.0, 0.3666656532257351, 0.017984084638402044, 0.0, 0.0516031884810454, 0.11619024662048777, 0.5090994962453932, 0.1702286192926929, 0.017754543539629426, 0.11487736756877703, 0.0, 0.0, 0.0035637729173098607, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6218776818900951, 0.10343438219926053, 0.0, 0.016806683142264318, 0.019961035657552893, 0.0, 0.39238409513228256, 0.22883526349683764, 0.0, 0.02328369860187438, 0.02966268912006465, 0.0, 0.0, 0.0, 0.08243560528569996, 0.6624744276069285, 0.0, 0.10804564627221094, 0.0, 0.0, 0.0, 0.0, 0.0, 0.272827698328812, 0.0, 0.0, 0.0, 0.10351845069306231, 0.022056761782947687, 0.04806113374409372, 1.421033050846094, 0.09272463621214155, 0.32902390084105787, 0.5088305985866386, 0.09822819388787048, 0.0, 0.0, 0.0965876885856362, 0.0, 0.0, 0.18492863169572316, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13526587090401476, 0.0, 0.022328727233527985, 0.0999580342692439, 0.0, 0.0, 0.09557781244125038, 0.13831210655132378, 0.0, 0.0, 0.1791768991068296, 0.16163641825142586, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.42053340750746143, 0.0, 0.10552005335412863, 0.0, 0.0, 0.16311354370934733, 0.0, 0.2824114978735204, 0.0, 0.0, 0.43639300384810376, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1671480967875291, 0.644888932873856, 0.3129032598040877, 0.48675890221085816, 0.17823949364009248, 0.1415399106044285, 0.18516682441734925, 0.5312977885248659, 0.07587099582542241, 0.0, 0.0, 0.6986300116510127, 0.0, 0.0, 0.7938925894205694, 0.36599606323996975, 0.26363118368222405, 0.2342915285475447, 0.0, 0.1869965760541939, 0.1160920939359052, 0.38732669798663727, 0.0, 0.1313693926537813, 0.14845591773543332, 0.0, 0.0, 0.5636663205749514, 0.0, 0.0, 1.5099082548197433, 0.12877106200933913, 0.12876355501777378, 0.4806583412843819, 0.8527242204514415, 0.2611825233475998, 0.2169329303973436, 0.0, 0.19905771354664345, 0.0, 0.3188159099664727, 0.0, 0.49573252746154944, 0.5909004107452918, 0.44608316126371567, 0.9987235012950566, 0.0, 0.0, 0.06543436335390052, 0.0, 0.0, 0.0, 0.7452854681453724, 0.940549219662451, 0.32866688095435376, 0.0, 0.04977979297413422, 0.0, 0.15266515341831127, 0.0, 0.0, 0.8226750512812447, 0.0, 0.0, 0.2520932611368793, 0.32856303804715215, 0.1846788611041856, 0.6288326287259721, 0.15594781886009731, 0.0, 0.0, 0.39056006775570395, 0.2454733448499023, 0.0, 0.1875080652559859, 0.0, 0.0, 0.0, 0.4604079993134017, 0.0, 0.0, 0.0, 0.0, 0.11979185177691755, 0.14227491555369362, 0.0, 0.09024327543210102, 0.648783267363574, 0.0, 0.0, 0.0, 0.5408163510237757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5311068240495873, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5314003925728801, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02394551122470378, 0.0, 0.0, 0.0, 0.12486249633500378, 0.0, 0.0, 0.05765112857402609, 0.0, 0.14315109316509972, 0.05676601866921535, 0.0, 0.6434826644263494, 0.0, 0.14460219857592263, 0.0, 0.0, 0.10860788610026072, 0.0, 0.04705670771446048, 0.4709967737248388, 0.0, 0.0, 0.13612521976378897, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.130371257969619, 0.0, 0.11349639269154894, 0.0, 0.11804878144850195, 0.3189646877579158, 0.0, 0.0, 0.0, 0.0, 0.1348452367929846, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1550934497155318, 0.13060726382480906, 0.0, 0.0, 0.232086697214264, 0.0, 0.14806165017632722, 0.0, 0.23898925029638524, 0.0, 0.0, 0.23731337239548533, 0.0, 0.10980801230053783, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19058666211884384, 0.0, 0.1810493697276433, 0.0, 0.0, 0.27986722280655724, 0.06847318480810846, 0.0, 0.026224205266550244, 0.0, 0.0, 0.0, 0.07178447214794542, 0.0, 0.0, 0.0, 0.0, 0.04423801290959719, 0.4450997362670805, 0.0, 0.0, 0.0, 0.014396013780263936, 0.0, 0.0, 0.08159130602818511, 0.28786198512647176, 0.0, 0.0, 0.0, 0.15886186536955227, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03988435480164781, 0.0, 0.03472184333660239, 0.15861587093052232, 0.03393091079863592, 0.0, 0.0, 0.0, 0.1458998203965446, 0.0, 0.2746045410027491, 0.0, 0.08937012005405864, 0.0, 0.0, 0.0, 0.0, 0.4360685101718207, 0.0, 0.0, 0.12479631040323635, 0.1679293189285873, 0.33750713984681247, 0.0, 0.38279076464536926, 0.0, 0.39766804122994015, 0.0, 0.0, 0.0, 0.0, 0.37584745957186994, 0.0, 0.0, 0.0, 0.0, 0.0034663505048984434, 0.0, 0.0, 0.0, 0.24932174401673268, 0.8269366380921026, 0.058350744167210526, 0.2821315817160027, 0.01073228148503296, 0.0, 0.0, 0.5523198324520332, 0.0, 0.0, 0.0, 0.2765513539344097, 0.2765352317665175, 0.0, 0.0, 0.0, 0.16196672196012962, 0.0, 0.0, 0.23047763471347846, 0.0, 0.4983211934020315, 0.0, 0.0, 0.0, 0.0, 0.08410733405320571, 0.0, 0.0, 0.38342855882543897, 0.031078189534518876, 0.0, 0.0, 0.07997079449394401, 0.0, 0.0, 0.0, 0.14991888400189204, 0.0, 0.0, 0.0, 0.2539339452562683, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005527553201922959, 0.24701032777367607, 0.3818735212726353, 0.0, 0.0, 0.3141045412174539, 0.4613820899583969, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7846194794668536, 0.0, 0.0, 0.2023929406035883, 0.5525420395033789, 0.0, 0.0, 0.0, 0.18332122951817006, 0.0, 0.0, 0.0, 0.6600849079661362, 0.0, 0.271071887942947, 0.6931869379662654, 0.0, 0.19544958497754947, 0.0, 0.0, 0.23106411956503142, 0.04163915085675471, 0.0, 0.2740671699579846, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5951890435738816, 0.0, 0.0, 0.5617261879013651, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.648112900028134, 0.0, 0.2097693617911403, 0.23188027210282897, 0.6330438111437964, 0.515238068631253, 0.8059496022277759, 0.0, 0.3600721428836477, 0.0, 0.37406645349624035, 0.43324551668887895, 0.7562549741789008, 0.0, 0.46837434729653293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.23452450510075076, 0.0, 0.0, 0.26538707979997495, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9037040684567715, 0.2601228730720389, 0.0, 0.0, 0.0, 0.3385307797226737, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6960140675899867, 0.0, 0.0, 0.0, 0.34167761524179585, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.47179884257042837, 0.0, 0.5873339130881751, 0.07760784608974701, 0.0, 0.5108116353650718, 0.0, 0.23018263458044896, 0.0, 0.0, 0.0, 0.6389281667373347, 0.0, 0.0, 0.0, 0.6317086674243048, 0.5424555939717753, 0.0, 0.019597125946055532, 0.0, 0.5067616269530796, 0.0, 0.0, 0.0, 0.0, 0.33135639687759366, 0.0, 0.11009229928191128, 0.0, 0.0, 0.0018449546833188399, 0.0, 0.1894047148704815, 0.0, 0.21786525780326826, 0.00027956067335572354, 0.0, 0.0, 0.00044372512905081096, 0.0, 0.0, 0.10913586880079368, 0.0, 0.0, 0.2387319450019063, 0.04302093934347575, 0.0, 0.28316204466710054, 0.0, 0.6259961005310473, 0.044339116197027774, 0.0, 0.0006891565473784903, 0.0, 0.0, 0.419692560541072, 0.00023711054076719368, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0009518757697360345, 0.0, 0.0, 0.0, 0.0, 0.04412247836479926, 0.33175278809136916, 0.1836910307282294, 0.43316264355459233, 0.0, 0.0, 0.0, 0.0, 0.6109591315701846, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7410212481907629, 0.09694039812399863, 0.0, 0.0, 0.04700242398333341, 0.0, 0.0, 0.15679640166544176, 0.0, 0.0, 0.008354862966629384, 0.8660916115221005, 0.12095883829401362, 0.0, 0.0, 0.13982615201680984, 0.0, 0.37030015075124356, 0.0, 0.10806680870328135, 0.2674021581377063, 0.0, 0.0, 0.43695074134110806, 0.0, 0.0, 0.0, 0.4193595253139995, 0.0, 0.0, 0.4223604117691241, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6519628347852473, 0.09593394582722056, 0.0, 1.2263197607192593, 0.0, 0.1420268730458006, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6547968394353947, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.015993676263376118, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0322501065968568, 0.0, 0.0, 0.0, 0.19977559392448785, 0.0, 0.0, 0.0, 0.13350148436716802, 0.05064120692385946, 0.0, 0.014278692130393579, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02476251362124448, 0.0, 0.0, 0.6971876314261916, 0.0, 0.32368749507325995, 0.0, 0.38665695047334026, 0.043481909227645874, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2863863682111852, 0.0, 0.0, 0.0, 0.0, 0.5166026604428106, 0.6135609292207037, 0.0, 1.390585308090751, 0.549724406362488, 0.0, 0.0, 0.0, 0.4946354029419938, 0.0, 0.0, 0.1817622353630416, 0.0, 0.0, 0.45001527975922945, 0.19067060021024376, 0.0, 0.0, 0.0, 0.0, 0.0, 0.45026402504954754, 0.09862023599471978, 0.0, 0.0, 0.08971409788917951, 0.0, 0.0, 0.0, 0.14718404588236259, 0.02028941343776962, 0.0, 0.0, 0.12879470754337072, 0.5384698277835859, 0.0493264459266498, 0.0, 0.6385356001321869, 0.0, 0.0, 0.0, 0.418599297830268, 0.0, 0.24084377286368372, 0.0, 0.0, 0.3927421561776119, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11479167979031016, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.287331205334526, 0.0, 0.0, 0.09296754420278937, 0.4313970938087158, 0.0, 0.3553622902870886, 0.0, 0.0, 0.0, 0.1752750739858479, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5721777681112366, 0.16584672881862064, 0.0, 0.0, 0.2750129568642962, 0.11193872117738499, 0.0, 0.694851503366924, 0.0, 0.11176089578249619, 0.03642730011196224, 0.46499012378889537, 0.0, 0.0, 0.10537656529716292, 0.2572556947482873, 0.11427779100841323, 0.4566419402676079, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31905429658438084, 0.4568943484348684, 0.0, 0.1009223375517615, 0.0, 0.08785925235754827, 0.2524568576131555, 0.5979718371844858, 0.0, 0.08718397040627182, 0.27019243222928785, 0.0, 0.2405201444721306, 0.11212903697332216, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12097427611620017, 0.7029459229987706, 0.2907862782736388, 0.0, 0.3020877732114353, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2423919969263556, 0.0, 0.5763734567059631, 0.0, 0.0, 0.0, 0.0, 0.6067232814043334, 0.18939678992121056, 0.0, 0.0, 0.21432072089475862, 0.0, 0.0, 0.0, 0.0, 0.5821831861883047, 0.0, 0.0, 0.210081711445218, 0.21006946427095974, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.030280314291377, 0.15413531598416644, 0.25247193164811527, 0.0, 0.0, 0.12848497078723173, 0.6000304051931176, 0.0, 0.0, 0.0, 0.0, 0.12617822046935606, 0.3320268939864614, 0.7056657766261163, 0.42848148251018003, 0.057345877924903164, 0.0, 0.3774481983482792, 0.12624796529690785, 0.1619902770277746, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005688878127237202, 0.38175135193372894, 0.1765840237536124, 0.0, 0.0, 0.3566318392645057, 0.0, 0.0, 0.0, 0.16683268933188872, 0.04345497812697982, 0.0, 0.492592677155673, 0.0, 0.0, 0.0, 0.0, 0.0831404672292756, 0.0, 0.0, 0.36055293254501974, 0.0, 0.4863131526725521, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005464010493446822, 0.24417078834728798, 0.0, 0.0, 0.22169348923343446, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11593686293818574, 0.0, 0.0, 0.0, 0.6095590933370347, 0.0, 0.2443761776038196, 0.0, 0.0, 0.0, 0.1960956643223869, 0.6074859425565672, 0.18650669482426485, 1.0378655385571516, 0.0, 0.17276762871577947, 0.6940099427692358, 0.0, 0.0, 0.32388236546386096, 0.0, 0.3977584774978917, 0.09850727254096922, 0.0, 0.09435872182534573, 0.32210695479773005, 0.0, 0.9450119024745318, 0.0, 0.7282651614947167, 0.795671006556338, 0.21972174528863647, 1.1800722708951874, 0.0, 0.15406122012703197, 0.23245444095199302, 0.0, 1.1450754137286316, 0.0, 0.0, 0.718432895790501, 0.0, 0.9074772544907516, 0.0, 0.0, 0.2150644825695137, 0.7387278090737696, 0.0, 0.49627306106648184, 0.6533650950107276, 0.0, 0.0, 0.0, 0.724606488987317, 0.701411910713477, 0.6206261403696766, 0.28804332377271413, 0.2959105186195655, 0.0, 0.6182919293124655, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.589003768060014, 0.0, 0.0, 0.08271977351575115, 0.0, 0.0, 0.0, 0.9105812282174285, 0.31789001879047846, 0.02411461886183569, 0.2829221743477605, 0.6706620073355701, 0.0, 0.1930731864260551, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06133637967837149, 0.6242346410782087, 0.6952909143002654, 0.3591573776849567, 0.0, 0.7449872409938767, 0.08923909973645693, 0.1173521535256719, 0.0, 0.0, 0.5729798828820618, 0.10656596459419354, 0.0, 0.1545328680391799, 0.27421690202209187, 0.0, 0.0, 0.3698254914307633, 0.5140663186573865, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13863750342668263, 0.6433193065819665, 0.0, 0.5299326895193157, 0.007712410329912944, 0.34464525874742236, 0.34174148456366615, 0.2613783001228934, 0.0, 0.0, 0.05371570560505797, 0.0, 0.02057231153731605, 0.0, 0.33150273239870404, 0.0, 0.0, 0.008405062468217761, 0.0, 0.34649855374487837, 0.298371589011109, 0.0, 0.1892535264101524, 0.0, 0.016081030317329964, 0.0, 0.0, 0.1306616194660838, 0.0, 0.0, 0.2714046321541056, 0.0, 0.0, 0.0, 0.024299507869495213, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16509417733903173, 0.0, 0.0, 0.1501849497452071, 0.1748418064456664, 0.0010568489849475794, 0.047227517247298824, 0.051672489777017716, 0.0, 0.11982535720931763, 0.0, 0.0, 0.2618551646604837, 0.0, 0.0, 0.12090296292900765, 0.0, 0.0, 0.44988696818935897, 0.0, 0.19121191419677455, 0.0, 0.0, 0.49693256130088725, 0.0, 0.0, 0.0, 0.5670859092292977, 0.0, 0.0, 0.0, 0.5653233896265278, 0.0, 0.0, 0.18955075438556615, 0.050614759394524644, 0.0, 0.0, 0.0, 0.0, 0.6124985176197848, 0.02840624719573524, 0.0, 0.0, 0.6585018821667253, 0.0, 0.669914086084765, 0.0, 0.4435524229524026, 0.0, 0.0, 0.24959071834233698, 0.6741825496608898, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15847771480322562, 0.0, 0.0, 0.0, 0.11420329312106789, 0.3695819846260272, 0.18933569121558752, 0.0, 0.0, 0.0, 0.02103165349726233, 0.2655614054905834, 0.0, 0.8117959138331444, 0.0, 0.3439446042563599, 0.0, 0.0, 0.1019714241481598, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13231107356042507, 0.0, 0.07339739754334103, 0.13018370224494802, 0.03407665122672999, 0.2789846158904475, 0.0, 0.04141177300212955, 0.0, 0.21059108800059795, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14821858886776432, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.45102261330920507, 0.05046558139935084, 0.0, 0.12130428936757616, 0.0, 0.12601881654664268, 0.003171787898412092, 0.00527620372181328, 0.0, 0.0, 0.013576794847610305, 0.0, 0.0, 0.0, 0.025452015886005885, 0.4384052118279088, 0.0, 0.0, 0.0, 0.0790086903216001, 0.15275039095222206, 0.0, 0.08940594755444543, 0.0, 0.0, 0.003492578790207725, 0.0, 0.5882017770828334, 0.0, 0.0, 0.14092784541391168, 0.7983017352473682, 0.0, 0.0, 0.0, 0.1117819777173795, 0.0, 0.0, 0.03862278430066002, 0.1785535098526168, 0.4378163685245537, 0.21613953941654523, 0.8670541670659707, 0.30872969047516546, 0.0, 0.073895246778613, 0.0, 0.0, 0.8448370570321526, 0.006826318289568987, 0.24453895548705643, 0.0, 0.6685102691932127, 0.0, 0.0, 0.07127880649817865, 0.032929653726359844, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.018587651907083814, 0.0, 0.19986879579794362, 0.2170189952300144, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2805164076738779, 0.0])), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Atomic([Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0)], Element{0, Int64, Int64}([-311528392542676525, 3802864504850227773, 7132563740294941325, -7734229606977869371, 4610816547292327398, -231875892530149519, 6479067223724325995, -5993925410246119408, 7769769731936043186, 6508773581643622648, 8377470195368681305, -5026402568726958822, 1827804178661326297, 8945035746065187189, 9142616182405809812, -6444208854588150036, 3277304349445109851, 4784032081641147304, -6760158860367436072, -2973384685745632037, -8129972329073734262, 777092723910886802, -3245293789031672332, -3523460009327721843, -5684260890958137224, -8265569238908005417, 8801036620359715779, 3266176164242776697, -2137918316110048538, -3323946906471089812, -3314215782571951707, 778527069577570500, 8137954887180256780, 8430989329655386292, -606788686983349880, -4214419631996394082, -6982805642717038791, 4797874315021516200, -2404366658509915138, -9177912505471373539, -7126158702130095549, -1766466893224773589, 8924417853649894089, -4674003454091887679, 2257428816284239881, -1332826559188755030, -8548057139935380399, -6301259390274164526, -3288288979021163907, 6879439315951637090, 4337023968316665593, 6946150187905484505, 1010965014357589050, 5912572766312215522, -752662070435057852, 8324512872143105908, 3863764696845398606, 5389249056777042937, -1935499292012667397, 7268079289042811102, 9015678537102606643, 5924330619075555357, -7424534445741392445, -629875664608289672, 8384040311367110728, 4366481991429755226, 799319475113248361, 915077563132424308, -402689656772636859, -4955233076805992406, 7164775445931617845, -3741939346817651094, 626388912028592424, 7629488070185682238, 2229303825265914208, -5262491359642418345, -4880619796691544255, -3925706312675979806, 4696878665903208702, 5071857546218785861, -3376912663266974892, 8653621680026928799, 1396781445024355796, 621390305019145984, 8372778663022275550, -7480329048309833839, 1560173607708756635, -3514469212498253617, 2082849966979030776, 2855014826193932577, -6098003633715037270, 4973995505549769974, -934656248683882969, -7138618497546152206, -8796608146899612477, 2599534084177250165, -3661022375209093319, 6753861788669983217, 8879020977128083301, -1369089299051099462, -5718241577534868428, -4601048383104503916, -7761404906865992561, -4766352168228543906, -7581342006403310193, 5305627711042476897, -798942769184694703, -7013308532278854794, 2556970310791640083, -8310154389049907193, 1935579670641235148, -9182270706148454992, 9150818649447775758, -6638702227973546141, 650090674291676413, 8236754832241948399, 790792765911863457, -347542563766738388, 3388642901454996993, 5348134068670085253, 5074530787207075513, 1395232644756449952, 8090997313784423115, -1550511403107108256, 8571008051355695605, 1306564260425723057, 5818833840846631664, 8799033188003922464, 5410444795730799007, -3373047473574331090, -8548302006770261151, 5021861578667389638, -432669836523104479, -6438627394278666063, -7251108417612047114, -6291884531541975330, 6537071113687438992, 8966161431802402633, -5259240086960564044, 3503163060697962605, -4065148945903097744, -1777564193334828938, 1747809001727155632, -3417070383920828456, -4980740299784891473, -559866941814657186, -6426350914229905139, -5679160652862202404, -6211678578062624482, 848841581372246207, -2989862519366817864, -9055561009588072094, 6765006199830890923, -2062587279559167170, -7502248691809669785, 7718809563802492192, 3633483956842288096, -5531671318896978179, 5326224353406326292, 6726394281003005045, -1713581532815293882, 6024523542812863783, -1763399164735930073, 4266920826307605526, 622375407618332670, 4341466034596968525, 7715246185820712492, -5773491122824348016, -1826385467445025486, -7822412245781439819, 8017872321912493505, 6373242139699342871, -6944882458072813137, 4697620715257964034, -4365394206032703789, -547148396038045198, -5035570107494867275, 7793404466643051559, 4469721766633126697, 1166061378200498396, 1554858931156904800, -2361412551770162450, -7930855384212681335, 1713868002622874066, 7409111426406558639, -512154663509791484, 6537275880940401093, -3910570248961609024, -3836656625145607293, -8938294775136724153, -6507444214278732621, -1150538280928728183, 6973878162312254627, 6572969588409572611, 1002231209937518033, 6908277548248118165, -6022132921017429451, -7025870997712287358, 683251940863450233, 2493524975192955782, -7276639915615857470, -103883638664277997, -5314704606673142253, -7038752337314182336, 5560169698698056371, -5881866866010041715, -4469522438057826665, -8939893843141765247, 2642101218897762188, -3300172923916323330, 6352877754718065190, 4084338072180105389, -4342549113399200393, 4279374017424089065, 4398221897453782925, 2422944416491435362, 7922267869330361805, 5995998007128456283, 6280625043231339994, -3275865643381161731, 4383174748559532813, -8546441422012175712, -7893577028946492213, 9027885389349284629, -6125149023153379003, -4956546681275572683, 5715129565539777013, 6623276731031366799, 7560337431809868738, -31750236024934407, -3810198350997910123, -1146409313986505151, -428701850515027514, -468073762720447669, -1390050471520983211, 2835265798923663700, 5764913612679834112, 958810651968247391, -3797815661291407520, 6460520626648203269, 211708702104126221, 2261091765752400712, -2964977199137046896, -4385151649562144001, 3116185924188946137, 6739692152509783528, -5305436920427785009, -2907282851691115609, 447743807557596132, 63862440751247066, 3514479843707153842, 5999601496287905231, -3654531195335519906, -2542600877922342253, -7290989393844413666, 9085469624507262735, -541455872346318235, -7971088789235032060, 7689978220151207746, -2711513566589271239, -8343310657572295416, -4167999392509592540, -9039445678299213909, -7170301895717218884, 6291529442536905084, -3374963351675626609, -5373168051494346318, -5497601031482005775, -2916886395075307235, -3883261685502767633, 9179413910741410099, 6289334284246669717, 4234089800929872794, -2655732539271996720, -3035070633871992593, -2437303472975627474, 8832963047795505553, -829388827821593367, -5370201744962103593, -8911288617151731105, 6714137128155914855, -6937785380240140879, -4804598248727707302, 8750156478448565502, 2574912636013720638, -4885946830234328537, 7521358135764728226, 535303159333155897, 8138574657622192110, 2456224430349956627, -8992321412901943906, -7281936363115109639, 2704721690134351097, -7216651923179770008, -6506422878573197942, 8915586083417585942, 5371232788505226594, -1740133450893903245, -982304251078917805, 2244112516915558506, -3114958008453226, -4610260728675861751, -1143025776890919762, 8288487391050636375, 4388285265909577760, 1232243352541145132, -7717830768524962099, -5901227017481054829, -6100861997340233106, 8279906479564605152, -5427340363020812495, 7436873303994409336, 4437395942259467556, -5486323029786467602, -749419638916086313, 387633405786106344, -2444684956722819414, -8879980142125000057, 9032213405251538238, -196725452198675903, 4109301537930725517, 6117388314164827016, 8847370785979768678, 77521133169697924, 7077666419656637399, 133555131055822904, 61998257733475790, 5697558321456541168, 7399783912995781559, 1137891396677380707, 5074079993681838043, -657911960963882852, 1137470059873220310, 7020780662981280391, -9177001920397809522, 790362239680355816, 600172032624920855, 8543420636741980368, 4528589445176971886, 5960728324702488119, 5514186694424436532, -5432336659913866735, -2057725448378912415, 3911807348846574985, -2933766100391426874, 1800193705806185930, -7054816631402652609, 7183265689053958885, 5699677378061885134, 4220153114531888679, 8286682243768326060, -3718825949288568614, 4247279726743304081, 3401929723154371418, -7791632387902813891, -8525035833654653815, 4642847250936202202, 8571834255563384580, -615080775143020047, -9141302276862944236, 2497129230952559091, -8795367116044177149, 4697020691819045650, 8078487089138316076, -6314877087348456338, -8272915201734457268, 6950678089694500897, 5377750684446461249, -921140928622983181, -1520460049452102693, -3177121019444108678, -4051624390692544861, -2825784479508224090, -5008690521298053399, 1770783004922494527, -5527822838273234845, -4503771241503652292, -4788400236276842410, 5619353998326498739, -3701011697076308480, -8034418559493520412, 6350765187233515105, 982558642287986027, -1448602610424440694, -5618483166513344245, -6278878478122580648, 7537160758203387055, -6154847048393471752, -3053777167706908675, 102968748125835682, -4368004269290628803, 3948417958341752791, 3441688668713259055, 5686013332820589556, -6793945691483312138, -5657337314720073764, -2316326789392298880, 8429883766104818531, 5672048876768223736, 4801755278649149250, 2457832606218017605, 5660898524916791368, 9008328499307364991, 7282355400911599490, -675022808189279520, 1248812713894084058, 4295529333031152182, 235010168203572616, -4332156008277813622, 1584706501703338551, 3224219654798343804, -2046414069220643115, -4768268609286612707, -4595767465089756149, 432385139172141595, 5744340903783987934, -5907814276982578230, 571373857369851574, -4615364944658920518, 985558362311014501, 1146748558906210730, 7358527181149231649, 2960234619888514885, -4221579384574605709, -33577900070920492, -1383491017420984722, -6667111422768545223, 2209578116218914144, -6192696716189832095, -8682232579400392473, 3926742208689603882, -2605251114517028176, -3432143345789886934, 956256818538240068, 7048231574365916809, 5172150567611355985, -7087473940080722223, 2829725628381946973, 6615614511402804897, 5597114989308889913, -6360862330806523233, 7263403909484904208, 1722745349057533175, -6250859958048377022, 7854765438825869947, 4544273279457948494, 6871378735684121062, -3351123348798445569, -3070913893427269938, 4474858432188499679, -3027153348937151936, 6723187138491054590, -4633043728650674379, -6923489996304544514, -7608004350687835922, 8618729303360011673, 6145931189986425565, -700125041702955627, -7361791825514005778, -3052622408661881441, 8247111715450418050, 7644850195268952347, 201981812631246530, -5366187106284689552, 2240979599738100899, -8929354876130746907, 622748136125783190, -2241977980877970148, -8690707102946532636, 1816258902369550876, 6082608921810779350, 3313569380430314248, 7003634692020991413, 5388495764620726128, -5530822942131330273, 7182058408716498125, 6272977706245272491, -1611832087259919849, 6304118920652930260, 2664243321321065829, -6991256246863621561, 7763559060359215549, -1363294210753473603, -5984590649126030611, 8835145660544963598, -4339100511013335484, -7658343482117166946, 4767592705684863404, 6567026582399699474, 1241984525409511450, -5043459788309072162, -6788638110335657665, 3425502247489073842, -3386866538103387786, -3435764054745173624, 6561588844054851309, 6358866269624109218, -2265970059794978437, 981754089422755666, 303360095818360815, -1637078045909787216, 5039180299052306271, -5050307403632054071, -4916014943876365639, -4786790738315442642, -4112969230517500969, -2053067729163411292, -5506471273731989096, -9192763281442671194, -9154538478094146297, 844512131685900736, 5622194151159285613, 8194896671418306404, 1412467403218231788, 3881564188099745981, -6535023704129633935, -4422084769610503611, 2842323006370744908, -472587132304431690, 5418894508652286502, 5354997878416558687, -4192781941439730955, -3177986442565831154, 8055846518519871975, -2415348653243756702, 3420189508094535959, 632472561226799626, 9048880056639467255, -4088888662813871032, 5342377372296981891, 4269139230891294005, -6717542854769676338, 5697661121986271761, -1342180587334633568, 336875038379374793, -1762255469438213123, -1771219285192270657, 8879943609619899579, -6124059468186375892, 8286471420479395455, 5543997467023211823, 5320361181567019590, 8958205738403874292, 3782571393394012068, -8985467336212511099, 4358217428218486255, 5323123421330561591, 5764541270351390266, -6963051555266077147, -8117203354060625734, -3369353168590364075, 8066080865612783830, -5493399428262160806, -8062951269302324167, -7795183678321688541, 4270469270852553336, 5515134373073409924, -4715340744920803950, 2105370441481331601, 377342343915534328, 9024587429061028407, 3950645024865924468, -7513885460653066738, 5679113338470321965, -4007675874528217094, 685254662537812760, -7675519858059415042, 901700859132852851, 3306012866190376430, 2408392168740675300, -1818210664377266977, -5985536775766332429, 6859135827266771568, 6142180884473663150, 1662736140744539339, -5748205425049442259, -1431038593146932184, -7772606991892607571, -348435608257889917, 3323776957236852960, -4109021388662695665, -1035387926833810113, -6252075674217952235, -1688047783032235782, 4835484251275026119, -1130434861387672189, -552211881628052457, -9041375001510857971, -8608662509892950952, 8688323792329827521, 4639288709326029154, -7997418775765929203, -536103785062713510, -6343663721617708900, -3154255286206413772, 7778544095371035370, -6087249532642040836, -2119136938453566451, -688238790820179873, -6835440198851144923, 5315054982053402284, 8173102513358076492, -2069317718895641958, -4771766013066052606, 931917254490650404, -557345458441442938, 3220011825320527555, -1158400632381301374, 7109875313372060233, 280358344723014545, 1781923481723729313, -1805499844278566084, 5814569477732551196, -2166719128253350835, -7610231454586483844, -410436740688301883, -8413621775294896865, -8989368555919190902, -7176709214957782648, -7904552684938415090, 6506593041716222957, -64275500919664736, -2441305534489441569, -8607529290606256433, 2704494450480538341, 8252863318644872588, 7679830104172517933, -1362881973065009152, 3227375449815221716, 4230416557459228451, 749940150731561981, -3955830997208866872, -1058276989298619601, -1641422116181591194, -822466760760516658, -2021155498858226231, 5043089523958593235, 9160523363278870467, 2440291487886579299, -5076764184565375538, 4008082098413400136, -2574196012088549257, 1815165426871122463, -1810363067796950052, 4564660363457428284, -2979682748740342374, 1263528409113807511, 664902837787653319, -7730990515836195905, -2880800962758009323, -7855792495166800696, -3741677040754952297, 4706538099020817013, -9136310530026765146, 6214908330569213306, -3306943983211023738, 2006683290226313727, -6277376814587543000, 5070401159692077631, -8643576681302494805, 8696392328149980718, -2881724085663247400, -3287341067959381540, 4490394380103475251, -2388135268153109148, -3688564781415624446, 6498489205468056363, -5500244887538822899, 2180911647749845602, 8505364545645231746, 836973405812942824, -4740164100896755286, 5278723018552192484, -1437440665187625187, -323731977913999807, 7961288608439452300, -6431662516133743485, 3288471137468863622, 1094976596329727971, -7153147127300532286, -2269332560827388244, -8443034525381127221, -7259595132044303319, 6598374410643793929, 5408651494181464015, -2202304456831760230, 5063787465367491805, -486043291012940650, 6661198455654543904, -6677120136819219766, 6873215010129388137, -8544492697357908484, -4891416620674641993, 6278728749137780699, 6140179405370666573, -2530674188465907541, -5542826884668502138, -4624987738903378785, 6055897868744384304, 1893227478513103707, -5998481717337431109, 3830666628195019250, -5536286911313861609, 3200695281108542221, -6354873668485439169, -7106406847876828463, 7267111195904963580, 7933454732992989449, -1704431805338802811, -7611850130507733188, 812223521137539840, 5028737084052092939, 1988409904336613546, 5452332172318207897, 721364426528035202, -8061778870788033499, 6206577632233922077, -3358825340647308897, 2615281023954623119, 5796586417262572998, -197225006894562884, 196909717615705016, -247775495361433931, 7935788894770135235, 2974543031667961203, 5518401755150062594, 4289467554573218060, -2110026776485502130, 7660756127445162484, 3210017035054168881, 4490480744367531310, 5560337963744008127, 1101969946984775230, 5426060883804367122, -7414569778895362694, -2574548713218219896, -8667400765660450694, -5823705257574844942, 8997571444431443269, 7042636308067180449, -5283570316461887039, 8142095188421778064, 3651820187667613831, -4106900401332576063, 5096961868284753927, 1281307679037151525, 3157982099299110758, 5964579201184846556, 4180328246833948732, -7591589437120250551, -5609987180487736705, -4487816973319572586, -1552743699661830151, -2960134158460000031, 388000481836191254, 4969717821228980736, 4894250187668109836, 3314809537038085119, 4588524784136728210, -2535627291226530894, -5684084138082962342, -1286085397614972483, -7103165809748549698, -6678458086474660614, -7506274041001472908, -5757410831092511843, 3076084975765635926, 7850034963640689904, -8651748294440545843, 194609034680985428, 8961175923080965683, -93748348755505189, 8117513138674933995, -2327127188025401628, 9187079670668733343, 6176196235074071579, -2820708281421643585, 7702825886158486334, -5855613686156591038, 7799351880585559652, 4934874524942948135, 478516408624230993, -4965206657008516450, 269236596925883928, 1073428163366009326, 7126792485072910069, 7569987982476504769, 8262969537673837817, -7393607729414256813, 4017211294382715408, -1453708362719534126, 4307169287498447691, -9096393784442866629, 8699405990322605810, -1035874136575275173, 5307229917593282401, 1276194578649014061, 7817361645793510414, 8807328459013683574, -6765725969608803740, 3805877505873456422, -2895703504735894621, -5230950451898686709, -6669061264839270575, -5138851837205629206, -1835119422478560204, 2603594006469150259, -2868548477659140639, -3022288051024437226, -2534068374958773882, -8740036738980731237, 2422761568693286421, 2502279617218189169, 5653397006733775922, -8039795195496143176, -6114200605642013428, 4738401726556400980, -1124125357168446237, -1348538616798334459, 5166727242185760724, -8859072289987873964, -7821112919434789020, 558406059872965377, -652528105474834764, -6029896875260562574, 2091769615884194159, -216079402402926518, 887407835530247623, -4090364169749485345, -2641220401477988829, -7119863260277045123, -7186889934574275077, 1786346915042454610, -1034431575705158448, 2644876102600825848, 8628759535217154371, -5076435861824768815, 5595534221719835067, 6278270011273397462, -1987507060144813825, -4918793481045561857, -8270154588131917026, -8468046916149675701, 7176601854751293210, 56669650886358090, -3166866242311034523, 8564531909892678053, -8455196864544157950, -7257596480926253873, 6959408330130435752, 3028838432902894936, 4424195858928857704, 6121497124194972504, -5469042773842318014, 2159359821694864340, -5947113653447376879, -1257220895728861725, 1392685009302569024, 7648830520509108133, -7371898747435017516, -845894640102415955, 8686498035411426229, 5985907670960414557, -7006168817797129900, 5479137187044139679, 4647241554359727919, -7056835850526619003, -6083660857753840170, -8047496266502346341, -7226197892441689165, 741327366913048535, -3711828024047014264, 3862158898379466077, 449693655808431935, -4882540886884501973, -7383637210504776854, 620553667069897427, -6713481484814371951, -7543587771860356019, 810524291612691607, -3659121362368402512, -5595441051298399244, 8088291422822166417, -6303984734444135248, -678233978165917904, 3617704513102699155, -5352941627192876325, -5816949687022080463, -9169168096039126102, 7975547379037659726, 4623395118382308799, 2509276746373528458, 5235508280732183917, -8712780009966718399, -7712552639387445993, 6759061446299827503, 9164297432474703925, -1110357104587476086, 1829423683580763459, -3799180270173028795, 8306026342220315310, -2726954641281485486, -1863888117327900205, -402316169456308966, 3744050168945036153, 4528951249037614908, 4258594066663919620, -3980786014056604956, -6634679619236991963, -4774774115148739666, -1688262812036369479, -3034548033917499658, -5071122385621078715, 1588376700080465528, -7759058167839367430, -4775874273596731934, 3221595815258590133, -6828959650403546499, 4346943720922699157, 4928547898720269926, -8589044593817257493, -5081781874907419607, 951694801960191091, -4667459908101512289, 4206977884410966721, -5197565432654930036, 3326560315392948439, -5878101577814599326, -8546474537134600654, 4309823164209170224, -3850248640668593914, 8681749283296418130, 4990534815930281841, -7750801661905292077, -3291032507257295915, 6665735555297233110, 7050489721279484184, 4317248664266774559, 9186786829891405296, 4166168050877046636, 7493753755601945303, 6899283068593432141, -5031904746579415020, 2565085644824379929, 3944502551732855469, 2189710644855030524, 2255493561976705206, 271365360135379886, 4294982312243112084, -5660229707439867961, 800423085895901894, 8347122627753775462, 6822896499937221573, -7651490681616894, -5297285646106039108, 1608114244844304377, 5839483976720836889, 8241560863719005179, -4129441230004651128, 3479615647121648386, -3074954311106453268, -3412316248640445049, 1216386815926349358, 2626756706523947064, 7368591831166517715, -1142163371321856898, -372851778878484647, 5995055175251528039, 5499555783411494776, 2016478622954748816, 1279886563391834469, 5165391760856510060, 734258640138801802, -7445758287171966471, 5839000974438980820, -5125341234978471209, 121392944104683131, 6179055483354016942, 9063275686698059196, 1720815667965783260, -2090747494244625688, -7864214085579409526, 6028043825066031897, -870947118366293771, 7376428769075962994, 1893490138897624353, -2886384328350744909, 5229519170995839908, 3782678275042073308, 8444457277148000247, 7575393971659806405, -5934742581324588974, -957376746896582101, -1823443228678068953, -7406349357662140793, -7066353634914162328, -932893465250817358, -6158979365981425485, -3999272364858205076, 4376092228086515820, 2513046484924596765, 1682565735361783149, 6869702267679149853, 3598461422649849004, 6721690358813739611, -5015414950752771986, 5196130127330595784, -8263471740181652146, 5701551820088369908, 4253014790918207382, 2681305943933975380, -802509536169972911, -2921706024223960837, -9084398191436379512, -7519519527403626152, 3410883059237029545, 2095075860303886315, 7914139912546804769, -8370416930809779762, -7044648509550560506, -4902792417226064745, 8930318598773654893, -8039939177580969146, 7860061109504978153, 419124991549078423, 52439998177737723, 76668279870828606, 2400418361498442757, -6792499803763550020, 3154574853391034842, 7821968058100120318, 3866940609041914244, -2451342656371401396, 6905559753998185538, 6642467155099476743, 9184008300019616920, -2170183067760494195, -1717224464730633452, 5546156896245179429, -2017194334177493538, 5813836834777993870, -5037970301511180119, -6283363831235414834, -2112512675648312385, 491800089892071944, 1091841107193066408, 8220715112944896727, -4061073684265419648, -6814505748970986107, 8035167421124665899, 4919021796047562901, -8884884164310583259, 6153891825926211445, 4869639300001698143, 3837324736330986571, -1644424597952783500, -6432957171918516733, -3788559728040549625, -9017234204035095885, 7974176819879521382, 8518789095085259635, -3908843812016366962, 6951099628380613842, -8130281757214184420, 697619035660462877, -5347667485898134831, -7870811613775178028, -6511218273726014463, -333041748521768769, 5107911109826800955, 3300477209814784624, -1708767489614571672, 1525551322408592196, 9080360653706424402, -6708214637440210952, -8631288433031181655, 2969113138124740044, -6647892099329100204, -6988290737149534654, 7213791800550484241, -3515983215941949272, 2776751762191199071, 4071933170036566928, -4265187988772916685, -2837771298453665817, -3090388734688474776, 5082944286075818548, 609755467484712029, 4072847486654097862, 8529301158860902869, 946912055446259682, -2248520461543232716, 5002603540450016650, -7275890548477817354, 1780246636470144442, -269706394334676566, -8177505231864803521, -4808125464463073144, 3775199331707802161, 2135641040248441133, -6436387871891641508, -7300737480287384013, -3360643109416540838, -8725466580297208946, 352291131791977996, 8394782611214630132, 17475987862371471, -4488499446877241684, 6767262301426119887, -2769737041134652019, -3193753686399895142, 7241778878096412757, 7797099283865407968, -2671749878988612917, 4696277170143113298, -5423752625035881763, -670732946661190647, -5711362811761083541, 4199832504691110757, -8677080819421441869, 3205643745224196359, 543646793087604365, -6804492024407055184, -848262837790928773, 387374760481732684, -9059158253510589576, -5856801177533266560, -7432011656959400529, 2198315888507745377, -7784997841364446485, 5347278335471818322, -6869526283408290890, 1352984110104423676, 6604074908186486860, 3540137177162802697, 1016927313450879985, 4071162570240874321, -5551488416681382753, -1504833906763233366, -5197958147423262666, -195819750883991358, -3945019213013735347, 6902249401976467405, -8912844306838907648, 4722491225058563626, 8140893302518733651, -5690073294438117370, -5969694801694774088, 7487125160865276118, 3007343065818503767, -2137534930747931929, 2809569435246364642, -4144004208315175629, 5255075717374606982, 7626373563000023350, 8149042251253369001, -8408446547381679894, 1486032901530289193, 4064054887282446575, 1589944372692791144, 6449119204549353091, -8068500293077637628, -4352463204946506034, 2337319196167003851, 4645391736645529886, 2010913571168295586, 1067508280099262661, -6129726247014324152, -611394079563159886, 2374062997617988521, 2762859988315805754, 4077923914156429843, -9041689727396256791, 8413929943723227620, 2773700164543912806, -3519424763423213991, 3151293449748791827, 5483423829303258017, -5946703767041794347, -6685640504011780936, 7701491958403800059, -3979073630416352084, 1302223521793369618, -4739375335957240500, 1273557423668894202, -8157791041761503052, -1958803071486003789, 7995561814538810256, 6436799742219583197, -5386107234107497189, 1105429829723289433, 5041979046245310635, 2772779352725880615, 6104391435732090158, 509237612818462766, -8907837183171812543, 8961506241364999076, 8373135239934695333, 7751397787702975214, -7720289196893704743, -5554204491061059859, -8487390470244497973, 2351786434290874202, -2862041859356855047, -6701648002700596727, -4990806288016181990, 5702555028297223797, -7412013855987842169, 646706808393679723, 2860990118563046086, 7347537387001437151, 6617834339254038549, -4724711214635521652, 6892741295472734065, -6093187166351286471, 7856072582143761513, -4312704304396901639, 5815988893927131312, -9010852855013400179, -709193276924158629, 8842697574196472282, 7172961009424657280, -3086117591933807359, 280668548915001621, 5623299142074972937, 6672160606420637960, 7754570087534551249, 4152353032828795027, 7269286384995548933, -6251412664921890878, 5732127079576970324, 7234424551899679503, -3642728981546782033, -3638300185011093242, 758429305061830090, 6807454373907029375, -2407746269258439538, 4041466388407032509, 4412608899209555624, -3826881076377531812, 8863453888803774091, -7624394860603430636, -8586227141178724702, -8333849234994046518, 5466525086493196113, 8976129229655792662, -6761513090258468865, 2757033529591673069, 2729369021924837617, -5342219263217653521, -3682680090127880756, -4024262810569674934, 5734119662788048810, 7267386939198869053, -5732042765175834343, 8098289276583123084, 5528374394051795198, -8832084056016214993, 918234824385712530, 676970414934466709, -5794527027417515112, 7833682562510519926, 27750847269835893, -2141504133172325665, -393870739762170378, 6628987571319571919, 3042161428414889656, 8319098477369136797, 3714381407608491489, 6871028708069796695, -9116209644422794377, -898115304925379815, -6100921916446089973, 2407259165779504625, -7824595574994867809, -7812941900040155346, -3874610317902165720, -383060374023677741, 2565489144529271919, -2775667212831852387, -8490494758318716088, -5768969488081270158, -4163725029626196551, 425158554688666490, 236621108823379185, 5592527110007246515, 2250712273533240792, -6996902570942094740, -4316193418261480778, -423017690736900269, 6499561801793623752, 5999756229412561116, 2122709403244307390, -6614237089257075273, -4438754439933732943, 7755990109693945275, -3828302258654058750, -4536174171928321428, -294446715323926202, 935637585377645959, 2493495210256659688, -7065985576821599091, 4771064322299072228, -8324047390232687097, -6214767548469241356, 661838500088622926, -5496419443662109009, 1769360504705134935, 8594133951145052917, 1919665994205776303, -2829008152524712179, -3534926825330291593, -5392109943851106148, -9174936343936187588, 431831984523785014, -3478733297737652068, 3625098395866689397, -2265434394587802483, 1898173869432619635, 3905980956606711904, 4899181388449222978, -8560503291870850826, 2442336170526152937, 4758854970978333179, 2576950350674509603, -3159727556622278707, 6463385243237218927, -4244656898675278709, -3639733836666543106, 5150557251574321755, -1847330250029237854, 7990644495793807288, -4844220065225521206, 5669665901579369390, -8516756017270853386, -2163641417216885795, -419690911529103853, 8389050361839906714, -4755603407177446434, -3628876977205345798, 6346120274506356620, 2897382412678952073, 2892018529361149983, -3105945328483409777, 397471260119955477, -5924914980966965208, 3259916578022711299, 3584107160451422225, 7335984245174911695, -740299529193763425, -1132793386238322552, -8882624640591065694, -3132393138391844276, 5819861013084344169, -7875274867444632753, 8187945432875751521, 2367121363901039734, 5703419689657841727, 4107383082803893848, 4567302762139612814, 4413573636895389667, -7908655157105234973, 6012542666924997773, 1543290098636558500, 1167829086925604611, 2777803534220614400, 5402112821476681615, 7508255472390188504, 4371085781904923839, 1633853775080032376, -3977888499508807807, -3454635082436672696, -5633966314565017765, -8027628515978432555, 3204939451242551097, -1194334364385733269, 4715733242512836960, -2424390587904992168, -8598491278835370190, -909646813366796865, -6282299275378582741, 1091786653924799826, -7151604730926028, -1952001457689034822, 6594682270311865613, 5297253419387719327, 7174384514581700900, 4179089671585649194, -1438112379026769819, 5863458219802778896, -6258500577607877153, -3191184177787625636, 5247643985080738052, -4249605461827630928, 848024707032423852, 2578176992048298935, 4277106059776803841, 1027307997622416172, -2034184717655156741, -4032075691921298833, -1725223926910214795, -8355218558445840600, -807432826419964742, -8691053822978844932, 5190610597372914740, -5685703413827560197, 1201444270328420824, -8573622742179143460, -5120225676224448990, -5713210850430827610, -4407146778693477095, 6616043013230938178, -455203650113225090, 1257217750953438197, 7038774887541165092, -7978022942807666493, -6027283969716886506, 2039426148959366399, 2349300899242575287, 412136285666780739, 6737962169699689176, 5396043023802829490, -7375578319123588090, 848689289605827984, -8962743046285584688, -4978454835941389091, -6810534590182341273, -7904631394849341310, 4986473973338859037, -5186820242653188418, 5733494837941841739, 220945504840061108, -6134138428611997085, 1839281472386260502, -3959944160474481058, -3734459438928472268, 3721194299693987183, 6767703249986874259, 2045991906683057358, -8742954565638258573, 2420326502842248753, -367492685541062268, 4355219222598868416, 8572842933899504804, -3701739195979978554, -7764549138235732147, -8598925157129974153, -1207019761626072373, -4766444500353057904, -7001982766296723356, -2193148807691074317, 2257290521599354392, 8810412979742623813, 8490414288126231798, 5852946775791635490, -4580603465805866303, -2205977094397869034, 246619722621583797, 8701711500730861947, -5723159815829278387, 2413055362373823891, 4026630626738278077, 626257627860460242, 2574073136387432412, 1225984626747539527, 4932610320264372136, 5801172410851190171, 7046043975985485604, 6725048163205005162, -7576705462287398067, -2531652356020173951, 6390475535474516267, 7954408693665804646, 1212769581897394400, 6930146611691842308, 3315566551407884820, -1691904946575510235, 2663199435933348098, 6910705755054739103, -1445154807745938237, -1305866680652390683, -4123655378022181618, -8064221424814919501, 7446614750020132187, -5068110728266677912, -2030505626005615587, 2000339047753778091, 8498499418863079418, 293614270927881287, -7692468401008699966, -3672609321985504948, -7142451754177878046, -2896478347708996217, 8782220829960750497, 6479357669621747111, 1193728541266948796, 2292573676038833952, -8855412556553540266, 317468215313058893, -2724448286275139831, -4850615461204879897, -864740314491768661, -2490524393871915862, -5497905834125156430, -8861963624388260436, -897462606730994032, -400305460423163334, -82260487316074112, 2335306980672653822, 7810394748744828878, -1713283213271910906, 2687818835146282560, 6112149537489265528, -7705775471756675233, -6212557483975450875, 3316513936364892531, -2247846567664673941, -6242171865364499591, 1864513425979011482, 1142454994086149910, 3839287919838368040, 506402678586865400, 7148330854725749930, -1563308216343959635, -5964480677519945158, -280002382744552497, 5866510398096934772, -4453231543043354473, -7773402607793519054, -3834638464799366814, -3278979331036933950, 3772051427216111937, 1707017430062992775, -102267837227575076, 4184520795854560136, 7597254842510533611, -8279104207355801361, 600209822568521256, -3193350568000648133, -7833434008084958161, 5377254431830388749, 6469619144829771684, 6052343019477107280, 245305866791464031, 5924851661031465757, 3055811671924051893, -7757673726764291611, 5425488801254271646, -1230513747359704646, -8856055219109968322, -4731754271270239734, -3264856159650276367, 8368480760176687700, 8143173203566375840, -1210747890098141143, 5295731456734954614, -7498167121192897541, -3428045625716315797, -4791314006867460823, 2948723375377110370, -3810064731319107123, -9202716795541515555, 6148653665839630204, 2848560055796753936, 1954069631098137796, 4697862255330998161, -193476793171573000, 9194232325669679334, 2656267557937312535, 784853794420870025, -624555491147103224, -8631140942763948473, -2331918944750595202, 6315237728705772778, 2538347749394059355, 7413989927117471885, -3517357964246821289, 5421999950889627853, -6721616076848566230, -6069691543165016804, -2059672142945104532, -1276872363769808299, -2332106662160828140, -9190658909128292389, 998308533634505219, 8907745002351060091, 9115911785525303560, -5194650919107828434, -9003424612543715863, -3769760580289899712, 7344040885552774285, -1843874887890373545, -2979057855708079246, 3927517266022277004, -6833174667206608458, 7205558902237879956, -7422227807001150653, 2892291292690035479, 1284760228866985595, 1579008536286502803, -8186844164684197837, -3187052903249540562, 8095458229268227600, -942456947636162847, -197259298036992424, 5750027500961963107, -8780627866791874144, 4516587109721854134, -6756980873638829294, 6089727200252654253, 6090966007180500784, 6469485832367150258, 3727493373269336793, 6291666731217101540, -7084732212740878330, -7903055913758755665, 4891022811619987916, -8624979534479996969, -3150803291726511210, 2623467983448099462, -7840898703047755463, 959779825982640998, -4501449511014022632, 8158799952216643156, 6178308647687332151, 3246276148886561759, -4425465515852070203, 1247832115472580356, -7050642510907647091, 1732161476419586910, -4164009650339589679, 7901878537714761394, 4178886057429322163, 7443735283409136954, 3014006097182656664, -8798335101393201203, -5618885033101121558, -569071355841480030, 1465565160996165613, 835907336590737450, 1257219254618299668, 2609819195336490748, 8938460768518194998, 1062342481094570886, -4375128033036425666, -404853979334087511, -1834092297765356110, -3519968044035730035, 342399303427600858, -2532143186992956190, -1777167417949977190, -4568326529056220102, -3304778777115413905, 5811787797216829954, -8020456284040308452, -3042194865030802631, -6446259211561084653, 4438782287801714457, 2161950337870754038, -1710982377937381651, 3293767809639986307, -8498661003156499972, 2778304605465959957, 4396759401194328589, 5809309630589945276, -3761311896714212621, 3342130357882968747, -793660217799580436, 2646163611383045898, -2416033543020295149, -6095464533266716295, 1769382373075867919, 5769921217545593205, -2763147873675394053, -1414369372293739819, 552238703840022885, 3971959281509960737, 5871938996071876746, 9144138102870479074, -7051583752714084284, 7997594892977403594, 6973237725993655918, 6759721585491969005, -8474802266062078918, 6556741587070699944, 1797176452359594013, 6068615299846548272, 6190047022681470000, 8025324066560663415, -6635968656501651102, -4801756026236962503, -2019199295183210468, -3662481029228087433, -4145069547545433261, -3049242395576128771, 4037435087481423908, 8741081107921224099, -4245153772169063194, 4568953288012583293, 7712589346562801891, -3215613063795247515, -8858591175844031521, -2087790524802605170, 1417733501490955314, -9063725495583630514, -655483526137291502, -1191912813457342762, 7566687464776014044, -8141381772450745660, -4279904944725432103, 6315788478946072243, 7002063045159257489, -6590365664777896890, -4679403751815604977, 8714069546965743554, 309533184730636769, 4316355607870589378, -8249109378692746867, -4536319397565701860, -3305013732482176309, 2701230281724653072, 2915853436366935644, -5927461005461889274, -5702708199784995265, -6433065803429162631, -4180970319895671172, 4849896012027919472, -5561528520719418585, 9123566069177685279, 622220666159857096, -708782930522252335, 5707712868431236809, 5313827561404790193, -5799394264768564243, -1774362590765209798, -6918953997843796104, -1980381867595314801, 1327414459290737935, 5553240067124633984, -6296091561738456701, 145974771717445135, -8724843072185840624, 37791342206206222, -4696476260914498163, -4576914265385553592, 5910120660565540139, -5970819293263084113, -595010541964357447, -3312166820520539819, 2138938008172669579, 1754706572008805133, 5509391222621898877, -5305407397355808074, -4612573236316801425, -788151160991829846, 3475822491801193714, 7334847274467493432, -2738273231885091334, -1394144455222408656, 8445783368824786530, 1090934155240864175, 3666668840304884557, -7481508096164382026, 5809539258269464286])), 42), 42)),) julia> @finch_code begin Ct .= 0 for k = parallel(_) @@ -891,7 +891,7 @@ quote Ct_lvl_2_locks[idx] = make_lock(eltype(Vector{Base.Threads.SpinLock})) end Finch.resize_if_smaller!(Ct_lvl_3_val, pos_stop) - Finch.fill_range!(Ct_lvl_3_val, 0.0, 1, pos_stop) + Finch.fill_range!(Ct_lvl_3_val, 0, 1, pos_stop) locksArray = Ct_lvl_2_locks Ct_lvl_2_locks = moveto(Ct_lvl_2_locks, CPU(Threads.nthreads())) val = Ct_lvl_3_val @@ -1372,7 +1372,7 @@ quote qos_2 = qos * A_lvl.shape[1] resize!(locksArray, qos_2) resize!(val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}((AtomicLevel){Vector{Base.Threads.SpinLock}, ElementLevel{0.0, Float64, Int64, Vector{Float64}}}(Ct_lvl_4, locksArray), A_lvl.shape[1]), B_lvl.shape[2])),) + (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}((AtomicLevel){Vector{Base.Threads.SpinLock}, ElementLevel{0, Int64, Int64, Vector{Int64}}}(Ct_lvl_4, locksArray), A_lvl.shape[1]), B_lvl.shape[2])),) end julia> @finch begin Ct .= 0 @@ -1384,5 +1384,5 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Atomic([Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0)], Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.0, 0.5960995400087008, 0.0, 0.0, 0.46121971296621317, 0.0, 0.1341136169173934, 0.0, 0.6613178775714327, 0.0, 0.0, 0.0, 0.0, 0.31233701358881993, 0.0, 0.0, 0.0, 0.42428295532646376, 0.0, 0.04433289125435014, 0.1771852692198303, 0.0, 0.2102135380786222, 0.0, 0.29289346791587945, 0.1864042064610544, 0.1847622901670141, 0.0047837035165779595, 0.7809783797805827, 0.24637196495074015, 0.0, 0.5657923421369488, 0.2611932808057722, 0.0, 1.1390711256090715, 0.0, 0.0, 0.15310516154880033, 0.0, 0.536745361655064, 0.11084632541017801, 0.24887017850829343, 0.6316463638637531, 1.4711963896826616, 0.6112779722436283, 0.5079606239011155, 0.15942216163041661, 0.21541936537958353, 0.10295208772558359, 0.0, 1.3699774598840704, 0.6364841478802473, 0.38335626793892197, 0.0, 0.2992892574327959, 0.10527060545292, 0.0, 0.0, 0.7485372018432481, 0.2715216678914851, 0.2667902419370478, 0.0, 0.5814665590695893, 0.051682188310845374, 0.0, 0.0, 0.3934310017151073, 0.0, 0.0, 0.5957893409486428, 0.3316317367913752, 0.9200295815926001, 0.0, 0.0, 0.6623087915165122, 0.0, 1.5766760492233103, 0.0, 0.0, 0.3039866668414091, 0.0, 0.024309812685391816, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14306886144088826, 0.0, 0.0, 0.0, 0.13834293702511197, 0.0, 0.0, 0.0, 0.07697281314241891, 0.0, 0.13882210022663904, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11718373909917448, 0.05171175921797154, 0.0, 0.0, 0.047041804166349496, 0.0, 0.0, 0.0, 0.21780680053585874, 0.005280433697773762, 0.0, 0.01227888835211436, 0.1637490848480197, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.405774970647805, 0.2291279765469989, 1.2574751546051093, 0.5180330897538964, 0.48968357404421875, 0.5301529810315024, 0.0, 0.0, 0.0, 0.8112619638066929, 0.0, 0.7833417149382808, 0.0, 0.0, 0.11442625626708748, 0.11485555134200548, 0.22833033865638044, 0.0, 0.0, 0.0, 0.0, 0.2864165259642358, 0.16027108725841735, 0.0, 0.09011936406874124, 0.4181806897076036, 0.0, 1.0569606821068054, 0.624691204995156, 0.7081544908696379, 0.0, 0.8795184016973986, 0.0, 0.0, 0.021853263477242018, 0.11238129351491766, 0.0, 0.0, 0.045824320207715985, 0.0, 0.196064039018767, 0.0, 0.07081867255234689, 0.0, 0.0407459744321428, 0.0, 0.09807635051343538, 0.010124069007427254, 0.0, 0.0, 0.0, 0.0, 0.6116811031756639, 0.0, 0.0, 0.6208028352439049, 0.0, 0.17504030998808598, 0.020658826838531718, 0.719367580349619, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.015728258754898257, 0.07298380500117611, 0.0, 0.06012022906808051, 0.0, 0.0, 0.5330380962469254, 0.02965305516643559, 0.0, 0.18001272855172004, 0.035235037447174065, 0.0, 0.01349449214577584, 0.0, 0.0, 0.0, 0.2359915438569738, 0.03810280561257924, 0.0, 0.0, 0.0, 0.3884686133510988, 0.0, 0.0, 0.21968925488132546, 0.0, 0.0, 0.4324936557273746, 0.0, 0.6879094987723802, 0.0, 0.0, 0.0, 0.0, 0.7898693359448322, 0.0, 0.5391987426673219, 0.25853076675450826, 0.0, 0.38031280775654097, 0.0, 0.3853638210122371, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.2217547802058863, 0.05709933484072306, 0.0, 0.0, 0.8484028226584724, 0.23257686384566284, 0.0, 0.0, 1.258622241947537, 0.0, 0.0, 0.11665876134553779, 0.3184837856872295, 0.7880482843371591, 0.0, 0.0, 0.0, 0.0, 0.23284042288536255, 0.0, 0.3804712136528319, 1.113036382623302, 0.8298038026635118, 0.0, 0.0, 0.0, 0.0, 0.0, 0.020690565683442904, 0.2610758590649183, 0.0, 0.0, 0.06193402719103672, 0.024569168683420507, 0.6450876041294853, 0.0, 0.5615893961519662, 0.0, 0.5487968919612313, 0.0, 0.6425734859953806, 0.0, 0.2979704099021757, 0.323777504790907, 0.66722521578591, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4069961680965457, 0.7713681046585987, 0.3594743508741288, 0.8852608548606914, 0.0, 0.0, 0.0, 0.0, 0.017250929899566992, 0.05738201561649353, 0.0, 0.040237899717394485, 0.8673210549972237, 0.0, 0.0, 0.7245534868749944, 0.0, 0.16727086778943756, 0.0, 0.0, 0.0, 0.0, 0.29250184542509544, 0.0, 0.0, 0.06729223300830636, 0.0, 0.3824979967457689, 0.0, 0.23769547992450338, 0.825352628558087, 0.5791520520364314, 0.0, 0.0, 0.6822104427959106, 0.5410434317660799, 0.0, 1.0013182252763115, 0.0, 0.0, 0.03410163433510291, 0.0, 0.38656596036997387, 0.673387919520239, 0.0, 0.0, 0.0, 0.06524513264320482, 0.3778876017229726, 0.0, 0.3042658440871357, 0.03546389486517897, 0.0, 0.3811330360259428, 0.09125614750074176, 0.38639776526497555, 0.0, 0.7956019813194058, 0.17107520161825185, 0.2528672125099372, 0.0, 0.0, 0.0, 0.0, 0.3715122812201797, 0.0, 0.0, 0.0, 0.8636878110328885, 0.3725673215613031, 0.19161493799862908, 0.2947877363978017, 0.8277903198901483, 1.043787991594994, 0.4556846854932056, 0.018960059119328472, 0.0, 0.8179077818243863, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16243732090346746, 0.0, 0.0934593474548136, 0.26288293993414813, 0.0, 0.6986592631730956, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.23290649501046135, 0.0, 0.0, 0.0, 0.0749770448177764, 0.0, 0.0, 0.5829804395566012, 0.0, 0.08903205884730546, 0.036076025185782915, 0.16740350145604724, 0.0, 0.13789822076519753, 0.0, 0.0, 0.0, 0.7803684622045182, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1343991941662123, 0.0, 0.0, 0.1265714212875754, 0.580645942127824, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4164388584828146, 0.0, 0.6383936083527437, 0.0, 0.0, 0.0, 0.0, 0.18608051379305826, 0.0, 0.04744673193981907, 0.0, 0.0, 0.0, 0.0, 0.3666656532257351, 0.017984084638402044, 0.0, 0.0516031884810454, 0.11619024662048777, 0.5090994962453932, 0.1702286192926929, 0.017754543539629426, 0.11487736756877703, 0.0, 0.0, 0.0035637729173098607, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6218776818900951, 0.10343438219926053, 0.0, 0.016806683142264318, 0.019961035657552893, 0.0, 0.39238409513228256, 0.22883526349683764, 0.0, 0.02328369860187438, 0.02966268912006465, 0.0, 0.0, 0.0, 0.08243560528569996, 0.6624744276069285, 0.0, 0.10804564627221094, 0.0, 0.0, 0.0, 0.0, 0.0, 0.272827698328812, 0.0, 0.0, 0.0, 0.10351845069306231, 0.022056761782947687, 0.04806113374409372, 1.421033050846094, 0.09272463621214155, 0.32902390084105787, 0.5088305985866386, 0.09822819388787048, 0.0, 0.0, 0.0965876885856362, 0.0, 0.0, 0.18492863169572316, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13526587090401476, 0.0, 0.022328727233527985, 0.0999580342692439, 0.0, 0.0, 0.09557781244125038, 0.13831210655132378, 0.0, 0.0, 0.1791768991068296, 0.16163641825142586, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.42053340750746143, 0.0, 0.10552005335412863, 0.0, 0.0, 0.16311354370934733, 0.0, 0.2824114978735204, 0.0, 0.0, 0.43639300384810376, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1671480967875291, 0.644888932873856, 0.3129032598040877, 0.48675890221085816, 0.17823949364009248, 0.1415399106044285, 0.18516682441734925, 0.5312977885248659, 0.07587099582542241, 0.0, 0.0, 0.6986300116510127, 0.0, 0.0, 0.7938925894205694, 0.36599606323996975, 0.26363118368222405, 0.2342915285475447, 0.0, 0.1869965760541939, 0.1160920939359052, 0.38732669798663727, 0.0, 0.1313693926537813, 0.14845591773543332, 0.0, 0.0, 0.5636663205749514, 0.0, 0.0, 1.5099082548197433, 0.12877106200933913, 0.12876355501777378, 0.4806583412843819, 0.8527242204514415, 0.2611825233475998, 0.2169329303973436, 0.0, 0.19905771354664345, 0.0, 0.3188159099664727, 0.0, 0.49573252746154944, 0.5909004107452918, 0.44608316126371567, 0.9987235012950566, 0.0, 0.0, 0.06543436335390052, 0.0, 0.0, 0.0, 0.7452854681453724, 0.940549219662451, 0.32866688095435376, 0.0, 0.04977979297413422, 0.0, 0.15266515341831127, 0.0, 0.0, 0.8226750512812447, 0.0, 0.0, 0.2520932611368793, 0.32856303804715215, 0.1846788611041856, 0.6288326287259721, 0.15594781886009731, 0.0, 0.0, 0.39056006775570395, 0.2454733448499023, 0.0, 0.1875080652559859, 0.0, 0.0, 0.0, 0.4604079993134017, 0.0, 0.0, 0.0, 0.0, 0.11979185177691755, 0.14227491555369362, 0.0, 0.09024327543210102, 0.648783267363574, 0.0, 0.0, 0.0, 0.5408163510237757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5311068240495873, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5314003925728801, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02394551122470378, 0.0, 0.0, 0.0, 0.12486249633500378, 0.0, 0.0, 0.05765112857402609, 0.0, 0.14315109316509972, 0.05676601866921535, 0.0, 0.6434826644263494, 0.0, 0.14460219857592263, 0.0, 0.0, 0.10860788610026072, 0.0, 0.04705670771446048, 0.4709967737248388, 0.0, 0.0, 0.13612521976378897, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.130371257969619, 0.0, 0.11349639269154894, 0.0, 0.11804878144850195, 0.3189646877579158, 0.0, 0.0, 0.0, 0.0, 0.1348452367929846, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1550934497155318, 0.13060726382480906, 0.0, 0.0, 0.232086697214264, 0.0, 0.14806165017632722, 0.0, 0.23898925029638524, 0.0, 0.0, 0.23731337239548533, 0.0, 0.10980801230053783, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19058666211884384, 0.0, 0.1810493697276433, 0.0, 0.0, 0.27986722280655724, 0.06847318480810846, 0.0, 0.026224205266550244, 0.0, 0.0, 0.0, 0.07178447214794542, 0.0, 0.0, 0.0, 0.0, 0.04423801290959719, 0.4450997362670805, 0.0, 0.0, 0.0, 0.014396013780263936, 0.0, 0.0, 0.08159130602818511, 0.28786198512647176, 0.0, 0.0, 0.0, 0.15886186536955227, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03988435480164781, 0.0, 0.03472184333660239, 0.15861587093052232, 0.03393091079863592, 0.0, 0.0, 0.0, 0.1458998203965446, 0.0, 0.2746045410027491, 0.0, 0.08937012005405864, 0.0, 0.0, 0.0, 0.0, 0.4360685101718207, 0.0, 0.0, 0.12479631040323635, 0.1679293189285873, 0.33750713984681247, 0.0, 0.38279076464536926, 0.0, 0.39766804122994015, 0.0, 0.0, 0.0, 0.0, 0.37584745957186994, 0.0, 0.0, 0.0, 0.0, 0.0034663505048984434, 0.0, 0.0, 0.0, 0.24932174401673268, 0.8269366380921026, 0.058350744167210526, 0.2821315817160027, 0.01073228148503296, 0.0, 0.0, 0.5523198324520332, 0.0, 0.0, 0.0, 0.2765513539344097, 0.2765352317665175, 0.0, 0.0, 0.0, 0.16196672196012962, 0.0, 0.0, 0.23047763471347846, 0.0, 0.4983211934020315, 0.0, 0.0, 0.0, 0.0, 0.08410733405320571, 0.0, 0.0, 0.38342855882543897, 0.031078189534518876, 0.0, 0.0, 0.07997079449394401, 0.0, 0.0, 0.0, 0.14991888400189204, 0.0, 0.0, 0.0, 0.2539339452562683, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005527553201922959, 0.24701032777367607, 0.3818735212726353, 0.0, 0.0, 0.3141045412174539, 0.4613820899583969, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7846194794668536, 0.0, 0.0, 0.2023929406035883, 0.5525420395033789, 0.0, 0.0, 0.0, 0.18332122951817006, 0.0, 0.0, 0.0, 0.6600849079661362, 0.0, 0.271071887942947, 0.6931869379662654, 0.0, 0.19544958497754947, 0.0, 0.0, 0.23106411956503142, 0.04163915085675471, 0.0, 0.2740671699579846, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5951890435738816, 0.0, 0.0, 0.5617261879013651, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.648112900028134, 0.0, 0.2097693617911403, 0.23188027210282897, 0.6330438111437964, 0.515238068631253, 0.8059496022277759, 0.0, 0.3600721428836477, 0.0, 0.37406645349624035, 0.43324551668887895, 0.7562549741789008, 0.0, 0.46837434729653293, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.23452450510075076, 0.0, 0.0, 0.26538707979997495, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9037040684567715, 0.2601228730720389, 0.0, 0.0, 0.0, 0.3385307797226737, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6960140675899867, 0.0, 0.0, 0.0, 0.34167761524179585, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.47179884257042837, 0.0, 0.5873339130881751, 0.07760784608974701, 0.0, 0.5108116353650718, 0.0, 0.23018263458044896, 0.0, 0.0, 0.0, 0.6389281667373347, 0.0, 0.0, 0.0, 0.6317086674243048, 0.5424555939717753, 0.0, 0.019597125946055532, 0.0, 0.5067616269530796, 0.0, 0.0, 0.0, 0.0, 0.33135639687759366, 0.0, 0.11009229928191128, 0.0, 0.0, 0.0018449546833188399, 0.0, 0.1894047148704815, 0.0, 0.21786525780326826, 0.00027956067335572354, 0.0, 0.0, 0.00044372512905081096, 0.0, 0.0, 0.10913586880079368, 0.0, 0.0, 0.2387319450019063, 0.04302093934347575, 0.0, 0.28316204466710054, 0.0, 0.6259961005310473, 0.044339116197027774, 0.0, 0.0006891565473784903, 0.0, 0.0, 0.419692560541072, 0.00023711054076719368, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0009518757697360345, 0.0, 0.0, 0.0, 0.0, 0.04412247836479926, 0.33175278809136916, 0.1836910307282294, 0.43316264355459233, 0.0, 0.0, 0.0, 0.0, 0.6109591315701846, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7410212481907629, 0.09694039812399863, 0.0, 0.0, 0.04700242398333341, 0.0, 0.0, 0.15679640166544176, 0.0, 0.0, 0.008354862966629384, 0.8660916115221005, 0.12095883829401362, 0.0, 0.0, 0.13982615201680984, 0.0, 0.37030015075124356, 0.0, 0.10806680870328135, 0.2674021581377063, 0.0, 0.0, 0.43695074134110806, 0.0, 0.0, 0.0, 0.4193595253139995, 0.0, 0.0, 0.4223604117691241, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6519628347852473, 0.09593394582722056, 0.0, 1.2263197607192593, 0.0, 0.1420268730458006, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6547968394353947, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.015993676263376118, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0322501065968568, 0.0, 0.0, 0.0, 0.19977559392448785, 0.0, 0.0, 0.0, 0.13350148436716802, 0.05064120692385946, 0.0, 0.014278692130393579, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02476251362124448, 0.0, 0.0, 0.6971876314261916, 0.0, 0.32368749507325995, 0.0, 0.38665695047334026, 0.043481909227645874, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2863863682111852, 0.0, 0.0, 0.0, 0.0, 0.5166026604428106, 0.6135609292207037, 0.0, 1.390585308090751, 0.549724406362488, 0.0, 0.0, 0.0, 0.4946354029419938, 0.0, 0.0, 0.1817622353630416, 0.0, 0.0, 0.45001527975922945, 0.19067060021024376, 0.0, 0.0, 0.0, 0.0, 0.0, 0.45026402504954754, 0.09862023599471978, 0.0, 0.0, 0.08971409788917951, 0.0, 0.0, 0.0, 0.14718404588236259, 0.02028941343776962, 0.0, 0.0, 0.12879470754337072, 0.5384698277835859, 0.0493264459266498, 0.0, 0.6385356001321869, 0.0, 0.0, 0.0, 0.418599297830268, 0.0, 0.24084377286368372, 0.0, 0.0, 0.3927421561776119, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11479167979031016, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.287331205334526, 0.0, 0.0, 0.09296754420278937, 0.4313970938087158, 0.0, 0.3553622902870886, 0.0, 0.0, 0.0, 0.1752750739858479, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5721777681112366, 0.16584672881862064, 0.0, 0.0, 0.2750129568642962, 0.11193872117738499, 0.0, 0.694851503366924, 0.0, 0.11176089578249619, 0.03642730011196224, 0.46499012378889537, 0.0, 0.0, 0.10537656529716292, 0.2572556947482873, 0.11427779100841323, 0.4566419402676079, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31905429658438084, 0.4568943484348684, 0.0, 0.1009223375517615, 0.0, 0.08785925235754827, 0.2524568576131555, 0.5979718371844858, 0.0, 0.08718397040627182, 0.27019243222928785, 0.0, 0.2405201444721306, 0.11212903697332216, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12097427611620017, 0.7029459229987706, 0.2907862782736388, 0.0, 0.3020877732114353, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2423919969263556, 0.0, 0.5763734567059631, 0.0, 0.0, 0.0, 0.0, 0.6067232814043334, 0.18939678992121056, 0.0, 0.0, 0.21432072089475862, 0.0, 0.0, 0.0, 0.0, 0.5821831861883047, 0.0, 0.0, 0.210081711445218, 0.21006946427095974, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.030280314291377, 0.15413531598416644, 0.25247193164811527, 0.0, 0.0, 0.12848497078723173, 0.6000304051931176, 0.0, 0.0, 0.0, 0.0, 0.12617822046935606, 0.3320268939864614, 0.7056657766261163, 0.42848148251018003, 0.057345877924903164, 0.0, 0.3774481983482792, 0.12624796529690785, 0.1619902770277746, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005688878127237202, 0.38175135193372894, 0.1765840237536124, 0.0, 0.0, 0.3566318392645057, 0.0, 0.0, 0.0, 0.16683268933188872, 0.04345497812697982, 0.0, 0.492592677155673, 0.0, 0.0, 0.0, 0.0, 0.0831404672292756, 0.0, 0.0, 0.36055293254501974, 0.0, 0.4863131526725521, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005464010493446822, 0.24417078834728798, 0.0, 0.0, 0.22169348923343446, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11593686293818574, 0.0, 0.0, 0.0, 0.6095590933370347, 0.0, 0.2443761776038196, 0.0, 0.0, 0.0, 0.1960956643223869, 0.6074859425565672, 0.18650669482426485, 1.0378655385571516, 0.0, 0.17276762871577947, 0.6940099427692358, 0.0, 0.0, 0.32388236546386096, 0.0, 0.3977584774978917, 0.09850727254096922, 0.0, 0.09435872182534573, 0.32210695479773005, 0.0, 0.9450119024745318, 0.0, 0.7282651614947167, 0.795671006556338, 0.21972174528863647, 1.1800722708951874, 0.0, 0.15406122012703197, 0.23245444095199302, 0.0, 1.1450754137286316, 0.0, 0.0, 0.718432895790501, 0.0, 0.9074772544907516, 0.0, 0.0, 0.2150644825695137, 0.7387278090737696, 0.0, 0.49627306106648184, 0.6533650950107276, 0.0, 0.0, 0.0, 0.724606488987317, 0.701411910713477, 0.6206261403696766, 0.28804332377271413, 0.2959105186195655, 0.0, 0.6182919293124655, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.589003768060014, 0.0, 0.0, 0.08271977351575115, 0.0, 0.0, 0.0, 0.9105812282174285, 0.31789001879047846, 0.02411461886183569, 0.2829221743477605, 0.6706620073355701, 0.0, 0.1930731864260551, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06133637967837149, 0.6242346410782087, 0.6952909143002654, 0.3591573776849567, 0.0, 0.7449872409938767, 0.08923909973645693, 0.1173521535256719, 0.0, 0.0, 0.5729798828820618, 0.10656596459419354, 0.0, 0.1545328680391799, 0.27421690202209187, 0.0, 0.0, 0.3698254914307633, 0.5140663186573865, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13863750342668263, 0.6433193065819665, 0.0, 0.5299326895193157, 0.007712410329912944, 0.34464525874742236, 0.34174148456366615, 0.2613783001228934, 0.0, 0.0, 0.05371570560505797, 0.0, 0.02057231153731605, 0.0, 0.33150273239870404, 0.0, 0.0, 0.008405062468217761, 0.0, 0.34649855374487837, 0.298371589011109, 0.0, 0.1892535264101524, 0.0, 0.016081030317329964, 0.0, 0.0, 0.1306616194660838, 0.0, 0.0, 0.2714046321541056, 0.0, 0.0, 0.0, 0.024299507869495213, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16509417733903173, 0.0, 0.0, 0.1501849497452071, 0.1748418064456664, 0.0010568489849475794, 0.047227517247298824, 0.051672489777017716, 0.0, 0.11982535720931763, 0.0, 0.0, 0.2618551646604837, 0.0, 0.0, 0.12090296292900765, 0.0, 0.0, 0.44988696818935897, 0.0, 0.19121191419677455, 0.0, 0.0, 0.49693256130088725, 0.0, 0.0, 0.0, 0.5670859092292977, 0.0, 0.0, 0.0, 0.5653233896265278, 0.0, 0.0, 0.18955075438556615, 0.050614759394524644, 0.0, 0.0, 0.0, 0.0, 0.6124985176197848, 0.02840624719573524, 0.0, 0.0, 0.6585018821667253, 0.0, 0.669914086084765, 0.0, 0.4435524229524026, 0.0, 0.0, 0.24959071834233698, 0.6741825496608898, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15847771480322562, 0.0, 0.0, 0.0, 0.11420329312106789, 0.3695819846260272, 0.18933569121558752, 0.0, 0.0, 0.0, 0.02103165349726233, 0.2655614054905834, 0.0, 0.8117959138331444, 0.0, 0.3439446042563599, 0.0, 0.0, 0.1019714241481598, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13231107356042507, 0.0, 0.07339739754334103, 0.13018370224494802, 0.03407665122672999, 0.2789846158904475, 0.0, 0.04141177300212955, 0.0, 0.21059108800059795, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14821858886776432, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.45102261330920507, 0.05046558139935084, 0.0, 0.12130428936757616, 0.0, 0.12601881654664268, 0.003171787898412092, 0.00527620372181328, 0.0, 0.0, 0.013576794847610305, 0.0, 0.0, 0.0, 0.025452015886005885, 0.4384052118279088, 0.0, 0.0, 0.0, 0.0790086903216001, 0.15275039095222206, 0.0, 0.08940594755444543, 0.0, 0.0, 0.003492578790207725, 0.0, 0.5882017770828334, 0.0, 0.0, 0.14092784541391168, 0.7983017352473682, 0.0, 0.0, 0.0, 0.1117819777173795, 0.0, 0.0, 0.03862278430066002, 0.1785535098526168, 0.4378163685245537, 0.21613953941654523, 0.8670541670659706, 0.30872969047516546, 0.0, 0.073895246778613, 0.0, 0.0, 0.8448370570321526, 0.006826318289568987, 0.24453895548705643, 0.0, 0.6685102691932127, 0.0, 0.0, 0.07127880649817865, 0.032929653726359844, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.018587651907083814, 0.0, 0.19986879579794362, 0.2170189952300144, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2805164076738779, 0.0])), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Atomic([Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0)], Element{0, Int64, Int64}([-311528392542676525, 3802864504850227773, 7132563740294941325, -7734229606977869371, 4610816547292327398, -231875892530149519, 6479067223724325995, -5993925410246119408, 7769769731936043186, 6508773581643622648, 8377470195368681305, -5026402568726958822, 1827804178661326297, 8945035746065187189, 9142616182405809812, -6444208854588150036, 3277304349445109851, 4784032081641147304, -6760158860367436072, -2973384685745632037, -8129972329073734262, 777092723910886802, -3245293789031672332, -3523460009327721843, -5684260890958137224, -8265569238908005417, 8801036620359715779, 3266176164242776697, -2137918316110048538, -3323946906471089812, -3314215782571951707, 778527069577570500, 8137954887180256780, 8430989329655386292, -606788686983349880, -4214419631996394082, -6982805642717038791, 4797874315021516200, -2404366658509915138, -9177912505471373539, -7126158702130095549, -1766466893224773589, 8924417853649894089, -4674003454091887679, 2257428816284239881, -1332826559188755030, -8548057139935380399, -6301259390274164526, -3288288979021163907, 6879439315951637090, 4337023968316665593, 6946150187905484505, 1010965014357589050, 5912572766312215522, -752662070435057852, 8324512872143105908, 3863764696845398606, 5389249056777042937, -1935499292012667397, 7268079289042811102, 9015678537102606643, 5924330619075555357, -7424534445741392445, -629875664608289672, 8384040311367110728, 4366481991429755226, 799319475113248361, 915077563132424308, -402689656772636859, -4955233076805992406, 7164775445931617845, -3741939346817651094, 626388912028592424, 7629488070185682238, 2229303825265914208, -5262491359642418345, -4880619796691544255, -3925706312675979806, 4696878665903208702, 5071857546218785861, -3376912663266974892, 8653621680026928799, 1396781445024355796, 621390305019145984, 8372778663022275550, -7480329048309833839, 1560173607708756635, -3514469212498253617, 2082849966979030776, 2855014826193932577, -6098003633715037270, 4973995505549769974, -934656248683882969, -7138618497546152206, -8796608146899612477, 2599534084177250165, -3661022375209093319, 6753861788669983217, 8879020977128083301, -1369089299051099462, -5718241577534868428, -4601048383104503916, -7761404906865992561, -4766352168228543906, -7581342006403310193, 5305627711042476897, -798942769184694703, -7013308532278854794, 2556970310791640083, -8310154389049907193, 1935579670641235148, -9182270706148454992, 9150818649447775758, -6638702227973546141, 650090674291676413, 8236754832241948399, 790792765911863457, -347542563766738388, 3388642901454996993, 5348134068670085253, 5074530787207075513, 1395232644756449952, 8090997313784423115, -1550511403107108256, 8571008051355695605, 1306564260425723057, 5818833840846631664, 8799033188003922464, 5410444795730799007, -3373047473574331090, -8548302006770261151, 5021861578667389638, -432669836523104479, -6438627394278666063, -7251108417612047114, -6291884531541975330, 6537071113687438992, 8966161431802402633, -5259240086960564044, 3503163060697962605, -4065148945903097744, -1777564193334828938, 1747809001727155632, -3417070383920828456, -4980740299784891473, -559866941814657186, -6426350914229905139, -5679160652862202404, -6211678578062624482, 848841581372246207, -2989862519366817864, -9055561009588072094, 6765006199830890923, -2062587279559167170, -7502248691809669785, 7718809563802492192, 3633483956842288096, -5531671318896978179, 5326224353406326292, 6726394281003005045, -1713581532815293882, 6024523542812863783, -1763399164735930073, 4266920826307605526, 622375407618332670, 4341466034596968525, 7715246185820712492, -5773491122824348016, -1826385467445025486, -7822412245781439819, 8017872321912493505, 6373242139699342871, -6944882458072813137, 4697620715257964034, -4365394206032703789, -547148396038045198, -5035570107494867275, 7793404466643051559, 4469721766633126697, 1166061378200498396, 1554858931156904800, -2361412551770162450, -7930855384212681335, 1713868002622874066, 7409111426406558639, -512154663509791484, 6537275880940401093, -3910570248961609024, -3836656625145607293, -8938294775136724153, -6507444214278732621, -1150538280928728183, 6973878162312254627, 6572969588409572611, 1002231209937518033, 6908277548248118165, -6022132921017429451, -7025870997712287358, 683251940863450233, 2493524975192955782, -7276639915615857470, -103883638664277997, -5314704606673142253, -7038752337314182336, 5560169698698056371, -5881866866010041715, -4469522438057826665, -8939893843141765247, 2642101218897762188, -3300172923916323330, 6352877754718065190, 4084338072180105389, -4342549113399200393, 4279374017424089065, 4398221897453782925, 2422944416491435362, 7922267869330361805, 5995998007128456283, 6280625043231339994, -3275865643381161731, 4383174748559532813, -8546441422012175712, -7893577028946492213, 9027885389349284629, -6125149023153379003, -4956546681275572683, 5715129565539777013, 6623276731031366799, 7560337431809868738, -31750236024934407, -3810198350997910123, -1146409313986505151, -428701850515027514, -468073762720447669, -1390050471520983211, 2835265798923663700, 5764913612679834112, 958810651968247391, -3797815661291407520, 6460520626648203269, 211708702104126221, 2261091765752400712, -2964977199137046896, -4385151649562144001, 3116185924188946137, 6739692152509783528, -5305436920427785009, -2907282851691115609, 447743807557596132, 63862440751247066, 3514479843707153842, 5999601496287905231, -3654531195335519906, -2542600877922342253, -7290989393844413666, 9085469624507262735, -541455872346318235, -7971088789235032060, 7689978220151207746, -2711513566589271239, -8343310657572295416, -4167999392509592540, -9039445678299213909, -7170301895717218884, 6291529442536905084, -3374963351675626609, -5373168051494346318, -5497601031482005775, -2916886395075307235, -3883261685502767633, 9179413910741410099, 6289334284246669717, 4234089800929872794, -2655732539271996720, -3035070633871992593, -2437303472975627474, 8832963047795505553, -829388827821593367, -5370201744962103593, -8911288617151731105, 6714137128155914855, -6937785380240140879, -4804598248727707302, 8750156478448565502, 2574912636013720638, -4885946830234328537, 7521358135764728226, 535303159333155897, 8138574657622192110, 2456224430349956627, -8992321412901943906, -7281936363115109639, 2704721690134351097, -7216651923179770008, -6506422878573197942, 8915586083417585942, 5371232788505226594, -1740133450893903245, -982304251078917805, 2244112516915558506, -3114958008453226, -4610260728675861751, -1143025776890919762, 8288487391050636375, 4388285265909577760, 1232243352541145132, -7717830768524962099, -5901227017481054829, -6100861997340233106, 8279906479564605152, -5427340363020812495, 7436873303994409336, 4437395942259467556, -5486323029786467602, -749419638916086313, 387633405786106344, -2444684956722819414, -8879980142125000057, 9032213405251538238, -196725452198675903, 4109301537930725517, 6117388314164827016, 8847370785979768678, 77521133169697924, 7077666419656637399, 133555131055822904, 61998257733475790, 5697558321456541168, 7399783912995781559, 1137891396677380707, 5074079993681838043, -657911960963882852, 1137470059873220310, 7020780662981280391, -9177001920397809522, 790362239680355816, 600172032624920855, 8543420636741980368, 4528589445176971886, 5960728324702488119, 5514186694424436532, -5432336659913866735, -2057725448378912415, 3911807348846574985, -2933766100391426874, 1800193705806185930, -7054816631402652609, 7183265689053958885, 5699677378061885134, 4220153114531888679, 8286682243768326060, -3718825949288568614, 4247279726743304081, 3401929723154371418, -7791632387902813891, -8525035833654653815, 4642847250936202202, 8571834255563384580, -615080775143020047, -9141302276862944236, 2497129230952559091, -8795367116044177149, 4697020691819045650, 8078487089138316076, -6314877087348456338, -8272915201734457268, 6950678089694500897, 5377750684446461249, -921140928622983181, -1520460049452102693, -3177121019444108678, -4051624390692544861, -2825784479508224090, -5008690521298053399, 1770783004922494527, -5527822838273234845, -4503771241503652292, -4788400236276842410, 5619353998326498739, -3701011697076308480, -8034418559493520412, 6350765187233515105, 982558642287986027, -1448602610424440694, -5618483166513344245, -6278878478122580648, 7537160758203387055, -6154847048393471752, -3053777167706908675, 102968748125835682, -4368004269290628803, 3948417958341752791, 3441688668713259055, 5686013332820589556, -6793945691483312138, -5657337314720073764, -2316326789392298880, 8429883766104818531, 5672048876768223736, 4801755278649149250, 2457832606218017605, 5660898524916791368, 9008328499307364991, 7282355400911599490, -675022808189279520, 1248812713894084058, 4295529333031152182, 235010168203572616, -4332156008277813622, 1584706501703338551, 3224219654798343804, -2046414069220643115, -4768268609286612707, -4595767465089756149, 432385139172141595, 5744340903783987934, -5907814276982578230, 571373857369851574, -4615364944658920518, 985558362311014501, 1146748558906210730, 7358527181149231649, 2960234619888514885, -4221579384574605709, -33577900070920492, -1383491017420984722, -6667111422768545223, 2209578116218914144, -6192696716189832095, -8682232579400392473, 3926742208689603882, -2605251114517028176, -3432143345789886934, 956256818538240068, 7048231574365916809, 5172150567611355985, -7087473940080722223, 2829725628381946973, 6615614511402804897, 5597114989308889913, -6360862330806523233, 7263403909484904208, 1722745349057533175, -6250859958048377022, 7854765438825869947, 4544273279457948494, 6871378735684121062, -3351123348798445569, -3070913893427269938, 4474858432188499679, -3027153348937151936, 6723187138491054590, -4633043728650674379, -6923489996304544514, -7608004350687835922, 8618729303360011673, 6145931189986425565, -700125041702955627, -7361791825514005778, -3052622408661881441, 8247111715450418050, 7644850195268952347, 201981812631246530, -5366187106284689552, 2240979599738100899, -8929354876130746907, 622748136125783190, -2241977980877970148, -8690707102946532636, 1816258902369550876, 6082608921810779350, 3313569380430314248, 7003634692020991413, 5388495764620726128, -5530822942131330273, 7182058408716498125, 6272977706245272491, -1611832087259919849, 6304118920652930260, 2664243321321065829, -6991256246863621561, 7763559060359215549, -1363294210753473603, -5984590649126030611, 8835145660544963598, -4339100511013335484, -7658343482117166946, 4767592705684863404, 6567026582399699474, 1241984525409511450, -5043459788309072162, -6788638110335657665, 3425502247489073842, -3386866538103387786, -3435764054745173624, 6561588844054851309, 6358866269624109218, -2265970059794978437, 981754089422755666, 303360095818360815, -1637078045909787216, 5039180299052306271, -5050307403632054071, -4916014943876365639, -4786790738315442642, -4112969230517500969, -2053067729163411292, -5506471273731989096, -9192763281442671194, -9154538478094146297, 844512131685900736, 5622194151159285613, 8194896671418306404, 1412467403218231788, 3881564188099745981, -6535023704129633935, -4422084769610503611, 2842323006370744908, -472587132304431690, 5418894508652286502, 5354997878416558687, -4192781941439730955, -3177986442565831154, 8055846518519871975, -2415348653243756702, 3420189508094535959, 632472561226799626, 9048880056639467255, -4088888662813871032, 5342377372296981891, 4269139230891294005, -6717542854769676338, 5697661121986271761, -1342180587334633568, 336875038379374793, -1762255469438213123, -1771219285192270657, 8879943609619899579, -6124059468186375892, 8286471420479395455, 5543997467023211823, 5320361181567019590, 8958205738403874292, 3782571393394012068, -8985467336212511099, 4358217428218486255, 5323123421330561591, 5764541270351390266, -6963051555266077147, -8117203354060625734, -3369353168590364075, 8066080865612783830, -5493399428262160806, -8062951269302324167, -7795183678321688541, 4270469270852553336, 5515134373073409924, -4715340744920803950, 2105370441481331601, 377342343915534328, 9024587429061028407, 3950645024865924468, -7513885460653066738, 5679113338470321965, -4007675874528217094, 685254662537812760, -7675519858059415042, 901700859132852851, 3306012866190376430, 2408392168740675300, -1818210664377266977, -5985536775766332429, 6859135827266771568, 6142180884473663150, 1662736140744539339, -5748205425049442259, -1431038593146932184, -7772606991892607571, -348435608257889917, 3323776957236852960, -4109021388662695665, -1035387926833810113, -6252075674217952235, -1688047783032235782, 4835484251275026119, -1130434861387672189, -552211881628052457, -9041375001510857971, -8608662509892950952, 8688323792329827521, 4639288709326029154, -7997418775765929203, -536103785062713510, -6343663721617708900, -3154255286206413772, 7778544095371035370, -6087249532642040836, -2119136938453566451, -688238790820179873, -6835440198851144923, 5315054982053402284, 8173102513358076492, -2069317718895641958, -4771766013066052606, 931917254490650404, -557345458441442938, 3220011825320527555, -1158400632381301374, 7109875313372060233, 280358344723014545, 1781923481723729313, -1805499844278566084, 5814569477732551196, -2166719128253350835, -7610231454586483844, -410436740688301883, -8413621775294896865, -8989368555919190902, -7176709214957782648, -7904552684938415090, 6506593041716222957, -64275500919664736, -2441305534489441569, -8607529290606256433, 2704494450480538341, 8252863318644872588, 7679830104172517933, -1362881973065009152, 3227375449815221716, 4230416557459228451, 749940150731561981, -3955830997208866872, -1058276989298619601, -1641422116181591194, -822466760760516658, -2021155498858226231, 5043089523958593235, 9160523363278870467, 2440291487886579299, -5076764184565375538, 4008082098413400136, -2574196012088549257, 1815165426871122463, -1810363067796950052, 4564660363457428284, -2979682748740342374, 1263528409113807511, 664902837787653319, -7730990515836195905, -2880800962758009323, -7855792495166800696, -3741677040754952297, 4706538099020817013, -9136310530026765146, 6214908330569213306, -3306943983211023738, 2006683290226313727, -6277376814587543000, 5070401159692077631, -8643576681302494805, 8696392328149980718, -2881724085663247400, -3287341067959381540, 4490394380103475251, -2388135268153109148, -3688564781415624446, 6498489205468056363, -5500244887538822899, 2180911647749845602, 8505364545645231746, 836973405812942824, -4740164100896755286, 5278723018552192484, -1437440665187625187, -323731977913999807, 7961288608439452300, -6431662516133743485, 3288471137468863622, 1094976596329727971, -7153147127300532286, -2269332560827388244, -8443034525381127221, -7259595132044303319, 6598374410643793929, 5408651494181464015, -2202304456831760230, 5063787465367491805, -486043291012940650, 6661198455654543904, -6677120136819219766, 6873215010129388137, -8544492697357908484, -4891416620674641993, 6278728749137780699, 6140179405370666573, -2530674188465907541, -5542826884668502138, -4624987738903378785, 6055897868744384304, 1893227478513103707, -5998481717337431109, 3830666628195019250, -5536286911313861609, 3200695281108542221, -6354873668485439169, -7106406847876828463, 7267111195904963580, 7933454732992989449, -1704431805338802811, -7611850130507733188, 812223521137539840, 5028737084052092939, 1988409904336613546, 5452332172318207897, 721364426528035202, -8061778870788033499, 6206577632233922077, -3358825340647308897, 2615281023954623119, 5796586417262572998, -197225006894562884, 196909717615705016, -247775495361433931, 7935788894770135235, 2974543031667961203, 5518401755150062594, 4289467554573218060, -2110026776485502130, 7660756127445162484, 3210017035054168881, 4490480744367531310, 5560337963744008127, 1101969946984775230, 5426060883804367122, -7414569778895362694, -2574548713218219896, -8667400765660450694, -5823705257574844942, 8997571444431443269, 7042636308067180449, -5283570316461887039, 8142095188421778064, 3651820187667613831, -4106900401332576063, 5096961868284753927, 1281307679037151525, 3157982099299110758, 5964579201184846556, 4180328246833948732, -7591589437120250551, -5609987180487736705, -4487816973319572586, -1552743699661830151, -2960134158460000031, 388000481836191254, 4969717821228980736, 4894250187668109836, 3314809537038085119, 4588524784136728210, -2535627291226530894, -5684084138082962342, -1286085397614972483, -7103165809748549698, -6678458086474660614, -7506274041001472908, -5757410831092511843, 3076084975765635926, 7850034963640689904, -8651748294440545843, 194609034680985428, 8961175923080965683, -93748348755505189, 8117513138674933995, -2327127188025401628, 9187079670668733343, 6176196235074071579, -2820708281421643585, 7702825886158486334, -5855613686156591038, 7799351880585559652, 4934874524942948135, 478516408624230993, -4965206657008516450, 269236596925883928, 1073428163366009326, 7126792485072910069, 7569987982476504769, 8262969537673837817, -7393607729414256813, 4017211294382715408, -1453708362719534126, 4307169287498447691, -9096393784442866629, 8699405990322605810, -1035874136575275173, 5307229917593282401, 1276194578649014061, 7817361645793510414, 8807328459013683574, -6765725969608803740, 3805877505873456422, -2895703504735894621, -5230950451898686709, -6669061264839270575, -5138851837205629206, -1835119422478560204, 2603594006469150259, -2868548477659140639, -3022288051024437226, -2534068374958773882, -8740036738980731237, 2422761568693286421, 2502279617218189169, 5653397006733775922, -8039795195496143176, -6114200605642013428, 4738401726556400980, -1124125357168446237, -1348538616798334459, 5166727242185760724, -8859072289987873964, -7821112919434789020, 558406059872965377, -652528105474834764, -6029896875260562574, 2091769615884194159, -216079402402926518, 887407835530247623, -4090364169749485345, -2641220401477988829, -7119863260277045123, -7186889934574275077, 1786346915042454610, -1034431575705158448, 2644876102600825848, 8628759535217154371, -5076435861824768815, 5595534221719835067, 6278270011273397462, -1987507060144813825, -4918793481045561857, -8270154588131917026, -8468046916149675701, 7176601854751293210, 56669650886358090, -3166866242311034523, 8564531909892678053, -8455196864544157950, -7257596480926253873, 6959408330130435752, 3028838432902894936, 4424195858928857704, 6121497124194972504, -5469042773842318014, 2159359821694864340, -5947113653447376879, -1257220895728861725, 1392685009302569024, 7648830520509108133, -7371898747435017516, -845894640102415955, 8686498035411426229, 5985907670960414557, -7006168817797129900, 5479137187044139679, 4647241554359727919, -7056835850526619003, -6083660857753840170, -8047496266502346341, -7226197892441689165, 741327366913048535, -3711828024047014264, 3862158898379466077, 449693655808431935, -4882540886884501973, -7383637210504776854, 620553667069897427, -6713481484814371951, -7543587771860356019, 810524291612691607, -3659121362368402512, -5595441051298399244, 8088291422822166417, -6303984734444135248, -678233978165917904, 3617704513102699155, -5352941627192876325, -5816949687022080463, -9169168096039126102, 7975547379037659726, 4623395118382308799, 2509276746373528458, 5235508280732183917, -8712780009966718399, -7712552639387445993, 6759061446299827503, 9164297432474703925, -1110357104587476086, 1829423683580763459, -3799180270173028795, 8306026342220315310, -2726954641281485486, -1863888117327900205, -402316169456308966, 3744050168945036153, 4528951249037614908, 4258594066663919620, -3980786014056604956, -6634679619236991963, -4774774115148739666, -1688262812036369479, -3034548033917499658, -5071122385621078715, 1588376700080465528, -7759058167839367430, -4775874273596731934, 3221595815258590133, -6828959650403546499, 4346943720922699157, 4928547898720269926, -8589044593817257493, -5081781874907419607, 951694801960191091, -4667459908101512289, 4206977884410966721, -5197565432654930036, 3326560315392948439, -5878101577814599326, -8546474537134600654, 4309823164209170224, -3850248640668593914, 8681749283296418130, 4990534815930281841, -7750801661905292077, -3291032507257295915, 6665735555297233110, 7050489721279484184, 4317248664266774559, 9186786829891405296, 4166168050877046636, 7493753755601945303, 6899283068593432141, -5031904746579415020, 2565085644824379929, 3944502551732855469, 2189710644855030524, 2255493561976705206, 271365360135379886, 4294982312243112084, -5660229707439867961, 800423085895901894, 8347122627753775462, 6822896499937221573, -7651490681616894, -5297285646106039108, 1608114244844304377, 5839483976720836889, 8241560863719005179, -4129441230004651128, 3479615647121648386, -3074954311106453268, -3412316248640445049, 1216386815926349358, 2626756706523947064, 7368591831166517715, -1142163371321856898, -372851778878484647, 5995055175251528039, 5499555783411494776, 2016478622954748816, 1279886563391834469, 5165391760856510060, 734258640138801802, -7445758287171966471, 5839000974438980820, -5125341234978471209, 121392944104683131, 6179055483354016942, 9063275686698059196, 1720815667965783260, -2090747494244625688, -7864214085579409526, 6028043825066031897, -870947118366293771, 7376428769075962994, 1893490138897624353, -2886384328350744909, 5229519170995839908, 3782678275042073308, 8444457277148000247, 7575393971659806405, -5934742581324588974, -957376746896582101, -1823443228678068953, -7406349357662140793, -7066353634914162328, -932893465250817358, -6158979365981425485, -3999272364858205076, 4376092228086515820, 2513046484924596765, 1682565735361783149, 6869702267679149853, 3598461422649849004, 6721690358813739611, -5015414950752771986, 5196130127330595784, -8263471740181652146, 5701551820088369908, 4253014790918207382, 2681305943933975380, -802509536169972911, -2921706024223960837, -9084398191436379512, -7519519527403626152, 3410883059237029545, 2095075860303886315, 7914139912546804769, -8370416930809779762, -7044648509550560506, -4902792417226064745, 8930318598773654893, -8039939177580969146, 7860061109504978153, 419124991549078423, 52439998177737723, 76668279870828606, 2400418361498442757, -6792499803763550020, 3154574853391034842, 7821968058100120318, 3866940609041914244, -2451342656371401396, 6905559753998185538, 6642467155099476743, 9184008300019616920, -2170183067760494195, -1717224464730633452, 5546156896245179429, -2017194334177493538, 5813836834777993870, -5037970301511180119, -6283363831235414834, -2112512675648312385, 491800089892071944, 1091841107193066408, 8220715112944896727, -4061073684265419648, -6814505748970986107, 8035167421124665899, 4919021796047562901, -8884884164310583259, 6153891825926211445, 4869639300001698143, 3837324736330986571, -1644424597952783500, -6432957171918516733, -3788559728040549625, -9017234204035095885, 7974176819879521382, 8518789095085259635, -3908843812016366962, 6951099628380613842, -8130281757214184420, 697619035660462877, -5347667485898134831, -7870811613775178028, -6511218273726014463, -333041748521768769, 5107911109826800955, 3300477209814784624, -1708767489614571672, 1525551322408592196, 9080360653706424402, -6708214637440210952, -8631288433031181655, 2969113138124740044, -6647892099329100204, -6988290737149534654, 7213791800550484241, -3515983215941949272, 2776751762191199071, 4071933170036566928, -4265187988772916685, -2837771298453665817, -3090388734688474776, 5082944286075818548, 609755467484712029, 4072847486654097862, 8529301158860902869, 946912055446259682, -2248520461543232716, 5002603540450016650, -7275890548477817354, 1780246636470144442, -269706394334676566, -8177505231864803521, -4808125464463073144, 3775199331707802161, 2135641040248441133, -6436387871891641508, -7300737480287384013, -3360643109416540838, -8725466580297208946, 352291131791977996, 8394782611214630132, 17475987862371471, -4488499446877241684, 6767262301426119887, -2769737041134652019, -3193753686399895142, 7241778878096412757, 7797099283865407968, -2671749878988612917, 4696277170143113298, -5423752625035881763, -670732946661190647, -5711362811761083541, 4199832504691110757, -8677080819421441869, 3205643745224196359, 543646793087604365, -6804492024407055184, -848262837790928773, 387374760481732684, -9059158253510589576, -5856801177533266560, -7432011656959400529, 2198315888507745377, -7784997841364446485, 5347278335471818322, -6869526283408290890, 1352984110104423676, 6604074908186486860, 3540137177162802697, 1016927313450879985, 4071162570240874321, -5551488416681382753, -1504833906763233366, -5197958147423262666, -195819750883991358, -3945019213013735347, 6902249401976467405, -8912844306838907648, 4722491225058563626, 8140893302518733651, -5690073294438117370, -5969694801694774088, 7487125160865276118, 3007343065818503767, -2137534930747931929, 2809569435246364642, -4144004208315175629, 5255075717374606982, 7626373563000023350, 8149042251253369001, -8408446547381679894, 1486032901530289193, 4064054887282446575, 1589944372692791144, 6449119204549353091, -8068500293077637628, -4352463204946506034, 2337319196167003851, 4645391736645529886, 2010913571168295586, 1067508280099262661, -6129726247014324152, -611394079563159886, 2374062997617988521, 2762859988315805754, 4077923914156429843, -9041689727396256791, 8413929943723227620, 2773700164543912806, -3519424763423213991, 3151293449748791827, 5483423829303258017, -5946703767041794347, -6685640504011780936, 7701491958403800059, -3979073630416352084, 1302223521793369618, -4739375335957240500, 1273557423668894202, -8157791041761503052, -1958803071486003789, 7995561814538810256, 6436799742219583197, -5386107234107497189, 1105429829723289433, 5041979046245310635, 2772779352725880615, 6104391435732090158, 509237612818462766, -8907837183171812543, 8961506241364999076, 8373135239934695333, 7751397787702975214, -7720289196893704743, -5554204491061059859, -8487390470244497973, 2351786434290874202, -2862041859356855047, -6701648002700596727, -4990806288016181990, 5702555028297223797, -7412013855987842169, 646706808393679723, 2860990118563046086, 7347537387001437151, 6617834339254038549, -4724711214635521652, 6892741295472734065, -6093187166351286471, 7856072582143761513, -4312704304396901639, 5815988893927131312, -9010852855013400179, -709193276924158629, 8842697574196472282, 7172961009424657280, -3086117591933807359, 280668548915001621, 5623299142074972937, 6672160606420637960, 7754570087534551249, 4152353032828795027, 7269286384995548933, -6251412664921890878, 5732127079576970324, 7234424551899679503, -3642728981546782033, -3638300185011093242, 758429305061830090, 6807454373907029375, -2407746269258439538, 4041466388407032509, 4412608899209555624, -3826881076377531812, 8863453888803774091, -7624394860603430636, -8586227141178724702, -8333849234994046518, 5466525086493196113, 8976129229655792662, -6761513090258468865, 2757033529591673069, 2729369021924837617, -5342219263217653521, -3682680090127880756, -4024262810569674934, 5734119662788048810, 7267386939198869053, -5732042765175834343, 8098289276583123084, 5528374394051795198, -8832084056016214993, 918234824385712530, 676970414934466709, -5794527027417515112, 7833682562510519926, 27750847269835893, -2141504133172325665, -393870739762170378, 6628987571319571919, 3042161428414889656, 8319098477369136797, 3714381407608491489, 6871028708069796695, -9116209644422794377, -898115304925379815, -6100921916446089973, 2407259165779504625, -7824595574994867809, -7812941900040155346, -3874610317902165720, -383060374023677741, 2565489144529271919, -2775667212831852387, -8490494758318716088, -5768969488081270158, -4163725029626196551, 425158554688666490, 236621108823379185, 5592527110007246515, 2250712273533240792, -6996902570942094740, -4316193418261480778, -423017690736900269, 6499561801793623752, 5999756229412561116, 2122709403244307390, -6614237089257075273, -4438754439933732943, 7755990109693945275, -3828302258654058750, -4536174171928321428, -294446715323926202, 935637585377645959, 2493495210256659688, -7065985576821599091, 4771064322299072228, -8324047390232687097, -6214767548469241356, 661838500088622926, -5496419443662109009, 1769360504705134935, 8594133951145052917, 1919665994205776303, -2829008152524712179, -3534926825330291593, -5392109943851106148, -9174936343936187588, 431831984523785014, -3478733297737652068, 3625098395866689397, -2265434394587802483, 1898173869432619635, 3905980956606711904, 4899181388449222978, -8560503291870850826, 2442336170526152937, 4758854970978333179, 2576950350674509603, -3159727556622278707, 6463385243237218927, -4244656898675278709, -3639733836666543106, 5150557251574321755, -1847330250029237854, 7990644495793807288, -4844220065225521206, 5669665901579369390, -8516756017270853386, -2163641417216885795, -419690911529103853, 8389050361839906714, -4755603407177446434, -3628876977205345798, 6346120274506356620, 2897382412678952073, 2892018529361149983, -3105945328483409777, 397471260119955477, -5924914980966965208, 3259916578022711299, 3584107160451422225, 7335984245174911695, -740299529193763425, -1132793386238322552, -8882624640591065694, -3132393138391844276, 5819861013084344169, -7875274867444632753, 8187945432875751521, 2367121363901039734, 5703419689657841727, 4107383082803893848, 4567302762139612814, 4413573636895389667, -7908655157105234973, 6012542666924997773, 1543290098636558500, 1167829086925604611, 2777803534220614400, 5402112821476681615, 7508255472390188504, 4371085781904923839, 1633853775080032376, -3977888499508807807, -3454635082436672696, -5633966314565017765, -8027628515978432555, 3204939451242551097, -1194334364385733269, 4715733242512836960, -2424390587904992168, -8598491278835370190, -909646813366796865, -6282299275378582741, 1091786653924799826, -7151604730926028, -1952001457689034822, 6594682270311865613, 5297253419387719327, 7174384514581700900, 4179089671585649194, -1438112379026769819, 5863458219802778896, -6258500577607877153, -3191184177787625636, 5247643985080738052, -4249605461827630928, 848024707032423852, 2578176992048298935, 4277106059776803841, 1027307997622416172, -2034184717655156741, -4032075691921298833, -1725223926910214795, -8355218558445840600, -807432826419964742, -8691053822978844932, 5190610597372914740, -5685703413827560197, 1201444270328420824, -8573622742179143460, -5120225676224448990, -5713210850430827610, -4407146778693477095, 6616043013230938178, -455203650113225090, 1257217750953438197, 7038774887541165092, -7978022942807666493, -6027283969716886506, 2039426148959366399, 2349300899242575287, 412136285666780739, 6737962169699689176, 5396043023802829490, -7375578319123588090, 848689289605827984, -8962743046285584688, -4978454835941389091, -6810534590182341273, -7904631394849341310, 4986473973338859037, -5186820242653188418, 5733494837941841739, 220945504840061108, -6134138428611997085, 1839281472386260502, -3959944160474481058, -3734459438928472268, 3721194299693987183, 6767703249986874259, 2045991906683057358, -8742954565638258573, 2420326502842248753, -367492685541062268, 4355219222598868416, 8572842933899504804, -3701739195979978554, -7764549138235732147, -8598925157129974153, -1207019761626072373, -4766444500353057904, -7001982766296723356, -2193148807691074317, 2257290521599354392, 8810412979742623813, 8490414288126231798, 5852946775791635490, -4580603465805866303, -2205977094397869034, 246619722621583797, 8701711500730861947, -5723159815829278387, 2413055362373823891, 4026630626738278077, 626257627860460242, 2574073136387432412, 1225984626747539527, 4932610320264372136, 5801172410851190171, 7046043975985485604, 6725048163205005162, -7576705462287398067, -2531652356020173951, 6390475535474516267, 7954408693665804646, 1212769581897394400, 6930146611691842308, 3315566551407884820, -1691904946575510235, 2663199435933348098, 6910705755054739103, -1445154807745938237, -1305866680652390683, -4123655378022181618, -8064221424814919501, 7446614750020132187, -5068110728266677912, -2030505626005615587, 2000339047753778091, 8498499418863079418, 293614270927881287, -7692468401008699966, -3672609321985504948, -7142451754177878046, -2896478347708996217, 8782220829960750497, 6479357669621747111, 1193728541266948796, 2292573676038833952, -8855412556553540266, 317468215313058893, -2724448286275139831, -4850615461204879897, -864740314491768661, -2490524393871915862, -5497905834125156430, -8861963624388260436, -897462606730994032, -400305460423163334, -82260487316074112, 2335306980672653822, 7810394748744828878, -1713283213271910906, 2687818835146282560, 6112149537489265528, -7705775471756675233, -6212557483975450875, 3316513936364892531, -2247846567664673941, -6242171865364499591, 1864513425979011482, 1142454994086149910, 3839287919838368040, 506402678586865400, 7148330854725749930, -1563308216343959635, -5964480677519945158, -280002382744552497, 5866510398096934772, -4453231543043354473, -7773402607793519054, -3834638464799366814, -3278979331036933950, 3772051427216111937, 1707017430062992775, -102267837227575076, 4184520795854560136, 7597254842510533611, -8279104207355801361, 600209822568521256, -3193350568000648133, -7833434008084958161, 5377254431830388749, 6469619144829771684, 6052343019477107280, 245305866791464031, 5924851661031465757, 3055811671924051893, -7757673726764291611, 5425488801254271646, -1230513747359704646, -8856055219109968322, -4731754271270239734, -3264856159650276367, 8368480760176687700, 8143173203566375840, -1210747890098141143, 5295731456734954614, -7498167121192897541, -3428045625716315797, -4791314006867460823, 2948723375377110370, -3810064731319107123, -9202716795541515555, 6148653665839630204, 2848560055796753936, 1954069631098137796, 4697862255330998161, -193476793171573000, 9194232325669679334, 2656267557937312535, 784853794420870025, -624555491147103224, -8631140942763948473, -2331918944750595202, 6315237728705772778, 2538347749394059355, 7413989927117471885, -3517357964246821289, 5421999950889627853, -6721616076848566230, -6069691543165016804, -2059672142945104532, -1276872363769808299, -2332106662160828140, -9190658909128292389, 998308533634505219, 8907745002351060091, 9115911785525303560, -5194650919107828434, -9003424612543715863, -3769760580289899712, 7344040885552774285, -1843874887890373545, -2979057855708079246, 3927517266022277004, -6833174667206608458, 7205558902237879956, -7422227807001150653, 2892291292690035479, 1284760228866985595, 1579008536286502803, -8186844164684197837, -3187052903249540562, 8095458229268227600, -942456947636162847, -197259298036992424, 5750027500961963107, -8780627866791874144, 4516587109721854134, -6756980873638829294, 6089727200252654253, 6090966007180500784, 6469485832367150258, 3727493373269336793, 6291666731217101540, -7084732212740878330, -7903055913758755665, 4891022811619987916, -8624979534479996969, -3150803291726511210, 2623467983448099462, -7840898703047755463, 959779825982640998, -4501449511014022632, 8158799952216643156, 6178308647687332151, 3246276148886561759, -4425465515852070203, 1247832115472580356, -7050642510907647091, 1732161476419586910, -4164009650339589679, 7901878537714761394, 4178886057429322163, 7443735283409136954, 3014006097182656664, -8798335101393201203, -5618885033101121558, -569071355841480030, 1465565160996165613, 835907336590737450, 1257219254618299668, 2609819195336490748, 8938460768518194998, 1062342481094570886, -4375128033036425666, -404853979334087511, -1834092297765356110, -3519968044035730035, 342399303427600858, -2532143186992956190, -1777167417949977190, -4568326529056220102, -3304778777115413905, 5811787797216829954, -8020456284040308452, -3042194865030802631, -6446259211561084653, 4438782287801714457, 2161950337870754038, -1710982377937381651, 3293767809639986307, -8498661003156499972, 2778304605465959957, 4396759401194328589, 5809309630589945276, -3761311896714212621, 3342130357882968747, -793660217799580436, 2646163611383045898, -2416033543020295149, -6095464533266716295, 1769382373075867919, 5769921217545593205, -2763147873675394053, -1414369372293739819, 552238703840022885, 3971959281509960737, 5871938996071876746, 9144138102870479074, -7051583752714084284, 7997594892977403594, 6973237725993655918, 6759721585491969005, -8474802266062078918, 6556741587070699944, 1797176452359594013, 6068615299846548272, 6190047022681470000, 8025324066560663415, -6635968656501651102, -4801756026236962503, -2019199295183210468, -3662481029228087433, -4145069547545433261, -3049242395576128771, 4037435087481423908, 8741081107921224099, -4245153772169063194, 4568953288012583293, 7712589346562801891, -3215613063795247515, -8858591175844031521, -2087790524802605170, 1417733501490955314, -9063725495583630514, -655483526137291502, -1191912813457342762, 7566687464776014044, -8141381772450745660, -4279904944725432103, 6315788478946072243, 7002063045159257489, -6590365664777896890, -4679403751815604977, 8714069546965743554, 309533184730636769, 4316355607870589378, -8249109378692746867, -4536319397565701860, -3305013732482176309, 2701230281724653072, 2915853436366935644, -5927461005461889274, -5702708199784995265, -6433065803429162631, -4180970319895671172, 4849896012027919472, -5561528520719418585, 9123566069177685279, 622220666159857096, -708782930522252335, 5707712868431236809, 5313827561404790193, -5799394264768564243, -1774362590765209798, -6918953997843796104, -1980381867595314801, 1327414459290737935, 5553240067124633984, -6296091561738456701, 145974771717445135, -8724843072185840624, 37791342206206222, -4696476260914498163, -4576914265385553592, 5910120660565540139, -5970819293263084113, -595010541964357447, -3312166820520539819, 2138938008172669579, 1754706572008805133, 5509391222621898877, -5305407397355808074, -4612573236316801425, -788151160991829846, 3475822491801193714, 7334847274467493432, -2738273231885091334, -1394144455222408656, 8445783368824786530, 1090934155240864175, 3666668840304884557, -7481508096164382026, 5809539258269464286])), 42), 42)),) diff --git a/test/reference64/debug_parallel_spmms_no_atomics.txt b/test/reference64/debug_parallel_spmms_no_atomics.txt index b6586a0b3..9b29695dd 100644 --- a/test/reference64/debug_parallel_spmms_no_atomics.txt +++ b/test/reference64/debug_parallel_spmms_no_atomics.txt @@ -8,7 +8,7 @@ julia> @finch begin end end end -(CR = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.5786578146202624, 0.0, 0.3202961159483594, 0.3207279869105304, 0.5035217854841559, 0.0, 0.013671076975665627, 0.01669925591794789, 0.0, 0.0, 0.0, 0.5652457771225854, 0.0, 0.09766762955114001, 0.2831455624824939, 0.0, 1.0556185392068085, 0.2068017763866623, 0.0, 0.15942131380345745, 0.005607444973383372, 0.0, 0.056687675717707615, 0.2535497922885842, 0.4637407985590488, 0.22387274550179712, 0.5454655738973408, 0.08490666489615803, 0.3556465582001688, 0.0, 0.0, 0.31186727366054, 0.6972638697010188, 0.0, 0.0, 0.009518501694028625, 0.0, 0.5833334701399113, 0.6244214908493986, 0.0, 0.26168041250093527, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0131047746782154, 0.0, 0.6656645247350605, 0.0, 0.0, 0.0769882955934405, 0.0, 0.0, 0.34004774503974494, 0.08053504092577264, 0.006982581834800098, 0.5446249720805942, 0.0, 0.0, 0.31025177039320695, 0.2638902653915397, 0.0, 0.0, 0.0, 0.0, 0.2008136945182758, 0.0, 0.0, 0.19041992572397343, 0.05903622381609576, 0.0, 0.0589978949008293, 0.05133054295704808, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7141967536140789, 0.0, 0.11331087789790419, 0.0, 0.0, 0.13904571220904566, 0.16685503671570054, 0.0, 0.1461222249815685, 0.0, 0.0, 0.0, 0.1624667486179013, 0.0, 0.0, 0.0001466632220376543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.040061564188380784, 0.0, 0.0, 0.05925661356360367, 0.0, 0.20052213796576485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1322273764299389, 0.0, 0.07284319524978862, 0.0, 0.21698248889777863, 0.0, 0.22616177063294415, 0.0, 0.0, 0.0, 0.0, 0.52849490550171, 0.0, 0.71926878469886, 0.0, 0.6501927607213651, 0.0030355649865830615, 0.37799680598211977, 0.0, 0.0007078975665940506, 0.09351646752064424, 0.05681500695663011, 0.0, 0.20243859396970953, 0.0628704495708815, 0.001556209278473695, 0.0, 0.0, 0.0, 0.0, 0.0027171741525499, 0.0, 0.0, 0.0, 0.07038911039656341, 0.049709343960620045, 0.0, 0.018852918431012597, 0.26140762404567164, 0.049374687944063446, 0.0, 0.0, 0.5682508160039592, 0.08397693763382687, 0.0, 0.0, 1.1395457189674745, 0.10207861893624984, 0.006346754524020049, 0.07139718683099765, 0.0, 0.4257292397317542, 0.0, 0.0, 0.003459642976589088, 0.00011827788909935122, 0.29669071600135444, 0.0, 0.04645302583039929, 0.6403581026228157, 0.0, 0.0, 0.4035906657629842, 0.0, 0.0, 0.031770473502227184, 0.0, 0.10177861753458611, 0.08984803025006428, 0.2696383585775038, 0.0, 0.0, 0.0, 0.0, 0.4020058229022269, 0.8537152750348289, 0.27466570696380027, 0.0, 0.9014511503031993, 0.0, 0.0, 0.0, 0.3588364621034526, 0.0, 0.10358336916612662, 0.0, 0.8253783539224127, 0.003096290011755601, 0.3727209618097055, 0.0, 0.0, 0.0, 0.08512247762765326, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0016669318756259504, 0.0, 0.0, 0.9038241621401286, 0.23981242371494071, 0.0, 0.0, 0.0, 0.10303433366133424, 0.0, 0.0, 4.317142647672722e-5, 0.0, 0.07840647389573854, 0.0, 0.0, 0.0, 0.0, 0.36164895718336953, 0.011697025915496142, 0.0, 0.0, 0.0, 0.0, 0.001969151291048087, 0.0, 0.0016085698018090215, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8640055140280944, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10961290316901336, 0.0, 0.0, 0.0, 0.34012752342022284, 0.0, 0.09000159029348583, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.38387258660557405, 0.0, 0.0, 0.0, 0.04942864149427501, 0.0, 0.9641925530766522, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1618638919487994, 0.0, 0.0, 0.1434695556565637, 0.3651050198592113, 0.0, 0.04210320606021404, 0.5803955429188099, 0.0, 0.0, 0.36579879697476825, 0.4517875751113323, 0.0, 0.0, 0.0, 0.597783133294766, 0.0, 0.0, 0.6329135233850276, 0.0, 0.002597015658553236, 0.2174699638827603, 0.39061652165480276, 0.765918958416278, 0.0, 0.016481521625833693, 0.28751000269430316, 0.0, 0.1647131064041664, 0.0, 0.4521970394725687, 0.0, 0.0, 0.11039007420645473, 0.0, 0.0, 0.0, 0.902497226885166, 0.7436286750029288, 0.09842900387294973, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0017337381605838167, 0.0, 0.48184280820859876, 0.0, 0.0, 0.4182604044398821, 0.05413499724631636, 0.00395203096164986, 0.49703533424495255, 0.0, 0.0, 0.0, 0.43461516165530706, 0.0, 0.0, 0.2097986260899648, 0.0, 0.0, 0.0, 0.0032389406325184205, 0.11624028110212369, 0.0, 0.23514374437795085, 0.0, 0.013757851512121493, 0.0, 0.23992048040279412, 0.32911722925956555, 0.0, 0.18863648593265903, 0.5965040702112832, 0.0, 0.0, 0.006607346447861224, 0.005821424904675781, 0.2242736217811627, 0.0, 0.0, 0.02743682303358625, 0.03021510122691055, 0.4109976396191596, 0.016694351333046, 0.0, 0.0, 0.15588266372439724, 0.0, 0.7589538506473881, 0.0, 0.0, 0.9157838182946224, 0.07079903450052254, 0.0, 0.0, 0.0, 0.8133345120890082, 0.19376473666562866, 0.0, 0.0, 0.24554349589597185, 0.2326206471524158, 0.5829196459370383, 0.0, 0.344078222468009, 0.0, 0.5927124546739914, 0.21206748875282805, 0.5013588717575729, 0.1507046170639337, 0.0, 0.2922067750640437, 0.9112630304460252, 0.0, 0.42296978570223137, 0.0, 0.0, 0.0, 0.0, 0.47847449991115903, 0.0, 0.0, 0.0, 0.0, 0.02922391861250235, 0.003575617433634187, 0.0, 0.0, 0.18000379265062824, 0.0, 0.0, 0.0, 0.020223410318598516, 0.0, 0.0, 0.0, 0.0, 0.1194607408090099, 0.0, 0.18567470153771173, 0.015493204406064897, 0.0, 0.0, 0.22675090423473912, 0.0, 0.6338841242698132, 0.5245326238847832, 0.0019166419799919094, 0.6594541233567529, 0.0, 0.005139571264149575, 0.0, 0.0, 0.0, 0.014894820580065271, 0.0, 1.2034959876942206, 0.0, 0.25665804266856174, 0.012594729973842587, 0.0, 0.011446343678364038, 0.0, 0.0, 0.02279435489937408, 0.025102532455875536, 0.0, 0.0, 0.0, 0.0, 0.1307674017372415, 0.5572422675871412, 0.20860522647402835, 0.3439153754178085, 0.0, 0.7682359770495442, 0.05881943098741484, 0.0, 0.0, 0.7560476592821442, 0.06967644285195858, 0.0, 0.04321641535911349, 0.0, 0.0, 0.0, 0.8024673537053417, 0.0, 0.0, 0.0, 0.0, 0.1761844509232577, 0.8168042507595197, 0.0, 0.0, 0.0, 0.5887168313525647, 0.0, 0.0, 0.4050160345946778, 0.0, 0.28424121144843517, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04314478705768561, 0.17729851568072083, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06445720856859194, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10331544984256105, 0.2490312779322865, 0.0, 0.24280852181294071, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5198374016631779, 0.0, 0.0, 0.0, 0.13645064069986682, 0.0, 0.24758012015088376, 0.5314044104438821, 0.0, 0.0, 0.3110470576055099, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02359980206981429, 0.36163373919282166, 0.0, 0.0, 0.4835792742792758, 0.0, 0.3524294596638372, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27655502261887766, 0.0, 0.0, 0.0, 0.0, 0.22117286156450722, 0.0, 0.15521963759663626, 0.0, 0.0, 0.0, 0.0, 0.021723812939992326, 0.02392358642299197, 0.0, 0.9811990708246294, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4965569454339231, 0.08530918757868192, 0.0, 0.07823884141505981, 0.08129763345109173, 0.8580687524263778, 0.6125638634435169, 0.7792197114170356, 0.17406349022985984, 0.0, 0.7428281837408045, 0.0, 0.07932414385265583, 0.46154167819945197, 0.0, 0.5289001614381607, 0.0, 0.8287876866571131, 0.1679099089089469, 0.695722986230781, 0.0, 0.010707260605614142, 0.014687966352699852, 0.03846916856579124, 0.6678999803007167, 0.8946423775406338, 0.0, 0.0, 0.6928842432378984, 0.0, 0.8291172549334254, 0.0, 0.036214437271524916, 0.0, 0.6493274982169268, 0.0, 0.0, 0.0, 0.0, 0.022863259627981244, 0.7335275809594394, 0.03647235770741211, 0.0, 0.287070580153256, 0.13431771500769504, 0.14856735628547443, 0.15781940486580828, 0.0, 0.0, 0.323980207489089, 0.0, 0.02667757509153305, 0.33154611696012287, 0.008340998981572286, 0.0, 0.1964137723963185, 0.0, 0.18369526317696738, 0.0, 0.36991237719570497, 0.0, 0.0, 0.060663484669780686, 0.0, 0.0, 0.10293074255327075, 0.9555336304557553, 0.0, 0.2500171656161189, 0.5342857393564834, 0.17546263843294155, 0.0, 0.35442104566615373, 0.0, 0.0, 0.0, 0.0, 0.17621149415330922, 0.6121951999020001, 0.14104370661074167, 0.0, 0.03700642443953683, 0.5101360635898259, 0.0, 0.0, 0.398419677876043, 0.0, 0.0, 0.0, 0.23862742072997933, 0.0, 0.06314351493041778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32025466250143747, 0.0, 0.0, 0.0, 0.25412006584310015, 0.0, 0.2693181789862389, 0.0, 0.2858641430477511, 0.0, 0.12448957171647013, 0.0, 0.6764603455612473, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.007629531631679027, 0.008402105093687509, 0.1478058101242069, 0.005053168588900645, 0.0, 0.30372648283729076, 0.003980754378397801, 0.0, 0.0, 0.0, 0.0, 0.07450559902388645, 0.019687537166852037, 0.0, 0.08244653582028545, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16209616805705127, 0.0, 0.08979346385777931, 0.06518743281502334, 0.21315534710850095, 0.08369413937188341, 0.1394160455900761, 0.5610626715103558, 0.0, 0.0, 0.13968567626607642, 0.0, 0.0, 0.0, 0.0, 0.01924679403964147, 0.0, 0.0, 0.0, 0.0, 0.616722369104707, 0.0, 0.0, 0.5466375681050827, 0.0, 0.0, 0.013987945284851467, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09368066064257337, 0.0, 0.24818473838609467, 0.04865531902212218, 0.0, 0.009894965642192768, 0.0, 0.45825677816644195, 0.7857899124906229, 0.25281208870305677, 0.0, 0.8251354193653254, 0.0, 0.6275782447904167, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7597076021322064, 0.4559884064545227, 0.3430656338577527, 0.32001374263313714, 0.2977084759378876, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26332513624077, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07361684952632414, 0.0, 0.0, 0.0, 0.5420044017413929, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5785225932672249, 0.0, 0.0, 0.0, 0.6899231282082093, 0.33897374575165645, 0.4841896839083132, 0.0, 0.0, 0.0, 0.0, 0.6240541831707288, 0.0, 0.0, 0.5531361892215293, 0.4547991804243185, 0.0, 0.100152739355421, 0.0, 0.2440837061302026, 0.0, 0.0, 0.0, 0.0, 0.12076927556310874, 0.0, 0.0, 0.3415398112751411, 0.0, 0.0, 0.0, 0.010012600500133058, 0.0, 0.10122097549537463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6350391173534848, 0.0, 0.0, 0.5362493708751273, 0.3870491592555651, 0.0, 0.0, 0.011769944241680865, 0.3142045963597273, 0.0, 0.30124773979598957, 0.0, 0.3235765421156834, 0.0, 0.541761414379215, 0.0, 0.0, 0.8318031269227326, 0.0, 0.0, 0.0, 0.0, 0.0, 0.655176286023573, 0.0, 0.0, 0.12998028512957016, 0.09284961824757046, 0.5535451825358659, 0.6996061073192734, 0.06205996989121698, 0.0, 0.0, 0.0, 0.008692259029504977, 0.0, 0.08787316923443415, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5512977874061133, 0.0, 0.06274188232221303, 0.0860678272807259, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7913396090809787, 0.26152280681975265, 0.0, 0.0, 0.0, 0.0, 0.0, 0.028664478181671504, 0.0009799779903315728, 0.0032348889210802386, 0.0, 0.11837934340514084, 0.4864662292788164, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07382213914734657, 0.0, 0.0, 0.0, 0.17685571185867954, 0.2510513607906149, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0019118999997271302, 0.0, 0.04133793381575315, 0.2834737624180827, 0.6832843821792778, 0.0, 0.6662105748014928, 0.0, 0.5326269406399959, 0.0, 0.0, 0.0, 0.0, 0.10672810444069859, 0.0, 0.07123750254807154, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.007981914293001519, 0.10075857550012479, 0.009540391703188681, 0.0, 0.11580721042791553, 0.0, 0.0, 0.17856228523566461, 0.00048020843909893406, 0.0, 0.197593765283525, 0.0, 0.0, 0.0, 0.6194557197663932, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21520162666608084, 0.1562300971282056, 0.0, 0.0592523063663964, 0.0, 0.18612758103797813, 0.0, 0.2544272402257203, 0.15422821911002763, 0.0012917517157272594, 0.0, 0.0, 0.14907655404346837, 0.09429642888622711, 0.0, 0.0, 0.0, 0.0, 0.09600808583182174, 0.0, 0.005856583784053075, 0.08156012032053195, 0.09312148266647201, 0.0322184865015818, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03641255600507808, 0.0, 0.09646644914865622, 0.6107192924560144, 0.0, 0.0008311989920553221, 0.04768463204338608, 0.008402889219987731, 0.30542717141970227, 0.09826504505325136, 0.08476742117805344, 0.35700707759139916, 0.0, 0.052717960159591244, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29528928831604634, 0.0, 0.18118798681716172, 0.047489656233823854, 0.07375616702811215, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15842644268884615, 0.005416265593171256, 0.0, 0.0, 0.0, 0.06326712126451656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22847169102573353, 0.0, 0.11955753824812076, 0.0, 0.0, 0.0, 0.08074664695989245, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0029119331378805115, 0.0, 0.0, 0.1953274033599059, 0.0, 0.0, 0.0, 0.48520999511490304, 0.0, 0.0, 0.0, 0.0, 0.13603276168063752, 0.0, 0.06155663979875702, 0.0, 0.0, 0.0, 0.19100951475155065, 0.0, 0.05054327834442013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21557595738397023, 0.0, 0.0, 0.2988625665604049, 0.02775823823873608, 0.0, 0.5414732387378444, 0.0, 0.1751125450084881, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7653173403797493, 0.011610920930129028, 0.0, 0.6690009447860032, 0.007717112212206315, 0.0, 0.0, 0.0, 0.0, 0.0949800986519104, 0.0, 0.01759104522847652, 0.0272063292239745, 0.0, 0.18672851022958098, 0.14592398686801408, 0.0, 0.0, 0.06111532732066789, 0.0, 0.012109927581814974, 0.0, 0.3464253043638218, 0.014416979955844242, 0.0, 0.0, 0.004751074128394563, 0.0814923248235591, 0.960719872887566, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029410227635468144, 0.3902617128196832, 0.0, 0.0, 0.0, 0.0, 0.03936155946785215, 0.0, 0.0, 0.0, 0.0, 0.03226521554976169, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029868187491618223, 0.0, 0.007848954300217155, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02618395857766568, 0.0, 0.0, 0.0, 0.02729344001455739, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16043383601301778, 0.0, 0.08114240967089056, 0.0, 0.12944151616666955, 0.0, 0.0, 0.8424042898437758, 0.0, 0.0, 0.0, 0.0, 0.04323489183997365, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2997198089695268, 0.0, 0.0, 0.09877179787471602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.36530436236505814, 0.0, 0.0, 0.0, 0.0, 0.6114198560066337, 0.538693529249165, 0.0, 0.0, 0.0, 0.014312907460573414, 0.015762245768879076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03693357747227013, 0.0, 0.0, 0.5249268945825, 0.0, 0.0, 0.16471382065012125, 0.0, 0.0, 0.0, 0.304090416701445, 0.48915218766248414, 0.0, 0.020376509279081044, 0.0, 0.11062878301178729, 0.26154278602954106, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1338990979320024, 0.0, 0.12169019076516314, 0.0, 0.0, 0.0, 0.5524220216872981, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13426647560262422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05161008110067911, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.007893769925822126, 0.008693100403012733, 0.0, 1.169538837435482, 0.0, 0.5817658012805581, 0.3172103076471354, 0.0, 0.22838627747698767, 0.0, 0.10226945824142554, 0.0, 0.020369387834492953, 0.0, 0.20675490808600527, 0.48677742001957014, 0.6262431249386917, 0.151645446757169, 0.20817481578766972, 0.0, 0.0, 0.0668476153746235, 0.5758263086091524, 0.4536026680375212, 0.09887690089373365, 0.018895630454912823, 0.0, 0.06101333098633492, 0.38664812220872247, 0.0, 0.0, 0.7304510924229297, 0.030046419431745734, 0.0, 1.1003509629444073, 0.5194953755737197, 1.1578838988668234, 0.48875095960339066, 0.0, 0.1128462605244655, 0.0, 0.0, 0.0, 0.4791947947301635, 0.0, 0.03259627779739397, 0.10028189990101041, 0.029465846845003113, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22859113464308234, 0.0, 0.11646855789532944, 0.12693945289885786, 0.0, 0.0, 0.20330790896109577, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1873449680464739, 0.0, 0.0, 0.06173899342973636, 0.0, 0.0, 0.04476882030066193, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04375496463125991, 0.38217838780949126, 0.336719559414533, 0.04092456729054698, 0.0, 0.04229882731958149, 0.0, 0.0, 0.0, 0.1452994629839798, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0184335582446928, 0.0, 0.0, 0.0, 0.057199110071214684, 0.0, 0.14103517741623545, 0.03340505872611428, 0.0, 0.0, 0.0, 0.05811339385405451, 0.0, 0.0, 0.0, 0.0, 0.044222795803071285, 0.0, 0.06455569991448866, 0.0, 0.0, 0.05037647535437417, 0.008312394942553907, 0.0, 0.1621478774157853, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005416039933812771, 0.0, 0.0, 0.0, 0.0398756195493532, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05075809733341722, 0.0, 0.03562215281502755, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19049409924372604, 0.0, 0.0, 0.20255925674743036, 0.0, 0.0, 0.0, 0.0, 0.11222926185446927, 0.0, 0.22599925727813394, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18212734324380878, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21653477423901774, 0.0, 0.0, 0.008644589577152558, 0.009519948749861491, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.022306831770080617, 0.0, 0.0, 0.003074570476841778, 0.0, 0.008145346800616094, 0.0, 0.0, 0.0, 0.08511345922427967, 0.18366197461769765, 0.025789383308915437, 0.008297215015175531, 0.0, 0.09184984081220632, 0.0668166427534811, 0.15796441417080423, 0.0, 0.0, 0.0, 0.0, 0.0, 0.024933369902885204, 0.0, 0.011259308615493588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02160071316022016, 0.0, 0.0, 0.0, 0.1015273549658925, 0.0, 0.3722773110385471, 0.0, 0.0, 0.0, 0.005704132382790829, 0.576786252698806, 0.6048982987919145, 0.3404333765031976, 0.0, 0.1776491403162125, 0.3619951063590594, 0.0, 0.0, 0.0, 0.0, 0.20056572202110787, 0.0, 0.4038849000985208, 0.0, 0.07292911426252524, 0.0, 0.0, 0.0, 0.0, 0.3254810866068793, 0.0, 0.0, 0.0, 0.0486152336987337, 0.0, 0.38697085430573647, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7532037777522111, 0.0, 0.0, 0.2947709821219489, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008564738540478935, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2647016620516834, 0.0, 0.0, 0.5486174586047213, 0.0, 0.0, 0.0, 0.0, 0.0]), 42), 42)),) +(CR = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25238968158185693, 0.0, 0.0, 0.48865059160643304, 0.11871952163266221, 0.13783085437527975, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1100520583840872, 0.0, 0.6593611321473758, 0.05928345080192752, 0.009174411759749758, 0.0, 0.0, 0.19127876171690858, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07691735887883953, 0.0, 0.05392395392410878, 0.02141387988861775, 0.34710885925020263, 0.0, 0.0, 0.0, 0.0, 0.004888456103411815, 0.23938597192062988, 0.14380896793554465, 0.0, 0.0, 0.11091906743258541, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.42492930113736893, 0.0, 0.0, 0.0, 0.3917786049138451, 0.0, 0.027947398300345625, 0.0, 0.0, 0.0, 0.027990755993474236, 0.23996972136870412, 0.0, 0.0, 0.0, 0.16076348282437408, 0.0, 0.0, 0.0, 0.0, 0.2346717239666177, 0.0, 0.1645197835042719, 0.0, 0.15581124610211206, 0.0, 0.0, 0.0, 0.0, 0.16923528472284902, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07802881298690809, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0008989792695458017, 0.0, 0.0, 0.0, 0.0, 0.06720357557125424, 0.0, 0.0, 0.0, 0.3718711629986387, 0.0, 0.0, 0.3609126159300422, 0.1163460342216259, 0.26803502779771143, 0.5785179690130179, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20913099459980355, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3230898388302748, 0.31857597482541405, 0.458635468333174, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7731954314831251, 0.7216673432976093, 0.0, 0.7303507448180484, 0.14951424728459475, 0.7849205313632122, 0.0, 0.61487751501265, 0.0, 0.0, 0.25756111513158075, 0.0, 0.4611561614453371, 0.11767850077853764, 0.8141145056659213, 0.17774815965387922, 0.0, 0.0, 0.6559733835287642, 0.36761704346577023, 0.0, 0.0, 0.0, 0.7451998098255509, 0.033169973232688346, 0.411513621864204, 0.20930644094410764, 0.0, 0.0, 0.0, 0.10412334822136202, 0.6428221612529075, 0.2944149731643712, 0.0, 0.01883057275583864, 0.0, 0.05108593913912473, 0.0, 0.0, 0.521025535425184, 0.0008200368898190739, 0.0, 1.1919622969351262, 0.6934669965376988, 0.46942192138741023, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37125241315091917, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29594902098744047, 0.0, 0.0, 0.0, 0.5073161019921272, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.36145064005412786, 0.0, 0.054781056420259586, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6055780045451759, 0.09162757378665623, 0.04766798091106047, 0.0, 0.46059427954757914, 0.1119031338013209, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37567607243684537, 0.6215033212682567, 0.6577405362916645, 0.03204652922702584, 0.0, 0.0650525320202852, 0.18029632002719695, 0.0, 0.0, 0.0, 0.0, 0.008472932483726157, 0.0, 0.0, 0.0, 0.0, 0.13094335555018422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16141065848651698, 0.0, 0.051110856273358346, 0.0, 0.020946973304893955, 0.06226614898669832, 0.0, 0.2444646619775439, 0.0, 0.0, 0.0, 0.0, 0.04963632606956389, 0.0, 0.0, 0.0, 0.08508663882314382, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1263166966867768, 0.0, 0.15643691198571966, 0.0, 0.0, 0.0, 0.15262026274680354, 0.0, 0.526388198493186, 0.0, 0.0, 0.033474977962917256, 0.060622203675208805, 0.0, 0.43377644245905544, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3151002104915899, 0.0, 0.09477312339277622, 0.0, 0.0, 0.0, 0.152252080697694, 0.0, 0.0, 0.0204339991404229, 0.1698000966652489, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22850913265749315, 0.0, 0.7903794435818682, 0.5335588868613267, 0.0, 0.0, 0.33064520351324683, 0.11423967014312472, 0.532326845734251, 0.0, 0.0, 0.0, 0.0, 0.5700696949494688, 0.5896247750753707, 0.0, 0.4280369290594203, 0.0, 0.27339018574089047, 0.25517063473696217, 0.0, 0.4053021670425236, 0.0, 0.7145118270418906, 0.18406779329511921, 0.5332101577384002, 0.15679597786898153, 0.0, 0.02405447430944597, 0.5068714011553328, 0.2632866105026604, 0.0, 0.0, 0.0, 0.0, 0.0, 0.026822919064352108, 0.0, 0.09441824561660622, 0.15069396874531527, 0.24064671368655893, 0.0, 0.06394357060327457, 0.3982245622181067, 0.22117139549869444, 0.14930545644387866, 0.0, 0.2667835225346214, 0.4473684178329899, 0.0, 0.14896069513005675, 0.0, 0.41433289250349636, 0.0, 0.5041716274275465, 0.26176138019545275, 0.5757006867537102, 0.08966813962959974, 0.11977731163657437, 0.0, 0.0, 0.29331748913539113, 0.14887247084155056, 0.1452951955564375, 0.0, 0.0, 0.0, 0.0, 0.34161907033931543, 0.05898137093682045, 0.05240866036729835, 0.0, 0.0, 0.0, 0.5188204085313443, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5773724259871397, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22601349058504813, 0.0, 0.3467947164134737, 1.502272260353748, 0.19536436403308852, 0.0, 0.0, 0.0, 0.0, 0.4899706257461605, 0.20445136303854802, 0.7748906467295266, 0.0, 0.0, 0.15253741518885644, 0.0, 0.12918615799515507, 0.0, 0.0, 0.649394095142608, 1.40604728101928, 0.0, 0.5734783753787226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8762605287663663, 0.8124102702299425, 0.0, 0.0, 0.6752965428315182, 0.25420065076928294, 0.2878352998155691, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8742900027056961, 0.0, 0.007209075676415797, 0.028458058565007462, 0.0, 0.0, 0.002645728789765276, 0.0, 0.0, 0.0, 0.669321167131686, 0.0, 0.0, 0.3215833521867582, 0.002002885293525303, 0.5455785228014223, 0.5839672123490091, 0.1695566125503257, 0.0, 0.0, 0.0, 0.0, 0.3711983399532414, 0.0, 0.0, 0.037869811310371364, 0.0, 0.0, 0.0, 0.3906765181627519, 0.0, 0.0, 0.0, 0.004333175863679718, 0.0, 0.0, 0.0, 0.0029029347517778824, 0.43381543679330525, 0.0, 0.0, 0.0, 0.0, 0.3545426084781949, 0.0, 0.3770558352493434, 0.6375411486503958, 0.0, 0.0, 0.0, 0.23985359098491452, 0.021961946298743228, 0.0, 0.3910697032182053, 0.0, 0.6932074965542865, 0.0, 0.0, 0.10364106821683754, 0.0, 0.798416207733151, 0.5329842919228587, 0.0, 0.4844692491628223, 0.0, 0.0, 0.0, 0.0, 0.09106971306440546, 0.0, 0.0, 0.0996076819499136, 0.0, 0.0, 0.1638248686693664, 0.0, 0.3325546563665125, 0.0, 0.0, 0.0, 0.06881525170797138, 0.0, 0.44073566130025815, 0.0, 0.4019788844385439, 0.0, 0.0, 0.6714215423158676, 0.3399125937167764, 0.3046141011370791, 0.0, 0.0, 0.0473355681300066, 0.3630070132608522, 0.0, 0.0800754636262803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2369140918241696, 0.0, 0.0, 0.35909981102365546, 0.2433693452274136, 0.6477566576645207, 0.0, 0.0, 0.0, 0.0, 0.4005702988980329, 0.6327139875815745, 0.45739813367595, 0.2306117264369203, 0.1673891610155256, 0.0, 0.3233168523165315, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04211122573483531, 0.0, 0.06803593591564691, 0.5741938845793657, 0.0476975123297982, 0.5504819156825551, 0.044516401141561746, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13524675835101255, 0.0, 0.22945132617429284, 0.0, 0.0, 0.0, 0.0, 0.1577714195074665, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2785368262709604, 0.12576967984327264, 0.0, 0.0, 0.0, 0.21559450852042064, 0.04903058086742513, 0.0, 0.1695895598298771, 0.11448427397866526, 0.0, 0.0, 0.023071609626772224, 0.0, 0.11421991827694536, 0.0, 0.0, 0.0, 0.007379588146467978, 0.07866376283476462, 0.3892472589606234, 0.0, 0.09184271552047321, 0.0, 0.25448001970252454, 0.2286582495545744, 0.02328034708296836, 0.0, 0.0, 0.0, 0.0, 0.3270923296219218, 0.0, 0.0, 0.0, 0.02043338740984974, 0.0, 0.0, 0.37277616481672965, 0.0, 0.0, 0.0, 0.0044846057268865735, 0.0, 0.3249615768942753, 0.0, 0.0, 0.19094547447052443, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08406342406417443, 0.0, 0.033182079075965945, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6500195484438399, 0.0, 0.0, 0.0, 0.0, 0.5537781763556555, 0.02656015063015655, 1.1909226087779956, 0.06852425737111054, 0.0, 1.3426353595976268, 0.6057701268300226, 0.9302934294779756, 0.0, 0.02223254227484718, 0.9934644128441693, 0.0, 0.06172390220433867, 0.20273446118005728, 0.5149938580802573, 0.1300590771577626, 0.2385875538652477, 0.0, 0.595480643743492, 0.0, 0.0, 0.0, 0.24275727828178406, 0.0, 0.7073132892445582, 0.0, 0.5182899096571696, 0.0, 0.363354145475898, 1.046444738015761, 0.8990939341913878, 0.5284345996323894, 0.0009271750893556132, 0.0, 0.0786791826827641, 0.5567513178048157, 0.0, 0.11672601563414542, 0.0, 0.0, 0.0, 0.0, 0.513610216882899, 0.0, 0.3599562947175533, 0.012305112294495107, 0.0, 0.3547644724719033, 0.0, 0.31743838097476296, 0.0, 0.0, 0.0744235447925737, 0.0, 0.0, 0.3186229810095584, 0.0, 0.7632822460090717, 0.3112891249755775, 0.0, 1.2592130951288079, 0.4142666686935799, 0.0, 0.0, 0.0834856922205997, 0.0, 0.5673263343800874, 0.0, 0.0, 0.0, 0.011109757680217765, 0.7473278912032746, 0.4577974378546139, 0.07323000489837116, 0.33380163101303967, 0.0, 0.014128663560806082, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19621458519667637, 0.0, 0.0, 0.0, 0.0, 0.4083399062549612, 0.0, 0.3744505994071715, 0.0, 0.5655910339236376, 0.0, 0.0, 0.08962016161963385, 0.0, 0.0, 0.0, 0.0, 0.3660241210222327, 0.0, 0.42450374338695224, 0.6660088440351456, 0.0, 0.0, 0.28456417514777416, 0.0, 0.6631091941560893, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.002609340728317194, 0.0, 0.0, 0.0, 0.0, 0.1290910408202515, 0.0, 0.12880600190077574, 0.0, 0.21852433519062017, 0.14617196989407044, 0.04712090478664361, 0.17786735669510226, 0.013608617966411374, 0.0, 0.1599219758144718, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13118766387513575, 0.18575036424480185, 0.0, 0.0, 0.0, 0.0, 0.24739057674609932, 0.08098740885007556, 0.0, 0.0, 0.11169555771003165, 0.0061692969950391426, 0.0, 0.0, 0.0, 0.1300402212804686, 0.0, 0.22061823582759926, 0.32468517510166695, 0.17899843511210062, 0.0, 0.0, 0.0, 0.0, 0.3555268023407697, 0.0, 0.0, 0.0, 0.5637648459713849, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.41259886956253183, 0.0, 0.0, 0.0, 0.0, 1.0217866044035127, 0.0, 0.0, 0.0, 0.09699076097844603, 0.49177999120325233, 0.617482417183965, 0.9254348782417843, 0.19189797684210885, 0.37564958516196006, 0.0, 0.6028533281724416, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4525887449543689, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.3536752652948492, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5159325071456758, 0.45703260113959776, 0.11783337867793497, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.014395933646557283, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5291071006274988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4362705134404812, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06167194341482688, 0.0, 0.26507468559563424, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18765355736657707, 0.0, 1.0014115383719757, 0.10542483708166006, 0.22040848700903187, 0.0, 0.3600323742449293, 0.06543742592421764, 0.0, 0.06637441639531827, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3967141864154841, 0.0, 0.18259679072826512, 0.0, 0.2818810986099949, 0.0, 0.0, 0.0, 0.04462260901941838, 0.650460148621926, 0.9472330785275007, 0.0, 0.0, 0.0, 0.0, 0.20815281221075516, 0.19618764447572262, 0.06473525648539784, 0.0, 0.0, 0.0, 0.1542243249790465, 0.13224172712193835, 0.0, 0.007908832517684252, 0.0, 0.051353982240120374, 0.0032977751233809844, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27800255996089945, 0.0, 0.0, 0.1281258773488851, 0.0, 0.0, 0.0, 0.31683019969084447, 0.0, 0.0, 0.0, 0.19099043815219882, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2169883137756601, 0.0, 0.7505306274250138, 0.5066582758142599, 0.0, 0.07143979002259558, 0.10210504506442938, 0.15444313156667316, 0.5054883509033501, 0.0, 0.0, 0.0, 0.0028518817212982773, 0.3481320627001662, 0.559897472000501, 0.0, 0.40645645270348807, 0.0, 0.36960222637651485, 0.34497081323202616, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0330129037169125, 0.05220506486278423, 0.053654185080025577, 0.0, 0.0, 0.1851124085000456, 0.04497376440934621, 0.35304695602824443, 0.0, 0.0, 0.343295765136816, 0.2793332554556384, 0.0, 0.0, 0.040358875497600165, 0.24978160129073035, 0.0, 0.0, 0.0, 0.0, 0.07246092173943684, 0.0, 0.16628600115413392, 0.0, 0.0, 0.0, 0.06634041958053304, 0.0, 0.0, 0.0, 0.008112084482454424, 0.0, 0.0, 0.3510991071496956, 0.30792356595023396, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24591462609017128, 0.0, 0.0, 0.0, 0.0, 0.1723485353456609, 0.17746213232343597, 0.26032482377035826, 0.0, 0.0, 0.09642188463361992, 0.0, 0.0, 0.9312549994812083, 0.0, 0.4355669936335271, 0.22986161845318145, 0.0, 1.1016016643957898, 0.5367168823744637, 0.0, 0.0, 0.1081626494181155, 0.0, 0.5354775491181646, 0.0, 0.0, 0.7066771289166013, 0.005913227901483509, 0.36878575613264597, 0.5931146099182986, 0.0, 0.43177137005853594, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2792172801438884, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18771394461865235, 0.0, 0.3810480475576988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04963057208911237, 0.0, 0.0, 0.0, 0.014028126739435154, 0.6487755206193258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019308069898724092, 0.0, 0.0, 0.15473333790095384, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20078144855224883, 0.04664059814698181, 0.0, 0.0, 0.02360446678134394, 0.0, 0.0, 0.06383755139363034, 0.0, 0.1295864000345023, 0.0, 0.0, 0.0972547510814237, 0.0, 0.07205581060374358, 0.016878310254842765, 0.0, 0.0, 0.0, 0.0, 0.2206348639926782, 0.0, 0.0, 0.2053453449704589, 0.18009351088331146, 0.17243879836126652, 0.16094695393647487, 0.0, 0.0, 0.0026102124382687284, 0.009478472183394092, 0.22228584913081856, 0.0, 0.0, 0.22567472183496304, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.002853715730108796, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0005790797752150057, 0.4809080576930432, 0.0, 0.0, 0.0, 0.32217587215618376, 0.0018177803358381927, 0.0, 0.0, 0.0, 0.0003287432209283418, 0.0, 0.0008918558343658391, 0.0, 0.0, 0.009096038390466929, 0.0, 0.0, 0.0, 0.00873033402576318, 0.007007183394127084, 0.45496728899530875, 0.0, 0.1316351307673038, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09338135584056179, 0.18382194877540864, 0.0, 0.563495172825665, 0.0, 0.0, 0.0, 0.05639497562938005, 0.14653622131196892, 0.0, 0.0, 0.0, 0.251192534270281, 0.1344408525103349, 0.0, 0.4650111134116464, 0.31391354376028213, 0.0, 0.0, 0.06326188293375198, 0.0, 0.31318868581904563, 0.0, 0.0763329064988246, 0.0, 0.0, 0.2156944329452718, 0.3468992967609863, 0.0, 0.2518308523576955, 0.0, 0.17896869808051252, 0.05403813425807818, 0.027124296544448725, 0.0, 0.0, 0.0, 0.0, 0.11640144853391314, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09109340489796702, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1194057971602891, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6552661573805515, 0.0, 0.0, 0.0, 0.21450271688804268, 0.0, 0.0, 0.902854749674862, 0.06907734840039648, 0.0, 0.811763991573728, 0.24446155688431725, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0551218990786032, 0.0, 0.0, 0.6659086165622266, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4110921087644639, 0.0, 0.0, 0.07931423881912922, 0.0, 0.0, 0.37316154887557274, 0.11430607897800385, 0.4150800042560803, 0.0, 0.10099097676635159, 0.6592915699634367, 0.0, 0.25936644093477396, 0.07666208914620723, 0.0, 0.0, 0.7807360976520861, 0.0, 0.0, 0.04275453625658718, 0.1985413718724771, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13633482744457018, 0.0, 0.2252743029271589, 0.0, 0.0, 0.0, 0.5464410650922171, 0.11366230227156136, 0.6018718955402885, 0.0, 0.014396279790867243, 0.0, 0.03905603312028952, 0.8092451213661034, 0.0, 0.39833251401456404, 0.0, 0.12251229365728535, 0.27200847035734843, 0.25388100105648176, 0.30685765140009125, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07517201195249319, 0.0, 0.0, 0.0, 0.0, 0.3595498458067731, 0.0, 0.0, 0.0, 0.05519776563775433, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13158680513977092, 0.0, 0.45513938379424074, 0.3072494672729318, 0.0, 0.0, 0.061918895238623206, 0.0, 0.306539997354477, 0.0, 0.0, 0.0, 0.0, 0.21111545179707192, 1.113727824196147, 0.0, 0.24648473048642042, 0.0, 0.0, 0.0, 0.6244696783059631, 0.0, 0.0, 0.010619491746539882, 0.0, 0.0, 0.057745206745770994, 0.0, 0.008858840711593166, 0.0075334185627281185, 0.1972006876834336, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15720126897663422, 0.2881788570254271, 0.05549794388099826, 0.0, 0.43880673821983995, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006158057243750719, 0.0, 0.0, 0.05862006643173159, 0.15125593941090254, 0.03302320207312045, 0.0, 0.0, 0.19199421271725345, 0.004359455697024407, 0.02909842903488052, 0.4051738652139157, 0.0, 0.0, 0.0, 0.0, 0.661857462083124, 0.27266071825745297, 0.09855620143563353, 0.03009452021788303, 0.0, 0.0, 0.36386547477639486, 0.0, 0.3154569959145931, 0.0, 0.12777365741134986, 0.0, 0.2874935496978787, 0.0, 0.0, 0.021877890033203812, 0.1316957530661763, 0.0, 1.0462327541742331, 0.24642978428043782, 0.0, 1.292534939963643e-5, 0.04966212026978902, 0.16767073337455046, 0.24586075312633993, 0.7749426824526595, 0.2192927197338787, 0.0, 0.15373812475086615, 0.1693253879539043, 1.1992945978003244, 0.0, 0.19769335810835964, 0.0, 0.2843031573913307, 0.2653563328642114, 0.6319651047837591, 0.0, 0.0, 0.2886502960323224, 0.2007500567698334, 0.0, 0.0, 0.0, 0.0, 0.4490517136878312, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.43431608561880214, 0.0, 0.0, 0.0, 0.29096240214176294, 0.0, 0.0, 0.24728201213730056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.199315833820732, 0.40813133046287003, 0.25266186539111524, 0.0908889085249469, 0.0, 0.0, 0.45688115062815576, 0.11100101499363633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02264115832549351, 0.6164930072930471, 0.0, 0.0, 0.44347420874850846, 0.0, 0.17884284240125642, 0.0, 0.2888836731929794, 0.21018531617189648, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3429810739029393, 0.02002166425453684, 0.021961075245274804, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.557136258905774, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.36191890674012556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12978916081088554, 0.0, 0.33079766328323545, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20464300021869425, 0.0, 0.0, 0.0, 0.0, 0.5063973085557268, 0.26737229244864336, 0.08619179411886842, 0.0, 0.0, 0.0, 0.49896059675156373, 0.0, 0.9000423796847855, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6355437645077721, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3962962286854009, 0.0, 0.0, 0.33976760898340913, 0.0, 0.0, 0.478819001240275, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), 42), 42)),) julia> @finch_code begin Ct .= 0 for i = parallel(_) @@ -246,7 +246,7 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.5786578146202624, 0.0, 0.3202961159483594, 0.3207279869105304, 0.5035217854841559, 0.0, 0.013671076975665627, 0.01669925591794789, 0.0, 0.0, 0.0, 0.5652457771225854, 0.0, 0.09766762955114001, 0.2831455624824939, 0.0, 1.0556185392068085, 0.2068017763866623, 0.0, 0.15942131380345745, 0.005607444973383372, 0.0, 0.056687675717707615, 0.2535497922885842, 0.4637407985590488, 0.22387274550179712, 0.5454655738973408, 0.08490666489615803, 0.3556465582001688, 0.0, 0.0, 0.31186727366054, 0.6972638697010188, 0.0, 0.0, 0.009518501694028625, 0.0, 0.5833334701399113, 0.6244214908493986, 0.0, 0.26168041250093527, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0131047746782154, 0.0, 0.6656645247350605, 0.0, 0.0, 0.0769882955934405, 0.0, 0.0, 0.34004774503974494, 0.08053504092577264, 0.006982581834800098, 0.5446249720805942, 0.0, 0.0, 0.31025177039320695, 0.2638902653915397, 0.0, 0.0, 0.0, 0.0, 0.2008136945182758, 0.0, 0.0, 0.19041992572397343, 0.05903622381609576, 0.0, 0.0589978949008293, 0.05133054295704808, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7141967536140789, 0.0, 0.11331087789790419, 0.0, 0.0, 0.13904571220904566, 0.16685503671570054, 0.0, 0.1461222249815685, 0.0, 0.0, 0.0, 0.1624667486179013, 0.0, 0.0, 0.0001466632220376543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.040061564188380784, 0.0, 0.0, 0.05925661356360367, 0.0, 0.20052213796576485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1322273764299389, 0.0, 0.07284319524978862, 0.0, 0.21698248889777863, 0.0, 0.22616177063294415, 0.0, 0.0, 0.0, 0.0, 0.52849490550171, 0.0, 0.71926878469886, 0.0, 0.6501927607213651, 0.0030355649865830615, 0.37799680598211977, 0.0, 0.0007078975665940506, 0.09351646752064424, 0.05681500695663011, 0.0, 0.20243859396970953, 0.0628704495708815, 0.001556209278473695, 0.0, 0.0, 0.0, 0.0, 0.0027171741525499, 0.0, 0.0, 0.0, 0.07038911039656341, 0.049709343960620045, 0.0, 0.018852918431012597, 0.26140762404567164, 0.049374687944063446, 0.0, 0.0, 0.5682508160039592, 0.08397693763382687, 0.0, 0.0, 1.1395457189674745, 0.10207861893624984, 0.006346754524020049, 0.07139718683099765, 0.0, 0.4257292397317542, 0.0, 0.0, 0.003459642976589088, 0.00011827788909935122, 0.29669071600135444, 0.0, 0.04645302583039929, 0.6403581026228157, 0.0, 0.0, 0.4035906657629842, 0.0, 0.0, 0.031770473502227184, 0.0, 0.10177861753458611, 0.08984803025006428, 0.2696383585775038, 0.0, 0.0, 0.0, 0.0, 0.4020058229022269, 0.8537152750348289, 0.27466570696380027, 0.0, 0.9014511503031993, 0.0, 0.0, 0.0, 0.3588364621034526, 0.0, 0.10358336916612662, 0.0, 0.8253783539224127, 0.003096290011755601, 0.3727209618097055, 0.0, 0.0, 0.0, 0.08512247762765326, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0016669318756259504, 0.0, 0.0, 0.9038241621401286, 0.23981242371494071, 0.0, 0.0, 0.0, 0.10303433366133424, 0.0, 0.0, 4.317142647672722e-5, 0.0, 0.07840647389573854, 0.0, 0.0, 0.0, 0.0, 0.36164895718336953, 0.011697025915496142, 0.0, 0.0, 0.0, 0.0, 0.001969151291048087, 0.0, 0.0016085698018090215, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8640055140280944, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10961290316901336, 0.0, 0.0, 0.0, 0.34012752342022284, 0.0, 0.09000159029348583, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.38387258660557405, 0.0, 0.0, 0.0, 0.04942864149427501, 0.0, 0.9641925530766522, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1618638919487994, 0.0, 0.0, 0.1434695556565637, 0.3651050198592113, 0.0, 0.04210320606021404, 0.5803955429188099, 0.0, 0.0, 0.36579879697476825, 0.4517875751113323, 0.0, 0.0, 0.0, 0.597783133294766, 0.0, 0.0, 0.6329135233850276, 0.0, 0.002597015658553236, 0.2174699638827603, 0.39061652165480276, 0.765918958416278, 0.0, 0.016481521625833693, 0.28751000269430316, 0.0, 0.1647131064041664, 0.0, 0.4521970394725687, 0.0, 0.0, 0.11039007420645473, 0.0, 0.0, 0.0, 0.902497226885166, 0.7436286750029288, 0.09842900387294973, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0017337381605838167, 0.0, 0.48184280820859876, 0.0, 0.0, 0.4182604044398821, 0.05413499724631636, 0.00395203096164986, 0.49703533424495255, 0.0, 0.0, 0.0, 0.43461516165530706, 0.0, 0.0, 0.2097986260899648, 0.0, 0.0, 0.0, 0.0032389406325184205, 0.11624028110212369, 0.0, 0.23514374437795085, 0.0, 0.013757851512121493, 0.0, 0.23992048040279412, 0.32911722925956555, 0.0, 0.18863648593265903, 0.5965040702112832, 0.0, 0.0, 0.006607346447861224, 0.005821424904675781, 0.2242736217811627, 0.0, 0.0, 0.02743682303358625, 0.03021510122691055, 0.4109976396191596, 0.016694351333046, 0.0, 0.0, 0.15588266372439724, 0.0, 0.7589538506473881, 0.0, 0.0, 0.9157838182946224, 0.07079903450052254, 0.0, 0.0, 0.0, 0.8133345120890082, 0.19376473666562866, 0.0, 0.0, 0.24554349589597185, 0.2326206471524158, 0.5829196459370383, 0.0, 0.344078222468009, 0.0, 0.5927124546739914, 0.21206748875282805, 0.5013588717575729, 0.1507046170639337, 0.0, 0.2922067750640437, 0.9112630304460252, 0.0, 0.42296978570223137, 0.0, 0.0, 0.0, 0.0, 0.47847449991115903, 0.0, 0.0, 0.0, 0.0, 0.02922391861250235, 0.003575617433634187, 0.0, 0.0, 0.18000379265062824, 0.0, 0.0, 0.0, 0.020223410318598516, 0.0, 0.0, 0.0, 0.0, 0.1194607408090099, 0.0, 0.18567470153771173, 0.015493204406064897, 0.0, 0.0, 0.22675090423473912, 0.0, 0.6338841242698132, 0.5245326238847832, 0.0019166419799919094, 0.6594541233567529, 0.0, 0.005139571264149575, 0.0, 0.0, 0.0, 0.014894820580065271, 0.0, 1.2034959876942206, 0.0, 0.25665804266856174, 0.012594729973842587, 0.0, 0.011446343678364038, 0.0, 0.0, 0.02279435489937408, 0.025102532455875536, 0.0, 0.0, 0.0, 0.0, 0.1307674017372415, 0.5572422675871412, 0.20860522647402835, 0.3439153754178085, 0.0, 0.7682359770495442, 0.05881943098741484, 0.0, 0.0, 0.7560476592821442, 0.06967644285195858, 0.0, 0.04321641535911349, 0.0, 0.0, 0.0, 0.8024673537053417, 0.0, 0.0, 0.0, 0.0, 0.1761844509232577, 0.8168042507595197, 0.0, 0.0, 0.0, 0.5887168313525647, 0.0, 0.0, 0.4050160345946778, 0.0, 0.28424121144843517, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04314478705768561, 0.17729851568072083, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06445720856859194, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10331544984256105, 0.2490312779322865, 0.0, 0.24280852181294071, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5198374016631779, 0.0, 0.0, 0.0, 0.13645064069986682, 0.0, 0.24758012015088376, 0.5314044104438821, 0.0, 0.0, 0.3110470576055099, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02359980206981429, 0.36163373919282166, 0.0, 0.0, 0.4835792742792758, 0.0, 0.3524294596638372, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27655502261887766, 0.0, 0.0, 0.0, 0.0, 0.22117286156450722, 0.0, 0.15521963759663626, 0.0, 0.0, 0.0, 0.0, 0.021723812939992326, 0.02392358642299197, 0.0, 0.9811990708246294, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4965569454339231, 0.08530918757868192, 0.0, 0.07823884141505981, 0.08129763345109173, 0.8580687524263778, 0.6125638634435169, 0.7792197114170356, 0.17406349022985984, 0.0, 0.7428281837408045, 0.0, 0.07932414385265583, 0.46154167819945197, 0.0, 0.5289001614381607, 0.0, 0.8287876866571131, 0.1679099089089469, 0.695722986230781, 0.0, 0.010707260605614142, 0.014687966352699852, 0.03846916856579124, 0.6678999803007167, 0.8946423775406338, 0.0, 0.0, 0.6928842432378984, 0.0, 0.8291172549334254, 0.0, 0.036214437271524916, 0.0, 0.6493274982169268, 0.0, 0.0, 0.0, 0.0, 0.022863259627981244, 0.7335275809594394, 0.03647235770741211, 0.0, 0.287070580153256, 0.13431771500769504, 0.14856735628547443, 0.15781940486580828, 0.0, 0.0, 0.323980207489089, 0.0, 0.02667757509153305, 0.33154611696012287, 0.008340998981572286, 0.0, 0.1964137723963185, 0.0, 0.18369526317696738, 0.0, 0.36991237719570497, 0.0, 0.0, 0.060663484669780686, 0.0, 0.0, 0.10293074255327075, 0.9555336304557553, 0.0, 0.2500171656161189, 0.5342857393564834, 0.17546263843294155, 0.0, 0.35442104566615373, 0.0, 0.0, 0.0, 0.0, 0.17621149415330922, 0.6121951999020001, 0.14104370661074167, 0.0, 0.03700642443953683, 0.5101360635898259, 0.0, 0.0, 0.398419677876043, 0.0, 0.0, 0.0, 0.23862742072997933, 0.0, 0.06314351493041778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32025466250143747, 0.0, 0.0, 0.0, 0.25412006584310015, 0.0, 0.2693181789862389, 0.0, 0.2858641430477511, 0.0, 0.12448957171647013, 0.0, 0.6764603455612473, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.007629531631679027, 0.008402105093687509, 0.1478058101242069, 0.005053168588900645, 0.0, 0.30372648283729076, 0.003980754378397801, 0.0, 0.0, 0.0, 0.0, 0.07450559902388645, 0.019687537166852037, 0.0, 0.08244653582028545, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16209616805705127, 0.0, 0.08979346385777931, 0.06518743281502334, 0.21315534710850095, 0.08369413937188341, 0.1394160455900761, 0.5610626715103558, 0.0, 0.0, 0.13968567626607642, 0.0, 0.0, 0.0, 0.0, 0.01924679403964147, 0.0, 0.0, 0.0, 0.0, 0.616722369104707, 0.0, 0.0, 0.5466375681050827, 0.0, 0.0, 0.013987945284851467, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09368066064257337, 0.0, 0.24818473838609467, 0.04865531902212218, 0.0, 0.009894965642192768, 0.0, 0.45825677816644195, 0.7857899124906229, 0.25281208870305677, 0.0, 0.8251354193653254, 0.0, 0.6275782447904167, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7597076021322064, 0.4559884064545227, 0.3430656338577527, 0.32001374263313714, 0.2977084759378876, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26332513624077, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07361684952632414, 0.0, 0.0, 0.0, 0.5420044017413929, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5785225932672249, 0.0, 0.0, 0.0, 0.6899231282082093, 0.33897374575165645, 0.4841896839083132, 0.0, 0.0, 0.0, 0.0, 0.6240541831707288, 0.0, 0.0, 0.5531361892215293, 0.4547991804243185, 0.0, 0.100152739355421, 0.0, 0.2440837061302026, 0.0, 0.0, 0.0, 0.0, 0.12076927556310874, 0.0, 0.0, 0.3415398112751411, 0.0, 0.0, 0.0, 0.010012600500133058, 0.0, 0.10122097549537463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6350391173534848, 0.0, 0.0, 0.5362493708751273, 0.3870491592555651, 0.0, 0.0, 0.011769944241680865, 0.3142045963597273, 0.0, 0.30124773979598957, 0.0, 0.3235765421156834, 0.0, 0.541761414379215, 0.0, 0.0, 0.8318031269227326, 0.0, 0.0, 0.0, 0.0, 0.0, 0.655176286023573, 0.0, 0.0, 0.12998028512957016, 0.09284961824757046, 0.5535451825358659, 0.6996061073192734, 0.06205996989121698, 0.0, 0.0, 0.0, 0.008692259029504977, 0.0, 0.08787316923443415, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5512977874061133, 0.0, 0.06274188232221303, 0.0860678272807259, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7913396090809787, 0.26152280681975265, 0.0, 0.0, 0.0, 0.0, 0.0, 0.028664478181671504, 0.0009799779903315728, 0.0032348889210802386, 0.0, 0.11837934340514084, 0.4864662292788164, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07382213914734657, 0.0, 0.0, 0.0, 0.17685571185867954, 0.2510513607906149, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0019118999997271302, 0.0, 0.04133793381575315, 0.2834737624180827, 0.6832843821792778, 0.0, 0.6662105748014928, 0.0, 0.5326269406399959, 0.0, 0.0, 0.0, 0.0, 0.10672810444069859, 0.0, 0.07123750254807154, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.007981914293001519, 0.10075857550012479, 0.009540391703188681, 0.0, 0.11580721042791553, 0.0, 0.0, 0.17856228523566461, 0.00048020843909893406, 0.0, 0.197593765283525, 0.0, 0.0, 0.0, 0.6194557197663932, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21520162666608084, 0.1562300971282056, 0.0, 0.0592523063663964, 0.0, 0.18612758103797813, 0.0, 0.2544272402257203, 0.15422821911002763, 0.0012917517157272594, 0.0, 0.0, 0.14907655404346837, 0.09429642888622711, 0.0, 0.0, 0.0, 0.0, 0.09600808583182174, 0.0, 0.005856583784053075, 0.08156012032053195, 0.09312148266647201, 0.0322184865015818, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03641255600507808, 0.0, 0.09646644914865622, 0.6107192924560144, 0.0, 0.0008311989920553221, 0.04768463204338608, 0.008402889219987731, 0.30542717141970227, 0.09826504505325136, 0.08476742117805344, 0.35700707759139916, 0.0, 0.052717960159591244, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29528928831604634, 0.0, 0.18118798681716172, 0.047489656233823854, 0.07375616702811215, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15842644268884615, 0.005416265593171256, 0.0, 0.0, 0.0, 0.06326712126451656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22847169102573353, 0.0, 0.11955753824812076, 0.0, 0.0, 0.0, 0.08074664695989245, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0029119331378805115, 0.0, 0.0, 0.1953274033599059, 0.0, 0.0, 0.0, 0.48520999511490304, 0.0, 0.0, 0.0, 0.0, 0.13603276168063752, 0.0, 0.06155663979875702, 0.0, 0.0, 0.0, 0.19100951475155065, 0.0, 0.05054327834442013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21557595738397023, 0.0, 0.0, 0.2988625665604049, 0.02775823823873608, 0.0, 0.5414732387378444, 0.0, 0.1751125450084881, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7653173403797493, 0.011610920930129028, 0.0, 0.6690009447860032, 0.007717112212206315, 0.0, 0.0, 0.0, 0.0, 0.0949800986519104, 0.0, 0.01759104522847652, 0.0272063292239745, 0.0, 0.18672851022958098, 0.14592398686801408, 0.0, 0.0, 0.06111532732066789, 0.0, 0.012109927581814974, 0.0, 0.3464253043638218, 0.014416979955844242, 0.0, 0.0, 0.004751074128394563, 0.0814923248235591, 0.960719872887566, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029410227635468144, 0.3902617128196832, 0.0, 0.0, 0.0, 0.0, 0.03936155946785215, 0.0, 0.0, 0.0, 0.0, 0.03226521554976169, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029868187491618223, 0.0, 0.007848954300217155, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02618395857766568, 0.0, 0.0, 0.0, 0.02729344001455739, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16043383601301778, 0.0, 0.08114240967089056, 0.0, 0.12944151616666955, 0.0, 0.0, 0.8424042898437758, 0.0, 0.0, 0.0, 0.0, 0.04323489183997365, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2997198089695268, 0.0, 0.0, 0.09877179787471602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.36530436236505814, 0.0, 0.0, 0.0, 0.0, 0.6114198560066337, 0.538693529249165, 0.0, 0.0, 0.0, 0.014312907460573414, 0.015762245768879076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03693357747227013, 0.0, 0.0, 0.5249268945825, 0.0, 0.0, 0.16471382065012125, 0.0, 0.0, 0.0, 0.304090416701445, 0.48915218766248414, 0.0, 0.020376509279081044, 0.0, 0.11062878301178729, 0.26154278602954106, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1338990979320024, 0.0, 0.12169019076516314, 0.0, 0.0, 0.0, 0.5524220216872981, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13426647560262422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05161008110067911, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.007893769925822126, 0.008693100403012733, 0.0, 1.169538837435482, 0.0, 0.5817658012805581, 0.3172103076471354, 0.0, 0.22838627747698767, 0.0, 0.10226945824142554, 0.0, 0.020369387834492953, 0.0, 0.20675490808600527, 0.48677742001957014, 0.6262431249386917, 0.151645446757169, 0.20817481578766972, 0.0, 0.0, 0.0668476153746235, 0.5758263086091524, 0.4536026680375212, 0.09887690089373365, 0.018895630454912823, 0.0, 0.06101333098633492, 0.38664812220872247, 0.0, 0.0, 0.7304510924229297, 0.030046419431745734, 0.0, 1.1003509629444073, 0.5194953755737197, 1.1578838988668234, 0.48875095960339066, 0.0, 0.1128462605244655, 0.0, 0.0, 0.0, 0.4791947947301635, 0.0, 0.03259627779739397, 0.10028189990101041, 0.029465846845003113, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22859113464308234, 0.0, 0.11646855789532944, 0.12693945289885786, 0.0, 0.0, 0.20330790896109577, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1873449680464739, 0.0, 0.0, 0.06173899342973636, 0.0, 0.0, 0.04476882030066193, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04375496463125991, 0.38217838780949126, 0.336719559414533, 0.04092456729054698, 0.0, 0.04229882731958149, 0.0, 0.0, 0.0, 0.1452994629839798, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0184335582446928, 0.0, 0.0, 0.0, 0.057199110071214684, 0.0, 0.14103517741623545, 0.03340505872611428, 0.0, 0.0, 0.0, 0.05811339385405451, 0.0, 0.0, 0.0, 0.0, 0.044222795803071285, 0.0, 0.06455569991448866, 0.0, 0.0, 0.05037647535437417, 0.008312394942553907, 0.0, 0.1621478774157853, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005416039933812771, 0.0, 0.0, 0.0, 0.0398756195493532, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05075809733341722, 0.0, 0.03562215281502755, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19049409924372604, 0.0, 0.0, 0.20255925674743036, 0.0, 0.0, 0.0, 0.0, 0.11222926185446927, 0.0, 0.22599925727813394, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18212734324380878, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21653477423901774, 0.0, 0.0, 0.008644589577152558, 0.009519948749861491, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.022306831770080617, 0.0, 0.0, 0.003074570476841778, 0.0, 0.008145346800616094, 0.0, 0.0, 0.0, 0.08511345922427967, 0.18366197461769765, 0.025789383308915437, 0.008297215015175531, 0.0, 0.09184984081220632, 0.0668166427534811, 0.15796441417080423, 0.0, 0.0, 0.0, 0.0, 0.0, 0.024933369902885204, 0.0, 0.011259308615493588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02160071316022016, 0.0, 0.0, 0.0, 0.1015273549658925, 0.0, 0.3722773110385471, 0.0, 0.0, 0.0, 0.005704132382790829, 0.576786252698806, 0.6048982987919145, 0.3404333765031976, 0.0, 0.1776491403162125, 0.3619951063590594, 0.0, 0.0, 0.0, 0.0, 0.20056572202110787, 0.0, 0.4038849000985208, 0.0, 0.07292911426252524, 0.0, 0.0, 0.0, 0.0, 0.3254810866068793, 0.0, 0.0, 0.0, 0.0486152336987337, 0.0, 0.38697085430573647, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7532037777522111, 0.0, 0.0, 0.2947709821219489, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008564738540478935, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2647016620516834, 0.0, 0.0, 0.5486174586047213, 0.0, 0.0, 0.0, 0.0, 0.0]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25238968158185693, 0.0, 0.0, 0.48865059160643304, 0.11871952163266221, 0.13783085437527975, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1100520583840872, 0.0, 0.6593611321473758, 0.05928345080192752, 0.009174411759749758, 0.0, 0.0, 0.19127876171690858, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07691735887883953, 0.0, 0.05392395392410878, 0.02141387988861775, 0.34710885925020263, 0.0, 0.0, 0.0, 0.0, 0.004888456103411815, 0.23938597192062988, 0.14380896793554465, 0.0, 0.0, 0.11091906743258541, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.42492930113736893, 0.0, 0.0, 0.0, 0.3917786049138451, 0.0, 0.027947398300345625, 0.0, 0.0, 0.0, 0.027990755993474236, 0.23996972136870412, 0.0, 0.0, 0.0, 0.16076348282437408, 0.0, 0.0, 0.0, 0.0, 0.2346717239666177, 0.0, 0.1645197835042719, 0.0, 0.15581124610211206, 0.0, 0.0, 0.0, 0.0, 0.16923528472284902, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07802881298690809, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0008989792695458017, 0.0, 0.0, 0.0, 0.0, 0.06720357557125424, 0.0, 0.0, 0.0, 0.3718711629986387, 0.0, 0.0, 0.3609126159300422, 0.1163460342216259, 0.26803502779771143, 0.5785179690130179, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20913099459980355, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3230898388302748, 0.31857597482541405, 0.458635468333174, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7731954314831251, 0.7216673432976093, 0.0, 0.7303507448180484, 0.14951424728459475, 0.7849205313632122, 0.0, 0.61487751501265, 0.0, 0.0, 0.25756111513158075, 0.0, 0.4611561614453371, 0.11767850077853764, 0.8141145056659213, 0.17774815965387922, 0.0, 0.0, 0.6559733835287642, 0.36761704346577023, 0.0, 0.0, 0.0, 0.7451998098255509, 0.033169973232688346, 0.411513621864204, 0.20930644094410764, 0.0, 0.0, 0.0, 0.10412334822136202, 0.6428221612529075, 0.2944149731643712, 0.0, 0.01883057275583864, 0.0, 0.05108593913912473, 0.0, 0.0, 0.521025535425184, 0.0008200368898190739, 0.0, 1.1919622969351262, 0.6934669965376988, 0.46942192138741023, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37125241315091917, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29594902098744047, 0.0, 0.0, 0.0, 0.5073161019921272, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.36145064005412786, 0.0, 0.054781056420259586, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6055780045451759, 0.09162757378665623, 0.04766798091106047, 0.0, 0.46059427954757914, 0.1119031338013209, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37567607243684537, 0.6215033212682567, 0.6577405362916645, 0.03204652922702584, 0.0, 0.0650525320202852, 0.18029632002719695, 0.0, 0.0, 0.0, 0.0, 0.008472932483726157, 0.0, 0.0, 0.0, 0.0, 0.13094335555018422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16141065848651698, 0.0, 0.051110856273358346, 0.0, 0.020946973304893955, 0.06226614898669832, 0.0, 0.2444646619775439, 0.0, 0.0, 0.0, 0.0, 0.04963632606956389, 0.0, 0.0, 0.0, 0.08508663882314382, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1263166966867768, 0.0, 0.15643691198571966, 0.0, 0.0, 0.0, 0.15262026274680354, 0.0, 0.526388198493186, 0.0, 0.0, 0.033474977962917256, 0.060622203675208805, 0.0, 0.43377644245905544, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3151002104915899, 0.0, 0.09477312339277622, 0.0, 0.0, 0.0, 0.152252080697694, 0.0, 0.0, 0.0204339991404229, 0.1698000966652489, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22850913265749315, 0.0, 0.7903794435818682, 0.5335588868613267, 0.0, 0.0, 0.33064520351324683, 0.11423967014312472, 0.532326845734251, 0.0, 0.0, 0.0, 0.0, 0.5700696949494688, 0.5896247750753707, 0.0, 0.4280369290594203, 0.0, 0.27339018574089047, 0.25517063473696217, 0.0, 0.4053021670425236, 0.0, 0.7145118270418906, 0.18406779329511921, 0.5332101577384002, 0.15679597786898153, 0.0, 0.02405447430944597, 0.5068714011553328, 0.2632866105026604, 0.0, 0.0, 0.0, 0.0, 0.0, 0.026822919064352108, 0.0, 0.09441824561660622, 0.15069396874531527, 0.24064671368655893, 0.0, 0.06394357060327457, 0.3982245622181067, 0.22117139549869444, 0.14930545644387866, 0.0, 0.2667835225346214, 0.4473684178329899, 0.0, 0.14896069513005675, 0.0, 0.41433289250349636, 0.0, 0.5041716274275465, 0.26176138019545275, 0.5757006867537102, 0.08966813962959974, 0.11977731163657437, 0.0, 0.0, 0.29331748913539113, 0.14887247084155056, 0.1452951955564375, 0.0, 0.0, 0.0, 0.0, 0.34161907033931543, 0.05898137093682045, 0.05240866036729835, 0.0, 0.0, 0.0, 0.5188204085313443, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5773724259871397, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22601349058504813, 0.0, 0.3467947164134737, 1.502272260353748, 0.19536436403308852, 0.0, 0.0, 0.0, 0.0, 0.4899706257461605, 0.20445136303854802, 0.7748906467295266, 0.0, 0.0, 0.15253741518885644, 0.0, 0.12918615799515507, 0.0, 0.0, 0.649394095142608, 1.40604728101928, 0.0, 0.5734783753787226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8762605287663663, 0.8124102702299425, 0.0, 0.0, 0.6752965428315182, 0.25420065076928294, 0.2878352998155691, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8742900027056961, 0.0, 0.007209075676415797, 0.028458058565007462, 0.0, 0.0, 0.002645728789765276, 0.0, 0.0, 0.0, 0.669321167131686, 0.0, 0.0, 0.3215833521867582, 0.002002885293525303, 0.5455785228014223, 0.5839672123490091, 0.1695566125503257, 0.0, 0.0, 0.0, 0.0, 0.3711983399532414, 0.0, 0.0, 0.037869811310371364, 0.0, 0.0, 0.0, 0.3906765181627519, 0.0, 0.0, 0.0, 0.004333175863679718, 0.0, 0.0, 0.0, 0.0029029347517778824, 0.43381543679330525, 0.0, 0.0, 0.0, 0.0, 0.3545426084781949, 0.0, 0.3770558352493434, 0.6375411486503958, 0.0, 0.0, 0.0, 0.23985359098491452, 0.021961946298743228, 0.0, 0.3910697032182053, 0.0, 0.6932074965542865, 0.0, 0.0, 0.10364106821683754, 0.0, 0.798416207733151, 0.5329842919228587, 0.0, 0.4844692491628223, 0.0, 0.0, 0.0, 0.0, 0.09106971306440546, 0.0, 0.0, 0.0996076819499136, 0.0, 0.0, 0.1638248686693664, 0.0, 0.3325546563665125, 0.0, 0.0, 0.0, 0.06881525170797138, 0.0, 0.44073566130025815, 0.0, 0.4019788844385439, 0.0, 0.0, 0.6714215423158676, 0.3399125937167764, 0.3046141011370791, 0.0, 0.0, 0.0473355681300066, 0.3630070132608522, 0.0, 0.0800754636262803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2369140918241696, 0.0, 0.0, 0.35909981102365546, 0.2433693452274136, 0.6477566576645207, 0.0, 0.0, 0.0, 0.0, 0.4005702988980329, 0.6327139875815745, 0.45739813367595, 0.2306117264369203, 0.1673891610155256, 0.0, 0.3233168523165315, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04211122573483531, 0.0, 0.06803593591564691, 0.5741938845793657, 0.0476975123297982, 0.5504819156825551, 0.044516401141561746, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13524675835101255, 0.0, 0.22945132617429284, 0.0, 0.0, 0.0, 0.0, 0.1577714195074665, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2785368262709604, 0.12576967984327264, 0.0, 0.0, 0.0, 0.21559450852042064, 0.04903058086742513, 0.0, 0.1695895598298771, 0.11448427397866526, 0.0, 0.0, 0.023071609626772224, 0.0, 0.11421991827694536, 0.0, 0.0, 0.0, 0.007379588146467978, 0.07866376283476462, 0.3892472589606234, 0.0, 0.09184271552047321, 0.0, 0.25448001970252454, 0.2286582495545744, 0.02328034708296836, 0.0, 0.0, 0.0, 0.0, 0.3270923296219218, 0.0, 0.0, 0.0, 0.02043338740984974, 0.0, 0.0, 0.37277616481672965, 0.0, 0.0, 0.0, 0.0044846057268865735, 0.0, 0.3249615768942753, 0.0, 0.0, 0.19094547447052443, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08406342406417443, 0.0, 0.033182079075965945, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6500195484438399, 0.0, 0.0, 0.0, 0.0, 0.5537781763556555, 0.02656015063015655, 1.1909226087779956, 0.06852425737111054, 0.0, 1.3426353595976268, 0.6057701268300226, 0.9302934294779756, 0.0, 0.02223254227484718, 0.9934644128441693, 0.0, 0.06172390220433867, 0.20273446118005728, 0.5149938580802573, 0.1300590771577626, 0.2385875538652477, 0.0, 0.595480643743492, 0.0, 0.0, 0.0, 0.24275727828178406, 0.0, 0.7073132892445582, 0.0, 0.5182899096571696, 0.0, 0.363354145475898, 1.046444738015761, 0.8990939341913878, 0.5284345996323894, 0.0009271750893556132, 0.0, 0.0786791826827641, 0.5567513178048157, 0.0, 0.11672601563414542, 0.0, 0.0, 0.0, 0.0, 0.513610216882899, 0.0, 0.3599562947175533, 0.012305112294495107, 0.0, 0.3547644724719033, 0.0, 0.31743838097476296, 0.0, 0.0, 0.0744235447925737, 0.0, 0.0, 0.3186229810095584, 0.0, 0.7632822460090717, 0.3112891249755775, 0.0, 1.2592130951288079, 0.4142666686935799, 0.0, 0.0, 0.0834856922205997, 0.0, 0.5673263343800874, 0.0, 0.0, 0.0, 0.011109757680217765, 0.7473278912032746, 0.4577974378546139, 0.07323000489837116, 0.33380163101303967, 0.0, 0.014128663560806082, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19621458519667637, 0.0, 0.0, 0.0, 0.0, 0.4083399062549612, 0.0, 0.3744505994071715, 0.0, 0.5655910339236376, 0.0, 0.0, 0.08962016161963385, 0.0, 0.0, 0.0, 0.0, 0.3660241210222327, 0.0, 0.42450374338695224, 0.6660088440351456, 0.0, 0.0, 0.28456417514777416, 0.0, 0.6631091941560893, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.002609340728317194, 0.0, 0.0, 0.0, 0.0, 0.1290910408202515, 0.0, 0.12880600190077574, 0.0, 0.21852433519062017, 0.14617196989407044, 0.04712090478664361, 0.17786735669510226, 0.013608617966411374, 0.0, 0.1599219758144718, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13118766387513575, 0.18575036424480185, 0.0, 0.0, 0.0, 0.0, 0.24739057674609932, 0.08098740885007556, 0.0, 0.0, 0.11169555771003165, 0.0061692969950391426, 0.0, 0.0, 0.0, 0.1300402212804686, 0.0, 0.22061823582759926, 0.32468517510166695, 0.17899843511210062, 0.0, 0.0, 0.0, 0.0, 0.3555268023407697, 0.0, 0.0, 0.0, 0.5637648459713849, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.41259886956253183, 0.0, 0.0, 0.0, 0.0, 1.0217866044035127, 0.0, 0.0, 0.0, 0.09699076097844603, 0.49177999120325233, 0.617482417183965, 0.9254348782417843, 0.19189797684210885, 0.37564958516196006, 0.0, 0.6028533281724416, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4525887449543689, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.3536752652948492, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5159325071456758, 0.45703260113959776, 0.11783337867793497, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.014395933646557283, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5291071006274988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4362705134404812, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06167194341482688, 0.0, 0.26507468559563424, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18765355736657707, 0.0, 1.0014115383719757, 0.10542483708166006, 0.22040848700903187, 0.0, 0.3600323742449293, 0.06543742592421764, 0.0, 0.06637441639531827, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3967141864154841, 0.0, 0.18259679072826512, 0.0, 0.2818810986099949, 0.0, 0.0, 0.0, 0.04462260901941838, 0.650460148621926, 0.9472330785275007, 0.0, 0.0, 0.0, 0.0, 0.20815281221075516, 0.19618764447572262, 0.06473525648539784, 0.0, 0.0, 0.0, 0.1542243249790465, 0.13224172712193835, 0.0, 0.007908832517684252, 0.0, 0.051353982240120374, 0.0032977751233809844, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27800255996089945, 0.0, 0.0, 0.1281258773488851, 0.0, 0.0, 0.0, 0.31683019969084447, 0.0, 0.0, 0.0, 0.19099043815219882, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2169883137756601, 0.0, 0.7505306274250138, 0.5066582758142599, 0.0, 0.07143979002259558, 0.10210504506442938, 0.15444313156667316, 0.5054883509033501, 0.0, 0.0, 0.0, 0.0028518817212982773, 0.3481320627001662, 0.559897472000501, 0.0, 0.40645645270348807, 0.0, 0.36960222637651485, 0.34497081323202616, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0330129037169125, 0.05220506486278423, 0.053654185080025577, 0.0, 0.0, 0.1851124085000456, 0.04497376440934621, 0.35304695602824443, 0.0, 0.0, 0.343295765136816, 0.2793332554556384, 0.0, 0.0, 0.040358875497600165, 0.24978160129073035, 0.0, 0.0, 0.0, 0.0, 0.07246092173943684, 0.0, 0.16628600115413392, 0.0, 0.0, 0.0, 0.06634041958053304, 0.0, 0.0, 0.0, 0.008112084482454424, 0.0, 0.0, 0.3510991071496956, 0.30792356595023396, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24591462609017128, 0.0, 0.0, 0.0, 0.0, 0.1723485353456609, 0.17746213232343597, 0.26032482377035826, 0.0, 0.0, 0.09642188463361992, 0.0, 0.0, 0.9312549994812083, 0.0, 0.4355669936335271, 0.22986161845318145, 0.0, 1.1016016643957898, 0.5367168823744637, 0.0, 0.0, 0.1081626494181155, 0.0, 0.5354775491181646, 0.0, 0.0, 0.7066771289166013, 0.005913227901483509, 0.36878575613264597, 0.5931146099182986, 0.0, 0.43177137005853594, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2792172801438884, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18771394461865235, 0.0, 0.3810480475576988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04963057208911237, 0.0, 0.0, 0.0, 0.014028126739435154, 0.6487755206193258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019308069898724092, 0.0, 0.0, 0.15473333790095384, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20078144855224883, 0.04664059814698181, 0.0, 0.0, 0.02360446678134394, 0.0, 0.0, 0.06383755139363034, 0.0, 0.1295864000345023, 0.0, 0.0, 0.0972547510814237, 0.0, 0.07205581060374358, 0.016878310254842765, 0.0, 0.0, 0.0, 0.0, 0.2206348639926782, 0.0, 0.0, 0.2053453449704589, 0.18009351088331146, 0.17243879836126652, 0.16094695393647487, 0.0, 0.0, 0.0026102124382687284, 0.009478472183394092, 0.22228584913081856, 0.0, 0.0, 0.22567472183496304, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.002853715730108796, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0005790797752150057, 0.4809080576930432, 0.0, 0.0, 0.0, 0.32217587215618376, 0.0018177803358381927, 0.0, 0.0, 0.0, 0.0003287432209283418, 0.0, 0.0008918558343658391, 0.0, 0.0, 0.009096038390466929, 0.0, 0.0, 0.0, 0.00873033402576318, 0.007007183394127084, 0.45496728899530875, 0.0, 0.1316351307673038, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09338135584056179, 0.18382194877540864, 0.0, 0.563495172825665, 0.0, 0.0, 0.0, 0.05639497562938005, 0.14653622131196892, 0.0, 0.0, 0.0, 0.251192534270281, 0.1344408525103349, 0.0, 0.4650111134116464, 0.31391354376028213, 0.0, 0.0, 0.06326188293375198, 0.0, 0.31318868581904563, 0.0, 0.0763329064988246, 0.0, 0.0, 0.2156944329452718, 0.3468992967609863, 0.0, 0.2518308523576955, 0.0, 0.17896869808051252, 0.05403813425807818, 0.027124296544448725, 0.0, 0.0, 0.0, 0.0, 0.11640144853391314, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09109340489796702, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1194057971602891, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6552661573805515, 0.0, 0.0, 0.0, 0.21450271688804268, 0.0, 0.0, 0.902854749674862, 0.06907734840039648, 0.0, 0.811763991573728, 0.24446155688431725, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0551218990786032, 0.0, 0.0, 0.6659086165622266, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4110921087644639, 0.0, 0.0, 0.07931423881912922, 0.0, 0.0, 0.37316154887557274, 0.11430607897800385, 0.4150800042560803, 0.0, 0.10099097676635159, 0.6592915699634367, 0.0, 0.25936644093477396, 0.07666208914620723, 0.0, 0.0, 0.7807360976520861, 0.0, 0.0, 0.04275453625658718, 0.1985413718724771, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13633482744457018, 0.0, 0.2252743029271589, 0.0, 0.0, 0.0, 0.5464410650922171, 0.11366230227156136, 0.6018718955402885, 0.0, 0.014396279790867243, 0.0, 0.03905603312028952, 0.8092451213661034, 0.0, 0.39833251401456404, 0.0, 0.12251229365728535, 0.27200847035734843, 0.25388100105648176, 0.30685765140009125, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07517201195249319, 0.0, 0.0, 0.0, 0.0, 0.3595498458067731, 0.0, 0.0, 0.0, 0.05519776563775433, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13158680513977092, 0.0, 0.45513938379424074, 0.3072494672729318, 0.0, 0.0, 0.061918895238623206, 0.0, 0.306539997354477, 0.0, 0.0, 0.0, 0.0, 0.21111545179707192, 1.113727824196147, 0.0, 0.24648473048642042, 0.0, 0.0, 0.0, 0.6244696783059631, 0.0, 0.0, 0.010619491746539882, 0.0, 0.0, 0.057745206745770994, 0.0, 0.008858840711593166, 0.0075334185627281185, 0.1972006876834336, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15720126897663422, 0.2881788570254271, 0.05549794388099826, 0.0, 0.43880673821983995, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006158057243750719, 0.0, 0.0, 0.05862006643173159, 0.15125593941090254, 0.03302320207312045, 0.0, 0.0, 0.19199421271725345, 0.004359455697024407, 0.02909842903488052, 0.4051738652139157, 0.0, 0.0, 0.0, 0.0, 0.661857462083124, 0.27266071825745297, 0.09855620143563353, 0.03009452021788303, 0.0, 0.0, 0.36386547477639486, 0.0, 0.3154569959145931, 0.0, 0.12777365741134986, 0.0, 0.2874935496978787, 0.0, 0.0, 0.021877890033203812, 0.1316957530661763, 0.0, 1.0462327541742331, 0.24642978428043782, 0.0, 1.292534939963643e-5, 0.04966212026978902, 0.16767073337455046, 0.24586075312633993, 0.7749426824526595, 0.2192927197338787, 0.0, 0.15373812475086615, 0.1693253879539043, 1.1992945978003244, 0.0, 0.19769335810835964, 0.0, 0.2843031573913307, 0.2653563328642114, 0.6319651047837591, 0.0, 0.0, 0.2886502960323224, 0.2007500567698334, 0.0, 0.0, 0.0, 0.0, 0.4490517136878312, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.43431608561880214, 0.0, 0.0, 0.0, 0.29096240214176294, 0.0, 0.0, 0.24728201213730056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.199315833820732, 0.40813133046287003, 0.25266186539111524, 0.0908889085249469, 0.0, 0.0, 0.45688115062815576, 0.11100101499363633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02264115832549351, 0.6164930072930471, 0.0, 0.0, 0.44347420874850846, 0.0, 0.17884284240125642, 0.0, 0.2888836731929794, 0.21018531617189648, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3429810739029393, 0.02002166425453684, 0.021961075245274804, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.557136258905774, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.36191890674012556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12978916081088554, 0.0, 0.33079766328323545, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20464300021869425, 0.0, 0.0, 0.0, 0.0, 0.5063973085557268, 0.26737229244864336, 0.08619179411886842, 0.0, 0.0, 0.0, 0.49896059675156373, 0.0, 0.9000423796847855, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6355437645077721, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3962962286854009, 0.0, 0.0, 0.33976760898340913, 0.0, 0.0, 0.478819001240275, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), 42), 42)),) julia> @finch_code begin Ct .= 0 for i = _ @@ -498,7 +498,7 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.5786578146202624, 0.0, 0.3202961159483594, 0.3207279869105304, 0.5035217854841559, 0.0, 0.013671076975665627, 0.01669925591794789, 0.0, 0.0, 0.0, 0.5652457771225854, 0.0, 0.09766762955114001, 0.2831455624824939, 0.0, 1.0556185392068085, 0.2068017763866623, 0.0, 0.15942131380345745, 0.005607444973383372, 0.0, 0.056687675717707615, 0.2535497922885842, 0.4637407985590488, 0.22387274550179712, 0.5454655738973408, 0.08490666489615803, 0.3556465582001688, 0.0, 0.0, 0.31186727366054, 0.6972638697010188, 0.0, 0.0, 0.009518501694028625, 0.0, 0.5833334701399113, 0.6244214908493986, 0.0, 0.26168041250093527, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0131047746782154, 0.0, 0.6656645247350605, 0.0, 0.0, 0.0769882955934405, 0.0, 0.0, 0.34004774503974494, 0.08053504092577264, 0.006982581834800098, 0.5446249720805942, 0.0, 0.0, 0.31025177039320695, 0.2638902653915397, 0.0, 0.0, 0.0, 0.0, 0.2008136945182758, 0.0, 0.0, 0.19041992572397343, 0.05903622381609576, 0.0, 0.0589978949008293, 0.05133054295704808, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7141967536140789, 0.0, 0.11331087789790419, 0.0, 0.0, 0.13904571220904566, 0.16685503671570054, 0.0, 0.1461222249815685, 0.0, 0.0, 0.0, 0.1624667486179013, 0.0, 0.0, 0.0001466632220376543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.040061564188380784, 0.0, 0.0, 0.05925661356360367, 0.0, 0.20052213796576485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1322273764299389, 0.0, 0.07284319524978862, 0.0, 0.21698248889777863, 0.0, 0.22616177063294415, 0.0, 0.0, 0.0, 0.0, 0.52849490550171, 0.0, 0.71926878469886, 0.0, 0.6501927607213651, 0.0030355649865830615, 0.37799680598211977, 0.0, 0.0007078975665940506, 0.09351646752064424, 0.05681500695663011, 0.0, 0.20243859396970953, 0.0628704495708815, 0.001556209278473695, 0.0, 0.0, 0.0, 0.0, 0.0027171741525499, 0.0, 0.0, 0.0, 0.07038911039656341, 0.049709343960620045, 0.0, 0.018852918431012597, 0.26140762404567164, 0.049374687944063446, 0.0, 0.0, 0.5682508160039592, 0.08397693763382687, 0.0, 0.0, 1.1395457189674745, 0.10207861893624984, 0.006346754524020049, 0.07139718683099765, 0.0, 0.4257292397317542, 0.0, 0.0, 0.003459642976589088, 0.00011827788909935122, 0.29669071600135444, 0.0, 0.04645302583039929, 0.6403581026228157, 0.0, 0.0, 0.4035906657629842, 0.0, 0.0, 0.031770473502227184, 0.0, 0.10177861753458611, 0.08984803025006428, 0.2696383585775038, 0.0, 0.0, 0.0, 0.0, 0.4020058229022269, 0.8537152750348289, 0.27466570696380027, 0.0, 0.9014511503031993, 0.0, 0.0, 0.0, 0.3588364621034526, 0.0, 0.10358336916612662, 0.0, 0.8253783539224127, 0.003096290011755601, 0.3727209618097055, 0.0, 0.0, 0.0, 0.08512247762765326, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0016669318756259504, 0.0, 0.0, 0.9038241621401286, 0.23981242371494071, 0.0, 0.0, 0.0, 0.10303433366133424, 0.0, 0.0, 4.317142647672722e-5, 0.0, 0.07840647389573854, 0.0, 0.0, 0.0, 0.0, 0.36164895718336953, 0.011697025915496142, 0.0, 0.0, 0.0, 0.0, 0.001969151291048087, 0.0, 0.0016085698018090215, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8640055140280944, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10961290316901336, 0.0, 0.0, 0.0, 0.34012752342022284, 0.0, 0.09000159029348583, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.38387258660557405, 0.0, 0.0, 0.0, 0.04942864149427501, 0.0, 0.9641925530766522, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1618638919487994, 0.0, 0.0, 0.1434695556565637, 0.3651050198592113, 0.0, 0.04210320606021404, 0.5803955429188099, 0.0, 0.0, 0.36579879697476825, 0.4517875751113323, 0.0, 0.0, 0.0, 0.597783133294766, 0.0, 0.0, 0.6329135233850276, 0.0, 0.002597015658553236, 0.2174699638827603, 0.39061652165480276, 0.765918958416278, 0.0, 0.016481521625833693, 0.28751000269430316, 0.0, 0.1647131064041664, 0.0, 0.4521970394725687, 0.0, 0.0, 0.11039007420645473, 0.0, 0.0, 0.0, 0.902497226885166, 0.7436286750029288, 0.09842900387294973, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0017337381605838167, 0.0, 0.48184280820859876, 0.0, 0.0, 0.4182604044398821, 0.05413499724631636, 0.00395203096164986, 0.49703533424495255, 0.0, 0.0, 0.0, 0.43461516165530706, 0.0, 0.0, 0.2097986260899648, 0.0, 0.0, 0.0, 0.0032389406325184205, 0.11624028110212369, 0.0, 0.23514374437795085, 0.0, 0.013757851512121493, 0.0, 0.23992048040279412, 0.32911722925956555, 0.0, 0.18863648593265903, 0.5965040702112832, 0.0, 0.0, 0.006607346447861224, 0.005821424904675781, 0.2242736217811627, 0.0, 0.0, 0.02743682303358625, 0.03021510122691055, 0.4109976396191596, 0.016694351333046, 0.0, 0.0, 0.15588266372439724, 0.0, 0.7589538506473881, 0.0, 0.0, 0.9157838182946224, 0.07079903450052254, 0.0, 0.0, 0.0, 0.8133345120890082, 0.19376473666562866, 0.0, 0.0, 0.24554349589597185, 0.2326206471524158, 0.5829196459370383, 0.0, 0.344078222468009, 0.0, 0.5927124546739914, 0.21206748875282805, 0.5013588717575729, 0.1507046170639337, 0.0, 0.2922067750640437, 0.9112630304460252, 0.0, 0.42296978570223137, 0.0, 0.0, 0.0, 0.0, 0.47847449991115903, 0.0, 0.0, 0.0, 0.0, 0.02922391861250235, 0.003575617433634187, 0.0, 0.0, 0.18000379265062824, 0.0, 0.0, 0.0, 0.020223410318598516, 0.0, 0.0, 0.0, 0.0, 0.1194607408090099, 0.0, 0.18567470153771173, 0.015493204406064897, 0.0, 0.0, 0.22675090423473912, 0.0, 0.6338841242698132, 0.5245326238847832, 0.0019166419799919094, 0.6594541233567529, 0.0, 0.005139571264149575, 0.0, 0.0, 0.0, 0.014894820580065271, 0.0, 1.2034959876942206, 0.0, 0.25665804266856174, 0.012594729973842587, 0.0, 0.011446343678364038, 0.0, 0.0, 0.02279435489937408, 0.025102532455875536, 0.0, 0.0, 0.0, 0.0, 0.1307674017372415, 0.5572422675871412, 0.20860522647402835, 0.3439153754178085, 0.0, 0.7682359770495442, 0.05881943098741484, 0.0, 0.0, 0.7560476592821442, 0.06967644285195858, 0.0, 0.04321641535911349, 0.0, 0.0, 0.0, 0.8024673537053417, 0.0, 0.0, 0.0, 0.0, 0.1761844509232577, 0.8168042507595197, 0.0, 0.0, 0.0, 0.5887168313525647, 0.0, 0.0, 0.4050160345946778, 0.0, 0.28424121144843517, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04314478705768561, 0.17729851568072083, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06445720856859194, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10331544984256105, 0.2490312779322865, 0.0, 0.24280852181294071, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5198374016631779, 0.0, 0.0, 0.0, 0.13645064069986682, 0.0, 0.24758012015088376, 0.5314044104438821, 0.0, 0.0, 0.3110470576055099, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02359980206981429, 0.36163373919282166, 0.0, 0.0, 0.4835792742792758, 0.0, 0.3524294596638372, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27655502261887766, 0.0, 0.0, 0.0, 0.0, 0.22117286156450722, 0.0, 0.15521963759663626, 0.0, 0.0, 0.0, 0.0, 0.021723812939992326, 0.02392358642299197, 0.0, 0.9811990708246294, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4965569454339231, 0.08530918757868192, 0.0, 0.07823884141505981, 0.08129763345109173, 0.8580687524263778, 0.6125638634435169, 0.7792197114170356, 0.17406349022985984, 0.0, 0.7428281837408045, 0.0, 0.07932414385265583, 0.46154167819945197, 0.0, 0.5289001614381607, 0.0, 0.8287876866571131, 0.1679099089089469, 0.695722986230781, 0.0, 0.010707260605614142, 0.014687966352699852, 0.03846916856579124, 0.6678999803007167, 0.8946423775406338, 0.0, 0.0, 0.6928842432378984, 0.0, 0.8291172549334254, 0.0, 0.036214437271524916, 0.0, 0.6493274982169268, 0.0, 0.0, 0.0, 0.0, 0.022863259627981244, 0.7335275809594394, 0.03647235770741211, 0.0, 0.287070580153256, 0.13431771500769504, 0.14856735628547443, 0.15781940486580828, 0.0, 0.0, 0.323980207489089, 0.0, 0.02667757509153305, 0.33154611696012287, 0.008340998981572286, 0.0, 0.1964137723963185, 0.0, 0.18369526317696738, 0.0, 0.36991237719570497, 0.0, 0.0, 0.060663484669780686, 0.0, 0.0, 0.10293074255327075, 0.9555336304557553, 0.0, 0.2500171656161189, 0.5342857393564834, 0.17546263843294155, 0.0, 0.35442104566615373, 0.0, 0.0, 0.0, 0.0, 0.17621149415330922, 0.6121951999020001, 0.14104370661074167, 0.0, 0.03700642443953683, 0.5101360635898259, 0.0, 0.0, 0.398419677876043, 0.0, 0.0, 0.0, 0.23862742072997933, 0.0, 0.06314351493041778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32025466250143747, 0.0, 0.0, 0.0, 0.25412006584310015, 0.0, 0.2693181789862389, 0.0, 0.2858641430477511, 0.0, 0.12448957171647013, 0.0, 0.6764603455612473, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.007629531631679027, 0.008402105093687509, 0.1478058101242069, 0.005053168588900645, 0.0, 0.30372648283729076, 0.003980754378397801, 0.0, 0.0, 0.0, 0.0, 0.07450559902388645, 0.019687537166852037, 0.0, 0.08244653582028545, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16209616805705127, 0.0, 0.08979346385777931, 0.06518743281502334, 0.21315534710850095, 0.08369413937188341, 0.1394160455900761, 0.5610626715103558, 0.0, 0.0, 0.13968567626607642, 0.0, 0.0, 0.0, 0.0, 0.01924679403964147, 0.0, 0.0, 0.0, 0.0, 0.616722369104707, 0.0, 0.0, 0.5466375681050827, 0.0, 0.0, 0.013987945284851467, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09368066064257337, 0.0, 0.24818473838609467, 0.04865531902212218, 0.0, 0.009894965642192768, 0.0, 0.45825677816644195, 0.7857899124906229, 0.25281208870305677, 0.0, 0.8251354193653254, 0.0, 0.6275782447904167, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7597076021322064, 0.4559884064545227, 0.3430656338577527, 0.32001374263313714, 0.2977084759378876, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26332513624077, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07361684952632414, 0.0, 0.0, 0.0, 0.5420044017413929, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5785225932672249, 0.0, 0.0, 0.0, 0.6899231282082093, 0.33897374575165645, 0.4841896839083132, 0.0, 0.0, 0.0, 0.0, 0.6240541831707288, 0.0, 0.0, 0.5531361892215293, 0.4547991804243185, 0.0, 0.100152739355421, 0.0, 0.2440837061302026, 0.0, 0.0, 0.0, 0.0, 0.12076927556310874, 0.0, 0.0, 0.3415398112751411, 0.0, 0.0, 0.0, 0.010012600500133058, 0.0, 0.10122097549537463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6350391173534848, 0.0, 0.0, 0.5362493708751273, 0.3870491592555651, 0.0, 0.0, 0.011769944241680865, 0.3142045963597273, 0.0, 0.30124773979598957, 0.0, 0.3235765421156834, 0.0, 0.541761414379215, 0.0, 0.0, 0.8318031269227326, 0.0, 0.0, 0.0, 0.0, 0.0, 0.655176286023573, 0.0, 0.0, 0.12998028512957016, 0.09284961824757046, 0.5535451825358659, 0.6996061073192734, 0.06205996989121698, 0.0, 0.0, 0.0, 0.008692259029504977, 0.0, 0.08787316923443415, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5512977874061133, 0.0, 0.06274188232221303, 0.0860678272807259, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7913396090809787, 0.26152280681975265, 0.0, 0.0, 0.0, 0.0, 0.0, 0.028664478181671504, 0.0009799779903315728, 0.0032348889210802386, 0.0, 0.11837934340514084, 0.4864662292788164, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07382213914734657, 0.0, 0.0, 0.0, 0.17685571185867954, 0.2510513607906149, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0019118999997271302, 0.0, 0.04133793381575315, 0.2834737624180827, 0.6832843821792778, 0.0, 0.6662105748014928, 0.0, 0.5326269406399959, 0.0, 0.0, 0.0, 0.0, 0.10672810444069859, 0.0, 0.07123750254807154, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.007981914293001519, 0.10075857550012479, 0.009540391703188681, 0.0, 0.11580721042791553, 0.0, 0.0, 0.17856228523566461, 0.00048020843909893406, 0.0, 0.197593765283525, 0.0, 0.0, 0.0, 0.6194557197663932, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21520162666608084, 0.1562300971282056, 0.0, 0.0592523063663964, 0.0, 0.18612758103797813, 0.0, 0.2544272402257203, 0.15422821911002763, 0.0012917517157272594, 0.0, 0.0, 0.14907655404346837, 0.09429642888622711, 0.0, 0.0, 0.0, 0.0, 0.09600808583182174, 0.0, 0.005856583784053075, 0.08156012032053195, 0.09312148266647201, 0.0322184865015818, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03641255600507808, 0.0, 0.09646644914865622, 0.6107192924560144, 0.0, 0.0008311989920553221, 0.04768463204338608, 0.008402889219987731, 0.30542717141970227, 0.09826504505325136, 0.08476742117805344, 0.35700707759139916, 0.0, 0.052717960159591244, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29528928831604634, 0.0, 0.18118798681716172, 0.047489656233823854, 0.07375616702811215, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15842644268884615, 0.005416265593171256, 0.0, 0.0, 0.0, 0.06326712126451656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22847169102573353, 0.0, 0.11955753824812076, 0.0, 0.0, 0.0, 0.08074664695989245, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0029119331378805115, 0.0, 0.0, 0.1953274033599059, 0.0, 0.0, 0.0, 0.48520999511490304, 0.0, 0.0, 0.0, 0.0, 0.13603276168063752, 0.0, 0.06155663979875702, 0.0, 0.0, 0.0, 0.19100951475155065, 0.0, 0.05054327834442013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21557595738397023, 0.0, 0.0, 0.2988625665604049, 0.02775823823873608, 0.0, 0.5414732387378444, 0.0, 0.1751125450084881, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7653173403797493, 0.011610920930129028, 0.0, 0.6690009447860032, 0.007717112212206315, 0.0, 0.0, 0.0, 0.0, 0.0949800986519104, 0.0, 0.01759104522847652, 0.0272063292239745, 0.0, 0.18672851022958098, 0.14592398686801408, 0.0, 0.0, 0.06111532732066789, 0.0, 0.012109927581814974, 0.0, 0.3464253043638218, 0.014416979955844242, 0.0, 0.0, 0.004751074128394563, 0.0814923248235591, 0.960719872887566, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029410227635468144, 0.3902617128196832, 0.0, 0.0, 0.0, 0.0, 0.03936155946785215, 0.0, 0.0, 0.0, 0.0, 0.03226521554976169, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029868187491618223, 0.0, 0.007848954300217155, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02618395857766568, 0.0, 0.0, 0.0, 0.02729344001455739, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16043383601301778, 0.0, 0.08114240967089056, 0.0, 0.12944151616666955, 0.0, 0.0, 0.8424042898437758, 0.0, 0.0, 0.0, 0.0, 0.04323489183997365, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2997198089695268, 0.0, 0.0, 0.09877179787471602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.36530436236505814, 0.0, 0.0, 0.0, 0.0, 0.6114198560066337, 0.538693529249165, 0.0, 0.0, 0.0, 0.014312907460573414, 0.015762245768879076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03693357747227013, 0.0, 0.0, 0.5249268945825, 0.0, 0.0, 0.16471382065012125, 0.0, 0.0, 0.0, 0.304090416701445, 0.48915218766248414, 0.0, 0.020376509279081044, 0.0, 0.11062878301178729, 0.26154278602954106, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1338990979320024, 0.0, 0.12169019076516314, 0.0, 0.0, 0.0, 0.5524220216872981, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13426647560262422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05161008110067911, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.007893769925822126, 0.008693100403012733, 0.0, 1.169538837435482, 0.0, 0.5817658012805581, 0.3172103076471354, 0.0, 0.22838627747698767, 0.0, 0.10226945824142554, 0.0, 0.020369387834492953, 0.0, 0.20675490808600527, 0.48677742001957014, 0.6262431249386917, 0.151645446757169, 0.20817481578766972, 0.0, 0.0, 0.0668476153746235, 0.5758263086091524, 0.4536026680375212, 0.09887690089373365, 0.018895630454912823, 0.0, 0.06101333098633492, 0.38664812220872247, 0.0, 0.0, 0.7304510924229297, 0.030046419431745734, 0.0, 1.1003509629444073, 0.5194953755737197, 1.1578838988668234, 0.48875095960339066, 0.0, 0.1128462605244655, 0.0, 0.0, 0.0, 0.4791947947301635, 0.0, 0.03259627779739397, 0.10028189990101041, 0.029465846845003113, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22859113464308234, 0.0, 0.11646855789532944, 0.12693945289885786, 0.0, 0.0, 0.20330790896109577, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1873449680464739, 0.0, 0.0, 0.06173899342973636, 0.0, 0.0, 0.04476882030066193, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04375496463125991, 0.38217838780949126, 0.336719559414533, 0.04092456729054698, 0.0, 0.04229882731958149, 0.0, 0.0, 0.0, 0.1452994629839798, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0184335582446928, 0.0, 0.0, 0.0, 0.057199110071214684, 0.0, 0.14103517741623545, 0.03340505872611428, 0.0, 0.0, 0.0, 0.05811339385405451, 0.0, 0.0, 0.0, 0.0, 0.044222795803071285, 0.0, 0.06455569991448866, 0.0, 0.0, 0.05037647535437417, 0.008312394942553907, 0.0, 0.1621478774157853, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005416039933812771, 0.0, 0.0, 0.0, 0.0398756195493532, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05075809733341722, 0.0, 0.03562215281502755, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19049409924372604, 0.0, 0.0, 0.20255925674743036, 0.0, 0.0, 0.0, 0.0, 0.11222926185446927, 0.0, 0.22599925727813394, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18212734324380878, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21653477423901774, 0.0, 0.0, 0.008644589577152558, 0.009519948749861491, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.022306831770080617, 0.0, 0.0, 0.003074570476841778, 0.0, 0.008145346800616094, 0.0, 0.0, 0.0, 0.08511345922427967, 0.18366197461769765, 0.025789383308915437, 0.008297215015175531, 0.0, 0.09184984081220632, 0.0668166427534811, 0.15796441417080423, 0.0, 0.0, 0.0, 0.0, 0.0, 0.024933369902885204, 0.0, 0.011259308615493588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02160071316022016, 0.0, 0.0, 0.0, 0.1015273549658925, 0.0, 0.3722773110385471, 0.0, 0.0, 0.0, 0.005704132382790829, 0.576786252698806, 0.6048982987919145, 0.3404333765031976, 0.0, 0.1776491403162125, 0.3619951063590594, 0.0, 0.0, 0.0, 0.0, 0.20056572202110787, 0.0, 0.4038849000985208, 0.0, 0.07292911426252524, 0.0, 0.0, 0.0, 0.0, 0.3254810866068793, 0.0, 0.0, 0.0, 0.0486152336987337, 0.0, 0.38697085430573647, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7532037777522111, 0.0, 0.0, 0.2947709821219489, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008564738540478935, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2647016620516834, 0.0, 0.0, 0.5486174586047213, 0.0, 0.0, 0.0, 0.0, 0.0]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25238968158185693, 0.0, 0.0, 0.48865059160643304, 0.11871952163266221, 0.13783085437527975, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1100520583840872, 0.0, 0.6593611321473758, 0.05928345080192752, 0.009174411759749758, 0.0, 0.0, 0.19127876171690858, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07691735887883953, 0.0, 0.05392395392410878, 0.02141387988861775, 0.34710885925020263, 0.0, 0.0, 0.0, 0.0, 0.004888456103411815, 0.23938597192062988, 0.14380896793554465, 0.0, 0.0, 0.11091906743258541, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.42492930113736893, 0.0, 0.0, 0.0, 0.3917786049138451, 0.0, 0.027947398300345625, 0.0, 0.0, 0.0, 0.027990755993474236, 0.23996972136870412, 0.0, 0.0, 0.0, 0.16076348282437408, 0.0, 0.0, 0.0, 0.0, 0.2346717239666177, 0.0, 0.1645197835042719, 0.0, 0.15581124610211206, 0.0, 0.0, 0.0, 0.0, 0.16923528472284902, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07802881298690809, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0008989792695458017, 0.0, 0.0, 0.0, 0.0, 0.06720357557125424, 0.0, 0.0, 0.0, 0.3718711629986387, 0.0, 0.0, 0.3609126159300422, 0.1163460342216259, 0.26803502779771143, 0.5785179690130179, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20913099459980355, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3230898388302748, 0.31857597482541405, 0.458635468333174, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7731954314831251, 0.7216673432976093, 0.0, 0.7303507448180484, 0.14951424728459475, 0.7849205313632122, 0.0, 0.61487751501265, 0.0, 0.0, 0.25756111513158075, 0.0, 0.4611561614453371, 0.11767850077853764, 0.8141145056659213, 0.17774815965387922, 0.0, 0.0, 0.6559733835287642, 0.36761704346577023, 0.0, 0.0, 0.0, 0.7451998098255509, 0.033169973232688346, 0.411513621864204, 0.20930644094410764, 0.0, 0.0, 0.0, 0.10412334822136202, 0.6428221612529075, 0.2944149731643712, 0.0, 0.01883057275583864, 0.0, 0.05108593913912473, 0.0, 0.0, 0.521025535425184, 0.0008200368898190739, 0.0, 1.1919622969351262, 0.6934669965376988, 0.46942192138741023, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37125241315091917, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29594902098744047, 0.0, 0.0, 0.0, 0.5073161019921272, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.36145064005412786, 0.0, 0.054781056420259586, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6055780045451759, 0.09162757378665623, 0.04766798091106047, 0.0, 0.46059427954757914, 0.1119031338013209, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37567607243684537, 0.6215033212682567, 0.6577405362916645, 0.03204652922702584, 0.0, 0.0650525320202852, 0.18029632002719695, 0.0, 0.0, 0.0, 0.0, 0.008472932483726157, 0.0, 0.0, 0.0, 0.0, 0.13094335555018422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16141065848651698, 0.0, 0.051110856273358346, 0.0, 0.020946973304893955, 0.06226614898669832, 0.0, 0.2444646619775439, 0.0, 0.0, 0.0, 0.0, 0.04963632606956389, 0.0, 0.0, 0.0, 0.08508663882314382, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1263166966867768, 0.0, 0.15643691198571966, 0.0, 0.0, 0.0, 0.15262026274680354, 0.0, 0.526388198493186, 0.0, 0.0, 0.033474977962917256, 0.060622203675208805, 0.0, 0.43377644245905544, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3151002104915899, 0.0, 0.09477312339277622, 0.0, 0.0, 0.0, 0.152252080697694, 0.0, 0.0, 0.0204339991404229, 0.1698000966652489, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22850913265749315, 0.0, 0.7903794435818682, 0.5335588868613267, 0.0, 0.0, 0.33064520351324683, 0.11423967014312472, 0.532326845734251, 0.0, 0.0, 0.0, 0.0, 0.5700696949494688, 0.5896247750753707, 0.0, 0.4280369290594203, 0.0, 0.27339018574089047, 0.25517063473696217, 0.0, 0.4053021670425236, 0.0, 0.7145118270418906, 0.18406779329511921, 0.5332101577384002, 0.15679597786898153, 0.0, 0.02405447430944597, 0.5068714011553328, 0.2632866105026604, 0.0, 0.0, 0.0, 0.0, 0.0, 0.026822919064352108, 0.0, 0.09441824561660622, 0.15069396874531527, 0.24064671368655893, 0.0, 0.06394357060327457, 0.3982245622181067, 0.22117139549869444, 0.14930545644387866, 0.0, 0.2667835225346214, 0.4473684178329899, 0.0, 0.14896069513005675, 0.0, 0.41433289250349636, 0.0, 0.5041716274275465, 0.26176138019545275, 0.5757006867537102, 0.08966813962959974, 0.11977731163657437, 0.0, 0.0, 0.29331748913539113, 0.14887247084155056, 0.1452951955564375, 0.0, 0.0, 0.0, 0.0, 0.34161907033931543, 0.05898137093682045, 0.05240866036729835, 0.0, 0.0, 0.0, 0.5188204085313443, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5773724259871397, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22601349058504813, 0.0, 0.3467947164134737, 1.502272260353748, 0.19536436403308852, 0.0, 0.0, 0.0, 0.0, 0.4899706257461605, 0.20445136303854802, 0.7748906467295266, 0.0, 0.0, 0.15253741518885644, 0.0, 0.12918615799515507, 0.0, 0.0, 0.649394095142608, 1.40604728101928, 0.0, 0.5734783753787226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8762605287663663, 0.8124102702299425, 0.0, 0.0, 0.6752965428315182, 0.25420065076928294, 0.2878352998155691, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8742900027056961, 0.0, 0.007209075676415797, 0.028458058565007462, 0.0, 0.0, 0.002645728789765276, 0.0, 0.0, 0.0, 0.669321167131686, 0.0, 0.0, 0.3215833521867582, 0.002002885293525303, 0.5455785228014223, 0.5839672123490091, 0.1695566125503257, 0.0, 0.0, 0.0, 0.0, 0.3711983399532414, 0.0, 0.0, 0.037869811310371364, 0.0, 0.0, 0.0, 0.3906765181627519, 0.0, 0.0, 0.0, 0.004333175863679718, 0.0, 0.0, 0.0, 0.0029029347517778824, 0.43381543679330525, 0.0, 0.0, 0.0, 0.0, 0.3545426084781949, 0.0, 0.3770558352493434, 0.6375411486503958, 0.0, 0.0, 0.0, 0.23985359098491452, 0.021961946298743228, 0.0, 0.3910697032182053, 0.0, 0.6932074965542865, 0.0, 0.0, 0.10364106821683754, 0.0, 0.798416207733151, 0.5329842919228587, 0.0, 0.4844692491628223, 0.0, 0.0, 0.0, 0.0, 0.09106971306440546, 0.0, 0.0, 0.0996076819499136, 0.0, 0.0, 0.1638248686693664, 0.0, 0.3325546563665125, 0.0, 0.0, 0.0, 0.06881525170797138, 0.0, 0.44073566130025815, 0.0, 0.4019788844385439, 0.0, 0.0, 0.6714215423158676, 0.3399125937167764, 0.3046141011370791, 0.0, 0.0, 0.0473355681300066, 0.3630070132608522, 0.0, 0.0800754636262803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2369140918241696, 0.0, 0.0, 0.35909981102365546, 0.2433693452274136, 0.6477566576645207, 0.0, 0.0, 0.0, 0.0, 0.4005702988980329, 0.6327139875815745, 0.45739813367595, 0.2306117264369203, 0.1673891610155256, 0.0, 0.3233168523165315, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04211122573483531, 0.0, 0.06803593591564691, 0.5741938845793657, 0.0476975123297982, 0.5504819156825551, 0.044516401141561746, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13524675835101255, 0.0, 0.22945132617429284, 0.0, 0.0, 0.0, 0.0, 0.1577714195074665, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2785368262709604, 0.12576967984327264, 0.0, 0.0, 0.0, 0.21559450852042064, 0.04903058086742513, 0.0, 0.1695895598298771, 0.11448427397866526, 0.0, 0.0, 0.023071609626772224, 0.0, 0.11421991827694536, 0.0, 0.0, 0.0, 0.007379588146467978, 0.07866376283476462, 0.3892472589606234, 0.0, 0.09184271552047321, 0.0, 0.25448001970252454, 0.2286582495545744, 0.02328034708296836, 0.0, 0.0, 0.0, 0.0, 0.3270923296219218, 0.0, 0.0, 0.0, 0.02043338740984974, 0.0, 0.0, 0.37277616481672965, 0.0, 0.0, 0.0, 0.0044846057268865735, 0.0, 0.3249615768942753, 0.0, 0.0, 0.19094547447052443, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08406342406417443, 0.0, 0.033182079075965945, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6500195484438399, 0.0, 0.0, 0.0, 0.0, 0.5537781763556555, 0.02656015063015655, 1.1909226087779956, 0.06852425737111054, 0.0, 1.3426353595976268, 0.6057701268300226, 0.9302934294779756, 0.0, 0.02223254227484718, 0.9934644128441693, 0.0, 0.06172390220433867, 0.20273446118005728, 0.5149938580802573, 0.1300590771577626, 0.2385875538652477, 0.0, 0.595480643743492, 0.0, 0.0, 0.0, 0.24275727828178406, 0.0, 0.7073132892445582, 0.0, 0.5182899096571696, 0.0, 0.363354145475898, 1.046444738015761, 0.8990939341913878, 0.5284345996323894, 0.0009271750893556132, 0.0, 0.0786791826827641, 0.5567513178048157, 0.0, 0.11672601563414542, 0.0, 0.0, 0.0, 0.0, 0.513610216882899, 0.0, 0.3599562947175533, 0.012305112294495107, 0.0, 0.3547644724719033, 0.0, 0.31743838097476296, 0.0, 0.0, 0.0744235447925737, 0.0, 0.0, 0.3186229810095584, 0.0, 0.7632822460090717, 0.3112891249755775, 0.0, 1.2592130951288079, 0.4142666686935799, 0.0, 0.0, 0.0834856922205997, 0.0, 0.5673263343800874, 0.0, 0.0, 0.0, 0.011109757680217765, 0.7473278912032746, 0.4577974378546139, 0.07323000489837116, 0.33380163101303967, 0.0, 0.014128663560806082, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19621458519667637, 0.0, 0.0, 0.0, 0.0, 0.4083399062549612, 0.0, 0.3744505994071715, 0.0, 0.5655910339236376, 0.0, 0.0, 0.08962016161963385, 0.0, 0.0, 0.0, 0.0, 0.3660241210222327, 0.0, 0.42450374338695224, 0.6660088440351456, 0.0, 0.0, 0.28456417514777416, 0.0, 0.6631091941560893, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.002609340728317194, 0.0, 0.0, 0.0, 0.0, 0.1290910408202515, 0.0, 0.12880600190077574, 0.0, 0.21852433519062017, 0.14617196989407044, 0.04712090478664361, 0.17786735669510226, 0.013608617966411374, 0.0, 0.1599219758144718, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13118766387513575, 0.18575036424480185, 0.0, 0.0, 0.0, 0.0, 0.24739057674609932, 0.08098740885007556, 0.0, 0.0, 0.11169555771003165, 0.0061692969950391426, 0.0, 0.0, 0.0, 0.1300402212804686, 0.0, 0.22061823582759926, 0.32468517510166695, 0.17899843511210062, 0.0, 0.0, 0.0, 0.0, 0.3555268023407697, 0.0, 0.0, 0.0, 0.5637648459713849, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.41259886956253183, 0.0, 0.0, 0.0, 0.0, 1.0217866044035127, 0.0, 0.0, 0.0, 0.09699076097844603, 0.49177999120325233, 0.617482417183965, 0.9254348782417843, 0.19189797684210885, 0.37564958516196006, 0.0, 0.6028533281724416, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4525887449543689, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.3536752652948492, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5159325071456758, 0.45703260113959776, 0.11783337867793497, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.014395933646557283, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5291071006274988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4362705134404812, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06167194341482688, 0.0, 0.26507468559563424, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18765355736657707, 0.0, 1.0014115383719757, 0.10542483708166006, 0.22040848700903187, 0.0, 0.3600323742449293, 0.06543742592421764, 0.0, 0.06637441639531827, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3967141864154841, 0.0, 0.18259679072826512, 0.0, 0.2818810986099949, 0.0, 0.0, 0.0, 0.04462260901941838, 0.650460148621926, 0.9472330785275007, 0.0, 0.0, 0.0, 0.0, 0.20815281221075516, 0.19618764447572262, 0.06473525648539784, 0.0, 0.0, 0.0, 0.1542243249790465, 0.13224172712193835, 0.0, 0.007908832517684252, 0.0, 0.051353982240120374, 0.0032977751233809844, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27800255996089945, 0.0, 0.0, 0.1281258773488851, 0.0, 0.0, 0.0, 0.31683019969084447, 0.0, 0.0, 0.0, 0.19099043815219882, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2169883137756601, 0.0, 0.7505306274250138, 0.5066582758142599, 0.0, 0.07143979002259558, 0.10210504506442938, 0.15444313156667316, 0.5054883509033501, 0.0, 0.0, 0.0, 0.0028518817212982773, 0.3481320627001662, 0.559897472000501, 0.0, 0.40645645270348807, 0.0, 0.36960222637651485, 0.34497081323202616, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0330129037169125, 0.05220506486278423, 0.053654185080025577, 0.0, 0.0, 0.1851124085000456, 0.04497376440934621, 0.35304695602824443, 0.0, 0.0, 0.343295765136816, 0.2793332554556384, 0.0, 0.0, 0.040358875497600165, 0.24978160129073035, 0.0, 0.0, 0.0, 0.0, 0.07246092173943684, 0.0, 0.16628600115413392, 0.0, 0.0, 0.0, 0.06634041958053304, 0.0, 0.0, 0.0, 0.008112084482454424, 0.0, 0.0, 0.3510991071496956, 0.30792356595023396, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24591462609017128, 0.0, 0.0, 0.0, 0.0, 0.1723485353456609, 0.17746213232343597, 0.26032482377035826, 0.0, 0.0, 0.09642188463361992, 0.0, 0.0, 0.9312549994812083, 0.0, 0.4355669936335271, 0.22986161845318145, 0.0, 1.1016016643957898, 0.5367168823744637, 0.0, 0.0, 0.1081626494181155, 0.0, 0.5354775491181646, 0.0, 0.0, 0.7066771289166013, 0.005913227901483509, 0.36878575613264597, 0.5931146099182986, 0.0, 0.43177137005853594, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2792172801438884, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18771394461865235, 0.0, 0.3810480475576988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04963057208911237, 0.0, 0.0, 0.0, 0.014028126739435154, 0.6487755206193258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019308069898724092, 0.0, 0.0, 0.15473333790095384, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20078144855224883, 0.04664059814698181, 0.0, 0.0, 0.02360446678134394, 0.0, 0.0, 0.06383755139363034, 0.0, 0.1295864000345023, 0.0, 0.0, 0.0972547510814237, 0.0, 0.07205581060374358, 0.016878310254842765, 0.0, 0.0, 0.0, 0.0, 0.2206348639926782, 0.0, 0.0, 0.2053453449704589, 0.18009351088331146, 0.17243879836126652, 0.16094695393647487, 0.0, 0.0, 0.0026102124382687284, 0.009478472183394092, 0.22228584913081856, 0.0, 0.0, 0.22567472183496304, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.002853715730108796, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0005790797752150057, 0.4809080576930432, 0.0, 0.0, 0.0, 0.32217587215618376, 0.0018177803358381927, 0.0, 0.0, 0.0, 0.0003287432209283418, 0.0, 0.0008918558343658391, 0.0, 0.0, 0.009096038390466929, 0.0, 0.0, 0.0, 0.00873033402576318, 0.007007183394127084, 0.45496728899530875, 0.0, 0.1316351307673038, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09338135584056179, 0.18382194877540864, 0.0, 0.563495172825665, 0.0, 0.0, 0.0, 0.05639497562938005, 0.14653622131196892, 0.0, 0.0, 0.0, 0.251192534270281, 0.1344408525103349, 0.0, 0.4650111134116464, 0.31391354376028213, 0.0, 0.0, 0.06326188293375198, 0.0, 0.31318868581904563, 0.0, 0.0763329064988246, 0.0, 0.0, 0.2156944329452718, 0.3468992967609863, 0.0, 0.2518308523576955, 0.0, 0.17896869808051252, 0.05403813425807818, 0.027124296544448725, 0.0, 0.0, 0.0, 0.0, 0.11640144853391314, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09109340489796702, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1194057971602891, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6552661573805515, 0.0, 0.0, 0.0, 0.21450271688804268, 0.0, 0.0, 0.902854749674862, 0.06907734840039648, 0.0, 0.811763991573728, 0.24446155688431725, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0551218990786032, 0.0, 0.0, 0.6659086165622266, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4110921087644639, 0.0, 0.0, 0.07931423881912922, 0.0, 0.0, 0.37316154887557274, 0.11430607897800385, 0.4150800042560803, 0.0, 0.10099097676635159, 0.6592915699634367, 0.0, 0.25936644093477396, 0.07666208914620723, 0.0, 0.0, 0.7807360976520861, 0.0, 0.0, 0.04275453625658718, 0.1985413718724771, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13633482744457018, 0.0, 0.2252743029271589, 0.0, 0.0, 0.0, 0.5464410650922171, 0.11366230227156136, 0.6018718955402885, 0.0, 0.014396279790867243, 0.0, 0.03905603312028952, 0.8092451213661034, 0.0, 0.39833251401456404, 0.0, 0.12251229365728535, 0.27200847035734843, 0.25388100105648176, 0.30685765140009125, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07517201195249319, 0.0, 0.0, 0.0, 0.0, 0.3595498458067731, 0.0, 0.0, 0.0, 0.05519776563775433, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13158680513977092, 0.0, 0.45513938379424074, 0.3072494672729318, 0.0, 0.0, 0.061918895238623206, 0.0, 0.306539997354477, 0.0, 0.0, 0.0, 0.0, 0.21111545179707192, 1.113727824196147, 0.0, 0.24648473048642042, 0.0, 0.0, 0.0, 0.6244696783059631, 0.0, 0.0, 0.010619491746539882, 0.0, 0.0, 0.057745206745770994, 0.0, 0.008858840711593166, 0.0075334185627281185, 0.1972006876834336, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15720126897663422, 0.2881788570254271, 0.05549794388099826, 0.0, 0.43880673821983995, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006158057243750719, 0.0, 0.0, 0.05862006643173159, 0.15125593941090254, 0.03302320207312045, 0.0, 0.0, 0.19199421271725345, 0.004359455697024407, 0.02909842903488052, 0.4051738652139157, 0.0, 0.0, 0.0, 0.0, 0.661857462083124, 0.27266071825745297, 0.09855620143563353, 0.03009452021788303, 0.0, 0.0, 0.36386547477639486, 0.0, 0.3154569959145931, 0.0, 0.12777365741134986, 0.0, 0.2874935496978787, 0.0, 0.0, 0.021877890033203812, 0.1316957530661763, 0.0, 1.0462327541742331, 0.24642978428043782, 0.0, 1.292534939963643e-5, 0.04966212026978902, 0.16767073337455046, 0.24586075312633993, 0.7749426824526595, 0.2192927197338787, 0.0, 0.15373812475086615, 0.1693253879539043, 1.1992945978003244, 0.0, 0.19769335810835964, 0.0, 0.2843031573913307, 0.2653563328642114, 0.6319651047837591, 0.0, 0.0, 0.2886502960323224, 0.2007500567698334, 0.0, 0.0, 0.0, 0.0, 0.4490517136878312, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.43431608561880214, 0.0, 0.0, 0.0, 0.29096240214176294, 0.0, 0.0, 0.24728201213730056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.199315833820732, 0.40813133046287003, 0.25266186539111524, 0.0908889085249469, 0.0, 0.0, 0.45688115062815576, 0.11100101499363633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02264115832549351, 0.6164930072930471, 0.0, 0.0, 0.44347420874850846, 0.0, 0.17884284240125642, 0.0, 0.2888836731929794, 0.21018531617189648, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3429810739029393, 0.02002166425453684, 0.021961075245274804, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.557136258905774, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.36191890674012556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12978916081088554, 0.0, 0.33079766328323545, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20464300021869425, 0.0, 0.0, 0.0, 0.0, 0.5063973085557268, 0.26737229244864336, 0.08619179411886842, 0.0, 0.0, 0.0, 0.49896059675156373, 0.0, 0.9000423796847855, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6355437645077721, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3962962286854009, 0.0, 0.0, 0.33976760898340913, 0.0, 0.0, 0.478819001240275, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), 42), 42)),) julia> @finch_code begin Ct .= 0 for j = parallel(_) @@ -734,7 +734,7 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.5786578146202624, 0.0, 0.3202961159483594, 0.3207279869105304, 0.5035217854841559, 0.0, 0.013671076975665627, 0.01669925591794789, 0.0, 0.0, 0.0, 0.5652457771225854, 0.0, 0.09766762955114001, 0.2831455624824939, 0.0, 1.0556185392068085, 0.2068017763866623, 0.0, 0.15942131380345745, 0.005607444973383372, 0.0, 0.056687675717707615, 0.2535497922885842, 0.4637407985590488, 0.22387274550179712, 0.5454655738973408, 0.08490666489615803, 0.3556465582001688, 0.0, 0.0, 0.31186727366054, 0.6972638697010188, 0.0, 0.0, 0.009518501694028625, 0.0, 0.5833334701399113, 0.6244214908493986, 0.0, 0.26168041250093527, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0131047746782154, 0.0, 0.6656645247350605, 0.0, 0.0, 0.0769882955934405, 0.0, 0.0, 0.34004774503974494, 0.08053504092577264, 0.006982581834800098, 0.5446249720805942, 0.0, 0.0, 0.31025177039320695, 0.2638902653915397, 0.0, 0.0, 0.0, 0.0, 0.2008136945182758, 0.0, 0.0, 0.19041992572397343, 0.05903622381609576, 0.0, 0.0589978949008293, 0.05133054295704808, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7141967536140789, 0.0, 0.11331087789790419, 0.0, 0.0, 0.13904571220904566, 0.16685503671570054, 0.0, 0.1461222249815685, 0.0, 0.0, 0.0, 0.1624667486179013, 0.0, 0.0, 0.0001466632220376543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.040061564188380784, 0.0, 0.0, 0.05925661356360367, 0.0, 0.20052213796576485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1322273764299389, 0.0, 0.07284319524978862, 0.0, 0.21698248889777863, 0.0, 0.22616177063294415, 0.0, 0.0, 0.0, 0.0, 0.52849490550171, 0.0, 0.71926878469886, 0.0, 0.6501927607213651, 0.0030355649865830615, 0.37799680598211977, 0.0, 0.0007078975665940506, 0.09351646752064424, 0.05681500695663011, 0.0, 0.20243859396970953, 0.0628704495708815, 0.001556209278473695, 0.0, 0.0, 0.0, 0.0, 0.0027171741525499, 0.0, 0.0, 0.0, 0.07038911039656341, 0.049709343960620045, 0.0, 0.018852918431012597, 0.26140762404567164, 0.049374687944063446, 0.0, 0.0, 0.5682508160039592, 0.08397693763382687, 0.0, 0.0, 1.1395457189674745, 0.10207861893624984, 0.006346754524020049, 0.07139718683099765, 0.0, 0.4257292397317542, 0.0, 0.0, 0.003459642976589088, 0.00011827788909935122, 0.29669071600135444, 0.0, 0.04645302583039929, 0.6403581026228157, 0.0, 0.0, 0.4035906657629842, 0.0, 0.0, 0.031770473502227184, 0.0, 0.10177861753458611, 0.08984803025006428, 0.2696383585775038, 0.0, 0.0, 0.0, 0.0, 0.4020058229022269, 0.8537152750348289, 0.27466570696380027, 0.0, 0.9014511503031993, 0.0, 0.0, 0.0, 0.3588364621034526, 0.0, 0.10358336916612662, 0.0, 0.8253783539224127, 0.003096290011755601, 0.3727209618097055, 0.0, 0.0, 0.0, 0.08512247762765326, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0016669318756259504, 0.0, 0.0, 0.9038241621401286, 0.23981242371494071, 0.0, 0.0, 0.0, 0.10303433366133424, 0.0, 0.0, 4.317142647672722e-5, 0.0, 0.07840647389573854, 0.0, 0.0, 0.0, 0.0, 0.36164895718336953, 0.011697025915496142, 0.0, 0.0, 0.0, 0.0, 0.001969151291048087, 0.0, 0.0016085698018090215, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8640055140280944, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10961290316901336, 0.0, 0.0, 0.0, 0.34012752342022284, 0.0, 0.09000159029348583, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.38387258660557405, 0.0, 0.0, 0.0, 0.04942864149427501, 0.0, 0.9641925530766522, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1618638919487994, 0.0, 0.0, 0.1434695556565637, 0.3651050198592113, 0.0, 0.04210320606021404, 0.5803955429188099, 0.0, 0.0, 0.36579879697476825, 0.4517875751113323, 0.0, 0.0, 0.0, 0.597783133294766, 0.0, 0.0, 0.6329135233850276, 0.0, 0.002597015658553236, 0.2174699638827603, 0.39061652165480276, 0.765918958416278, 0.0, 0.016481521625833693, 0.28751000269430316, 0.0, 0.1647131064041664, 0.0, 0.4521970394725687, 0.0, 0.0, 0.11039007420645473, 0.0, 0.0, 0.0, 0.902497226885166, 0.7436286750029288, 0.09842900387294973, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0017337381605838167, 0.0, 0.48184280820859876, 0.0, 0.0, 0.4182604044398821, 0.05413499724631636, 0.00395203096164986, 0.49703533424495255, 0.0, 0.0, 0.0, 0.43461516165530706, 0.0, 0.0, 0.2097986260899648, 0.0, 0.0, 0.0, 0.0032389406325184205, 0.11624028110212369, 0.0, 0.23514374437795085, 0.0, 0.013757851512121493, 0.0, 0.23992048040279412, 0.32911722925956555, 0.0, 0.18863648593265903, 0.5965040702112832, 0.0, 0.0, 0.006607346447861224, 0.005821424904675781, 0.2242736217811627, 0.0, 0.0, 0.02743682303358625, 0.03021510122691055, 0.4109976396191596, 0.016694351333046, 0.0, 0.0, 0.15588266372439724, 0.0, 0.7589538506473881, 0.0, 0.0, 0.9157838182946224, 0.07079903450052254, 0.0, 0.0, 0.0, 0.8133345120890082, 0.19376473666562866, 0.0, 0.0, 0.24554349589597185, 0.2326206471524158, 0.5829196459370383, 0.0, 0.344078222468009, 0.0, 0.5927124546739914, 0.21206748875282805, 0.5013588717575729, 0.1507046170639337, 0.0, 0.2922067750640437, 0.9112630304460252, 0.0, 0.42296978570223137, 0.0, 0.0, 0.0, 0.0, 0.47847449991115903, 0.0, 0.0, 0.0, 0.0, 0.02922391861250235, 0.003575617433634187, 0.0, 0.0, 0.18000379265062824, 0.0, 0.0, 0.0, 0.020223410318598516, 0.0, 0.0, 0.0, 0.0, 0.1194607408090099, 0.0, 0.18567470153771173, 0.015493204406064897, 0.0, 0.0, 0.22675090423473912, 0.0, 0.6338841242698132, 0.5245326238847832, 0.0019166419799919094, 0.6594541233567529, 0.0, 0.005139571264149575, 0.0, 0.0, 0.0, 0.014894820580065271, 0.0, 1.2034959876942206, 0.0, 0.25665804266856174, 0.012594729973842587, 0.0, 0.011446343678364038, 0.0, 0.0, 0.02279435489937408, 0.025102532455875536, 0.0, 0.0, 0.0, 0.0, 0.1307674017372415, 0.5572422675871412, 0.20860522647402835, 0.3439153754178085, 0.0, 0.7682359770495442, 0.05881943098741484, 0.0, 0.0, 0.7560476592821442, 0.06967644285195858, 0.0, 0.04321641535911349, 0.0, 0.0, 0.0, 0.8024673537053417, 0.0, 0.0, 0.0, 0.0, 0.1761844509232577, 0.8168042507595197, 0.0, 0.0, 0.0, 0.5887168313525647, 0.0, 0.0, 0.4050160345946778, 0.0, 0.28424121144843517, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04314478705768561, 0.17729851568072083, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06445720856859194, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10331544984256105, 0.2490312779322865, 0.0, 0.24280852181294071, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5198374016631779, 0.0, 0.0, 0.0, 0.13645064069986682, 0.0, 0.24758012015088376, 0.5314044104438821, 0.0, 0.0, 0.3110470576055099, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02359980206981429, 0.36163373919282166, 0.0, 0.0, 0.4835792742792758, 0.0, 0.3524294596638372, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27655502261887766, 0.0, 0.0, 0.0, 0.0, 0.22117286156450722, 0.0, 0.15521963759663626, 0.0, 0.0, 0.0, 0.0, 0.021723812939992326, 0.02392358642299197, 0.0, 0.9811990708246294, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4965569454339231, 0.08530918757868192, 0.0, 0.07823884141505981, 0.08129763345109173, 0.8580687524263778, 0.6125638634435169, 0.7792197114170356, 0.17406349022985984, 0.0, 0.7428281837408045, 0.0, 0.07932414385265583, 0.46154167819945197, 0.0, 0.5289001614381607, 0.0, 0.8287876866571131, 0.1679099089089469, 0.695722986230781, 0.0, 0.010707260605614142, 0.014687966352699852, 0.03846916856579124, 0.6678999803007167, 0.8946423775406338, 0.0, 0.0, 0.6928842432378984, 0.0, 0.8291172549334254, 0.0, 0.036214437271524916, 0.0, 0.6493274982169268, 0.0, 0.0, 0.0, 0.0, 0.022863259627981244, 0.7335275809594394, 0.03647235770741211, 0.0, 0.287070580153256, 0.13431771500769504, 0.14856735628547443, 0.15781940486580828, 0.0, 0.0, 0.323980207489089, 0.0, 0.02667757509153305, 0.33154611696012287, 0.008340998981572286, 0.0, 0.1964137723963185, 0.0, 0.18369526317696738, 0.0, 0.36991237719570497, 0.0, 0.0, 0.060663484669780686, 0.0, 0.0, 0.10293074255327075, 0.9555336304557553, 0.0, 0.2500171656161189, 0.5342857393564834, 0.17546263843294155, 0.0, 0.35442104566615373, 0.0, 0.0, 0.0, 0.0, 0.17621149415330922, 0.6121951999020001, 0.14104370661074167, 0.0, 0.03700642443953683, 0.5101360635898259, 0.0, 0.0, 0.398419677876043, 0.0, 0.0, 0.0, 0.23862742072997933, 0.0, 0.06314351493041778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32025466250143747, 0.0, 0.0, 0.0, 0.25412006584310015, 0.0, 0.2693181789862389, 0.0, 0.2858641430477511, 0.0, 0.12448957171647013, 0.0, 0.6764603455612473, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.007629531631679027, 0.008402105093687509, 0.1478058101242069, 0.005053168588900645, 0.0, 0.30372648283729076, 0.003980754378397801, 0.0, 0.0, 0.0, 0.0, 0.07450559902388645, 0.019687537166852037, 0.0, 0.08244653582028545, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16209616805705127, 0.0, 0.08979346385777931, 0.06518743281502334, 0.21315534710850095, 0.08369413937188341, 0.1394160455900761, 0.5610626715103558, 0.0, 0.0, 0.13968567626607642, 0.0, 0.0, 0.0, 0.0, 0.01924679403964147, 0.0, 0.0, 0.0, 0.0, 0.616722369104707, 0.0, 0.0, 0.5466375681050827, 0.0, 0.0, 0.013987945284851467, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09368066064257337, 0.0, 0.24818473838609467, 0.04865531902212218, 0.0, 0.009894965642192768, 0.0, 0.45825677816644195, 0.7857899124906229, 0.25281208870305677, 0.0, 0.8251354193653254, 0.0, 0.6275782447904167, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7597076021322064, 0.4559884064545227, 0.3430656338577527, 0.32001374263313714, 0.2977084759378876, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26332513624077, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07361684952632414, 0.0, 0.0, 0.0, 0.5420044017413929, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5785225932672249, 0.0, 0.0, 0.0, 0.6899231282082093, 0.33897374575165645, 0.4841896839083132, 0.0, 0.0, 0.0, 0.0, 0.6240541831707288, 0.0, 0.0, 0.5531361892215293, 0.4547991804243185, 0.0, 0.100152739355421, 0.0, 0.2440837061302026, 0.0, 0.0, 0.0, 0.0, 0.12076927556310874, 0.0, 0.0, 0.3415398112751411, 0.0, 0.0, 0.0, 0.010012600500133058, 0.0, 0.10122097549537463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6350391173534848, 0.0, 0.0, 0.5362493708751273, 0.3870491592555651, 0.0, 0.0, 0.011769944241680865, 0.3142045963597273, 0.0, 0.30124773979598957, 0.0, 0.3235765421156834, 0.0, 0.541761414379215, 0.0, 0.0, 0.8318031269227326, 0.0, 0.0, 0.0, 0.0, 0.0, 0.655176286023573, 0.0, 0.0, 0.12998028512957016, 0.09284961824757046, 0.5535451825358659, 0.6996061073192734, 0.06205996989121698, 0.0, 0.0, 0.0, 0.008692259029504977, 0.0, 0.08787316923443415, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5512977874061133, 0.0, 0.06274188232221303, 0.0860678272807259, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7913396090809787, 0.26152280681975265, 0.0, 0.0, 0.0, 0.0, 0.0, 0.028664478181671504, 0.0009799779903315728, 0.0032348889210802386, 0.0, 0.11837934340514084, 0.4864662292788164, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07382213914734657, 0.0, 0.0, 0.0, 0.17685571185867954, 0.2510513607906149, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0019118999997271302, 0.0, 0.04133793381575315, 0.2834737624180827, 0.6832843821792778, 0.0, 0.6662105748014928, 0.0, 0.5326269406399959, 0.0, 0.0, 0.0, 0.0, 0.10672810444069859, 0.0, 0.07123750254807154, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.007981914293001519, 0.10075857550012479, 0.009540391703188681, 0.0, 0.11580721042791553, 0.0, 0.0, 0.17856228523566461, 0.00048020843909893406, 0.0, 0.197593765283525, 0.0, 0.0, 0.0, 0.6194557197663932, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21520162666608084, 0.1562300971282056, 0.0, 0.0592523063663964, 0.0, 0.18612758103797813, 0.0, 0.2544272402257203, 0.15422821911002763, 0.0012917517157272594, 0.0, 0.0, 0.14907655404346837, 0.09429642888622711, 0.0, 0.0, 0.0, 0.0, 0.09600808583182174, 0.0, 0.005856583784053075, 0.08156012032053195, 0.09312148266647201, 0.0322184865015818, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03641255600507808, 0.0, 0.09646644914865622, 0.6107192924560144, 0.0, 0.0008311989920553221, 0.04768463204338608, 0.008402889219987731, 0.30542717141970227, 0.09826504505325136, 0.08476742117805344, 0.35700707759139916, 0.0, 0.052717960159591244, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29528928831604634, 0.0, 0.18118798681716172, 0.047489656233823854, 0.07375616702811215, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15842644268884615, 0.005416265593171256, 0.0, 0.0, 0.0, 0.06326712126451656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22847169102573353, 0.0, 0.11955753824812076, 0.0, 0.0, 0.0, 0.08074664695989245, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0029119331378805115, 0.0, 0.0, 0.1953274033599059, 0.0, 0.0, 0.0, 0.48520999511490304, 0.0, 0.0, 0.0, 0.0, 0.13603276168063752, 0.0, 0.06155663979875702, 0.0, 0.0, 0.0, 0.19100951475155065, 0.0, 0.05054327834442013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21557595738397023, 0.0, 0.0, 0.2988625665604049, 0.02775823823873608, 0.0, 0.5414732387378444, 0.0, 0.1751125450084881, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7653173403797493, 0.011610920930129028, 0.0, 0.6690009447860032, 0.007717112212206315, 0.0, 0.0, 0.0, 0.0, 0.0949800986519104, 0.0, 0.01759104522847652, 0.0272063292239745, 0.0, 0.18672851022958098, 0.14592398686801408, 0.0, 0.0, 0.06111532732066789, 0.0, 0.012109927581814974, 0.0, 0.3464253043638218, 0.014416979955844242, 0.0, 0.0, 0.004751074128394563, 0.0814923248235591, 0.960719872887566, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029410227635468144, 0.3902617128196832, 0.0, 0.0, 0.0, 0.0, 0.03936155946785215, 0.0, 0.0, 0.0, 0.0, 0.03226521554976169, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029868187491618223, 0.0, 0.007848954300217155, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02618395857766568, 0.0, 0.0, 0.0, 0.02729344001455739, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16043383601301778, 0.0, 0.08114240967089056, 0.0, 0.12944151616666955, 0.0, 0.0, 0.8424042898437758, 0.0, 0.0, 0.0, 0.0, 0.04323489183997365, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2997198089695268, 0.0, 0.0, 0.09877179787471602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.36530436236505814, 0.0, 0.0, 0.0, 0.0, 0.6114198560066337, 0.538693529249165, 0.0, 0.0, 0.0, 0.014312907460573414, 0.015762245768879076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03693357747227013, 0.0, 0.0, 0.5249268945825, 0.0, 0.0, 0.16471382065012125, 0.0, 0.0, 0.0, 0.304090416701445, 0.48915218766248414, 0.0, 0.020376509279081044, 0.0, 0.11062878301178729, 0.26154278602954106, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1338990979320024, 0.0, 0.12169019076516314, 0.0, 0.0, 0.0, 0.5524220216872981, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13426647560262422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05161008110067911, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.007893769925822126, 0.008693100403012733, 0.0, 1.169538837435482, 0.0, 0.5817658012805581, 0.3172103076471354, 0.0, 0.22838627747698767, 0.0, 0.10226945824142554, 0.0, 0.020369387834492953, 0.0, 0.20675490808600527, 0.48677742001957014, 0.6262431249386917, 0.151645446757169, 0.20817481578766972, 0.0, 0.0, 0.0668476153746235, 0.5758263086091524, 0.4536026680375212, 0.09887690089373365, 0.018895630454912823, 0.0, 0.06101333098633492, 0.38664812220872247, 0.0, 0.0, 0.7304510924229297, 0.030046419431745734, 0.0, 1.1003509629444073, 0.5194953755737197, 1.1578838988668234, 0.48875095960339066, 0.0, 0.1128462605244655, 0.0, 0.0, 0.0, 0.4791947947301635, 0.0, 0.03259627779739397, 0.10028189990101041, 0.029465846845003113, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22859113464308234, 0.0, 0.11646855789532944, 0.12693945289885786, 0.0, 0.0, 0.20330790896109577, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1873449680464739, 0.0, 0.0, 0.06173899342973636, 0.0, 0.0, 0.04476882030066193, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04375496463125991, 0.38217838780949126, 0.336719559414533, 0.04092456729054698, 0.0, 0.04229882731958149, 0.0, 0.0, 0.0, 0.1452994629839798, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0184335582446928, 0.0, 0.0, 0.0, 0.057199110071214684, 0.0, 0.14103517741623545, 0.03340505872611428, 0.0, 0.0, 0.0, 0.05811339385405451, 0.0, 0.0, 0.0, 0.0, 0.044222795803071285, 0.0, 0.06455569991448866, 0.0, 0.0, 0.05037647535437417, 0.008312394942553907, 0.0, 0.1621478774157853, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005416039933812771, 0.0, 0.0, 0.0, 0.0398756195493532, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05075809733341722, 0.0, 0.03562215281502755, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19049409924372604, 0.0, 0.0, 0.20255925674743036, 0.0, 0.0, 0.0, 0.0, 0.11222926185446927, 0.0, 0.22599925727813394, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18212734324380878, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21653477423901774, 0.0, 0.0, 0.008644589577152558, 0.009519948749861491, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.022306831770080617, 0.0, 0.0, 0.003074570476841778, 0.0, 0.008145346800616094, 0.0, 0.0, 0.0, 0.08511345922427967, 0.18366197461769765, 0.025789383308915437, 0.008297215015175531, 0.0, 0.09184984081220632, 0.0668166427534811, 0.15796441417080423, 0.0, 0.0, 0.0, 0.0, 0.0, 0.024933369902885204, 0.0, 0.011259308615493588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02160071316022016, 0.0, 0.0, 0.0, 0.1015273549658925, 0.0, 0.3722773110385471, 0.0, 0.0, 0.0, 0.005704132382790829, 0.576786252698806, 0.6048982987919145, 0.3404333765031976, 0.0, 0.1776491403162125, 0.3619951063590594, 0.0, 0.0, 0.0, 0.0, 0.20056572202110787, 0.0, 0.4038849000985208, 0.0, 0.07292911426252524, 0.0, 0.0, 0.0, 0.0, 0.3254810866068793, 0.0, 0.0, 0.0, 0.0486152336987337, 0.0, 0.38697085430573647, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7532037777522111, 0.0, 0.0, 0.2947709821219489, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008564738540478935, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2647016620516834, 0.0, 0.0, 0.5486174586047213, 0.0, 0.0, 0.0, 0.0, 0.0]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25238968158185693, 0.0, 0.0, 0.48865059160643304, 0.11871952163266221, 0.13783085437527975, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1100520583840872, 0.0, 0.6593611321473758, 0.05928345080192752, 0.009174411759749758, 0.0, 0.0, 0.19127876171690858, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07691735887883953, 0.0, 0.05392395392410878, 0.02141387988861775, 0.34710885925020263, 0.0, 0.0, 0.0, 0.0, 0.004888456103411815, 0.23938597192062988, 0.14380896793554465, 0.0, 0.0, 0.11091906743258541, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.42492930113736893, 0.0, 0.0, 0.0, 0.3917786049138451, 0.0, 0.027947398300345625, 0.0, 0.0, 0.0, 0.027990755993474236, 0.23996972136870412, 0.0, 0.0, 0.0, 0.16076348282437408, 0.0, 0.0, 0.0, 0.0, 0.2346717239666177, 0.0, 0.1645197835042719, 0.0, 0.15581124610211206, 0.0, 0.0, 0.0, 0.0, 0.16923528472284902, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07802881298690809, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0008989792695458017, 0.0, 0.0, 0.0, 0.0, 0.06720357557125424, 0.0, 0.0, 0.0, 0.3718711629986387, 0.0, 0.0, 0.3609126159300422, 0.1163460342216259, 0.26803502779771143, 0.5785179690130179, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20913099459980355, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3230898388302748, 0.31857597482541405, 0.458635468333174, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7731954314831251, 0.7216673432976093, 0.0, 0.7303507448180484, 0.14951424728459475, 0.7849205313632122, 0.0, 0.61487751501265, 0.0, 0.0, 0.25756111513158075, 0.0, 0.4611561614453371, 0.11767850077853764, 0.8141145056659213, 0.17774815965387922, 0.0, 0.0, 0.6559733835287642, 0.36761704346577023, 0.0, 0.0, 0.0, 0.7451998098255509, 0.033169973232688346, 0.411513621864204, 0.20930644094410764, 0.0, 0.0, 0.0, 0.10412334822136202, 0.6428221612529075, 0.2944149731643712, 0.0, 0.01883057275583864, 0.0, 0.05108593913912473, 0.0, 0.0, 0.521025535425184, 0.0008200368898190739, 0.0, 1.1919622969351262, 0.6934669965376988, 0.46942192138741023, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37125241315091917, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29594902098744047, 0.0, 0.0, 0.0, 0.5073161019921272, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.36145064005412786, 0.0, 0.054781056420259586, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6055780045451759, 0.09162757378665623, 0.04766798091106047, 0.0, 0.46059427954757914, 0.1119031338013209, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37567607243684537, 0.6215033212682567, 0.6577405362916645, 0.03204652922702584, 0.0, 0.0650525320202852, 0.18029632002719695, 0.0, 0.0, 0.0, 0.0, 0.008472932483726157, 0.0, 0.0, 0.0, 0.0, 0.13094335555018422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16141065848651698, 0.0, 0.051110856273358346, 0.0, 0.020946973304893955, 0.06226614898669832, 0.0, 0.2444646619775439, 0.0, 0.0, 0.0, 0.0, 0.04963632606956389, 0.0, 0.0, 0.0, 0.08508663882314382, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1263166966867768, 0.0, 0.15643691198571966, 0.0, 0.0, 0.0, 0.15262026274680354, 0.0, 0.526388198493186, 0.0, 0.0, 0.033474977962917256, 0.060622203675208805, 0.0, 0.43377644245905544, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3151002104915899, 0.0, 0.09477312339277622, 0.0, 0.0, 0.0, 0.152252080697694, 0.0, 0.0, 0.0204339991404229, 0.1698000966652489, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22850913265749315, 0.0, 0.7903794435818682, 0.5335588868613267, 0.0, 0.0, 0.33064520351324683, 0.11423967014312472, 0.532326845734251, 0.0, 0.0, 0.0, 0.0, 0.5700696949494688, 0.5896247750753707, 0.0, 0.4280369290594203, 0.0, 0.27339018574089047, 0.25517063473696217, 0.0, 0.4053021670425236, 0.0, 0.7145118270418906, 0.18406779329511921, 0.5332101577384002, 0.15679597786898153, 0.0, 0.02405447430944597, 0.5068714011553328, 0.2632866105026604, 0.0, 0.0, 0.0, 0.0, 0.0, 0.026822919064352108, 0.0, 0.09441824561660622, 0.15069396874531527, 0.24064671368655893, 0.0, 0.06394357060327457, 0.3982245622181067, 0.22117139549869444, 0.14930545644387866, 0.0, 0.2667835225346214, 0.4473684178329899, 0.0, 0.14896069513005675, 0.0, 0.41433289250349636, 0.0, 0.5041716274275465, 0.26176138019545275, 0.5757006867537102, 0.08966813962959974, 0.11977731163657437, 0.0, 0.0, 0.29331748913539113, 0.14887247084155056, 0.1452951955564375, 0.0, 0.0, 0.0, 0.0, 0.34161907033931543, 0.05898137093682045, 0.05240866036729835, 0.0, 0.0, 0.0, 0.5188204085313443, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5773724259871397, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22601349058504813, 0.0, 0.3467947164134737, 1.502272260353748, 0.19536436403308852, 0.0, 0.0, 0.0, 0.0, 0.4899706257461605, 0.20445136303854802, 0.7748906467295266, 0.0, 0.0, 0.15253741518885644, 0.0, 0.12918615799515507, 0.0, 0.0, 0.649394095142608, 1.40604728101928, 0.0, 0.5734783753787226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8762605287663663, 0.8124102702299425, 0.0, 0.0, 0.6752965428315182, 0.25420065076928294, 0.2878352998155691, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8742900027056961, 0.0, 0.007209075676415797, 0.028458058565007462, 0.0, 0.0, 0.002645728789765276, 0.0, 0.0, 0.0, 0.669321167131686, 0.0, 0.0, 0.3215833521867582, 0.002002885293525303, 0.5455785228014223, 0.5839672123490091, 0.1695566125503257, 0.0, 0.0, 0.0, 0.0, 0.3711983399532414, 0.0, 0.0, 0.037869811310371364, 0.0, 0.0, 0.0, 0.3906765181627519, 0.0, 0.0, 0.0, 0.004333175863679718, 0.0, 0.0, 0.0, 0.0029029347517778824, 0.43381543679330525, 0.0, 0.0, 0.0, 0.0, 0.3545426084781949, 0.0, 0.3770558352493434, 0.6375411486503958, 0.0, 0.0, 0.0, 0.23985359098491452, 0.021961946298743228, 0.0, 0.3910697032182053, 0.0, 0.6932074965542865, 0.0, 0.0, 0.10364106821683754, 0.0, 0.798416207733151, 0.5329842919228587, 0.0, 0.4844692491628223, 0.0, 0.0, 0.0, 0.0, 0.09106971306440546, 0.0, 0.0, 0.0996076819499136, 0.0, 0.0, 0.1638248686693664, 0.0, 0.3325546563665125, 0.0, 0.0, 0.0, 0.06881525170797138, 0.0, 0.44073566130025815, 0.0, 0.4019788844385439, 0.0, 0.0, 0.6714215423158676, 0.3399125937167764, 0.3046141011370791, 0.0, 0.0, 0.0473355681300066, 0.3630070132608522, 0.0, 0.0800754636262803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2369140918241696, 0.0, 0.0, 0.35909981102365546, 0.2433693452274136, 0.6477566576645207, 0.0, 0.0, 0.0, 0.0, 0.4005702988980329, 0.6327139875815745, 0.45739813367595, 0.2306117264369203, 0.1673891610155256, 0.0, 0.3233168523165315, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04211122573483531, 0.0, 0.06803593591564691, 0.5741938845793657, 0.0476975123297982, 0.5504819156825551, 0.044516401141561746, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13524675835101255, 0.0, 0.22945132617429284, 0.0, 0.0, 0.0, 0.0, 0.1577714195074665, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2785368262709604, 0.12576967984327264, 0.0, 0.0, 0.0, 0.21559450852042064, 0.04903058086742513, 0.0, 0.1695895598298771, 0.11448427397866526, 0.0, 0.0, 0.023071609626772224, 0.0, 0.11421991827694536, 0.0, 0.0, 0.0, 0.007379588146467978, 0.07866376283476462, 0.3892472589606234, 0.0, 0.09184271552047321, 0.0, 0.25448001970252454, 0.2286582495545744, 0.02328034708296836, 0.0, 0.0, 0.0, 0.0, 0.3270923296219218, 0.0, 0.0, 0.0, 0.02043338740984974, 0.0, 0.0, 0.37277616481672965, 0.0, 0.0, 0.0, 0.0044846057268865735, 0.0, 0.3249615768942753, 0.0, 0.0, 0.19094547447052443, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08406342406417443, 0.0, 0.033182079075965945, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6500195484438399, 0.0, 0.0, 0.0, 0.0, 0.5537781763556555, 0.02656015063015655, 1.1909226087779956, 0.06852425737111054, 0.0, 1.3426353595976268, 0.6057701268300226, 0.9302934294779756, 0.0, 0.02223254227484718, 0.9934644128441693, 0.0, 0.06172390220433867, 0.20273446118005728, 0.5149938580802573, 0.1300590771577626, 0.2385875538652477, 0.0, 0.595480643743492, 0.0, 0.0, 0.0, 0.24275727828178406, 0.0, 0.7073132892445582, 0.0, 0.5182899096571696, 0.0, 0.363354145475898, 1.046444738015761, 0.8990939341913878, 0.5284345996323894, 0.0009271750893556132, 0.0, 0.0786791826827641, 0.5567513178048157, 0.0, 0.11672601563414542, 0.0, 0.0, 0.0, 0.0, 0.513610216882899, 0.0, 0.3599562947175533, 0.012305112294495107, 0.0, 0.3547644724719033, 0.0, 0.31743838097476296, 0.0, 0.0, 0.0744235447925737, 0.0, 0.0, 0.3186229810095584, 0.0, 0.7632822460090717, 0.3112891249755775, 0.0, 1.2592130951288079, 0.4142666686935799, 0.0, 0.0, 0.0834856922205997, 0.0, 0.5673263343800874, 0.0, 0.0, 0.0, 0.011109757680217765, 0.7473278912032746, 0.4577974378546139, 0.07323000489837116, 0.33380163101303967, 0.0, 0.014128663560806082, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19621458519667637, 0.0, 0.0, 0.0, 0.0, 0.4083399062549612, 0.0, 0.3744505994071715, 0.0, 0.5655910339236376, 0.0, 0.0, 0.08962016161963385, 0.0, 0.0, 0.0, 0.0, 0.3660241210222327, 0.0, 0.42450374338695224, 0.6660088440351456, 0.0, 0.0, 0.28456417514777416, 0.0, 0.6631091941560893, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.002609340728317194, 0.0, 0.0, 0.0, 0.0, 0.1290910408202515, 0.0, 0.12880600190077574, 0.0, 0.21852433519062017, 0.14617196989407044, 0.04712090478664361, 0.17786735669510226, 0.013608617966411374, 0.0, 0.1599219758144718, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13118766387513575, 0.18575036424480185, 0.0, 0.0, 0.0, 0.0, 0.24739057674609932, 0.08098740885007556, 0.0, 0.0, 0.11169555771003165, 0.0061692969950391426, 0.0, 0.0, 0.0, 0.1300402212804686, 0.0, 0.22061823582759926, 0.32468517510166695, 0.17899843511210062, 0.0, 0.0, 0.0, 0.0, 0.3555268023407697, 0.0, 0.0, 0.0, 0.5637648459713849, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.41259886956253183, 0.0, 0.0, 0.0, 0.0, 1.0217866044035127, 0.0, 0.0, 0.0, 0.09699076097844603, 0.49177999120325233, 0.617482417183965, 0.9254348782417843, 0.19189797684210885, 0.37564958516196006, 0.0, 0.6028533281724416, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4525887449543689, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.3536752652948492, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5159325071456758, 0.45703260113959776, 0.11783337867793497, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.014395933646557283, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5291071006274988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4362705134404812, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06167194341482688, 0.0, 0.26507468559563424, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18765355736657707, 0.0, 1.0014115383719757, 0.10542483708166006, 0.22040848700903187, 0.0, 0.3600323742449293, 0.06543742592421764, 0.0, 0.06637441639531827, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3967141864154841, 0.0, 0.18259679072826512, 0.0, 0.2818810986099949, 0.0, 0.0, 0.0, 0.04462260901941838, 0.650460148621926, 0.9472330785275007, 0.0, 0.0, 0.0, 0.0, 0.20815281221075516, 0.19618764447572262, 0.06473525648539784, 0.0, 0.0, 0.0, 0.1542243249790465, 0.13224172712193835, 0.0, 0.007908832517684252, 0.0, 0.051353982240120374, 0.0032977751233809844, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27800255996089945, 0.0, 0.0, 0.1281258773488851, 0.0, 0.0, 0.0, 0.31683019969084447, 0.0, 0.0, 0.0, 0.19099043815219882, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2169883137756601, 0.0, 0.7505306274250138, 0.5066582758142599, 0.0, 0.07143979002259558, 0.10210504506442938, 0.15444313156667316, 0.5054883509033501, 0.0, 0.0, 0.0, 0.0028518817212982773, 0.3481320627001662, 0.559897472000501, 0.0, 0.40645645270348807, 0.0, 0.36960222637651485, 0.34497081323202616, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0330129037169125, 0.05220506486278423, 0.053654185080025577, 0.0, 0.0, 0.1851124085000456, 0.04497376440934621, 0.35304695602824443, 0.0, 0.0, 0.343295765136816, 0.2793332554556384, 0.0, 0.0, 0.040358875497600165, 0.24978160129073035, 0.0, 0.0, 0.0, 0.0, 0.07246092173943684, 0.0, 0.16628600115413392, 0.0, 0.0, 0.0, 0.06634041958053304, 0.0, 0.0, 0.0, 0.008112084482454424, 0.0, 0.0, 0.3510991071496956, 0.30792356595023396, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24591462609017128, 0.0, 0.0, 0.0, 0.0, 0.1723485353456609, 0.17746213232343597, 0.26032482377035826, 0.0, 0.0, 0.09642188463361992, 0.0, 0.0, 0.9312549994812083, 0.0, 0.4355669936335271, 0.22986161845318145, 0.0, 1.1016016643957898, 0.5367168823744637, 0.0, 0.0, 0.1081626494181155, 0.0, 0.5354775491181646, 0.0, 0.0, 0.7066771289166013, 0.005913227901483509, 0.36878575613264597, 0.5931146099182986, 0.0, 0.43177137005853594, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2792172801438884, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18771394461865235, 0.0, 0.3810480475576988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04963057208911237, 0.0, 0.0, 0.0, 0.014028126739435154, 0.6487755206193258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019308069898724092, 0.0, 0.0, 0.15473333790095384, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20078144855224883, 0.04664059814698181, 0.0, 0.0, 0.02360446678134394, 0.0, 0.0, 0.06383755139363034, 0.0, 0.1295864000345023, 0.0, 0.0, 0.0972547510814237, 0.0, 0.07205581060374358, 0.016878310254842765, 0.0, 0.0, 0.0, 0.0, 0.2206348639926782, 0.0, 0.0, 0.2053453449704589, 0.18009351088331146, 0.17243879836126652, 0.16094695393647487, 0.0, 0.0, 0.0026102124382687284, 0.009478472183394092, 0.22228584913081856, 0.0, 0.0, 0.22567472183496304, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.002853715730108796, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0005790797752150057, 0.4809080576930432, 0.0, 0.0, 0.0, 0.32217587215618376, 0.0018177803358381927, 0.0, 0.0, 0.0, 0.0003287432209283418, 0.0, 0.0008918558343658391, 0.0, 0.0, 0.009096038390466929, 0.0, 0.0, 0.0, 0.00873033402576318, 0.007007183394127084, 0.45496728899530875, 0.0, 0.1316351307673038, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09338135584056179, 0.18382194877540864, 0.0, 0.563495172825665, 0.0, 0.0, 0.0, 0.05639497562938005, 0.14653622131196892, 0.0, 0.0, 0.0, 0.251192534270281, 0.1344408525103349, 0.0, 0.4650111134116464, 0.31391354376028213, 0.0, 0.0, 0.06326188293375198, 0.0, 0.31318868581904563, 0.0, 0.0763329064988246, 0.0, 0.0, 0.2156944329452718, 0.3468992967609863, 0.0, 0.2518308523576955, 0.0, 0.17896869808051252, 0.05403813425807818, 0.027124296544448725, 0.0, 0.0, 0.0, 0.0, 0.11640144853391314, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09109340489796702, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1194057971602891, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6552661573805515, 0.0, 0.0, 0.0, 0.21450271688804268, 0.0, 0.0, 0.902854749674862, 0.06907734840039648, 0.0, 0.811763991573728, 0.24446155688431725, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0551218990786032, 0.0, 0.0, 0.6659086165622266, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4110921087644639, 0.0, 0.0, 0.07931423881912922, 0.0, 0.0, 0.37316154887557274, 0.11430607897800385, 0.4150800042560803, 0.0, 0.10099097676635159, 0.6592915699634367, 0.0, 0.25936644093477396, 0.07666208914620723, 0.0, 0.0, 0.7807360976520861, 0.0, 0.0, 0.04275453625658718, 0.1985413718724771, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13633482744457018, 0.0, 0.2252743029271589, 0.0, 0.0, 0.0, 0.5464410650922171, 0.11366230227156136, 0.6018718955402885, 0.0, 0.014396279790867243, 0.0, 0.03905603312028952, 0.8092451213661034, 0.0, 0.39833251401456404, 0.0, 0.12251229365728535, 0.27200847035734843, 0.25388100105648176, 0.30685765140009125, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07517201195249319, 0.0, 0.0, 0.0, 0.0, 0.3595498458067731, 0.0, 0.0, 0.0, 0.05519776563775433, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13158680513977092, 0.0, 0.45513938379424074, 0.3072494672729318, 0.0, 0.0, 0.061918895238623206, 0.0, 0.306539997354477, 0.0, 0.0, 0.0, 0.0, 0.21111545179707192, 1.113727824196147, 0.0, 0.24648473048642042, 0.0, 0.0, 0.0, 0.6244696783059631, 0.0, 0.0, 0.010619491746539882, 0.0, 0.0, 0.057745206745770994, 0.0, 0.008858840711593166, 0.0075334185627281185, 0.1972006876834336, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15720126897663422, 0.2881788570254271, 0.05549794388099826, 0.0, 0.43880673821983995, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006158057243750719, 0.0, 0.0, 0.05862006643173159, 0.15125593941090254, 0.03302320207312045, 0.0, 0.0, 0.19199421271725345, 0.004359455697024407, 0.02909842903488052, 0.4051738652139157, 0.0, 0.0, 0.0, 0.0, 0.661857462083124, 0.27266071825745297, 0.09855620143563353, 0.03009452021788303, 0.0, 0.0, 0.36386547477639486, 0.0, 0.3154569959145931, 0.0, 0.12777365741134986, 0.0, 0.2874935496978787, 0.0, 0.0, 0.021877890033203812, 0.1316957530661763, 0.0, 1.0462327541742331, 0.24642978428043782, 0.0, 1.292534939963643e-5, 0.04966212026978902, 0.16767073337455046, 0.24586075312633993, 0.7749426824526595, 0.2192927197338787, 0.0, 0.15373812475086615, 0.1693253879539043, 1.1992945978003244, 0.0, 0.19769335810835964, 0.0, 0.2843031573913307, 0.2653563328642114, 0.6319651047837591, 0.0, 0.0, 0.2886502960323224, 0.2007500567698334, 0.0, 0.0, 0.0, 0.0, 0.4490517136878312, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.43431608561880214, 0.0, 0.0, 0.0, 0.29096240214176294, 0.0, 0.0, 0.24728201213730056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.199315833820732, 0.40813133046287003, 0.25266186539111524, 0.0908889085249469, 0.0, 0.0, 0.45688115062815576, 0.11100101499363633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02264115832549351, 0.6164930072930471, 0.0, 0.0, 0.44347420874850846, 0.0, 0.17884284240125642, 0.0, 0.2888836731929794, 0.21018531617189648, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3429810739029393, 0.02002166425453684, 0.021961075245274804, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.557136258905774, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.36191890674012556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12978916081088554, 0.0, 0.33079766328323545, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20464300021869425, 0.0, 0.0, 0.0, 0.0, 0.5063973085557268, 0.26737229244864336, 0.08619179411886842, 0.0, 0.0, 0.0, 0.49896059675156373, 0.0, 0.9000423796847855, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6355437645077721, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3962962286854009, 0.0, 0.0, 0.33976760898340913, 0.0, 0.0, 0.478819001240275, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), 42), 42)),) julia> @finch_code begin Ct .= 0 for j = _ @@ -1015,7 +1015,7 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.5786578146202624, 0.0, 0.3202961159483594, 0.3207279869105304, 0.5035217854841559, 0.0, 0.013671076975665627, 0.01669925591794789, 0.0, 0.0, 0.0, 0.5652457771225854, 0.0, 0.09766762955114001, 0.2831455624824939, 0.0, 1.0556185392068085, 0.2068017763866623, 0.0, 0.15942131380345745, 0.005607444973383372, 0.0, 0.056687675717707615, 0.2535497922885842, 0.4637407985590488, 0.22387274550179712, 0.5454655738973408, 0.08490666489615803, 0.3556465582001688, 0.0, 0.0, 0.31186727366054, 0.6972638697010188, 0.0, 0.0, 0.009518501694028625, 0.0, 0.5833334701399113, 0.6244214908493986, 0.0, 0.26168041250093527, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0131047746782154, 0.0, 0.6656645247350605, 0.0, 0.0, 0.0769882955934405, 0.0, 0.0, 0.34004774503974494, 0.08053504092577264, 0.006982581834800098, 0.5446249720805942, 0.0, 0.0, 0.31025177039320695, 0.2638902653915397, 0.0, 0.0, 0.0, 0.0, 0.2008136945182758, 0.0, 0.0, 0.19041992572397343, 0.05903622381609576, 0.0, 0.0589978949008293, 0.05133054295704808, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7141967536140789, 0.0, 0.11331087789790419, 0.0, 0.0, 0.13904571220904566, 0.16685503671570054, 0.0, 0.1461222249815685, 0.0, 0.0, 0.0, 0.1624667486179013, 0.0, 0.0, 0.0001466632220376543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.040061564188380784, 0.0, 0.0, 0.05925661356360367, 0.0, 0.20052213796576485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1322273764299389, 0.0, 0.07284319524978862, 0.0, 0.21698248889777863, 0.0, 0.22616177063294415, 0.0, 0.0, 0.0, 0.0, 0.52849490550171, 0.0, 0.71926878469886, 0.0, 0.6501927607213651, 0.0030355649865830615, 0.37799680598211977, 0.0, 0.0007078975665940506, 0.09351646752064424, 0.05681500695663011, 0.0, 0.20243859396970953, 0.0628704495708815, 0.001556209278473695, 0.0, 0.0, 0.0, 0.0, 0.0027171741525499, 0.0, 0.0, 0.0, 0.07038911039656341, 0.049709343960620045, 0.0, 0.018852918431012597, 0.26140762404567164, 0.049374687944063446, 0.0, 0.0, 0.5682508160039592, 0.08397693763382687, 0.0, 0.0, 1.1395457189674745, 0.10207861893624984, 0.006346754524020049, 0.07139718683099765, 0.0, 0.4257292397317542, 0.0, 0.0, 0.003459642976589088, 0.00011827788909935122, 0.29669071600135444, 0.0, 0.04645302583039929, 0.6403581026228157, 0.0, 0.0, 0.4035906657629842, 0.0, 0.0, 0.031770473502227184, 0.0, 0.10177861753458611, 0.08984803025006428, 0.2696383585775038, 0.0, 0.0, 0.0, 0.0, 0.4020058229022269, 0.8537152750348289, 0.27466570696380027, 0.0, 0.9014511503031993, 0.0, 0.0, 0.0, 0.3588364621034526, 0.0, 0.10358336916612662, 0.0, 0.8253783539224127, 0.003096290011755601, 0.3727209618097055, 0.0, 0.0, 0.0, 0.08512247762765326, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0016669318756259504, 0.0, 0.0, 0.9038241621401286, 0.23981242371494071, 0.0, 0.0, 0.0, 0.10303433366133424, 0.0, 0.0, 4.317142647672722e-5, 0.0, 0.07840647389573854, 0.0, 0.0, 0.0, 0.0, 0.36164895718336953, 0.011697025915496142, 0.0, 0.0, 0.0, 0.0, 0.001969151291048087, 0.0, 0.0016085698018090215, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8640055140280944, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10961290316901336, 0.0, 0.0, 0.0, 0.34012752342022284, 0.0, 0.09000159029348583, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.38387258660557405, 0.0, 0.0, 0.0, 0.04942864149427501, 0.0, 0.9641925530766522, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1618638919487994, 0.0, 0.0, 0.1434695556565637, 0.3651050198592113, 0.0, 0.04210320606021404, 0.5803955429188099, 0.0, 0.0, 0.36579879697476825, 0.4517875751113323, 0.0, 0.0, 0.0, 0.597783133294766, 0.0, 0.0, 0.6329135233850276, 0.0, 0.002597015658553236, 0.2174699638827603, 0.39061652165480276, 0.765918958416278, 0.0, 0.016481521625833693, 0.28751000269430316, 0.0, 0.1647131064041664, 0.0, 0.4521970394725687, 0.0, 0.0, 0.11039007420645473, 0.0, 0.0, 0.0, 0.902497226885166, 0.7436286750029288, 0.09842900387294973, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0017337381605838167, 0.0, 0.48184280820859876, 0.0, 0.0, 0.4182604044398821, 0.05413499724631636, 0.00395203096164986, 0.49703533424495255, 0.0, 0.0, 0.0, 0.43461516165530706, 0.0, 0.0, 0.2097986260899648, 0.0, 0.0, 0.0, 0.0032389406325184205, 0.11624028110212369, 0.0, 0.23514374437795085, 0.0, 0.013757851512121493, 0.0, 0.23992048040279412, 0.32911722925956555, 0.0, 0.18863648593265903, 0.5965040702112832, 0.0, 0.0, 0.006607346447861224, 0.005821424904675781, 0.2242736217811627, 0.0, 0.0, 0.02743682303358625, 0.03021510122691055, 0.4109976396191596, 0.016694351333046, 0.0, 0.0, 0.15588266372439724, 0.0, 0.7589538506473881, 0.0, 0.0, 0.9157838182946224, 0.07079903450052254, 0.0, 0.0, 0.0, 0.8133345120890082, 0.19376473666562866, 0.0, 0.0, 0.24554349589597185, 0.2326206471524158, 0.5829196459370383, 0.0, 0.344078222468009, 0.0, 0.5927124546739914, 0.21206748875282805, 0.5013588717575729, 0.1507046170639337, 0.0, 0.2922067750640437, 0.9112630304460252, 0.0, 0.42296978570223137, 0.0, 0.0, 0.0, 0.0, 0.47847449991115903, 0.0, 0.0, 0.0, 0.0, 0.02922391861250235, 0.003575617433634187, 0.0, 0.0, 0.18000379265062824, 0.0, 0.0, 0.0, 0.020223410318598516, 0.0, 0.0, 0.0, 0.0, 0.1194607408090099, 0.0, 0.18567470153771173, 0.015493204406064897, 0.0, 0.0, 0.22675090423473912, 0.0, 0.6338841242698132, 0.5245326238847832, 0.0019166419799919094, 0.6594541233567529, 0.0, 0.005139571264149575, 0.0, 0.0, 0.0, 0.014894820580065271, 0.0, 1.2034959876942206, 0.0, 0.25665804266856174, 0.012594729973842587, 0.0, 0.011446343678364038, 0.0, 0.0, 0.02279435489937408, 0.025102532455875536, 0.0, 0.0, 0.0, 0.0, 0.1307674017372415, 0.5572422675871412, 0.20860522647402835, 0.3439153754178085, 0.0, 0.7682359770495442, 0.05881943098741484, 0.0, 0.0, 0.7560476592821442, 0.06967644285195858, 0.0, 0.04321641535911349, 0.0, 0.0, 0.0, 0.8024673537053417, 0.0, 0.0, 0.0, 0.0, 0.1761844509232577, 0.8168042507595197, 0.0, 0.0, 0.0, 0.5887168313525647, 0.0, 0.0, 0.4050160345946778, 0.0, 0.28424121144843517, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04314478705768561, 0.17729851568072083, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06445720856859194, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10331544984256105, 0.2490312779322865, 0.0, 0.24280852181294071, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5198374016631779, 0.0, 0.0, 0.0, 0.13645064069986682, 0.0, 0.24758012015088376, 0.5314044104438821, 0.0, 0.0, 0.3110470576055099, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02359980206981429, 0.36163373919282166, 0.0, 0.0, 0.4835792742792758, 0.0, 0.3524294596638372, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27655502261887766, 0.0, 0.0, 0.0, 0.0, 0.22117286156450722, 0.0, 0.15521963759663626, 0.0, 0.0, 0.0, 0.0, 0.021723812939992326, 0.02392358642299197, 0.0, 0.9811990708246294, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4965569454339231, 0.08530918757868192, 0.0, 0.07823884141505981, 0.08129763345109173, 0.8580687524263778, 0.6125638634435169, 0.7792197114170356, 0.17406349022985984, 0.0, 0.7428281837408045, 0.0, 0.07932414385265583, 0.46154167819945197, 0.0, 0.5289001614381607, 0.0, 0.8287876866571131, 0.1679099089089469, 0.695722986230781, 0.0, 0.010707260605614142, 0.014687966352699852, 0.03846916856579124, 0.6678999803007167, 0.8946423775406338, 0.0, 0.0, 0.6928842432378984, 0.0, 0.8291172549334254, 0.0, 0.036214437271524916, 0.0, 0.6493274982169268, 0.0, 0.0, 0.0, 0.0, 0.022863259627981244, 0.7335275809594394, 0.03647235770741211, 0.0, 0.287070580153256, 0.13431771500769504, 0.14856735628547443, 0.15781940486580828, 0.0, 0.0, 0.323980207489089, 0.0, 0.02667757509153305, 0.33154611696012287, 0.008340998981572286, 0.0, 0.1964137723963185, 0.0, 0.18369526317696738, 0.0, 0.36991237719570497, 0.0, 0.0, 0.060663484669780686, 0.0, 0.0, 0.10293074255327075, 0.9555336304557553, 0.0, 0.2500171656161189, 0.5342857393564834, 0.17546263843294155, 0.0, 0.35442104566615373, 0.0, 0.0, 0.0, 0.0, 0.17621149415330922, 0.6121951999020001, 0.14104370661074167, 0.0, 0.03700642443953683, 0.5101360635898259, 0.0, 0.0, 0.398419677876043, 0.0, 0.0, 0.0, 0.23862742072997933, 0.0, 0.06314351493041778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32025466250143747, 0.0, 0.0, 0.0, 0.25412006584310015, 0.0, 0.2693181789862389, 0.0, 0.2858641430477511, 0.0, 0.12448957171647013, 0.0, 0.6764603455612473, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.007629531631679027, 0.008402105093687509, 0.1478058101242069, 0.005053168588900645, 0.0, 0.30372648283729076, 0.003980754378397801, 0.0, 0.0, 0.0, 0.0, 0.07450559902388645, 0.019687537166852037, 0.0, 0.08244653582028545, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16209616805705127, 0.0, 0.08979346385777931, 0.06518743281502334, 0.21315534710850095, 0.08369413937188341, 0.1394160455900761, 0.5610626715103558, 0.0, 0.0, 0.13968567626607642, 0.0, 0.0, 0.0, 0.0, 0.01924679403964147, 0.0, 0.0, 0.0, 0.0, 0.616722369104707, 0.0, 0.0, 0.5466375681050827, 0.0, 0.0, 0.013987945284851467, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09368066064257337, 0.0, 0.24818473838609467, 0.04865531902212218, 0.0, 0.009894965642192768, 0.0, 0.45825677816644195, 0.7857899124906229, 0.25281208870305677, 0.0, 0.8251354193653254, 0.0, 0.6275782447904167, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7597076021322064, 0.4559884064545227, 0.3430656338577527, 0.32001374263313714, 0.2977084759378876, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26332513624077, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07361684952632414, 0.0, 0.0, 0.0, 0.5420044017413929, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5785225932672249, 0.0, 0.0, 0.0, 0.6899231282082093, 0.33897374575165645, 0.4841896839083132, 0.0, 0.0, 0.0, 0.0, 0.6240541831707288, 0.0, 0.0, 0.5531361892215293, 0.4547991804243185, 0.0, 0.100152739355421, 0.0, 0.2440837061302026, 0.0, 0.0, 0.0, 0.0, 0.12076927556310874, 0.0, 0.0, 0.3415398112751411, 0.0, 0.0, 0.0, 0.010012600500133058, 0.0, 0.10122097549537463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6350391173534848, 0.0, 0.0, 0.5362493708751273, 0.3870491592555651, 0.0, 0.0, 0.011769944241680865, 0.3142045963597273, 0.0, 0.30124773979598957, 0.0, 0.3235765421156834, 0.0, 0.541761414379215, 0.0, 0.0, 0.8318031269227326, 0.0, 0.0, 0.0, 0.0, 0.0, 0.655176286023573, 0.0, 0.0, 0.12998028512957016, 0.09284961824757046, 0.5535451825358659, 0.6996061073192734, 0.06205996989121698, 0.0, 0.0, 0.0, 0.008692259029504977, 0.0, 0.08787316923443415, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5512977874061133, 0.0, 0.06274188232221303, 0.0860678272807259, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7913396090809787, 0.26152280681975265, 0.0, 0.0, 0.0, 0.0, 0.0, 0.028664478181671504, 0.0009799779903315728, 0.0032348889210802386, 0.0, 0.11837934340514084, 0.4864662292788164, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07382213914734657, 0.0, 0.0, 0.0, 0.17685571185867954, 0.2510513607906149, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0019118999997271302, 0.0, 0.04133793381575315, 0.2834737624180827, 0.6832843821792778, 0.0, 0.6662105748014928, 0.0, 0.5326269406399959, 0.0, 0.0, 0.0, 0.0, 0.10672810444069859, 0.0, 0.07123750254807154, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.007981914293001519, 0.10075857550012479, 0.009540391703188681, 0.0, 0.11580721042791553, 0.0, 0.0, 0.17856228523566461, 0.00048020843909893406, 0.0, 0.197593765283525, 0.0, 0.0, 0.0, 0.6194557197663932, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21520162666608084, 0.1562300971282056, 0.0, 0.0592523063663964, 0.0, 0.18612758103797813, 0.0, 0.2544272402257203, 0.15422821911002763, 0.0012917517157272594, 0.0, 0.0, 0.14907655404346837, 0.09429642888622711, 0.0, 0.0, 0.0, 0.0, 0.09600808583182174, 0.0, 0.005856583784053075, 0.08156012032053195, 0.09312148266647201, 0.0322184865015818, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03641255600507808, 0.0, 0.09646644914865622, 0.6107192924560144, 0.0, 0.0008311989920553221, 0.04768463204338608, 0.008402889219987731, 0.30542717141970227, 0.09826504505325136, 0.08476742117805344, 0.35700707759139916, 0.0, 0.052717960159591244, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29528928831604634, 0.0, 0.18118798681716172, 0.047489656233823854, 0.07375616702811215, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15842644268884615, 0.005416265593171256, 0.0, 0.0, 0.0, 0.06326712126451656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22847169102573353, 0.0, 0.11955753824812076, 0.0, 0.0, 0.0, 0.08074664695989245, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0029119331378805115, 0.0, 0.0, 0.1953274033599059, 0.0, 0.0, 0.0, 0.48520999511490304, 0.0, 0.0, 0.0, 0.0, 0.13603276168063752, 0.0, 0.06155663979875702, 0.0, 0.0, 0.0, 0.19100951475155065, 0.0, 0.05054327834442013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21557595738397023, 0.0, 0.0, 0.2988625665604049, 0.02775823823873608, 0.0, 0.5414732387378444, 0.0, 0.1751125450084881, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7653173403797493, 0.011610920930129028, 0.0, 0.6690009447860032, 0.007717112212206315, 0.0, 0.0, 0.0, 0.0, 0.0949800986519104, 0.0, 0.01759104522847652, 0.0272063292239745, 0.0, 0.18672851022958098, 0.14592398686801408, 0.0, 0.0, 0.06111532732066789, 0.0, 0.012109927581814974, 0.0, 0.3464253043638218, 0.014416979955844242, 0.0, 0.0, 0.004751074128394563, 0.0814923248235591, 0.960719872887566, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029410227635468144, 0.3902617128196832, 0.0, 0.0, 0.0, 0.0, 0.03936155946785215, 0.0, 0.0, 0.0, 0.0, 0.03226521554976169, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029868187491618223, 0.0, 0.007848954300217155, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02618395857766568, 0.0, 0.0, 0.0, 0.02729344001455739, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16043383601301778, 0.0, 0.08114240967089056, 0.0, 0.12944151616666955, 0.0, 0.0, 0.8424042898437758, 0.0, 0.0, 0.0, 0.0, 0.04323489183997365, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2997198089695268, 0.0, 0.0, 0.09877179787471602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.36530436236505814, 0.0, 0.0, 0.0, 0.0, 0.6114198560066337, 0.538693529249165, 0.0, 0.0, 0.0, 0.014312907460573414, 0.015762245768879076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03693357747227013, 0.0, 0.0, 0.5249268945825, 0.0, 0.0, 0.16471382065012125, 0.0, 0.0, 0.0, 0.304090416701445, 0.48915218766248414, 0.0, 0.020376509279081044, 0.0, 0.11062878301178729, 0.26154278602954106, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1338990979320024, 0.0, 0.12169019076516314, 0.0, 0.0, 0.0, 0.5524220216872981, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13426647560262422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05161008110067911, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.007893769925822126, 0.008693100403012733, 0.0, 1.169538837435482, 0.0, 0.5817658012805581, 0.3172103076471354, 0.0, 0.22838627747698767, 0.0, 0.10226945824142554, 0.0, 0.020369387834492953, 0.0, 0.20675490808600527, 0.48677742001957014, 0.6262431249386917, 0.151645446757169, 0.20817481578766972, 0.0, 0.0, 0.0668476153746235, 0.5758263086091524, 0.4536026680375212, 0.09887690089373365, 0.018895630454912823, 0.0, 0.06101333098633492, 0.38664812220872247, 0.0, 0.0, 0.7304510924229297, 0.030046419431745734, 0.0, 1.1003509629444073, 0.5194953755737197, 1.1578838988668234, 0.48875095960339066, 0.0, 0.1128462605244655, 0.0, 0.0, 0.0, 0.4791947947301635, 0.0, 0.03259627779739397, 0.10028189990101041, 0.029465846845003113, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22859113464308234, 0.0, 0.11646855789532944, 0.12693945289885786, 0.0, 0.0, 0.20330790896109577, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1873449680464739, 0.0, 0.0, 0.06173899342973636, 0.0, 0.0, 0.04476882030066193, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04375496463125991, 0.38217838780949126, 0.336719559414533, 0.04092456729054698, 0.0, 0.04229882731958149, 0.0, 0.0, 0.0, 0.1452994629839798, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0184335582446928, 0.0, 0.0, 0.0, 0.057199110071214684, 0.0, 0.14103517741623545, 0.03340505872611428, 0.0, 0.0, 0.0, 0.05811339385405451, 0.0, 0.0, 0.0, 0.0, 0.044222795803071285, 0.0, 0.06455569991448866, 0.0, 0.0, 0.05037647535437417, 0.008312394942553907, 0.0, 0.1621478774157853, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005416039933812771, 0.0, 0.0, 0.0, 0.0398756195493532, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05075809733341722, 0.0, 0.03562215281502755, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19049409924372604, 0.0, 0.0, 0.20255925674743036, 0.0, 0.0, 0.0, 0.0, 0.11222926185446927, 0.0, 0.22599925727813394, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18212734324380878, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21653477423901774, 0.0, 0.0, 0.008644589577152558, 0.009519948749861491, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.022306831770080617, 0.0, 0.0, 0.003074570476841778, 0.0, 0.008145346800616094, 0.0, 0.0, 0.0, 0.08511345922427967, 0.18366197461769765, 0.025789383308915437, 0.008297215015175531, 0.0, 0.09184984081220632, 0.0668166427534811, 0.15796441417080423, 0.0, 0.0, 0.0, 0.0, 0.0, 0.024933369902885204, 0.0, 0.011259308615493588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02160071316022016, 0.0, 0.0, 0.0, 0.1015273549658925, 0.0, 0.3722773110385471, 0.0, 0.0, 0.0, 0.005704132382790829, 0.576786252698806, 0.6048982987919145, 0.3404333765031976, 0.0, 0.1776491403162125, 0.3619951063590594, 0.0, 0.0, 0.0, 0.0, 0.20056572202110787, 0.0, 0.4038849000985208, 0.0, 0.07292911426252524, 0.0, 0.0, 0.0, 0.0, 0.3254810866068793, 0.0, 0.0, 0.0, 0.0486152336987337, 0.0, 0.38697085430573647, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7532037777522111, 0.0, 0.0, 0.2947709821219489, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008564738540478935, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2647016620516834, 0.0, 0.0, 0.5486174586047213, 0.0, 0.0, 0.0, 0.0, 0.0]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25238968158185693, 0.0, 0.0, 0.48865059160643304, 0.11871952163266221, 0.13783085437527975, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1100520583840872, 0.0, 0.6593611321473758, 0.05928345080192752, 0.009174411759749758, 0.0, 0.0, 0.19127876171690858, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07691735887883953, 0.0, 0.05392395392410878, 0.02141387988861775, 0.34710885925020263, 0.0, 0.0, 0.0, 0.0, 0.004888456103411815, 0.23938597192062988, 0.14380896793554465, 0.0, 0.0, 0.11091906743258541, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.42492930113736893, 0.0, 0.0, 0.0, 0.3917786049138451, 0.0, 0.027947398300345625, 0.0, 0.0, 0.0, 0.027990755993474236, 0.23996972136870412, 0.0, 0.0, 0.0, 0.16076348282437408, 0.0, 0.0, 0.0, 0.0, 0.2346717239666177, 0.0, 0.1645197835042719, 0.0, 0.15581124610211206, 0.0, 0.0, 0.0, 0.0, 0.16923528472284902, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07802881298690809, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0008989792695458017, 0.0, 0.0, 0.0, 0.0, 0.06720357557125424, 0.0, 0.0, 0.0, 0.3718711629986387, 0.0, 0.0, 0.3609126159300422, 0.1163460342216259, 0.26803502779771143, 0.5785179690130179, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20913099459980355, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3230898388302748, 0.31857597482541405, 0.458635468333174, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7731954314831251, 0.7216673432976093, 0.0, 0.7303507448180484, 0.14951424728459475, 0.7849205313632122, 0.0, 0.61487751501265, 0.0, 0.0, 0.25756111513158075, 0.0, 0.4611561614453371, 0.11767850077853764, 0.8141145056659213, 0.17774815965387922, 0.0, 0.0, 0.6559733835287642, 0.36761704346577023, 0.0, 0.0, 0.0, 0.7451998098255509, 0.033169973232688346, 0.411513621864204, 0.20930644094410764, 0.0, 0.0, 0.0, 0.10412334822136202, 0.6428221612529075, 0.2944149731643712, 0.0, 0.01883057275583864, 0.0, 0.05108593913912473, 0.0, 0.0, 0.521025535425184, 0.0008200368898190739, 0.0, 1.1919622969351262, 0.6934669965376988, 0.46942192138741023, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37125241315091917, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29594902098744047, 0.0, 0.0, 0.0, 0.5073161019921272, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.36145064005412786, 0.0, 0.054781056420259586, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6055780045451759, 0.09162757378665623, 0.04766798091106047, 0.0, 0.46059427954757914, 0.1119031338013209, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37567607243684537, 0.6215033212682567, 0.6577405362916645, 0.03204652922702584, 0.0, 0.0650525320202852, 0.18029632002719695, 0.0, 0.0, 0.0, 0.0, 0.008472932483726157, 0.0, 0.0, 0.0, 0.0, 0.13094335555018422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16141065848651698, 0.0, 0.051110856273358346, 0.0, 0.020946973304893955, 0.06226614898669832, 0.0, 0.2444646619775439, 0.0, 0.0, 0.0, 0.0, 0.04963632606956389, 0.0, 0.0, 0.0, 0.08508663882314382, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1263166966867768, 0.0, 0.15643691198571966, 0.0, 0.0, 0.0, 0.15262026274680354, 0.0, 0.526388198493186, 0.0, 0.0, 0.033474977962917256, 0.060622203675208805, 0.0, 0.43377644245905544, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3151002104915899, 0.0, 0.09477312339277622, 0.0, 0.0, 0.0, 0.152252080697694, 0.0, 0.0, 0.0204339991404229, 0.1698000966652489, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22850913265749315, 0.0, 0.7903794435818682, 0.5335588868613267, 0.0, 0.0, 0.33064520351324683, 0.11423967014312472, 0.532326845734251, 0.0, 0.0, 0.0, 0.0, 0.5700696949494688, 0.5896247750753707, 0.0, 0.4280369290594203, 0.0, 0.27339018574089047, 0.25517063473696217, 0.0, 0.4053021670425236, 0.0, 0.7145118270418906, 0.18406779329511921, 0.5332101577384002, 0.15679597786898153, 0.0, 0.02405447430944597, 0.5068714011553328, 0.2632866105026604, 0.0, 0.0, 0.0, 0.0, 0.0, 0.026822919064352108, 0.0, 0.09441824561660622, 0.15069396874531527, 0.24064671368655893, 0.0, 0.06394357060327457, 0.3982245622181067, 0.22117139549869444, 0.14930545644387866, 0.0, 0.2667835225346214, 0.4473684178329899, 0.0, 0.14896069513005675, 0.0, 0.41433289250349636, 0.0, 0.5041716274275465, 0.26176138019545275, 0.5757006867537102, 0.08966813962959974, 0.11977731163657437, 0.0, 0.0, 0.29331748913539113, 0.14887247084155056, 0.1452951955564375, 0.0, 0.0, 0.0, 0.0, 0.34161907033931543, 0.05898137093682045, 0.05240866036729835, 0.0, 0.0, 0.0, 0.5188204085313443, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5773724259871397, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22601349058504813, 0.0, 0.3467947164134737, 1.502272260353748, 0.19536436403308852, 0.0, 0.0, 0.0, 0.0, 0.4899706257461605, 0.20445136303854802, 0.7748906467295266, 0.0, 0.0, 0.15253741518885644, 0.0, 0.12918615799515507, 0.0, 0.0, 0.649394095142608, 1.40604728101928, 0.0, 0.5734783753787226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8762605287663663, 0.8124102702299425, 0.0, 0.0, 0.6752965428315182, 0.25420065076928294, 0.2878352998155691, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8742900027056961, 0.0, 0.007209075676415797, 0.028458058565007462, 0.0, 0.0, 0.002645728789765276, 0.0, 0.0, 0.0, 0.669321167131686, 0.0, 0.0, 0.3215833521867582, 0.002002885293525303, 0.5455785228014223, 0.5839672123490091, 0.1695566125503257, 0.0, 0.0, 0.0, 0.0, 0.3711983399532414, 0.0, 0.0, 0.037869811310371364, 0.0, 0.0, 0.0, 0.3906765181627519, 0.0, 0.0, 0.0, 0.004333175863679718, 0.0, 0.0, 0.0, 0.0029029347517778824, 0.43381543679330525, 0.0, 0.0, 0.0, 0.0, 0.3545426084781949, 0.0, 0.3770558352493434, 0.6375411486503958, 0.0, 0.0, 0.0, 0.23985359098491452, 0.021961946298743228, 0.0, 0.3910697032182053, 0.0, 0.6932074965542865, 0.0, 0.0, 0.10364106821683754, 0.0, 0.798416207733151, 0.5329842919228587, 0.0, 0.4844692491628223, 0.0, 0.0, 0.0, 0.0, 0.09106971306440546, 0.0, 0.0, 0.0996076819499136, 0.0, 0.0, 0.1638248686693664, 0.0, 0.3325546563665125, 0.0, 0.0, 0.0, 0.06881525170797138, 0.0, 0.44073566130025815, 0.0, 0.4019788844385439, 0.0, 0.0, 0.6714215423158676, 0.3399125937167764, 0.3046141011370791, 0.0, 0.0, 0.0473355681300066, 0.3630070132608522, 0.0, 0.0800754636262803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2369140918241696, 0.0, 0.0, 0.35909981102365546, 0.2433693452274136, 0.6477566576645207, 0.0, 0.0, 0.0, 0.0, 0.4005702988980329, 0.6327139875815745, 0.45739813367595, 0.2306117264369203, 0.1673891610155256, 0.0, 0.3233168523165315, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04211122573483531, 0.0, 0.06803593591564691, 0.5741938845793657, 0.0476975123297982, 0.5504819156825551, 0.044516401141561746, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13524675835101255, 0.0, 0.22945132617429284, 0.0, 0.0, 0.0, 0.0, 0.1577714195074665, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2785368262709604, 0.12576967984327264, 0.0, 0.0, 0.0, 0.21559450852042064, 0.04903058086742513, 0.0, 0.1695895598298771, 0.11448427397866526, 0.0, 0.0, 0.023071609626772224, 0.0, 0.11421991827694536, 0.0, 0.0, 0.0, 0.007379588146467978, 0.07866376283476462, 0.3892472589606234, 0.0, 0.09184271552047321, 0.0, 0.25448001970252454, 0.2286582495545744, 0.02328034708296836, 0.0, 0.0, 0.0, 0.0, 0.3270923296219218, 0.0, 0.0, 0.0, 0.02043338740984974, 0.0, 0.0, 0.37277616481672965, 0.0, 0.0, 0.0, 0.0044846057268865735, 0.0, 0.3249615768942753, 0.0, 0.0, 0.19094547447052443, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08406342406417443, 0.0, 0.033182079075965945, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6500195484438399, 0.0, 0.0, 0.0, 0.0, 0.5537781763556555, 0.02656015063015655, 1.1909226087779956, 0.06852425737111054, 0.0, 1.3426353595976268, 0.6057701268300226, 0.9302934294779756, 0.0, 0.02223254227484718, 0.9934644128441693, 0.0, 0.06172390220433867, 0.20273446118005728, 0.5149938580802573, 0.1300590771577626, 0.2385875538652477, 0.0, 0.595480643743492, 0.0, 0.0, 0.0, 0.24275727828178406, 0.0, 0.7073132892445582, 0.0, 0.5182899096571696, 0.0, 0.363354145475898, 1.046444738015761, 0.8990939341913878, 0.5284345996323894, 0.0009271750893556132, 0.0, 0.0786791826827641, 0.5567513178048157, 0.0, 0.11672601563414542, 0.0, 0.0, 0.0, 0.0, 0.513610216882899, 0.0, 0.3599562947175533, 0.012305112294495107, 0.0, 0.3547644724719033, 0.0, 0.31743838097476296, 0.0, 0.0, 0.0744235447925737, 0.0, 0.0, 0.3186229810095584, 0.0, 0.7632822460090717, 0.3112891249755775, 0.0, 1.2592130951288079, 0.4142666686935799, 0.0, 0.0, 0.0834856922205997, 0.0, 0.5673263343800874, 0.0, 0.0, 0.0, 0.011109757680217765, 0.7473278912032746, 0.4577974378546139, 0.07323000489837116, 0.33380163101303967, 0.0, 0.014128663560806082, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19621458519667637, 0.0, 0.0, 0.0, 0.0, 0.4083399062549612, 0.0, 0.3744505994071715, 0.0, 0.5655910339236376, 0.0, 0.0, 0.08962016161963385, 0.0, 0.0, 0.0, 0.0, 0.3660241210222327, 0.0, 0.42450374338695224, 0.6660088440351456, 0.0, 0.0, 0.28456417514777416, 0.0, 0.6631091941560893, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.002609340728317194, 0.0, 0.0, 0.0, 0.0, 0.1290910408202515, 0.0, 0.12880600190077574, 0.0, 0.21852433519062017, 0.14617196989407044, 0.04712090478664361, 0.17786735669510226, 0.013608617966411374, 0.0, 0.1599219758144718, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13118766387513575, 0.18575036424480185, 0.0, 0.0, 0.0, 0.0, 0.24739057674609932, 0.08098740885007556, 0.0, 0.0, 0.11169555771003165, 0.0061692969950391426, 0.0, 0.0, 0.0, 0.1300402212804686, 0.0, 0.22061823582759926, 0.32468517510166695, 0.17899843511210062, 0.0, 0.0, 0.0, 0.0, 0.3555268023407697, 0.0, 0.0, 0.0, 0.5637648459713849, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.41259886956253183, 0.0, 0.0, 0.0, 0.0, 1.0217866044035127, 0.0, 0.0, 0.0, 0.09699076097844603, 0.49177999120325233, 0.617482417183965, 0.9254348782417843, 0.19189797684210885, 0.37564958516196006, 0.0, 0.6028533281724416, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4525887449543689, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.3536752652948492, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5159325071456758, 0.45703260113959776, 0.11783337867793497, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.014395933646557283, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5291071006274988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4362705134404812, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06167194341482688, 0.0, 0.26507468559563424, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18765355736657707, 0.0, 1.0014115383719757, 0.10542483708166006, 0.22040848700903187, 0.0, 0.3600323742449293, 0.06543742592421764, 0.0, 0.06637441639531827, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3967141864154841, 0.0, 0.18259679072826512, 0.0, 0.2818810986099949, 0.0, 0.0, 0.0, 0.04462260901941838, 0.650460148621926, 0.9472330785275007, 0.0, 0.0, 0.0, 0.0, 0.20815281221075516, 0.19618764447572262, 0.06473525648539784, 0.0, 0.0, 0.0, 0.1542243249790465, 0.13224172712193835, 0.0, 0.007908832517684252, 0.0, 0.051353982240120374, 0.0032977751233809844, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27800255996089945, 0.0, 0.0, 0.1281258773488851, 0.0, 0.0, 0.0, 0.31683019969084447, 0.0, 0.0, 0.0, 0.19099043815219882, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2169883137756601, 0.0, 0.7505306274250138, 0.5066582758142599, 0.0, 0.07143979002259558, 0.10210504506442938, 0.15444313156667316, 0.5054883509033501, 0.0, 0.0, 0.0, 0.0028518817212982773, 0.3481320627001662, 0.559897472000501, 0.0, 0.40645645270348807, 0.0, 0.36960222637651485, 0.34497081323202616, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0330129037169125, 0.05220506486278423, 0.053654185080025577, 0.0, 0.0, 0.1851124085000456, 0.04497376440934621, 0.35304695602824443, 0.0, 0.0, 0.343295765136816, 0.2793332554556384, 0.0, 0.0, 0.040358875497600165, 0.24978160129073035, 0.0, 0.0, 0.0, 0.0, 0.07246092173943684, 0.0, 0.16628600115413392, 0.0, 0.0, 0.0, 0.06634041958053304, 0.0, 0.0, 0.0, 0.008112084482454424, 0.0, 0.0, 0.3510991071496956, 0.30792356595023396, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24591462609017128, 0.0, 0.0, 0.0, 0.0, 0.1723485353456609, 0.17746213232343597, 0.26032482377035826, 0.0, 0.0, 0.09642188463361992, 0.0, 0.0, 0.9312549994812083, 0.0, 0.4355669936335271, 0.22986161845318145, 0.0, 1.1016016643957898, 0.5367168823744637, 0.0, 0.0, 0.1081626494181155, 0.0, 0.5354775491181646, 0.0, 0.0, 0.7066771289166013, 0.005913227901483509, 0.36878575613264597, 0.5931146099182986, 0.0, 0.43177137005853594, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2792172801438884, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18771394461865235, 0.0, 0.3810480475576988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04963057208911237, 0.0, 0.0, 0.0, 0.014028126739435154, 0.6487755206193258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019308069898724092, 0.0, 0.0, 0.15473333790095384, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20078144855224883, 0.04664059814698181, 0.0, 0.0, 0.02360446678134394, 0.0, 0.0, 0.06383755139363034, 0.0, 0.1295864000345023, 0.0, 0.0, 0.0972547510814237, 0.0, 0.07205581060374358, 0.016878310254842765, 0.0, 0.0, 0.0, 0.0, 0.2206348639926782, 0.0, 0.0, 0.2053453449704589, 0.18009351088331146, 0.17243879836126652, 0.16094695393647487, 0.0, 0.0, 0.0026102124382687284, 0.009478472183394092, 0.22228584913081856, 0.0, 0.0, 0.22567472183496304, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.002853715730108796, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0005790797752150057, 0.4809080576930432, 0.0, 0.0, 0.0, 0.32217587215618376, 0.0018177803358381927, 0.0, 0.0, 0.0, 0.0003287432209283418, 0.0, 0.0008918558343658391, 0.0, 0.0, 0.009096038390466929, 0.0, 0.0, 0.0, 0.00873033402576318, 0.007007183394127084, 0.45496728899530875, 0.0, 0.1316351307673038, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09338135584056179, 0.18382194877540864, 0.0, 0.563495172825665, 0.0, 0.0, 0.0, 0.05639497562938005, 0.14653622131196892, 0.0, 0.0, 0.0, 0.251192534270281, 0.1344408525103349, 0.0, 0.4650111134116464, 0.31391354376028213, 0.0, 0.0, 0.06326188293375198, 0.0, 0.31318868581904563, 0.0, 0.0763329064988246, 0.0, 0.0, 0.2156944329452718, 0.3468992967609863, 0.0, 0.2518308523576955, 0.0, 0.17896869808051252, 0.05403813425807818, 0.027124296544448725, 0.0, 0.0, 0.0, 0.0, 0.11640144853391314, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09109340489796702, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1194057971602891, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6552661573805515, 0.0, 0.0, 0.0, 0.21450271688804268, 0.0, 0.0, 0.902854749674862, 0.06907734840039648, 0.0, 0.811763991573728, 0.24446155688431725, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0551218990786032, 0.0, 0.0, 0.6659086165622266, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4110921087644639, 0.0, 0.0, 0.07931423881912922, 0.0, 0.0, 0.37316154887557274, 0.11430607897800385, 0.4150800042560803, 0.0, 0.10099097676635159, 0.6592915699634367, 0.0, 0.25936644093477396, 0.07666208914620723, 0.0, 0.0, 0.7807360976520861, 0.0, 0.0, 0.04275453625658718, 0.1985413718724771, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13633482744457018, 0.0, 0.2252743029271589, 0.0, 0.0, 0.0, 0.5464410650922171, 0.11366230227156136, 0.6018718955402885, 0.0, 0.014396279790867243, 0.0, 0.03905603312028952, 0.8092451213661034, 0.0, 0.39833251401456404, 0.0, 0.12251229365728535, 0.27200847035734843, 0.25388100105648176, 0.30685765140009125, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07517201195249319, 0.0, 0.0, 0.0, 0.0, 0.3595498458067731, 0.0, 0.0, 0.0, 0.05519776563775433, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13158680513977092, 0.0, 0.45513938379424074, 0.3072494672729318, 0.0, 0.0, 0.061918895238623206, 0.0, 0.306539997354477, 0.0, 0.0, 0.0, 0.0, 0.21111545179707192, 1.113727824196147, 0.0, 0.24648473048642042, 0.0, 0.0, 0.0, 0.6244696783059631, 0.0, 0.0, 0.010619491746539882, 0.0, 0.0, 0.057745206745770994, 0.0, 0.008858840711593166, 0.0075334185627281185, 0.1972006876834336, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15720126897663422, 0.2881788570254271, 0.05549794388099826, 0.0, 0.43880673821983995, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006158057243750719, 0.0, 0.0, 0.05862006643173159, 0.15125593941090254, 0.03302320207312045, 0.0, 0.0, 0.19199421271725345, 0.004359455697024407, 0.02909842903488052, 0.4051738652139157, 0.0, 0.0, 0.0, 0.0, 0.661857462083124, 0.27266071825745297, 0.09855620143563353, 0.03009452021788303, 0.0, 0.0, 0.36386547477639486, 0.0, 0.3154569959145931, 0.0, 0.12777365741134986, 0.0, 0.2874935496978787, 0.0, 0.0, 0.021877890033203812, 0.1316957530661763, 0.0, 1.0462327541742331, 0.24642978428043782, 0.0, 1.292534939963643e-5, 0.04966212026978902, 0.16767073337455046, 0.24586075312633993, 0.7749426824526595, 0.2192927197338787, 0.0, 0.15373812475086615, 0.1693253879539043, 1.1992945978003244, 0.0, 0.19769335810835964, 0.0, 0.2843031573913307, 0.2653563328642114, 0.6319651047837591, 0.0, 0.0, 0.2886502960323224, 0.2007500567698334, 0.0, 0.0, 0.0, 0.0, 0.4490517136878312, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.43431608561880214, 0.0, 0.0, 0.0, 0.29096240214176294, 0.0, 0.0, 0.24728201213730056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.199315833820732, 0.40813133046287003, 0.25266186539111524, 0.0908889085249469, 0.0, 0.0, 0.45688115062815576, 0.11100101499363633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02264115832549351, 0.6164930072930471, 0.0, 0.0, 0.44347420874850846, 0.0, 0.17884284240125642, 0.0, 0.2888836731929794, 0.21018531617189648, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3429810739029393, 0.02002166425453684, 0.021961075245274804, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.557136258905774, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.36191890674012556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12978916081088554, 0.0, 0.33079766328323545, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20464300021869425, 0.0, 0.0, 0.0, 0.0, 0.5063973085557268, 0.26737229244864336, 0.08619179411886842, 0.0, 0.0, 0.0, 0.49896059675156373, 0.0, 0.9000423796847855, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6355437645077721, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3962962286854009, 0.0, 0.0, 0.33976760898340913, 0.0, 0.0, 0.478819001240275, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), 42), 42)),) julia> @finch_code begin Ct .= 0 for j = parallel(_) @@ -1313,5 +1313,5 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.5786578146202624, 0.0, 0.3202961159483594, 0.3207279869105304, 0.5035217854841559, 0.0, 0.013671076975665627, 0.01669925591794789, 0.0, 0.0, 0.0, 0.5652457771225854, 0.0, 0.09766762955114001, 0.2831455624824939, 0.0, 1.0556185392068085, 0.2068017763866623, 0.0, 0.15942131380345745, 0.005607444973383372, 0.0, 0.056687675717707615, 0.2535497922885842, 0.4637407985590488, 0.22387274550179712, 0.5454655738973408, 0.08490666489615803, 0.3556465582001688, 0.0, 0.0, 0.31186727366054, 0.6972638697010188, 0.0, 0.0, 0.009518501694028625, 0.0, 0.5833334701399113, 0.6244214908493986, 0.0, 0.26168041250093527, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0131047746782154, 0.0, 0.6656645247350605, 0.0, 0.0, 0.0769882955934405, 0.0, 0.0, 0.34004774503974494, 0.08053504092577264, 0.006982581834800098, 0.5446249720805942, 0.0, 0.0, 0.31025177039320695, 0.2638902653915397, 0.0, 0.0, 0.0, 0.0, 0.2008136945182758, 0.0, 0.0, 0.19041992572397343, 0.05903622381609576, 0.0, 0.0589978949008293, 0.05133054295704808, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7141967536140789, 0.0, 0.11331087789790419, 0.0, 0.0, 0.13904571220904566, 0.16685503671570054, 0.0, 0.1461222249815685, 0.0, 0.0, 0.0, 0.1624667486179013, 0.0, 0.0, 0.0001466632220376543, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.040061564188380784, 0.0, 0.0, 0.05925661356360367, 0.0, 0.20052213796576485, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1322273764299389, 0.0, 0.07284319524978862, 0.0, 0.21698248889777863, 0.0, 0.22616177063294415, 0.0, 0.0, 0.0, 0.0, 0.52849490550171, 0.0, 0.71926878469886, 0.0, 0.6501927607213651, 0.0030355649865830615, 0.37799680598211977, 0.0, 0.0007078975665940506, 0.09351646752064424, 0.05681500695663011, 0.0, 0.20243859396970953, 0.0628704495708815, 0.001556209278473695, 0.0, 0.0, 0.0, 0.0, 0.0027171741525499, 0.0, 0.0, 0.0, 0.07038911039656341, 0.049709343960620045, 0.0, 0.018852918431012597, 0.26140762404567164, 0.049374687944063446, 0.0, 0.0, 0.5682508160039592, 0.08397693763382687, 0.0, 0.0, 1.1395457189674745, 0.10207861893624984, 0.006346754524020049, 0.07139718683099765, 0.0, 0.4257292397317542, 0.0, 0.0, 0.003459642976589088, 0.00011827788909935122, 0.29669071600135444, 0.0, 0.04645302583039929, 0.6403581026228157, 0.0, 0.0, 0.4035906657629842, 0.0, 0.0, 0.031770473502227184, 0.0, 0.10177861753458611, 0.08984803025006428, 0.2696383585775038, 0.0, 0.0, 0.0, 0.0, 0.4020058229022269, 0.8537152750348289, 0.27466570696380027, 0.0, 0.9014511503031993, 0.0, 0.0, 0.0, 0.3588364621034526, 0.0, 0.10358336916612662, 0.0, 0.8253783539224127, 0.003096290011755601, 0.3727209618097055, 0.0, 0.0, 0.0, 0.08512247762765326, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0016669318756259504, 0.0, 0.0, 0.9038241621401286, 0.23981242371494071, 0.0, 0.0, 0.0, 0.10303433366133424, 0.0, 0.0, 4.317142647672722e-5, 0.0, 0.07840647389573854, 0.0, 0.0, 0.0, 0.0, 0.36164895718336953, 0.011697025915496142, 0.0, 0.0, 0.0, 0.0, 0.001969151291048087, 0.0, 0.0016085698018090215, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8640055140280944, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10961290316901336, 0.0, 0.0, 0.0, 0.34012752342022284, 0.0, 0.09000159029348583, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.38387258660557405, 0.0, 0.0, 0.0, 0.04942864149427501, 0.0, 0.9641925530766522, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1618638919487994, 0.0, 0.0, 0.1434695556565637, 0.3651050198592113, 0.0, 0.04210320606021404, 0.5803955429188099, 0.0, 0.0, 0.36579879697476825, 0.4517875751113323, 0.0, 0.0, 0.0, 0.597783133294766, 0.0, 0.0, 0.6329135233850276, 0.0, 0.002597015658553236, 0.2174699638827603, 0.39061652165480276, 0.765918958416278, 0.0, 0.016481521625833693, 0.28751000269430316, 0.0, 0.1647131064041664, 0.0, 0.4521970394725687, 0.0, 0.0, 0.11039007420645473, 0.0, 0.0, 0.0, 0.902497226885166, 0.7436286750029288, 0.09842900387294973, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0017337381605838167, 0.0, 0.48184280820859876, 0.0, 0.0, 0.4182604044398821, 0.05413499724631636, 0.00395203096164986, 0.49703533424495255, 0.0, 0.0, 0.0, 0.43461516165530706, 0.0, 0.0, 0.2097986260899648, 0.0, 0.0, 0.0, 0.0032389406325184205, 0.11624028110212369, 0.0, 0.23514374437795085, 0.0, 0.013757851512121493, 0.0, 0.23992048040279412, 0.32911722925956555, 0.0, 0.18863648593265903, 0.5965040702112832, 0.0, 0.0, 0.006607346447861224, 0.005821424904675781, 0.2242736217811627, 0.0, 0.0, 0.02743682303358625, 0.03021510122691055, 0.4109976396191596, 0.016694351333046, 0.0, 0.0, 0.15588266372439724, 0.0, 0.7589538506473881, 0.0, 0.0, 0.9157838182946224, 0.07079903450052254, 0.0, 0.0, 0.0, 0.8133345120890082, 0.19376473666562866, 0.0, 0.0, 0.24554349589597185, 0.2326206471524158, 0.5829196459370383, 0.0, 0.344078222468009, 0.0, 0.5927124546739914, 0.21206748875282805, 0.5013588717575729, 0.1507046170639337, 0.0, 0.2922067750640437, 0.9112630304460252, 0.0, 0.42296978570223137, 0.0, 0.0, 0.0, 0.0, 0.47847449991115903, 0.0, 0.0, 0.0, 0.0, 0.02922391861250235, 0.003575617433634187, 0.0, 0.0, 0.18000379265062824, 0.0, 0.0, 0.0, 0.020223410318598516, 0.0, 0.0, 0.0, 0.0, 0.1194607408090099, 0.0, 0.18567470153771173, 0.015493204406064897, 0.0, 0.0, 0.22675090423473912, 0.0, 0.6338841242698132, 0.5245326238847832, 0.0019166419799919094, 0.6594541233567529, 0.0, 0.005139571264149575, 0.0, 0.0, 0.0, 0.014894820580065271, 0.0, 1.2034959876942206, 0.0, 0.25665804266856174, 0.012594729973842587, 0.0, 0.011446343678364038, 0.0, 0.0, 0.02279435489937408, 0.025102532455875536, 0.0, 0.0, 0.0, 0.0, 0.1307674017372415, 0.5572422675871412, 0.20860522647402835, 0.3439153754178085, 0.0, 0.7682359770495442, 0.05881943098741484, 0.0, 0.0, 0.7560476592821442, 0.06967644285195858, 0.0, 0.04321641535911349, 0.0, 0.0, 0.0, 0.8024673537053417, 0.0, 0.0, 0.0, 0.0, 0.1761844509232577, 0.8168042507595197, 0.0, 0.0, 0.0, 0.5887168313525647, 0.0, 0.0, 0.4050160345946778, 0.0, 0.28424121144843517, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04314478705768561, 0.17729851568072083, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06445720856859194, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10331544984256105, 0.2490312779322865, 0.0, 0.24280852181294071, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5198374016631779, 0.0, 0.0, 0.0, 0.13645064069986682, 0.0, 0.24758012015088376, 0.5314044104438821, 0.0, 0.0, 0.3110470576055099, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02359980206981429, 0.36163373919282166, 0.0, 0.0, 0.4835792742792758, 0.0, 0.3524294596638372, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27655502261887766, 0.0, 0.0, 0.0, 0.0, 0.22117286156450722, 0.0, 0.15521963759663626, 0.0, 0.0, 0.0, 0.0, 0.021723812939992326, 0.02392358642299197, 0.0, 0.9811990708246294, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4965569454339231, 0.08530918757868192, 0.0, 0.07823884141505981, 0.08129763345109173, 0.8580687524263778, 0.6125638634435169, 0.7792197114170356, 0.17406349022985984, 0.0, 0.7428281837408045, 0.0, 0.07932414385265583, 0.46154167819945197, 0.0, 0.5289001614381607, 0.0, 0.8287876866571131, 0.1679099089089469, 0.695722986230781, 0.0, 0.010707260605614142, 0.014687966352699852, 0.03846916856579124, 0.6678999803007167, 0.8946423775406338, 0.0, 0.0, 0.6928842432378984, 0.0, 0.8291172549334254, 0.0, 0.036214437271524916, 0.0, 0.6493274982169268, 0.0, 0.0, 0.0, 0.0, 0.022863259627981244, 0.7335275809594394, 0.03647235770741211, 0.0, 0.287070580153256, 0.13431771500769504, 0.14856735628547443, 0.15781940486580828, 0.0, 0.0, 0.323980207489089, 0.0, 0.02667757509153305, 0.33154611696012287, 0.008340998981572286, 0.0, 0.1964137723963185, 0.0, 0.18369526317696738, 0.0, 0.36991237719570497, 0.0, 0.0, 0.060663484669780686, 0.0, 0.0, 0.10293074255327075, 0.9555336304557553, 0.0, 0.2500171656161189, 0.5342857393564834, 0.17546263843294155, 0.0, 0.35442104566615373, 0.0, 0.0, 0.0, 0.0, 0.17621149415330922, 0.6121951999020001, 0.14104370661074167, 0.0, 0.03700642443953683, 0.5101360635898259, 0.0, 0.0, 0.398419677876043, 0.0, 0.0, 0.0, 0.23862742072997933, 0.0, 0.06314351493041778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32025466250143747, 0.0, 0.0, 0.0, 0.25412006584310015, 0.0, 0.2693181789862389, 0.0, 0.2858641430477511, 0.0, 0.12448957171647013, 0.0, 0.6764603455612473, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.007629531631679027, 0.008402105093687509, 0.1478058101242069, 0.005053168588900645, 0.0, 0.30372648283729076, 0.003980754378397801, 0.0, 0.0, 0.0, 0.0, 0.07450559902388645, 0.019687537166852037, 0.0, 0.08244653582028545, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16209616805705127, 0.0, 0.08979346385777931, 0.06518743281502334, 0.21315534710850095, 0.08369413937188341, 0.1394160455900761, 0.5610626715103558, 0.0, 0.0, 0.13968567626607642, 0.0, 0.0, 0.0, 0.0, 0.01924679403964147, 0.0, 0.0, 0.0, 0.0, 0.616722369104707, 0.0, 0.0, 0.5466375681050827, 0.0, 0.0, 0.013987945284851467, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09368066064257337, 0.0, 0.24818473838609467, 0.04865531902212218, 0.0, 0.009894965642192768, 0.0, 0.45825677816644195, 0.7857899124906229, 0.25281208870305677, 0.0, 0.8251354193653254, 0.0, 0.6275782447904167, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7597076021322064, 0.4559884064545227, 0.3430656338577527, 0.32001374263313714, 0.2977084759378876, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26332513624077, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07361684952632414, 0.0, 0.0, 0.0, 0.5420044017413929, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5785225932672249, 0.0, 0.0, 0.0, 0.6899231282082093, 0.33897374575165645, 0.4841896839083132, 0.0, 0.0, 0.0, 0.0, 0.6240541831707288, 0.0, 0.0, 0.5531361892215293, 0.4547991804243185, 0.0, 0.100152739355421, 0.0, 0.2440837061302026, 0.0, 0.0, 0.0, 0.0, 0.12076927556310874, 0.0, 0.0, 0.3415398112751411, 0.0, 0.0, 0.0, 0.010012600500133058, 0.0, 0.10122097549537463, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6350391173534848, 0.0, 0.0, 0.5362493708751273, 0.3870491592555651, 0.0, 0.0, 0.011769944241680865, 0.3142045963597273, 0.0, 0.30124773979598957, 0.0, 0.3235765421156834, 0.0, 0.541761414379215, 0.0, 0.0, 0.8318031269227326, 0.0, 0.0, 0.0, 0.0, 0.0, 0.655176286023573, 0.0, 0.0, 0.12998028512957016, 0.09284961824757046, 0.5535451825358659, 0.6996061073192734, 0.06205996989121698, 0.0, 0.0, 0.0, 0.008692259029504977, 0.0, 0.08787316923443415, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5512977874061133, 0.0, 0.06274188232221303, 0.0860678272807259, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7913396090809787, 0.26152280681975265, 0.0, 0.0, 0.0, 0.0, 0.0, 0.028664478181671504, 0.0009799779903315728, 0.0032348889210802386, 0.0, 0.11837934340514084, 0.4864662292788164, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07382213914734657, 0.0, 0.0, 0.0, 0.17685571185867954, 0.2510513607906149, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0019118999997271302, 0.0, 0.04133793381575315, 0.2834737624180827, 0.6832843821792778, 0.0, 0.6662105748014928, 0.0, 0.5326269406399959, 0.0, 0.0, 0.0, 0.0, 0.10672810444069859, 0.0, 0.07123750254807154, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.007981914293001519, 0.10075857550012479, 0.009540391703188681, 0.0, 0.11580721042791553, 0.0, 0.0, 0.17856228523566461, 0.00048020843909893406, 0.0, 0.197593765283525, 0.0, 0.0, 0.0, 0.6194557197663932, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21520162666608084, 0.1562300971282056, 0.0, 0.0592523063663964, 0.0, 0.18612758103797813, 0.0, 0.2544272402257203, 0.15422821911002763, 0.0012917517157272594, 0.0, 0.0, 0.14907655404346837, 0.09429642888622711, 0.0, 0.0, 0.0, 0.0, 0.09600808583182174, 0.0, 0.005856583784053075, 0.08156012032053195, 0.09312148266647201, 0.0322184865015818, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03641255600507808, 0.0, 0.09646644914865622, 0.6107192924560144, 0.0, 0.0008311989920553221, 0.04768463204338608, 0.008402889219987731, 0.30542717141970227, 0.09826504505325136, 0.08476742117805344, 0.35700707759139916, 0.0, 0.052717960159591244, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29528928831604634, 0.0, 0.18118798681716172, 0.047489656233823854, 0.07375616702811215, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15842644268884615, 0.005416265593171256, 0.0, 0.0, 0.0, 0.06326712126451656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22847169102573353, 0.0, 0.11955753824812076, 0.0, 0.0, 0.0, 0.08074664695989245, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0029119331378805115, 0.0, 0.0, 0.1953274033599059, 0.0, 0.0, 0.0, 0.48520999511490304, 0.0, 0.0, 0.0, 0.0, 0.13603276168063752, 0.0, 0.06155663979875702, 0.0, 0.0, 0.0, 0.19100951475155065, 0.0, 0.05054327834442013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21557595738397023, 0.0, 0.0, 0.2988625665604049, 0.02775823823873608, 0.0, 0.5414732387378444, 0.0, 0.1751125450084881, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7653173403797493, 0.011610920930129028, 0.0, 0.6690009447860032, 0.007717112212206315, 0.0, 0.0, 0.0, 0.0, 0.0949800986519104, 0.0, 0.01759104522847652, 0.0272063292239745, 0.0, 0.18672851022958098, 0.14592398686801408, 0.0, 0.0, 0.06111532732066789, 0.0, 0.012109927581814974, 0.0, 0.3464253043638218, 0.014416979955844242, 0.0, 0.0, 0.004751074128394563, 0.0814923248235591, 0.960719872887566, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029410227635468144, 0.3902617128196832, 0.0, 0.0, 0.0, 0.0, 0.03936155946785215, 0.0, 0.0, 0.0, 0.0, 0.03226521554976169, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029868187491618223, 0.0, 0.007848954300217155, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02618395857766568, 0.0, 0.0, 0.0, 0.02729344001455739, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16043383601301778, 0.0, 0.08114240967089056, 0.0, 0.12944151616666955, 0.0, 0.0, 0.8424042898437758, 0.0, 0.0, 0.0, 0.0, 0.04323489183997365, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2997198089695268, 0.0, 0.0, 0.09877179787471602, 0.0, 0.0, 0.0, 0.0, 0.0, 0.36530436236505814, 0.0, 0.0, 0.0, 0.0, 0.6114198560066337, 0.538693529249165, 0.0, 0.0, 0.0, 0.014312907460573414, 0.015762245768879076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03693357747227013, 0.0, 0.0, 0.5249268945825, 0.0, 0.0, 0.16471382065012125, 0.0, 0.0, 0.0, 0.304090416701445, 0.48915218766248414, 0.0, 0.020376509279081044, 0.0, 0.11062878301178729, 0.26154278602954106, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1338990979320024, 0.0, 0.12169019076516314, 0.0, 0.0, 0.0, 0.5524220216872981, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13426647560262422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05161008110067911, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.007893769925822126, 0.008693100403012733, 0.0, 1.169538837435482, 0.0, 0.5817658012805581, 0.3172103076471354, 0.0, 0.22838627747698767, 0.0, 0.10226945824142554, 0.0, 0.020369387834492953, 0.0, 0.20675490808600527, 0.48677742001957014, 0.6262431249386917, 0.151645446757169, 0.20817481578766972, 0.0, 0.0, 0.0668476153746235, 0.5758263086091524, 0.4536026680375212, 0.09887690089373365, 0.018895630454912823, 0.0, 0.06101333098633492, 0.38664812220872247, 0.0, 0.0, 0.7304510924229297, 0.030046419431745734, 0.0, 1.1003509629444073, 0.5194953755737197, 1.1578838988668234, 0.48875095960339066, 0.0, 0.1128462605244655, 0.0, 0.0, 0.0, 0.4791947947301635, 0.0, 0.03259627779739397, 0.10028189990101041, 0.029465846845003113, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22859113464308234, 0.0, 0.11646855789532944, 0.12693945289885786, 0.0, 0.0, 0.20330790896109577, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1873449680464739, 0.0, 0.0, 0.06173899342973636, 0.0, 0.0, 0.04476882030066193, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04375496463125991, 0.38217838780949126, 0.336719559414533, 0.04092456729054698, 0.0, 0.04229882731958149, 0.0, 0.0, 0.0, 0.1452994629839798, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0184335582446928, 0.0, 0.0, 0.0, 0.057199110071214684, 0.0, 0.14103517741623545, 0.03340505872611428, 0.0, 0.0, 0.0, 0.05811339385405451, 0.0, 0.0, 0.0, 0.0, 0.044222795803071285, 0.0, 0.06455569991448866, 0.0, 0.0, 0.05037647535437417, 0.008312394942553907, 0.0, 0.1621478774157853, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005416039933812771, 0.0, 0.0, 0.0, 0.0398756195493532, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05075809733341722, 0.0, 0.03562215281502755, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19049409924372604, 0.0, 0.0, 0.20255925674743036, 0.0, 0.0, 0.0, 0.0, 0.11222926185446927, 0.0, 0.22599925727813394, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18212734324380878, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21653477423901774, 0.0, 0.0, 0.008644589577152558, 0.009519948749861491, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.022306831770080617, 0.0, 0.0, 0.003074570476841778, 0.0, 0.008145346800616094, 0.0, 0.0, 0.0, 0.08511345922427967, 0.18366197461769765, 0.025789383308915437, 0.008297215015175531, 0.0, 0.09184984081220632, 0.0668166427534811, 0.15796441417080423, 0.0, 0.0, 0.0, 0.0, 0.0, 0.024933369902885204, 0.0, 0.011259308615493588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02160071316022016, 0.0, 0.0, 0.0, 0.1015273549658925, 0.0, 0.3722773110385471, 0.0, 0.0, 0.0, 0.005704132382790829, 0.576786252698806, 0.6048982987919145, 0.3404333765031976, 0.0, 0.1776491403162125, 0.3619951063590594, 0.0, 0.0, 0.0, 0.0, 0.20056572202110787, 0.0, 0.4038849000985208, 0.0, 0.07292911426252524, 0.0, 0.0, 0.0, 0.0, 0.3254810866068793, 0.0, 0.0, 0.0, 0.0486152336987337, 0.0, 0.38697085430573647, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7532037777522111, 0.0, 0.0, 0.2947709821219489, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008564738540478935, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2647016620516834, 0.0, 0.0, 0.5486174586047213, 0.0, 0.0, 0.0, 0.0, 0.0]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25238968158185693, 0.0, 0.0, 0.48865059160643304, 0.11871952163266221, 0.13783085437527975, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1100520583840872, 0.0, 0.6593611321473758, 0.05928345080192752, 0.009174411759749758, 0.0, 0.0, 0.19127876171690858, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07691735887883953, 0.0, 0.05392395392410878, 0.02141387988861775, 0.34710885925020263, 0.0, 0.0, 0.0, 0.0, 0.004888456103411815, 0.23938597192062988, 0.14380896793554465, 0.0, 0.0, 0.11091906743258541, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.42492930113736893, 0.0, 0.0, 0.0, 0.3917786049138451, 0.0, 0.027947398300345625, 0.0, 0.0, 0.0, 0.027990755993474236, 0.23996972136870412, 0.0, 0.0, 0.0, 0.16076348282437408, 0.0, 0.0, 0.0, 0.0, 0.2346717239666177, 0.0, 0.1645197835042719, 0.0, 0.15581124610211206, 0.0, 0.0, 0.0, 0.0, 0.16923528472284902, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07802881298690809, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0008989792695458017, 0.0, 0.0, 0.0, 0.0, 0.06720357557125424, 0.0, 0.0, 0.0, 0.3718711629986387, 0.0, 0.0, 0.3609126159300422, 0.1163460342216259, 0.26803502779771143, 0.5785179690130179, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20913099459980355, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3230898388302748, 0.31857597482541405, 0.458635468333174, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7731954314831251, 0.7216673432976093, 0.0, 0.7303507448180484, 0.14951424728459475, 0.7849205313632122, 0.0, 0.61487751501265, 0.0, 0.0, 0.25756111513158075, 0.0, 0.4611561614453371, 0.11767850077853764, 0.8141145056659213, 0.17774815965387922, 0.0, 0.0, 0.6559733835287642, 0.36761704346577023, 0.0, 0.0, 0.0, 0.7451998098255509, 0.033169973232688346, 0.411513621864204, 0.20930644094410764, 0.0, 0.0, 0.0, 0.10412334822136202, 0.6428221612529075, 0.2944149731643712, 0.0, 0.01883057275583864, 0.0, 0.05108593913912473, 0.0, 0.0, 0.521025535425184, 0.0008200368898190739, 0.0, 1.1919622969351262, 0.6934669965376988, 0.46942192138741023, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37125241315091917, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29594902098744047, 0.0, 0.0, 0.0, 0.5073161019921272, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.36145064005412786, 0.0, 0.054781056420259586, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6055780045451759, 0.09162757378665623, 0.04766798091106047, 0.0, 0.46059427954757914, 0.1119031338013209, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37567607243684537, 0.6215033212682567, 0.6577405362916645, 0.03204652922702584, 0.0, 0.0650525320202852, 0.18029632002719695, 0.0, 0.0, 0.0, 0.0, 0.008472932483726157, 0.0, 0.0, 0.0, 0.0, 0.13094335555018422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16141065848651698, 0.0, 0.051110856273358346, 0.0, 0.020946973304893955, 0.06226614898669832, 0.0, 0.2444646619775439, 0.0, 0.0, 0.0, 0.0, 0.04963632606956389, 0.0, 0.0, 0.0, 0.08508663882314382, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1263166966867768, 0.0, 0.15643691198571966, 0.0, 0.0, 0.0, 0.15262026274680354, 0.0, 0.526388198493186, 0.0, 0.0, 0.033474977962917256, 0.060622203675208805, 0.0, 0.43377644245905544, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3151002104915899, 0.0, 0.09477312339277622, 0.0, 0.0, 0.0, 0.152252080697694, 0.0, 0.0, 0.0204339991404229, 0.1698000966652489, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22850913265749315, 0.0, 0.7903794435818682, 0.5335588868613267, 0.0, 0.0, 0.33064520351324683, 0.11423967014312472, 0.532326845734251, 0.0, 0.0, 0.0, 0.0, 0.5700696949494688, 0.5896247750753707, 0.0, 0.4280369290594203, 0.0, 0.27339018574089047, 0.25517063473696217, 0.0, 0.4053021670425236, 0.0, 0.7145118270418906, 0.18406779329511921, 0.5332101577384002, 0.15679597786898153, 0.0, 0.02405447430944597, 0.5068714011553328, 0.2632866105026604, 0.0, 0.0, 0.0, 0.0, 0.0, 0.026822919064352108, 0.0, 0.09441824561660622, 0.15069396874531527, 0.24064671368655893, 0.0, 0.06394357060327457, 0.3982245622181067, 0.22117139549869444, 0.14930545644387866, 0.0, 0.2667835225346214, 0.4473684178329899, 0.0, 0.14896069513005675, 0.0, 0.41433289250349636, 0.0, 0.5041716274275465, 0.26176138019545275, 0.5757006867537102, 0.08966813962959974, 0.11977731163657437, 0.0, 0.0, 0.29331748913539113, 0.14887247084155056, 0.1452951955564375, 0.0, 0.0, 0.0, 0.0, 0.34161907033931543, 0.05898137093682045, 0.05240866036729835, 0.0, 0.0, 0.0, 0.5188204085313443, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5773724259871397, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22601349058504813, 0.0, 0.3467947164134737, 1.502272260353748, 0.19536436403308852, 0.0, 0.0, 0.0, 0.0, 0.4899706257461605, 0.20445136303854802, 0.7748906467295266, 0.0, 0.0, 0.15253741518885644, 0.0, 0.12918615799515507, 0.0, 0.0, 0.649394095142608, 1.40604728101928, 0.0, 0.5734783753787226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8762605287663663, 0.8124102702299425, 0.0, 0.0, 0.6752965428315182, 0.25420065076928294, 0.2878352998155691, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8742900027056961, 0.0, 0.007209075676415797, 0.028458058565007462, 0.0, 0.0, 0.002645728789765276, 0.0, 0.0, 0.0, 0.669321167131686, 0.0, 0.0, 0.3215833521867582, 0.002002885293525303, 0.5455785228014223, 0.5839672123490091, 0.1695566125503257, 0.0, 0.0, 0.0, 0.0, 0.3711983399532414, 0.0, 0.0, 0.037869811310371364, 0.0, 0.0, 0.0, 0.3906765181627519, 0.0, 0.0, 0.0, 0.004333175863679718, 0.0, 0.0, 0.0, 0.0029029347517778824, 0.43381543679330525, 0.0, 0.0, 0.0, 0.0, 0.3545426084781949, 0.0, 0.3770558352493434, 0.6375411486503958, 0.0, 0.0, 0.0, 0.23985359098491452, 0.021961946298743228, 0.0, 0.3910697032182053, 0.0, 0.6932074965542865, 0.0, 0.0, 0.10364106821683754, 0.0, 0.798416207733151, 0.5329842919228587, 0.0, 0.4844692491628223, 0.0, 0.0, 0.0, 0.0, 0.09106971306440546, 0.0, 0.0, 0.0996076819499136, 0.0, 0.0, 0.1638248686693664, 0.0, 0.3325546563665125, 0.0, 0.0, 0.0, 0.06881525170797138, 0.0, 0.44073566130025815, 0.0, 0.4019788844385439, 0.0, 0.0, 0.6714215423158676, 0.3399125937167764, 0.3046141011370791, 0.0, 0.0, 0.0473355681300066, 0.3630070132608522, 0.0, 0.0800754636262803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2369140918241696, 0.0, 0.0, 0.35909981102365546, 0.2433693452274136, 0.6477566576645207, 0.0, 0.0, 0.0, 0.0, 0.4005702988980329, 0.6327139875815745, 0.45739813367595, 0.2306117264369203, 0.1673891610155256, 0.0, 0.3233168523165315, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04211122573483531, 0.0, 0.06803593591564691, 0.5741938845793657, 0.0476975123297982, 0.5504819156825551, 0.044516401141561746, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13524675835101255, 0.0, 0.22945132617429284, 0.0, 0.0, 0.0, 0.0, 0.1577714195074665, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2785368262709604, 0.12576967984327264, 0.0, 0.0, 0.0, 0.21559450852042064, 0.04903058086742513, 0.0, 0.1695895598298771, 0.11448427397866526, 0.0, 0.0, 0.023071609626772224, 0.0, 0.11421991827694536, 0.0, 0.0, 0.0, 0.007379588146467978, 0.07866376283476462, 0.3892472589606234, 0.0, 0.09184271552047321, 0.0, 0.25448001970252454, 0.2286582495545744, 0.02328034708296836, 0.0, 0.0, 0.0, 0.0, 0.3270923296219218, 0.0, 0.0, 0.0, 0.02043338740984974, 0.0, 0.0, 0.37277616481672965, 0.0, 0.0, 0.0, 0.0044846057268865735, 0.0, 0.3249615768942753, 0.0, 0.0, 0.19094547447052443, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08406342406417443, 0.0, 0.033182079075965945, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6500195484438399, 0.0, 0.0, 0.0, 0.0, 0.5537781763556555, 0.02656015063015655, 1.1909226087779956, 0.06852425737111054, 0.0, 1.3426353595976268, 0.6057701268300226, 0.9302934294779756, 0.0, 0.02223254227484718, 0.9934644128441693, 0.0, 0.06172390220433867, 0.20273446118005728, 0.5149938580802573, 0.1300590771577626, 0.2385875538652477, 0.0, 0.595480643743492, 0.0, 0.0, 0.0, 0.24275727828178406, 0.0, 0.7073132892445582, 0.0, 0.5182899096571696, 0.0, 0.363354145475898, 1.046444738015761, 0.8990939341913878, 0.5284345996323894, 0.0009271750893556132, 0.0, 0.0786791826827641, 0.5567513178048157, 0.0, 0.11672601563414542, 0.0, 0.0, 0.0, 0.0, 0.513610216882899, 0.0, 0.3599562947175533, 0.012305112294495107, 0.0, 0.3547644724719033, 0.0, 0.31743838097476296, 0.0, 0.0, 0.0744235447925737, 0.0, 0.0, 0.3186229810095584, 0.0, 0.7632822460090717, 0.3112891249755775, 0.0, 1.2592130951288079, 0.4142666686935799, 0.0, 0.0, 0.0834856922205997, 0.0, 0.5673263343800874, 0.0, 0.0, 0.0, 0.011109757680217765, 0.7473278912032746, 0.4577974378546139, 0.07323000489837116, 0.33380163101303967, 0.0, 0.014128663560806082, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19621458519667637, 0.0, 0.0, 0.0, 0.0, 0.4083399062549612, 0.0, 0.3744505994071715, 0.0, 0.5655910339236376, 0.0, 0.0, 0.08962016161963385, 0.0, 0.0, 0.0, 0.0, 0.3660241210222327, 0.0, 0.42450374338695224, 0.6660088440351456, 0.0, 0.0, 0.28456417514777416, 0.0, 0.6631091941560893, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.002609340728317194, 0.0, 0.0, 0.0, 0.0, 0.1290910408202515, 0.0, 0.12880600190077574, 0.0, 0.21852433519062017, 0.14617196989407044, 0.04712090478664361, 0.17786735669510226, 0.013608617966411374, 0.0, 0.1599219758144718, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13118766387513575, 0.18575036424480185, 0.0, 0.0, 0.0, 0.0, 0.24739057674609932, 0.08098740885007556, 0.0, 0.0, 0.11169555771003165, 0.0061692969950391426, 0.0, 0.0, 0.0, 0.1300402212804686, 0.0, 0.22061823582759926, 0.32468517510166695, 0.17899843511210062, 0.0, 0.0, 0.0, 0.0, 0.3555268023407697, 0.0, 0.0, 0.0, 0.5637648459713849, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.41259886956253183, 0.0, 0.0, 0.0, 0.0, 1.0217866044035127, 0.0, 0.0, 0.0, 0.09699076097844603, 0.49177999120325233, 0.617482417183965, 0.9254348782417843, 0.19189797684210885, 0.37564958516196006, 0.0, 0.6028533281724416, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4525887449543689, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.3536752652948492, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5159325071456758, 0.45703260113959776, 0.11783337867793497, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.014395933646557283, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5291071006274988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4362705134404812, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06167194341482688, 0.0, 0.26507468559563424, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18765355736657707, 0.0, 1.0014115383719757, 0.10542483708166006, 0.22040848700903187, 0.0, 0.3600323742449293, 0.06543742592421764, 0.0, 0.06637441639531827, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3967141864154841, 0.0, 0.18259679072826512, 0.0, 0.2818810986099949, 0.0, 0.0, 0.0, 0.04462260901941838, 0.650460148621926, 0.9472330785275007, 0.0, 0.0, 0.0, 0.0, 0.20815281221075516, 0.19618764447572262, 0.06473525648539784, 0.0, 0.0, 0.0, 0.1542243249790465, 0.13224172712193835, 0.0, 0.007908832517684252, 0.0, 0.051353982240120374, 0.0032977751233809844, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27800255996089945, 0.0, 0.0, 0.1281258773488851, 0.0, 0.0, 0.0, 0.31683019969084447, 0.0, 0.0, 0.0, 0.19099043815219882, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2169883137756601, 0.0, 0.7505306274250138, 0.5066582758142599, 0.0, 0.07143979002259558, 0.10210504506442938, 0.15444313156667316, 0.5054883509033501, 0.0, 0.0, 0.0, 0.0028518817212982773, 0.3481320627001662, 0.559897472000501, 0.0, 0.40645645270348807, 0.0, 0.36960222637651485, 0.34497081323202616, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0330129037169125, 0.05220506486278423, 0.053654185080025577, 0.0, 0.0, 0.1851124085000456, 0.04497376440934621, 0.35304695602824443, 0.0, 0.0, 0.343295765136816, 0.2793332554556384, 0.0, 0.0, 0.040358875497600165, 0.24978160129073035, 0.0, 0.0, 0.0, 0.0, 0.07246092173943684, 0.0, 0.16628600115413392, 0.0, 0.0, 0.0, 0.06634041958053304, 0.0, 0.0, 0.0, 0.008112084482454424, 0.0, 0.0, 0.3510991071496956, 0.30792356595023396, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24591462609017128, 0.0, 0.0, 0.0, 0.0, 0.1723485353456609, 0.17746213232343597, 0.26032482377035826, 0.0, 0.0, 0.09642188463361992, 0.0, 0.0, 0.9312549994812083, 0.0, 0.4355669936335271, 0.22986161845318145, 0.0, 1.1016016643957898, 0.5367168823744637, 0.0, 0.0, 0.1081626494181155, 0.0, 0.5354775491181646, 0.0, 0.0, 0.7066771289166013, 0.005913227901483509, 0.36878575613264597, 0.5931146099182986, 0.0, 0.43177137005853594, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2792172801438884, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18771394461865235, 0.0, 0.3810480475576988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04963057208911237, 0.0, 0.0, 0.0, 0.014028126739435154, 0.6487755206193258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019308069898724092, 0.0, 0.0, 0.15473333790095384, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20078144855224883, 0.04664059814698181, 0.0, 0.0, 0.02360446678134394, 0.0, 0.0, 0.06383755139363034, 0.0, 0.1295864000345023, 0.0, 0.0, 0.0972547510814237, 0.0, 0.07205581060374358, 0.016878310254842765, 0.0, 0.0, 0.0, 0.0, 0.2206348639926782, 0.0, 0.0, 0.2053453449704589, 0.18009351088331146, 0.17243879836126652, 0.16094695393647487, 0.0, 0.0, 0.0026102124382687284, 0.009478472183394092, 0.22228584913081856, 0.0, 0.0, 0.22567472183496304, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.002853715730108796, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0005790797752150057, 0.4809080576930432, 0.0, 0.0, 0.0, 0.32217587215618376, 0.0018177803358381927, 0.0, 0.0, 0.0, 0.0003287432209283418, 0.0, 0.0008918558343658391, 0.0, 0.0, 0.009096038390466929, 0.0, 0.0, 0.0, 0.00873033402576318, 0.007007183394127084, 0.45496728899530875, 0.0, 0.1316351307673038, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09338135584056179, 0.18382194877540864, 0.0, 0.563495172825665, 0.0, 0.0, 0.0, 0.05639497562938005, 0.14653622131196892, 0.0, 0.0, 0.0, 0.251192534270281, 0.1344408525103349, 0.0, 0.4650111134116464, 0.31391354376028213, 0.0, 0.0, 0.06326188293375198, 0.0, 0.31318868581904563, 0.0, 0.0763329064988246, 0.0, 0.0, 0.2156944329452718, 0.3468992967609863, 0.0, 0.2518308523576955, 0.0, 0.17896869808051252, 0.05403813425807818, 0.027124296544448725, 0.0, 0.0, 0.0, 0.0, 0.11640144853391314, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09109340489796702, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1194057971602891, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6552661573805515, 0.0, 0.0, 0.0, 0.21450271688804268, 0.0, 0.0, 0.902854749674862, 0.06907734840039648, 0.0, 0.811763991573728, 0.24446155688431725, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0551218990786032, 0.0, 0.0, 0.6659086165622266, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4110921087644639, 0.0, 0.0, 0.07931423881912922, 0.0, 0.0, 0.37316154887557274, 0.11430607897800385, 0.4150800042560803, 0.0, 0.10099097676635159, 0.6592915699634367, 0.0, 0.25936644093477396, 0.07666208914620723, 0.0, 0.0, 0.7807360976520861, 0.0, 0.0, 0.04275453625658718, 0.1985413718724771, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13633482744457018, 0.0, 0.2252743029271589, 0.0, 0.0, 0.0, 0.5464410650922171, 0.11366230227156136, 0.6018718955402885, 0.0, 0.014396279790867243, 0.0, 0.03905603312028952, 0.8092451213661034, 0.0, 0.39833251401456404, 0.0, 0.12251229365728535, 0.27200847035734843, 0.25388100105648176, 0.30685765140009125, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07517201195249319, 0.0, 0.0, 0.0, 0.0, 0.3595498458067731, 0.0, 0.0, 0.0, 0.05519776563775433, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13158680513977092, 0.0, 0.45513938379424074, 0.3072494672729318, 0.0, 0.0, 0.061918895238623206, 0.0, 0.306539997354477, 0.0, 0.0, 0.0, 0.0, 0.21111545179707192, 1.113727824196147, 0.0, 0.24648473048642042, 0.0, 0.0, 0.0, 0.6244696783059631, 0.0, 0.0, 0.010619491746539882, 0.0, 0.0, 0.057745206745770994, 0.0, 0.008858840711593166, 0.0075334185627281185, 0.1972006876834336, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15720126897663422, 0.2881788570254271, 0.05549794388099826, 0.0, 0.43880673821983995, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006158057243750719, 0.0, 0.0, 0.05862006643173159, 0.15125593941090254, 0.03302320207312045, 0.0, 0.0, 0.19199421271725345, 0.004359455697024407, 0.02909842903488052, 0.4051738652139157, 0.0, 0.0, 0.0, 0.0, 0.661857462083124, 0.27266071825745297, 0.09855620143563353, 0.03009452021788303, 0.0, 0.0, 0.36386547477639486, 0.0, 0.3154569959145931, 0.0, 0.12777365741134986, 0.0, 0.2874935496978787, 0.0, 0.0, 0.021877890033203812, 0.1316957530661763, 0.0, 1.0462327541742331, 0.24642978428043782, 0.0, 1.292534939963643e-5, 0.04966212026978902, 0.16767073337455046, 0.24586075312633993, 0.7749426824526595, 0.2192927197338787, 0.0, 0.15373812475086615, 0.1693253879539043, 1.1992945978003244, 0.0, 0.19769335810835964, 0.0, 0.2843031573913307, 0.2653563328642114, 0.6319651047837591, 0.0, 0.0, 0.2886502960323224, 0.2007500567698334, 0.0, 0.0, 0.0, 0.0, 0.4490517136878312, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.43431608561880214, 0.0, 0.0, 0.0, 0.29096240214176294, 0.0, 0.0, 0.24728201213730056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.199315833820732, 0.40813133046287003, 0.25266186539111524, 0.0908889085249469, 0.0, 0.0, 0.45688115062815576, 0.11100101499363633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02264115832549351, 0.6164930072930471, 0.0, 0.0, 0.44347420874850846, 0.0, 0.17884284240125642, 0.0, 0.2888836731929794, 0.21018531617189648, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3429810739029393, 0.02002166425453684, 0.021961075245274804, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.557136258905774, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.36191890674012556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12978916081088554, 0.0, 0.33079766328323545, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20464300021869425, 0.0, 0.0, 0.0, 0.0, 0.5063973085557268, 0.26737229244864336, 0.08619179411886842, 0.0, 0.0, 0.0, 0.49896059675156373, 0.0, 0.9000423796847855, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6355437645077721, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3962962286854009, 0.0, 0.0, 0.33976760898340913, 0.0, 0.0, 0.478819001240275, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), 42), 42)),) diff --git a/test/test_parallel.jl b/test/test_parallel.jl index e229f52e5..be31fa7fe 100644 --- a/test/test_parallel.jl +++ b/test/test_parallel.jl @@ -283,9 +283,9 @@ let io = IOBuffer() - A = fsprand(42, 42, 0.1) - B = fsprand(42, 42, 0.1) - CR = Tensor(Dense(Dense(Element(0.0))), zeros(42, 42)) + A = fsprand(Int64, 42, 42, 0.9) + B = fsprand(Int64, 42, 42, 0.9) + CR = Tensor(Dense(Dense(Element(0))), zeros(42, 42)) @repl io @finch begin CR .= 0 for i = _ @@ -297,12 +297,12 @@ end end - AFormat = SparseList(Dense(Element(0.0))) + AFormat = SparseList(Dense(Element(0))) At = Tensor(AFormat, A) - BFormat = Dense(SparseList(Element(0.0))) + BFormat = Dense(SparseList(Element(0))) Bt = Tensor(BFormat, B) - Ct = Tensor(Dense(Dense(Atomic(Element(0.0)))), zeros(42, 42)) - CBad = Tensor(Dense(Dense((Element(0.0)))), zeros(42, 42)) + Ct = Tensor(Dense(Dense(Atomic(Element(0)))), zeros(42, 42)) + CBad = Tensor(Dense(Dense((Element(0)))), zeros(42, 42)) #= @test_throws Finch.FinchConcurrencyError begin @finch_code begin From f15fcaa9d0d4e07be23e950ef3736f97b720153c Mon Sep 17 00:00:00 2001 From: teocollin1995 Date: Sun, 25 Feb 2024 15:35:33 -0500 Subject: [PATCH 09/41] merging main into here --- src/architecture.jl | 1 - src/tensors/levels/separationlevel.jl | 8 ++++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/architecture.jl b/src/architecture.jl index 94749c9fd..ae0c4a207 100644 --- a/src/architecture.jl +++ b/src/architecture.jl @@ -64,7 +64,6 @@ virtual_get_device(::VirtualSerial) = VirtualCPU(nothing, 1) virtual_get_task(::VirtualSerial) = nothing - struct CPUThread{Parent} <: AbstractTask tid::Int dev::CPU diff --git a/src/tensors/levels/separationlevel.jl b/src/tensors/levels/separationlevel.jl index e73f0e234..2883e798f 100644 --- a/src/tensors/levels/separationlevel.jl +++ b/src/tensors/levels/separationlevel.jl @@ -85,10 +85,14 @@ mutable struct VirtualSeparationLevel <: AbstractVirtualLevel Lvl end +function virtual_moveto_level(lvl::VirtualSeparationLevel, ctx, arch) + virtual_moveto_level(lvl.lvl, ctx, arch) +end + postype(lvl:: VirtualSeparationLevel) = postype(lvl.lvl) -is_level_injective(::VirtualSeparationLevel, ctx) = [is_level_injective(lvl.lvl, ctx)..., true] -is_level_concurrent(::VirtualSeparationLevel, ctx) = [is_level_concurrent(lvl.lvl, ctx)..., true] +is_level_injective(lvl::VirtualSeparationLevel, ctx) = [is_level_injective(lvl.lvl, ctx)..., true] +is_level_concurrent(lvl::VirtualSeparationLevel, ctx) = [is_level_concurrent(lvl.lvl, ctx)..., true] is_level_atomic(lvl::VirtualSeparationLevel, ctx) = is_level_atomic(lvl.lvl, ctx) function lower(lvl::VirtualSeparationLevel, ctx::AbstractCompiler, ::DefaultStyle) From 0a4c749ff205418ac65baec5b079532cee96712a Mon Sep 17 00:00:00 2001 From: teocollin1995 Date: Sun, 25 Feb 2024 15:47:11 -0500 Subject: [PATCH 10/41] fix moveto in seperation level. --- src/tensors/levels/separatelevels.jl | 41 ++++++++++++++++++++-------- 1 file changed, 29 insertions(+), 12 deletions(-) diff --git a/src/tensors/levels/separatelevels.jl b/src/tensors/levels/separatelevels.jl index 908fc7d9f..87fa26a21 100644 --- a/src/tensors/levels/separatelevels.jl +++ b/src/tensors/levels/separatelevels.jl @@ -82,6 +82,7 @@ countstored_level(lvl::SeparateLevel, pos) = pos mutable struct VirtualSeparateLevel <: AbstractVirtualLevel lvl # stand in for the sublevel for virutal resize, etc. ex + val Tv Lvl Val @@ -95,17 +96,20 @@ is_level_atomic(lvl::VirtualSeparateLevel, ctx) = is_level_atomic(lvl.lvl, ctx) function lower(lvl::VirtualSeparateLevel, ctx::AbstractCompiler, ::DefaultStyle) quote - $SeparateLevel{$(lvl.Lvl), $(lvl.Val)}($(ctx(lvl.lvl)), $(lvl.ex).val) + $SeparateLevel{$(lvl.Lvl), $(lvl.Val)}($(ctx(lvl.lvl)), $(lvl.val)) end end function virtualize(ex, ::Type{SeparateLevel{Lvl, Val}}, ctx, tag=:lvl) where {Lvl, Val} sym = freshen(ctx, tag) + pointers = freshen(ctx, tag, :_pointers) + push!(ctx.preamble, quote - $sym = $ex + $sym = $ex + $pointers = $ex.val end) lvl_2 = virtualize(:($ex.lvl), Lvl, ctx, sym) - VirtualSeparateLevel(lvl_2, sym, typeof(level_default(Lvl)), Lvl, Val) + VirtualSeparateLevel(lvl_2, sym, pointers, typeof(level_default(Lvl)), Lvl, Val) end Base.summary(lvl::VirtualSeparateLevel) = "Separate($(lvl.Lvl))" @@ -115,6 +119,19 @@ virtual_level_size(lvl::VirtualSeparateLevel, ctx) = virtual_level_size(lvl.lvl, virtual_level_eltype(lvl::VirtualSeparateLevel) = virtual_level_eltype(lvl.lvl) virtual_level_default(lvl::VirtualSeparateLevel) = virtual_level_default(lvl.lvl) +function virtual_moveto_level(lvl::VirtualSeparationLevel, ctx, arch) + virtual_moveto_level(lvl.lvl, ctx, arch) + # Need to move each pointer... + pointers = freshen(ctx.code, lvl.val) + push!(ctx.code.preamble, quote + $pointers = $(lvl.val) + end) + push!(ctx.code.epilogue, quote + $(lvl.val) = $pointers + end) +end + + function declare_level!(lvl::VirtualSeparateLevel, ctx, pos, init) #declare_level!(lvl.lvl, ctx_2, literal(1), init) return lvl @@ -126,7 +143,7 @@ function assemble_level!(lvl::VirtualSeparateLevel, ctx, pos_start, pos_stop) pos = freshen(ctx.code, :pos) sym = freshen(ctx.code, :pointer_to_lvl) push!(ctx.code.preamble, quote - Finch.resize_if_smaller!($(lvl.ex).val, $(ctx(pos_stop))) + Finch.resize_if_smaller!($(lvl.val), $(ctx(pos_stop))) for $pos in $(ctx(pos_start)):$(ctx(pos_stop)) $sym = similar_level($(lvl.ex).lvl) $(contain(ctx) do ctx_2 @@ -136,7 +153,7 @@ function assemble_level!(lvl::VirtualSeparateLevel, ctx, pos_start, pos_stop) push!(ctx_2.code.preamble, assemble_level!(lvl_2, ctx_2, literal(1), literal(1))) contain(ctx_2) do ctx_3 lvl_2 = freeze_level!(lvl_2, ctx_3, literal(1)) - :($(lvl.ex).val[$(ctx_3(pos))] = $(ctx_3(lvl_2))) + :($(lvl.val)[$(ctx_3(pos))] = $(ctx_3(lvl_2))) end end) end @@ -152,12 +169,12 @@ function reassemble_level!(lvl::VirtualSeparateLevel, ctx, pos_start, pos_stop) push!(ctx.code.preamble, quote for $idx in $(ctx(pos_start)):$(ctx(pos_stop)) $(contain(ctx) do ctx_2 - lvl_2 = virtualize(:($(lvl.ex).val[$idx]), lvl.Lvl, ctx_2.code, sym) + lvl_2 = virtualize(:($(lvl.val)[$idx]), lvl.Lvl, ctx_2.code, sym) push!(ctx_2.code.preamble, assemble_level!(lvl_2, ctx_2, literal(1), literal(1))) lvl_2 = declare_level!(lvl_2, ctx_2, literal(1), init) contain(ctx_2) do ctx_3 lvl_2 = freeze_level!(lvl_2, ctx_3, literal(1)) - :($(lvl.ex).val[$(ctx_3(pos))] = $(ctx_3(lvl_2))) + :($(lvl.val)[$(ctx_3(pos))] = $(ctx_3(lvl_2))) end end) end @@ -182,7 +199,7 @@ function instantiate(fbr::VirtualSubFiber{VirtualSeparateLevel}, ctx, mode::Read val = freshen(ctx.code, lvl.ex, :_val) return body = Thunk( body = (ctx) -> begin - lvl_2 = virtualize(:($(lvl.ex).val[$(ctx(pos))]), lvl.Lvl, ctx.code, sym) + lvl_2 = virtualize(:($(lvl.val)[$(ctx(pos))]), lvl.Lvl, ctx.code, sym) instantiate(VirtualSubFiber(lvl_2, literal(1)), ctx, mode, protos) end, ) @@ -195,14 +212,14 @@ function instantiate(fbr::VirtualSubFiber{VirtualSeparateLevel}, ctx, mode::Upda return body = Thunk( body = (ctx) -> begin - lvl_2 = virtualize(:($(lvl.ex).val[$(ctx(pos))]), lvl.Lvl, ctx.code, sym) + lvl_2 = virtualize(:($(lvl.val)[$(ctx(pos))]), lvl.Lvl, ctx.code, sym) lvl_2 = thaw_level!(lvl_2, ctx, literal(1)) push!(ctx.code.preamble, assemble_level!(lvl_2, ctx, literal(1), literal(1))) res = instantiate(VirtualSubFiber(lvl_2, literal(1)), ctx, mode, protos) push!(ctx.code.epilogue, contain(ctx) do ctx_2 lvl_2 = freeze_level!(lvl_2, ctx_2, literal(1)) - :($(lvl.ex).val[$(ctx_2(pos))] = $(ctx_2(lvl_2))) + :($(lvl.val)[$(ctx_2(pos))] = $(ctx_2(lvl_2))) end ) res @@ -216,14 +233,14 @@ function instantiate(fbr::VirtualHollowSubFiber{VirtualSeparateLevel}, ctx, mode return body = Thunk( body = (ctx) -> begin - lvl_2 = virtualize(:($(lvl.ex).val[$(ctx(pos))]), lvl.Lvl, ctx.code, sym) + lvl_2 = virtualize(:($(lvl.val)[$(ctx(pos))]), lvl.Lvl, ctx.code, sym) lvl_2 = thaw_level!(lvl_2, ctx, literal(1)) push!(ctx.code.preamble, assemble_level!(lvl_2, ctx, literal(1), literal(1))) res = instantiate(VirtualHollowSubFiber(lvl_2, literal(1), fbr.dirty), ctx, mode, protos) push!(ctx.code.epilogue, contain(ctx) do ctx_2 lvl_2 = freeze_level!(lvl_2, ctx_2, literal(1)) - :($(lvl.ex).val[$(ctx_2(pos))] = $(ctx_2(lvl_2))) + :($(lvl.val)[$(ctx_2(pos))] = $(ctx_2(lvl_2))) end ) res From 9c2eb7906600a71352c5c8668cc6c20f5ecb5bb1 Mon Sep 17 00:00:00 2001 From: teocollin1995 Date: Sun, 25 Feb 2024 15:49:51 -0500 Subject: [PATCH 11/41] forgot one. --- src/tensors/levels/separatelevels.jl | 1 + 1 file changed, 1 insertion(+) diff --git a/src/tensors/levels/separatelevels.jl b/src/tensors/levels/separatelevels.jl index 87fa26a21..d15707739 100644 --- a/src/tensors/levels/separatelevels.jl +++ b/src/tensors/levels/separatelevels.jl @@ -125,6 +125,7 @@ function virtual_moveto_level(lvl::VirtualSeparationLevel, ctx, arch) pointers = freshen(ctx.code, lvl.val) push!(ctx.code.preamble, quote $pointers = $(lvl.val) + $(lvl.val) = moveto($(lvl.val), $(ctx(arch))) end) push!(ctx.code.epilogue, quote $(lvl.val) = $pointers From 1e3b4d7bf34c35c9656fde8dcaf5bc30199a9c6f Mon Sep 17 00:00:00 2001 From: teocollin1995 Date: Sun, 25 Feb 2024 15:54:21 -0500 Subject: [PATCH 12/41] intermediate --- src/tensors/levels/separatelevels.jl | 2 +- src/tensors/levels/separationlevel.jl | 235 ++++++++++++++++++++++ src/tensors/levels/sparsebytemaplevels.jl | 6 +- 3 files changed, 239 insertions(+), 4 deletions(-) create mode 100644 src/tensors/levels/separationlevel.jl diff --git a/src/tensors/levels/separatelevels.jl b/src/tensors/levels/separatelevels.jl index d15707739..f41c27f12 100644 --- a/src/tensors/levels/separatelevels.jl +++ b/src/tensors/levels/separatelevels.jl @@ -119,7 +119,7 @@ virtual_level_size(lvl::VirtualSeparateLevel, ctx) = virtual_level_size(lvl.lvl, virtual_level_eltype(lvl::VirtualSeparateLevel) = virtual_level_eltype(lvl.lvl) virtual_level_default(lvl::VirtualSeparateLevel) = virtual_level_default(lvl.lvl) -function virtual_moveto_level(lvl::VirtualSeparationLevel, ctx, arch) +function virtual_moveto_level(lvl::VirtualSeparateLevel, ctx, arch) virtual_moveto_level(lvl.lvl, ctx, arch) # Need to move each pointer... pointers = freshen(ctx.code, lvl.val) diff --git a/src/tensors/levels/separationlevel.jl b/src/tensors/levels/separationlevel.jl new file mode 100644 index 000000000..2883e798f --- /dev/null +++ b/src/tensors/levels/separationlevel.jl @@ -0,0 +1,235 @@ +""" + SeparationLevel{Lvl, [Val]}() + +A subfiber of a Separation level is a separate tensor of type `Lvl`, in it's +own memory space. + +Each sublevel is stored in a vector of type `Val` with `eltype(Val) = Lvl`. + +```jldoctest +julia> Tensor(Dense(Separation(Element(0.0))), [1, 2, 3]) +Dense [1:3] +├─[1]: Pointer -> 1.0 +├─[2]: Pointer -> 2.0 +├─[3]: Pointer -> 3.0 +``` +""" +struct SeparationLevel{Val, Lvl} <: AbstractLevel + val::Val + lvl::Lvl +end +const Separation = SeparationLevel + +SeparationLevel(lvl::Lvl) where {Lvl} = SeparationLevel([lvl], lvl) +SeparationLevel{Val, Lvl}(lvl::Lvl) where {Val, Lvl} = SeparationLevel{Val, Lvl}([lvl], lvl) +Base.summary(::Separation{Val, Lvl}) where {Val, Lvl} = "Separation($(Lvl))" + +similar_level(lvl::Separation{Val, Lvl}) where {Val, Lvl} = SeparationLevel{Val, Lvl}(similar_level(lvl.lvl)) + +postype(::Type{<:Separation{Val, Lvl}}) where {Val, Lvl} = postype(Lvl) + +function moveto(lvl::SeparationLevel, device) + lvl_2 = moveto(lvl.lvl, device) + val_2 = moveto(lvl.val, device) + return SeparationLevel(val_2, lvl_2) +end + +pattern!(lvl::SeparationLevel) = SeparationLevel(map(pattern!, lvl.val), pattern!(lvl.lvl)) +redefault!(lvl::SeparationLevel, init) = SeparationLevel(map(lvl_2->redefault!(lvl_2, init), lvl.val), redefault!(lvl.lvl, init)) +Base.resize!(lvl::SeparationLevel, dims...) = SeparationLevel(map(lvl_2->resize!(lvl_2, dims...), lvl.val), resize!(lvl.lvl, dims...)) + + +function Base.show(io::IO, lvl::SeparationLevel{Val, Lvl}) where {Val, Lvl} + print(io, "Separation(") + if get(io, :compact, false) + print(io, "…") + else + show(IOContext(io, :typeinfo=>Val), lvl.val) + print(io, ", ") + show(IOContext(io, :typeinfo=>Val), lvl.lvl) + end + print(io, ")") +end + +function display_fiber(io::IO, mime::MIME"text/plain", fbr::SubFiber{<:SeparationLevel}, depth) + p = fbr.pos + lvl = fbr.lvl + if p > length(lvl.val) + print(io, "Pointer -> undef") + return + end + print(io, "Pointer -> ") + display_fiber(io, mime, SubFiber(fbr.lvl.val[p], 1), depth) +end + +@inline level_ndims(::Type{<:SeparationLevel{Val, Lvl}}) where {Val, Lvl} = level_ndims(Lvl) +@inline level_size(lvl::SeparationLevel{Val, Lvl}) where {Val, Lvl} = level_size(lvl.lvl) +@inline level_axes(lvl::SeparationLevel{Val, Lvl}) where {Val, Lvl} = level_axes(lvl.lvl) +@inline level_eltype(::Type{SeparationLevel{Val, Lvl}}) where {Val, Lvl} = level_eltype(Lvl) +@inline level_default(::Type{<:SeparationLevel{Val, Lvl}}) where {Val, Lvl} = level_default(Lvl) + +(fbr::Tensor{<:SeparationLevel})() = SubFiber(fbr.lvl, 1)() +(fbr::SubFiber{<:SeparationLevel})() = fbr #TODO this is not consistent somehow +function (fbr::SubFiber{<:SeparationLevel})(idxs...) + q = fbr.pos + return Tensor(fbr.lvl.val[q])(idxs...) +end + +countstored_level(lvl::SeparationLevel, pos) = pos + +mutable struct VirtualSeparationLevel <: AbstractVirtualLevel + lvl # stand in for the sublevel for virutal resize, etc. + ex + Tv + Val + Lvl +end + +function virtual_moveto_level(lvl::VirtualSeparationLevel, ctx, arch) + virtual_moveto_level(lvl.lvl, ctx, arch) +end + +postype(lvl:: VirtualSeparationLevel) = postype(lvl.lvl) + +is_level_injective(lvl::VirtualSeparationLevel, ctx) = [is_level_injective(lvl.lvl, ctx)..., true] +is_level_concurrent(lvl::VirtualSeparationLevel, ctx) = [is_level_concurrent(lvl.lvl, ctx)..., true] +is_level_atomic(lvl::VirtualSeparationLevel, ctx) = is_level_atomic(lvl.lvl, ctx) + +function lower(lvl::VirtualSeparationLevel, ctx::AbstractCompiler, ::DefaultStyle) + quote + $SeparationLevel{$(lvl.Val), $(lvl.Lvl)}($(lvl.ex).val, $(ctx(lvl.lvl))) + end +end + +function virtualize(ex, ::Type{SeparationLevel{Val, Lvl}}, ctx, tag=:lvl) where {Val, Lvl} + sym = freshen(ctx, tag) + push!(ctx.preamble, quote + $sym = $ex + end) + lvl_2 = virtualize(:($ex.lvl), Lvl, ctx, sym) + VirtualSeparationLevel(lvl_2, sym, typeof(level_default(Lvl)), Val, Lvl) +end + +Base.summary(lvl::VirtualSeparationLevel) = "Separation($(lvl.Lvl))" + +virtual_level_resize!(lvl::VirtualSeparationLevel, ctx, dims...) = (lvl.lvl = virtual_level_resize!(lvl.lvl, ctx, dims...); lvl) +virtual_level_size(lvl::VirtualSeparationLevel, ctx) = virtual_level_size(lvl.lvl, ctx) +virtual_level_eltype(lvl::VirtualSeparationLevel) = virtual_level_eltype(lvl.lvl) +virtual_level_default(lvl::VirtualSeparationLevel) = virtual_level_default(lvl.lvl) + +function declare_level!(lvl::VirtualSeparationLevel, ctx, pos, init) + #declare_level!(lvl.lvl, ctx_2, literal(1), init) + return lvl +end + +function assemble_level!(lvl::VirtualSeparationLevel, ctx, pos_start, pos_stop) + pos_start = cache!(ctx, :pos_start, simplify(pos_start, ctx)) + pos_stop = cache!(ctx, :pos_stop, simplify(pos_stop, ctx)) + idx = freshen(ctx.code, :idx) + sym = freshen(ctx.code, :pointer_to_lvl) + push!(ctx.code.preamble, quote + Finch.resize_if_smaller!($(lvl.ex).val, $(ctx(pos_stop))) + for $idx in $(ctx(pos_start)):$(ctx(pos_stop)) + $sym = similar_level($(lvl.ex).lvl) + $(contain(ctx) do ctx_2 + lvl_2 = virtualize(sym, lvl.Lvl, ctx_2.code, sym) + lvl_2 = declare_level!(lvl_2, ctx_2, literal(0), literal(virtual_level_default(lvl_2))) + lvl_2 = virtual_level_resize!(lvl_2, ctx_2, virtual_level_size(lvl.lvl, ctx_2)...) + push!(ctx_2.code.preamble, assemble_level!(lvl_2, ctx_2, literal(1), literal(1))) + lvl_2 = freeze_level!(lvl_2, ctx_2, literal(1)) + :($(lvl.ex).val[$idx] = $(ctx_2(lvl_2))) + end) + end + end) + lvl +end + +supports_reassembly(::VirtualSeparationLevel) = true +function reassemble_level!(lvl::VirtualSeparationLevel, ctx, pos_start, pos_stop) + pos_start = cache!(ctx, :pos_start, simplify(pos_start, ctx)) + pos_stop = cache!(ctx, :pos_stop, simplify(pos_stop, ctx)) + idx = freshen(ctx.code, :idx) + push!(ctx.code.preamble, quote + for $idx in $(ctx(pos_start)):$(ctx(pos_stop)) + $(contain(ctx) do ctx_2 + lvl_2 = virtualize(:($(lvl.ex).val[$idx]), lvl.Lvl, ctx_2.code, sym) + declare_level!(lvl_2, ctx_2, literal(1), init) + push!(ctx_2.code.preamble, assemble_level!(lvl_2, ctx, literal(1), literal(1))) + lvl_2 = freeze_level!(lvl_2, ctx, literal(1)) + :($(lvl.ex).val[$idx] = $(ctx_2(lvl_2))) + end) + end + end) + lvl +end + +function freeze_level!(lvl::VirtualSeparationLevel, ctx, pos) + return lvl +end + +function thaw_level!(lvl::VirtualSeparationLevel, ctx::AbstractCompiler, pos) + return lvl +end + +function trim_level!(lvl::VirtualSeparationLevel, ctx::AbstractCompiler, pos) + idx = freshen(ctx.code, :idx) + sym = freshen(ctx.code, :pointer_to_lvl) + + push!(ctx.code.preamble, quote + for $idx in 1:$(ctx(pos)) + $(contain(ctx) do ctx_2 + lvl_2 = virtualize(:($(lvl.ex).val[$idx]), lvl.Lvl, ctx_2.code, sym) + trim_level!(lvl_2, ctx_2, literal(1)) + end) + end + end) + lvl +end + +function instantiate(fbr::VirtualSubFiber{VirtualSeparationLevel}, ctx, mode::Reader, protos) + (lvl, pos) = (fbr.lvl, fbr.pos) + tag = lvl.ex + isnulltest = freshen(ctx.code, tag, :_nulltest) + D = level_default(lvl.Lvl) + sym = freshen(ctx.code, :pointer_to_lvl) + val = freshen(ctx.code, lvl.ex, :_val) + return body = Thunk( + body = (ctx) -> begin + lvl_2 = virtualize(:($(lvl.ex).val[$(ctx(pos))]), lvl.Lvl, ctx.code, sym) + instantiate(VirtualSubFiber(lvl_2, literal(1)), ctx, mode, protos) + end, + ) +end + +function instantiate(fbr::VirtualSubFiber{VirtualSeparationLevel}, ctx, mode::Updater, protos) + (lvl, pos) = (fbr.lvl, fbr.pos) + tag = lvl.ex + sym = freshen(ctx.code, :pointer_to_lvl) + + return body = Thunk( + body = (ctx) -> begin + lvl_2 = virtualize(:($(lvl.ex).val[$(ctx(pos))]), lvl.Lvl, ctx.code, sym) + thaw_level!(lvl_2, ctx, literal(1)) + push!(ctx.code.preamble, assemble_level!(lvl_2, ctx, literal(1), literal(1))) + res = instantiate(VirtualSubFiber(lvl_2, literal(1)), ctx, mode, protos) + freeze_level!(lvl, ctx, literal(1)) + res + end + ) +end +function instantiate(fbr::VirtualHollowSubFiber{VirtualSeparationLevel}, ctx, mode::Updater, protos) + (lvl, pos) = (fbr.lvl, fbr.pos) + tag = lvl.ex + sym = freshen(ctx.code, :pointer_to_lvl) + + return body = Thunk( + body = (ctx) -> begin + lvl_2 = virtualize(:($(lvl.ex).val[$(ctx(pos))]), lvl.Lvl, ctx.code, sym) + thaw_level!(lvl_2, ctx, literal(1)) + push!(ctx.code.preamble, assemble_level!(lvl_2, ctx, literal(1), literal(1))) + res = instantiate(VirtualHollowSubFiber(lvl_2, literal(1), fbr.dirty), ctx, mode, protos) + freeze_level!(lvl, ctx, literal(1)) + res + end + ) +end diff --git a/src/tensors/levels/sparsebytemaplevels.jl b/src/tensors/levels/sparsebytemaplevels.jl index 1f8250dd7..5ba7500f2 100644 --- a/src/tensors/levels/sparsebytemaplevels.jl +++ b/src/tensors/levels/sparsebytemaplevels.jl @@ -180,9 +180,9 @@ function virtual_moveto_level(lvl::VirtualSparseByteMapLevel, ctx::AbstractCompi $ptr_2 = $(lvl.ptr) $tbl_2 = $(lvl.tbl) $srt_2 = $(lvl.srt) - $(lvl.ptr) = $moveto($(lvl.ptr), $(ctx(arch))) - $(lvl.tbl) = $moveto($(lvl.tbl), $(ctx(arch))) - $(lvl.srt) = $moveto($(lvl.srt), $(ctx(arch))) + $(lvl.ptr) = moveto($(lvl.ptr), $(ctx(arch))) + $(lvl.tbl) = moveto($(lvl.tbl), $(ctx(arch))) + $(lvl.srt) = moveto($(lvl.srt), $(ctx(arch))) end) push!(ctx.code.epilogue, quote $(lvl.ptr) = $ptr_2 From 13d6ad85cd91c02ad80185031dabd0f7cfe885c9 Mon Sep 17 00:00:00 2001 From: teocollin1995 Date: Sun, 25 Feb 2024 15:59:29 -0500 Subject: [PATCH 13/41] update tests --- .../debug_parallel_spmms_atomics.txt | 200 +++++------ .../debug_parallel_spmms_no_atomics.txt | 310 +++++++++--------- 2 files changed, 255 insertions(+), 255 deletions(-) diff --git a/test/reference64/debug_parallel_spmms_atomics.txt b/test/reference64/debug_parallel_spmms_atomics.txt index d0853352e..64065bc60 100644 --- a/test/reference64/debug_parallel_spmms_atomics.txt +++ b/test/reference64/debug_parallel_spmms_atomics.txt @@ -8,7 +8,7 @@ julia> @finch begin end end end -(CR = Tensor(Dense{Int64}(Dense{Int64}(Element{0, Int64, Int64}([-311528392542676525, 3802864504850227773, 7132563740294941325, -7734229606977869371, 4610816547292327398, -231875892530149519, 6479067223724325995, -5993925410246119408, 7769769731936043186, 6508773581643622648, 8377470195368681305, -5026402568726958822, 1827804178661326297, 8945035746065187189, 9142616182405809812, -6444208854588150036, 3277304349445109851, 4784032081641147304, -6760158860367436072, -2973384685745632037, -8129972329073734262, 777092723910886802, -3245293789031672332, -3523460009327721843, -5684260890958137224, -8265569238908005417, 8801036620359715779, 3266176164242776697, -2137918316110048538, -3323946906471089812, -3314215782571951707, 778527069577570500, 8137954887180256780, 8430989329655386292, -606788686983349880, -4214419631996394082, -6982805642717038791, 4797874315021516200, -2404366658509915138, -9177912505471373539, -7126158702130095549, -1766466893224773589, 8924417853649894089, -4674003454091887679, 2257428816284239881, -1332826559188755030, -8548057139935380399, -6301259390274164526, -3288288979021163907, 6879439315951637090, 4337023968316665593, 6946150187905484505, 1010965014357589050, 5912572766312215522, -752662070435057852, 8324512872143105908, 3863764696845398606, 5389249056777042937, -1935499292012667397, 7268079289042811102, 9015678537102606643, 5924330619075555357, -7424534445741392445, -629875664608289672, 8384040311367110728, 4366481991429755226, 799319475113248361, 915077563132424308, -402689656772636859, -4955233076805992406, 7164775445931617845, -3741939346817651094, 626388912028592424, 7629488070185682238, 2229303825265914208, -5262491359642418345, -4880619796691544255, -3925706312675979806, 4696878665903208702, 5071857546218785861, -3376912663266974892, 8653621680026928799, 1396781445024355796, 621390305019145984, 8372778663022275550, -7480329048309833839, 1560173607708756635, -3514469212498253617, 2082849966979030776, 2855014826193932577, -6098003633715037270, 4973995505549769974, -934656248683882969, -7138618497546152206, -8796608146899612477, 2599534084177250165, -3661022375209093319, 6753861788669983217, 8879020977128083301, -1369089299051099462, -5718241577534868428, -4601048383104503916, -7761404906865992561, -4766352168228543906, -7581342006403310193, 5305627711042476897, -798942769184694703, -7013308532278854794, 2556970310791640083, -8310154389049907193, 1935579670641235148, -9182270706148454992, 9150818649447775758, -6638702227973546141, 650090674291676413, 8236754832241948399, 790792765911863457, -347542563766738388, 3388642901454996993, 5348134068670085253, 5074530787207075513, 1395232644756449952, 8090997313784423115, -1550511403107108256, 8571008051355695605, 1306564260425723057, 5818833840846631664, 8799033188003922464, 5410444795730799007, -3373047473574331090, -8548302006770261151, 5021861578667389638, -432669836523104479, -6438627394278666063, -7251108417612047114, -6291884531541975330, 6537071113687438992, 8966161431802402633, -5259240086960564044, 3503163060697962605, -4065148945903097744, -1777564193334828938, 1747809001727155632, -3417070383920828456, -4980740299784891473, -559866941814657186, -6426350914229905139, -5679160652862202404, -6211678578062624482, 848841581372246207, -2989862519366817864, -9055561009588072094, 6765006199830890923, -2062587279559167170, -7502248691809669785, 7718809563802492192, 3633483956842288096, -5531671318896978179, 5326224353406326292, 6726394281003005045, -1713581532815293882, 6024523542812863783, -1763399164735930073, 4266920826307605526, 622375407618332670, 4341466034596968525, 7715246185820712492, -5773491122824348016, -1826385467445025486, -7822412245781439819, 8017872321912493505, 6373242139699342871, -6944882458072813137, 4697620715257964034, -4365394206032703789, -547148396038045198, -5035570107494867275, 7793404466643051559, 4469721766633126697, 1166061378200498396, 1554858931156904800, -2361412551770162450, -7930855384212681335, 1713868002622874066, 7409111426406558639, -512154663509791484, 6537275880940401093, -3910570248961609024, -3836656625145607293, -8938294775136724153, -6507444214278732621, -1150538280928728183, 6973878162312254627, 6572969588409572611, 1002231209937518033, 6908277548248118165, -6022132921017429451, -7025870997712287358, 683251940863450233, 2493524975192955782, -7276639915615857470, -103883638664277997, -5314704606673142253, -7038752337314182336, 5560169698698056371, -5881866866010041715, -4469522438057826665, -8939893843141765247, 2642101218897762188, -3300172923916323330, 6352877754718065190, 4084338072180105389, -4342549113399200393, 4279374017424089065, 4398221897453782925, 2422944416491435362, 7922267869330361805, 5995998007128456283, 6280625043231339994, -3275865643381161731, 4383174748559532813, -8546441422012175712, -7893577028946492213, 9027885389349284629, -6125149023153379003, -4956546681275572683, 5715129565539777013, 6623276731031366799, 7560337431809868738, -31750236024934407, -3810198350997910123, -1146409313986505151, -428701850515027514, -468073762720447669, -1390050471520983211, 2835265798923663700, 5764913612679834112, 958810651968247391, -3797815661291407520, 6460520626648203269, 211708702104126221, 2261091765752400712, -2964977199137046896, -4385151649562144001, 3116185924188946137, 6739692152509783528, -5305436920427785009, -2907282851691115609, 447743807557596132, 63862440751247066, 3514479843707153842, 5999601496287905231, -3654531195335519906, -2542600877922342253, -7290989393844413666, 9085469624507262735, -541455872346318235, -7971088789235032060, 7689978220151207746, -2711513566589271239, -8343310657572295416, -4167999392509592540, -9039445678299213909, -7170301895717218884, 6291529442536905084, -3374963351675626609, -5373168051494346318, -5497601031482005775, -2916886395075307235, -3883261685502767633, 9179413910741410099, 6289334284246669717, 4234089800929872794, -2655732539271996720, -3035070633871992593, -2437303472975627474, 8832963047795505553, -829388827821593367, -5370201744962103593, -8911288617151731105, 6714137128155914855, -6937785380240140879, -4804598248727707302, 8750156478448565502, 2574912636013720638, -4885946830234328537, 7521358135764728226, 535303159333155897, 8138574657622192110, 2456224430349956627, -8992321412901943906, -7281936363115109639, 2704721690134351097, -7216651923179770008, -6506422878573197942, 8915586083417585942, 5371232788505226594, -1740133450893903245, -982304251078917805, 2244112516915558506, -3114958008453226, -4610260728675861751, -1143025776890919762, 8288487391050636375, 4388285265909577760, 1232243352541145132, -7717830768524962099, -5901227017481054829, -6100861997340233106, 8279906479564605152, -5427340363020812495, 7436873303994409336, 4437395942259467556, -5486323029786467602, -749419638916086313, 387633405786106344, -2444684956722819414, -8879980142125000057, 9032213405251538238, -196725452198675903, 4109301537930725517, 6117388314164827016, 8847370785979768678, 77521133169697924, 7077666419656637399, 133555131055822904, 61998257733475790, 5697558321456541168, 7399783912995781559, 1137891396677380707, 5074079993681838043, -657911960963882852, 1137470059873220310, 7020780662981280391, -9177001920397809522, 790362239680355816, 600172032624920855, 8543420636741980368, 4528589445176971886, 5960728324702488119, 5514186694424436532, -5432336659913866735, -2057725448378912415, 3911807348846574985, -2933766100391426874, 1800193705806185930, -7054816631402652609, 7183265689053958885, 5699677378061885134, 4220153114531888679, 8286682243768326060, -3718825949288568614, 4247279726743304081, 3401929723154371418, -7791632387902813891, -8525035833654653815, 4642847250936202202, 8571834255563384580, -615080775143020047, -9141302276862944236, 2497129230952559091, -8795367116044177149, 4697020691819045650, 8078487089138316076, -6314877087348456338, -8272915201734457268, 6950678089694500897, 5377750684446461249, -921140928622983181, -1520460049452102693, -3177121019444108678, -4051624390692544861, -2825784479508224090, -5008690521298053399, 1770783004922494527, -5527822838273234845, -4503771241503652292, -4788400236276842410, 5619353998326498739, -3701011697076308480, -8034418559493520412, 6350765187233515105, 982558642287986027, -1448602610424440694, -5618483166513344245, -6278878478122580648, 7537160758203387055, -6154847048393471752, -3053777167706908675, 102968748125835682, -4368004269290628803, 3948417958341752791, 3441688668713259055, 5686013332820589556, -6793945691483312138, -5657337314720073764, -2316326789392298880, 8429883766104818531, 5672048876768223736, 4801755278649149250, 2457832606218017605, 5660898524916791368, 9008328499307364991, 7282355400911599490, -675022808189279520, 1248812713894084058, 4295529333031152182, 235010168203572616, -4332156008277813622, 1584706501703338551, 3224219654798343804, -2046414069220643115, -4768268609286612707, -4595767465089756149, 432385139172141595, 5744340903783987934, -5907814276982578230, 571373857369851574, -4615364944658920518, 985558362311014501, 1146748558906210730, 7358527181149231649, 2960234619888514885, -4221579384574605709, -33577900070920492, -1383491017420984722, -6667111422768545223, 2209578116218914144, -6192696716189832095, -8682232579400392473, 3926742208689603882, -2605251114517028176, -3432143345789886934, 956256818538240068, 7048231574365916809, 5172150567611355985, -7087473940080722223, 2829725628381946973, 6615614511402804897, 5597114989308889913, -6360862330806523233, 7263403909484904208, 1722745349057533175, -6250859958048377022, 7854765438825869947, 4544273279457948494, 6871378735684121062, -3351123348798445569, -3070913893427269938, 4474858432188499679, -3027153348937151936, 6723187138491054590, -4633043728650674379, -6923489996304544514, -7608004350687835922, 8618729303360011673, 6145931189986425565, -700125041702955627, -7361791825514005778, -3052622408661881441, 8247111715450418050, 7644850195268952347, 201981812631246530, -5366187106284689552, 2240979599738100899, -8929354876130746907, 622748136125783190, -2241977980877970148, -8690707102946532636, 1816258902369550876, 6082608921810779350, 3313569380430314248, 7003634692020991413, 5388495764620726128, -5530822942131330273, 7182058408716498125, 6272977706245272491, -1611832087259919849, 6304118920652930260, 2664243321321065829, -6991256246863621561, 7763559060359215549, -1363294210753473603, -5984590649126030611, 8835145660544963598, -4339100511013335484, -7658343482117166946, 4767592705684863404, 6567026582399699474, 1241984525409511450, -5043459788309072162, -6788638110335657665, 3425502247489073842, -3386866538103387786, -3435764054745173624, 6561588844054851309, 6358866269624109218, -2265970059794978437, 981754089422755666, 303360095818360815, -1637078045909787216, 5039180299052306271, -5050307403632054071, -4916014943876365639, -4786790738315442642, -4112969230517500969, -2053067729163411292, -5506471273731989096, -9192763281442671194, -9154538478094146297, 844512131685900736, 5622194151159285613, 8194896671418306404, 1412467403218231788, 3881564188099745981, -6535023704129633935, -4422084769610503611, 2842323006370744908, -472587132304431690, 5418894508652286502, 5354997878416558687, -4192781941439730955, -3177986442565831154, 8055846518519871975, -2415348653243756702, 3420189508094535959, 632472561226799626, 9048880056639467255, -4088888662813871032, 5342377372296981891, 4269139230891294005, -6717542854769676338, 5697661121986271761, -1342180587334633568, 336875038379374793, -1762255469438213123, -1771219285192270657, 8879943609619899579, -6124059468186375892, 8286471420479395455, 5543997467023211823, 5320361181567019590, 8958205738403874292, 3782571393394012068, -8985467336212511099, 4358217428218486255, 5323123421330561591, 5764541270351390266, -6963051555266077147, -8117203354060625734, -3369353168590364075, 8066080865612783830, -5493399428262160806, -8062951269302324167, -7795183678321688541, 4270469270852553336, 5515134373073409924, -4715340744920803950, 2105370441481331601, 377342343915534328, 9024587429061028407, 3950645024865924468, -7513885460653066738, 5679113338470321965, -4007675874528217094, 685254662537812760, -7675519858059415042, 901700859132852851, 3306012866190376430, 2408392168740675300, -1818210664377266977, -5985536775766332429, 6859135827266771568, 6142180884473663150, 1662736140744539339, -5748205425049442259, -1431038593146932184, -7772606991892607571, -348435608257889917, 3323776957236852960, -4109021388662695665, -1035387926833810113, -6252075674217952235, -1688047783032235782, 4835484251275026119, -1130434861387672189, -552211881628052457, -9041375001510857971, -8608662509892950952, 8688323792329827521, 4639288709326029154, -7997418775765929203, -536103785062713510, -6343663721617708900, -3154255286206413772, 7778544095371035370, -6087249532642040836, -2119136938453566451, -688238790820179873, -6835440198851144923, 5315054982053402284, 8173102513358076492, -2069317718895641958, -4771766013066052606, 931917254490650404, -557345458441442938, 3220011825320527555, -1158400632381301374, 7109875313372060233, 280358344723014545, 1781923481723729313, -1805499844278566084, 5814569477732551196, -2166719128253350835, -7610231454586483844, -410436740688301883, -8413621775294896865, -8989368555919190902, -7176709214957782648, -7904552684938415090, 6506593041716222957, -64275500919664736, -2441305534489441569, -8607529290606256433, 2704494450480538341, 8252863318644872588, 7679830104172517933, -1362881973065009152, 3227375449815221716, 4230416557459228451, 749940150731561981, -3955830997208866872, -1058276989298619601, -1641422116181591194, -822466760760516658, -2021155498858226231, 5043089523958593235, 9160523363278870467, 2440291487886579299, -5076764184565375538, 4008082098413400136, -2574196012088549257, 1815165426871122463, -1810363067796950052, 4564660363457428284, -2979682748740342374, 1263528409113807511, 664902837787653319, -7730990515836195905, -2880800962758009323, -7855792495166800696, -3741677040754952297, 4706538099020817013, -9136310530026765146, 6214908330569213306, -3306943983211023738, 2006683290226313727, -6277376814587543000, 5070401159692077631, -8643576681302494805, 8696392328149980718, -2881724085663247400, -3287341067959381540, 4490394380103475251, -2388135268153109148, -3688564781415624446, 6498489205468056363, -5500244887538822899, 2180911647749845602, 8505364545645231746, 836973405812942824, -4740164100896755286, 5278723018552192484, -1437440665187625187, -323731977913999807, 7961288608439452300, -6431662516133743485, 3288471137468863622, 1094976596329727971, -7153147127300532286, -2269332560827388244, -8443034525381127221, -7259595132044303319, 6598374410643793929, 5408651494181464015, -2202304456831760230, 5063787465367491805, -486043291012940650, 6661198455654543904, -6677120136819219766, 6873215010129388137, -8544492697357908484, -4891416620674641993, 6278728749137780699, 6140179405370666573, -2530674188465907541, -5542826884668502138, -4624987738903378785, 6055897868744384304, 1893227478513103707, -5998481717337431109, 3830666628195019250, -5536286911313861609, 3200695281108542221, -6354873668485439169, -7106406847876828463, 7267111195904963580, 7933454732992989449, -1704431805338802811, -7611850130507733188, 812223521137539840, 5028737084052092939, 1988409904336613546, 5452332172318207897, 721364426528035202, -8061778870788033499, 6206577632233922077, -3358825340647308897, 2615281023954623119, 5796586417262572998, -197225006894562884, 196909717615705016, -247775495361433931, 7935788894770135235, 2974543031667961203, 5518401755150062594, 4289467554573218060, -2110026776485502130, 7660756127445162484, 3210017035054168881, 4490480744367531310, 5560337963744008127, 1101969946984775230, 5426060883804367122, -7414569778895362694, -2574548713218219896, -8667400765660450694, -5823705257574844942, 8997571444431443269, 7042636308067180449, -5283570316461887039, 8142095188421778064, 3651820187667613831, -4106900401332576063, 5096961868284753927, 1281307679037151525, 3157982099299110758, 5964579201184846556, 4180328246833948732, -7591589437120250551, -5609987180487736705, -4487816973319572586, -1552743699661830151, -2960134158460000031, 388000481836191254, 4969717821228980736, 4894250187668109836, 3314809537038085119, 4588524784136728210, -2535627291226530894, -5684084138082962342, -1286085397614972483, -7103165809748549698, -6678458086474660614, -7506274041001472908, -5757410831092511843, 3076084975765635926, 7850034963640689904, -8651748294440545843, 194609034680985428, 8961175923080965683, -93748348755505189, 8117513138674933995, -2327127188025401628, 9187079670668733343, 6176196235074071579, -2820708281421643585, 7702825886158486334, -5855613686156591038, 7799351880585559652, 4934874524942948135, 478516408624230993, -4965206657008516450, 269236596925883928, 1073428163366009326, 7126792485072910069, 7569987982476504769, 8262969537673837817, -7393607729414256813, 4017211294382715408, -1453708362719534126, 4307169287498447691, -9096393784442866629, 8699405990322605810, -1035874136575275173, 5307229917593282401, 1276194578649014061, 7817361645793510414, 8807328459013683574, -6765725969608803740, 3805877505873456422, -2895703504735894621, -5230950451898686709, -6669061264839270575, -5138851837205629206, -1835119422478560204, 2603594006469150259, -2868548477659140639, -3022288051024437226, -2534068374958773882, -8740036738980731237, 2422761568693286421, 2502279617218189169, 5653397006733775922, -8039795195496143176, -6114200605642013428, 4738401726556400980, -1124125357168446237, -1348538616798334459, 5166727242185760724, -8859072289987873964, -7821112919434789020, 558406059872965377, -652528105474834764, -6029896875260562574, 2091769615884194159, -216079402402926518, 887407835530247623, -4090364169749485345, -2641220401477988829, -7119863260277045123, -7186889934574275077, 1786346915042454610, -1034431575705158448, 2644876102600825848, 8628759535217154371, -5076435861824768815, 5595534221719835067, 6278270011273397462, -1987507060144813825, -4918793481045561857, -8270154588131917026, -8468046916149675701, 7176601854751293210, 56669650886358090, -3166866242311034523, 8564531909892678053, -8455196864544157950, -7257596480926253873, 6959408330130435752, 3028838432902894936, 4424195858928857704, 6121497124194972504, -5469042773842318014, 2159359821694864340, -5947113653447376879, -1257220895728861725, 1392685009302569024, 7648830520509108133, -7371898747435017516, -845894640102415955, 8686498035411426229, 5985907670960414557, -7006168817797129900, 5479137187044139679, 4647241554359727919, -7056835850526619003, -6083660857753840170, -8047496266502346341, -7226197892441689165, 741327366913048535, -3711828024047014264, 3862158898379466077, 449693655808431935, -4882540886884501973, -7383637210504776854, 620553667069897427, -6713481484814371951, -7543587771860356019, 810524291612691607, -3659121362368402512, -5595441051298399244, 8088291422822166417, -6303984734444135248, -678233978165917904, 3617704513102699155, -5352941627192876325, -5816949687022080463, -9169168096039126102, 7975547379037659726, 4623395118382308799, 2509276746373528458, 5235508280732183917, -8712780009966718399, -7712552639387445993, 6759061446299827503, 9164297432474703925, -1110357104587476086, 1829423683580763459, -3799180270173028795, 8306026342220315310, -2726954641281485486, -1863888117327900205, -402316169456308966, 3744050168945036153, 4528951249037614908, 4258594066663919620, -3980786014056604956, -6634679619236991963, -4774774115148739666, -1688262812036369479, -3034548033917499658, -5071122385621078715, 1588376700080465528, -7759058167839367430, -4775874273596731934, 3221595815258590133, -6828959650403546499, 4346943720922699157, 4928547898720269926, -8589044593817257493, -5081781874907419607, 951694801960191091, -4667459908101512289, 4206977884410966721, -5197565432654930036, 3326560315392948439, -5878101577814599326, -8546474537134600654, 4309823164209170224, -3850248640668593914, 8681749283296418130, 4990534815930281841, -7750801661905292077, -3291032507257295915, 6665735555297233110, 7050489721279484184, 4317248664266774559, 9186786829891405296, 4166168050877046636, 7493753755601945303, 6899283068593432141, -5031904746579415020, 2565085644824379929, 3944502551732855469, 2189710644855030524, 2255493561976705206, 271365360135379886, 4294982312243112084, -5660229707439867961, 800423085895901894, 8347122627753775462, 6822896499937221573, -7651490681616894, -5297285646106039108, 1608114244844304377, 5839483976720836889, 8241560863719005179, -4129441230004651128, 3479615647121648386, -3074954311106453268, -3412316248640445049, 1216386815926349358, 2626756706523947064, 7368591831166517715, -1142163371321856898, -372851778878484647, 5995055175251528039, 5499555783411494776, 2016478622954748816, 1279886563391834469, 5165391760856510060, 734258640138801802, -7445758287171966471, 5839000974438980820, -5125341234978471209, 121392944104683131, 6179055483354016942, 9063275686698059196, 1720815667965783260, -2090747494244625688, -7864214085579409526, 6028043825066031897, -870947118366293771, 7376428769075962994, 1893490138897624353, -2886384328350744909, 5229519170995839908, 3782678275042073308, 8444457277148000247, 7575393971659806405, -5934742581324588974, -957376746896582101, -1823443228678068953, -7406349357662140793, -7066353634914162328, -932893465250817358, -6158979365981425485, -3999272364858205076, 4376092228086515820, 2513046484924596765, 1682565735361783149, 6869702267679149853, 3598461422649849004, 6721690358813739611, -5015414950752771986, 5196130127330595784, -8263471740181652146, 5701551820088369908, 4253014790918207382, 2681305943933975380, -802509536169972911, -2921706024223960837, -9084398191436379512, -7519519527403626152, 3410883059237029545, 2095075860303886315, 7914139912546804769, -8370416930809779762, -7044648509550560506, -4902792417226064745, 8930318598773654893, -8039939177580969146, 7860061109504978153, 419124991549078423, 52439998177737723, 76668279870828606, 2400418361498442757, -6792499803763550020, 3154574853391034842, 7821968058100120318, 3866940609041914244, -2451342656371401396, 6905559753998185538, 6642467155099476743, 9184008300019616920, -2170183067760494195, -1717224464730633452, 5546156896245179429, -2017194334177493538, 5813836834777993870, -5037970301511180119, -6283363831235414834, -2112512675648312385, 491800089892071944, 1091841107193066408, 8220715112944896727, -4061073684265419648, -6814505748970986107, 8035167421124665899, 4919021796047562901, -8884884164310583259, 6153891825926211445, 4869639300001698143, 3837324736330986571, -1644424597952783500, -6432957171918516733, -3788559728040549625, -9017234204035095885, 7974176819879521382, 8518789095085259635, -3908843812016366962, 6951099628380613842, -8130281757214184420, 697619035660462877, -5347667485898134831, -7870811613775178028, -6511218273726014463, -333041748521768769, 5107911109826800955, 3300477209814784624, -1708767489614571672, 1525551322408592196, 9080360653706424402, -6708214637440210952, -8631288433031181655, 2969113138124740044, -6647892099329100204, -6988290737149534654, 7213791800550484241, -3515983215941949272, 2776751762191199071, 4071933170036566928, -4265187988772916685, -2837771298453665817, -3090388734688474776, 5082944286075818548, 609755467484712029, 4072847486654097862, 8529301158860902869, 946912055446259682, -2248520461543232716, 5002603540450016650, -7275890548477817354, 1780246636470144442, -269706394334676566, -8177505231864803521, -4808125464463073144, 3775199331707802161, 2135641040248441133, -6436387871891641508, -7300737480287384013, -3360643109416540838, -8725466580297208946, 352291131791977996, 8394782611214630132, 17475987862371471, -4488499446877241684, 6767262301426119887, -2769737041134652019, -3193753686399895142, 7241778878096412757, 7797099283865407968, -2671749878988612917, 4696277170143113298, -5423752625035881763, -670732946661190647, -5711362811761083541, 4199832504691110757, -8677080819421441869, 3205643745224196359, 543646793087604365, -6804492024407055184, -848262837790928773, 387374760481732684, -9059158253510589576, -5856801177533266560, -7432011656959400529, 2198315888507745377, -7784997841364446485, 5347278335471818322, -6869526283408290890, 1352984110104423676, 6604074908186486860, 3540137177162802697, 1016927313450879985, 4071162570240874321, -5551488416681382753, -1504833906763233366, -5197958147423262666, -195819750883991358, -3945019213013735347, 6902249401976467405, -8912844306838907648, 4722491225058563626, 8140893302518733651, -5690073294438117370, -5969694801694774088, 7487125160865276118, 3007343065818503767, -2137534930747931929, 2809569435246364642, -4144004208315175629, 5255075717374606982, 7626373563000023350, 8149042251253369001, -8408446547381679894, 1486032901530289193, 4064054887282446575, 1589944372692791144, 6449119204549353091, -8068500293077637628, -4352463204946506034, 2337319196167003851, 4645391736645529886, 2010913571168295586, 1067508280099262661, -6129726247014324152, -611394079563159886, 2374062997617988521, 2762859988315805754, 4077923914156429843, -9041689727396256791, 8413929943723227620, 2773700164543912806, -3519424763423213991, 3151293449748791827, 5483423829303258017, -5946703767041794347, -6685640504011780936, 7701491958403800059, -3979073630416352084, 1302223521793369618, -4739375335957240500, 1273557423668894202, -8157791041761503052, -1958803071486003789, 7995561814538810256, 6436799742219583197, -5386107234107497189, 1105429829723289433, 5041979046245310635, 2772779352725880615, 6104391435732090158, 509237612818462766, -8907837183171812543, 8961506241364999076, 8373135239934695333, 7751397787702975214, -7720289196893704743, -5554204491061059859, -8487390470244497973, 2351786434290874202, -2862041859356855047, -6701648002700596727, -4990806288016181990, 5702555028297223797, -7412013855987842169, 646706808393679723, 2860990118563046086, 7347537387001437151, 6617834339254038549, -4724711214635521652, 6892741295472734065, -6093187166351286471, 7856072582143761513, -4312704304396901639, 5815988893927131312, -9010852855013400179, -709193276924158629, 8842697574196472282, 7172961009424657280, -3086117591933807359, 280668548915001621, 5623299142074972937, 6672160606420637960, 7754570087534551249, 4152353032828795027, 7269286384995548933, -6251412664921890878, 5732127079576970324, 7234424551899679503, -3642728981546782033, -3638300185011093242, 758429305061830090, 6807454373907029375, -2407746269258439538, 4041466388407032509, 4412608899209555624, -3826881076377531812, 8863453888803774091, -7624394860603430636, -8586227141178724702, -8333849234994046518, 5466525086493196113, 8976129229655792662, -6761513090258468865, 2757033529591673069, 2729369021924837617, -5342219263217653521, -3682680090127880756, -4024262810569674934, 5734119662788048810, 7267386939198869053, -5732042765175834343, 8098289276583123084, 5528374394051795198, -8832084056016214993, 918234824385712530, 676970414934466709, -5794527027417515112, 7833682562510519926, 27750847269835893, -2141504133172325665, -393870739762170378, 6628987571319571919, 3042161428414889656, 8319098477369136797, 3714381407608491489, 6871028708069796695, -9116209644422794377, -898115304925379815, -6100921916446089973, 2407259165779504625, -7824595574994867809, -7812941900040155346, -3874610317902165720, -383060374023677741, 2565489144529271919, -2775667212831852387, -8490494758318716088, -5768969488081270158, -4163725029626196551, 425158554688666490, 236621108823379185, 5592527110007246515, 2250712273533240792, -6996902570942094740, -4316193418261480778, -423017690736900269, 6499561801793623752, 5999756229412561116, 2122709403244307390, -6614237089257075273, -4438754439933732943, 7755990109693945275, -3828302258654058750, -4536174171928321428, -294446715323926202, 935637585377645959, 2493495210256659688, -7065985576821599091, 4771064322299072228, -8324047390232687097, -6214767548469241356, 661838500088622926, -5496419443662109009, 1769360504705134935, 8594133951145052917, 1919665994205776303, -2829008152524712179, -3534926825330291593, -5392109943851106148, -9174936343936187588, 431831984523785014, -3478733297737652068, 3625098395866689397, -2265434394587802483, 1898173869432619635, 3905980956606711904, 4899181388449222978, -8560503291870850826, 2442336170526152937, 4758854970978333179, 2576950350674509603, -3159727556622278707, 6463385243237218927, -4244656898675278709, -3639733836666543106, 5150557251574321755, -1847330250029237854, 7990644495793807288, -4844220065225521206, 5669665901579369390, -8516756017270853386, -2163641417216885795, -419690911529103853, 8389050361839906714, -4755603407177446434, -3628876977205345798, 6346120274506356620, 2897382412678952073, 2892018529361149983, -3105945328483409777, 397471260119955477, -5924914980966965208, 3259916578022711299, 3584107160451422225, 7335984245174911695, -740299529193763425, -1132793386238322552, -8882624640591065694, -3132393138391844276, 5819861013084344169, -7875274867444632753, 8187945432875751521, 2367121363901039734, 5703419689657841727, 4107383082803893848, 4567302762139612814, 4413573636895389667, -7908655157105234973, 6012542666924997773, 1543290098636558500, 1167829086925604611, 2777803534220614400, 5402112821476681615, 7508255472390188504, 4371085781904923839, 1633853775080032376, -3977888499508807807, -3454635082436672696, -5633966314565017765, -8027628515978432555, 3204939451242551097, -1194334364385733269, 4715733242512836960, -2424390587904992168, -8598491278835370190, -909646813366796865, -6282299275378582741, 1091786653924799826, -7151604730926028, -1952001457689034822, 6594682270311865613, 5297253419387719327, 7174384514581700900, 4179089671585649194, -1438112379026769819, 5863458219802778896, -6258500577607877153, -3191184177787625636, 5247643985080738052, -4249605461827630928, 848024707032423852, 2578176992048298935, 4277106059776803841, 1027307997622416172, -2034184717655156741, -4032075691921298833, -1725223926910214795, -8355218558445840600, -807432826419964742, -8691053822978844932, 5190610597372914740, -5685703413827560197, 1201444270328420824, -8573622742179143460, -5120225676224448990, -5713210850430827610, -4407146778693477095, 6616043013230938178, -455203650113225090, 1257217750953438197, 7038774887541165092, -7978022942807666493, -6027283969716886506, 2039426148959366399, 2349300899242575287, 412136285666780739, 6737962169699689176, 5396043023802829490, -7375578319123588090, 848689289605827984, -8962743046285584688, -4978454835941389091, -6810534590182341273, -7904631394849341310, 4986473973338859037, -5186820242653188418, 5733494837941841739, 220945504840061108, -6134138428611997085, 1839281472386260502, -3959944160474481058, -3734459438928472268, 3721194299693987183, 6767703249986874259, 2045991906683057358, -8742954565638258573, 2420326502842248753, -367492685541062268, 4355219222598868416, 8572842933899504804, -3701739195979978554, -7764549138235732147, -8598925157129974153, -1207019761626072373, -4766444500353057904, -7001982766296723356, -2193148807691074317, 2257290521599354392, 8810412979742623813, 8490414288126231798, 5852946775791635490, -4580603465805866303, -2205977094397869034, 246619722621583797, 8701711500730861947, -5723159815829278387, 2413055362373823891, 4026630626738278077, 626257627860460242, 2574073136387432412, 1225984626747539527, 4932610320264372136, 5801172410851190171, 7046043975985485604, 6725048163205005162, -7576705462287398067, -2531652356020173951, 6390475535474516267, 7954408693665804646, 1212769581897394400, 6930146611691842308, 3315566551407884820, -1691904946575510235, 2663199435933348098, 6910705755054739103, -1445154807745938237, -1305866680652390683, -4123655378022181618, -8064221424814919501, 7446614750020132187, -5068110728266677912, -2030505626005615587, 2000339047753778091, 8498499418863079418, 293614270927881287, -7692468401008699966, -3672609321985504948, -7142451754177878046, -2896478347708996217, 8782220829960750497, 6479357669621747111, 1193728541266948796, 2292573676038833952, -8855412556553540266, 317468215313058893, -2724448286275139831, -4850615461204879897, -864740314491768661, -2490524393871915862, -5497905834125156430, -8861963624388260436, -897462606730994032, -400305460423163334, -82260487316074112, 2335306980672653822, 7810394748744828878, -1713283213271910906, 2687818835146282560, 6112149537489265528, -7705775471756675233, -6212557483975450875, 3316513936364892531, -2247846567664673941, -6242171865364499591, 1864513425979011482, 1142454994086149910, 3839287919838368040, 506402678586865400, 7148330854725749930, -1563308216343959635, -5964480677519945158, -280002382744552497, 5866510398096934772, -4453231543043354473, -7773402607793519054, -3834638464799366814, -3278979331036933950, 3772051427216111937, 1707017430062992775, -102267837227575076, 4184520795854560136, 7597254842510533611, -8279104207355801361, 600209822568521256, -3193350568000648133, -7833434008084958161, 5377254431830388749, 6469619144829771684, 6052343019477107280, 245305866791464031, 5924851661031465757, 3055811671924051893, -7757673726764291611, 5425488801254271646, -1230513747359704646, -8856055219109968322, -4731754271270239734, -3264856159650276367, 8368480760176687700, 8143173203566375840, -1210747890098141143, 5295731456734954614, -7498167121192897541, -3428045625716315797, -4791314006867460823, 2948723375377110370, -3810064731319107123, -9202716795541515555, 6148653665839630204, 2848560055796753936, 1954069631098137796, 4697862255330998161, -193476793171573000, 9194232325669679334, 2656267557937312535, 784853794420870025, -624555491147103224, -8631140942763948473, -2331918944750595202, 6315237728705772778, 2538347749394059355, 7413989927117471885, -3517357964246821289, 5421999950889627853, -6721616076848566230, -6069691543165016804, -2059672142945104532, -1276872363769808299, -2332106662160828140, -9190658909128292389, 998308533634505219, 8907745002351060091, 9115911785525303560, -5194650919107828434, -9003424612543715863, -3769760580289899712, 7344040885552774285, -1843874887890373545, -2979057855708079246, 3927517266022277004, -6833174667206608458, 7205558902237879956, -7422227807001150653, 2892291292690035479, 1284760228866985595, 1579008536286502803, -8186844164684197837, -3187052903249540562, 8095458229268227600, -942456947636162847, -197259298036992424, 5750027500961963107, -8780627866791874144, 4516587109721854134, -6756980873638829294, 6089727200252654253, 6090966007180500784, 6469485832367150258, 3727493373269336793, 6291666731217101540, -7084732212740878330, -7903055913758755665, 4891022811619987916, -8624979534479996969, -3150803291726511210, 2623467983448099462, -7840898703047755463, 959779825982640998, -4501449511014022632, 8158799952216643156, 6178308647687332151, 3246276148886561759, -4425465515852070203, 1247832115472580356, -7050642510907647091, 1732161476419586910, -4164009650339589679, 7901878537714761394, 4178886057429322163, 7443735283409136954, 3014006097182656664, -8798335101393201203, -5618885033101121558, -569071355841480030, 1465565160996165613, 835907336590737450, 1257219254618299668, 2609819195336490748, 8938460768518194998, 1062342481094570886, -4375128033036425666, -404853979334087511, -1834092297765356110, -3519968044035730035, 342399303427600858, -2532143186992956190, -1777167417949977190, -4568326529056220102, -3304778777115413905, 5811787797216829954, -8020456284040308452, -3042194865030802631, -6446259211561084653, 4438782287801714457, 2161950337870754038, -1710982377937381651, 3293767809639986307, -8498661003156499972, 2778304605465959957, 4396759401194328589, 5809309630589945276, -3761311896714212621, 3342130357882968747, -793660217799580436, 2646163611383045898, -2416033543020295149, -6095464533266716295, 1769382373075867919, 5769921217545593205, -2763147873675394053, -1414369372293739819, 552238703840022885, 3971959281509960737, 5871938996071876746, 9144138102870479074, -7051583752714084284, 7997594892977403594, 6973237725993655918, 6759721585491969005, -8474802266062078918, 6556741587070699944, 1797176452359594013, 6068615299846548272, 6190047022681470000, 8025324066560663415, -6635968656501651102, -4801756026236962503, -2019199295183210468, -3662481029228087433, -4145069547545433261, -3049242395576128771, 4037435087481423908, 8741081107921224099, -4245153772169063194, 4568953288012583293, 7712589346562801891, -3215613063795247515, -8858591175844031521, -2087790524802605170, 1417733501490955314, -9063725495583630514, -655483526137291502, -1191912813457342762, 7566687464776014044, -8141381772450745660, -4279904944725432103, 6315788478946072243, 7002063045159257489, -6590365664777896890, -4679403751815604977, 8714069546965743554, 309533184730636769, 4316355607870589378, -8249109378692746867, -4536319397565701860, -3305013732482176309, 2701230281724653072, 2915853436366935644, -5927461005461889274, -5702708199784995265, -6433065803429162631, -4180970319895671172, 4849896012027919472, -5561528520719418585, 9123566069177685279, 622220666159857096, -708782930522252335, 5707712868431236809, 5313827561404790193, -5799394264768564243, -1774362590765209798, -6918953997843796104, -1980381867595314801, 1327414459290737935, 5553240067124633984, -6296091561738456701, 145974771717445135, -8724843072185840624, 37791342206206222, -4696476260914498163, -4576914265385553592, 5910120660565540139, -5970819293263084113, -595010541964357447, -3312166820520539819, 2138938008172669579, 1754706572008805133, 5509391222621898877, -5305407397355808074, -4612573236316801425, -788151160991829846, 3475822491801193714, 7334847274467493432, -2738273231885091334, -1394144455222408656, 8445783368824786530, 1090934155240864175, 3666668840304884557, -7481508096164382026, 5809539258269464286]), 42), 42)),) +(CR = Tensor(Dense{Int64}(Dense{Int64}(Element{0, Int64, Int64}([8294554698039956467, -2279941192816175426, 3589307988553427907, -7593990112949036348, -9044133075237715381, 5814921716775220834, 1984686205080786680, 5559296861321236943, -5768354944895451207, 1120323265964696336, -3846116119587858228, -262342919401545940, -2049971580522475001, -2211763620736824942, 5666645008031514269, -1327364040915398565, -2194547984037078177, -5969354033529683723, -1260706530325114884, -7513623401632354996, 8868380549151888102, 7623177491685914752, 2801115262965917591, 3283210314769761053, -4716892793561655300, -2288052069362467524, 6647432114356861726, -1808660770598102607, 3477321511136071709, -2083291106471311307, 1931983037678998792, -1543784239066540918, -8896434483004799611, 8304914340100503713, -1749149773188757073, -1368462329312938935, 8842032079864795141, -1273332777544346279, -8741471974913376683, -3678031711239952825, -6700798423721258528, -7371585820169692141, -8065605016636076675, -7672636988039838930, 8052062968846911257, -5715548372384509649, -8341867563147112022, -9154711993198778743, 2933732122345518678, -5605994647490154907, -2133692759629638928, -6818992290088315340, 992118422339879211, 796660569155974881, 5491138161645048288, 5593431438176231967, 4196491676969776537, -783602413421165030, -2343162328237456754, -2347667087918498914, -4136673636756609937, -6196315042773250978, -1680644584068137242, 629124823636772517, -8974230699676449460, -2521981898387533604, 102158584490734227, -476947301419400062, -3885248478543714173, 3838966950421206534, 4298966649781035557, -3553229965089205098, -2069070993183081526, 4114579515408933624, -2282975407414895203, -4010817463667493000, 2272132884598706492, -6575563091909465195, -2658398725032414884, -3364682623876156767, -7778027708949105160, -3298325222861527795, -7334123207334007089, -5452139065710288443, 1885820391848317025, -3168683330050685268, -4615465087923795216, -7125623111667442778, -136085712019972095, -4633575576292637172, -4443232576713801656, -8076496271736850097, -2991169373749732480, 3567928539132559690, -1520874962119149489, -6672722304684961988, -1342044052416051911, -4959055271284697717, 1765100301178932779, -5510766831019094681, 8762504261652914538, -1026280257437091520, -7740612711282779002, -75651066155007076, 1175917286708115796, 215650005689746159, 1074059239977842503, -3135540340322246212, 4487796223479468161, 117813528700745474, -8324379894325358325, 1757180236983103362, 6655766257549366197, -3777535527257508441, 114580098802359632, -6320944068319392490, 533238602716561034, -6831552431332570448, -8190494930775264353, 191156998276919113, -3859369208365892857, 2500343402209988606, 2031188468273843282, 1065023235612899838, -6585643968775483825, 2853372987952842246, -3176092365888706331, -4004089601980614520, 1294599066541705050, 7455638925896823104, -734522458797731096, -8477619822868967933, -7827075641126318775, 1658199605681625762, -900396499488497236, 3608798237042314711, 8142435028468432630, 8181648831838397358, 3699002468877240631, -7851053360339404453, -7285699680868015036, -8914039785447533926, 1660245175449796023, 5544688554457903268, 743884732810431664, -5193009945833911851, 4169874342607881648, -3280411169991606487, 134315025965011425, -3414457411597068721, -6053778541607745348, 4743624378245093802, 817546885620956986, 3060126976419944263, 6596746720844310770, -32670440557642426, 7773291265218164464, -2747139949208106021, 4787690020561098504, 6611779436841384171, 4004924413349104377, 4057890700771820801, 1547947635322075762, -4041605863834384811, 8083854711850129991, -3032246449125321576, -6935676039559832962, -7262552710344937689, 6638561143303018670, -2431956156442432310, -6852883101006975241, 8141551686256635351, -2793114698018293480, 2901351249282526336, -8590405837522545098, 1284768462277737195, -6960561302066832858, 2470921323386149221, -1293209798633367855, 4852470840893629285, 2821167647780664441, 6366973705476444977, 4226801472565080501, -9103879725305025059, 8176472583251538243, 8387452082259514660, -2736021226548995081, 6019809268550026078, 5843683665502852812, 3078561957169121216, -553913864285782311, -8396720008997848599, -7916910578423142081, 2474282350293529219, 3763454144318303849, -3143306749835985712, -608242219460478402, -989972312085529006, 7643836624016829132, -7758235694518870862, -8743465346336514685, 2719718679164977811, -5344475697054329836, -5382875460926617461, -2287520955119718235, 5089895164004774048, -7207379975876718081, -8499315421799027837, 5382094811866924412, 94858159835758548, 4714444885585399249, 2419486042431974568, 1178451709781345389, -3244272477430105521, -1047784102008514673, -5908281368045588844, -8819487786822738794, 7375554233921962988, 7117586722854956039, 7635043189795304941, 3647751477487297040, 8888119265583541163, 438773896985192780, 7323235085077979835, 6402386422456545962, 9119746976188580479, -339981380232968078, 7862094120031162190, 1928350441872024538, 5861817903497048633, 8789248006831377358, -3662518157867280773, 5246723151818488323, -4712120449265687255, 8916170145161342841, 6429160948844906067, -7340558410143580649, -2878118280097051778, -4708137013670504139, -6737935883573392882, -3286809900179080876, -8542648342686245264, 1705683826679995175, 1874888461382203165, -43385098015304382, -3541512226970701965, 7308519021589705414, 4657092760823067875, -8034153054673763206, 2270007119073554112, 8805059194979907611, -6506227936394196777, 6569593093608871545, -5455263039233081924, -4894608299203557538, 4907020166765653515, -3651987278181836016, 5370722016210637787, 1096862329635763807, -7546832585001031185, 1772274834989744506, -2797059347358140582, -3473640875567042896, 7692486032135901986, -8656979047320341319, 3769023647569885435, 982341113303111384, -3673687436306074461, -81446334802288730, 6604241365987180538, -8369021354568862340, -4372506992592134813, 4065316681210752413, 1563045780770436755, 7830981927612419729, -5732307671635230159, 7227897221307801531, 2010992442160439666, -1122916357391281896, 5028338562960665496, -4666933955791003754, -1636404242550753810, 1914395787243909596, 3867717114584627246, -5161185302939881190, 7944328755863357247, 3609664606705607460, -5315882602018566936, -5761904302177895735, -6809130468709054173, -4700880319524423632, -5613769913787470034, 5210287635986052957, -5731191730373361431, -9164866423631936276, -926712920787083296, 1908405553760652597, -2652471932491244161, -3697650070410053186, 815203688271104236, 2488007171374780339, 8330805294023136182, -3517636027632871239, 3868845882950791705, 735411088686162206, -2994223186984088280, -6607675160595665991, -2201949612928716154, -3192490547890152354, 8133430253359871171, 879836038470343844, -7736046093151852400, 5545981780264421978, -4341467717169434611, -5127462363124695999, 2949881086671151985, -8391405146023982934, 5904919608898826122, -2227073708090958904, 689136294291637577, -2886932334773361591, 7952202709403391192, 3153775940809706391, 1874908383608426604, 1075117585599875089, 8867274469205928536, -4375744716795996716, -3533998611034387740, 6384747161645763267, 451782236881133152, 2341915282050883711, 1031445492266793189, -1394365009673627432, -5123594722994514063, -5460177156375603901, 4157621169839366172, -5358704860857059836, 5278983455575550295, 1274050648147683138, 3126713394381709974, -3307644194743865067, -7750736059176508847, -618096002207417309, -8506818772582631348, 1513319371717577726, 7740551717965270481, -4426574321230828472, 1937385030182228455, -998535532730322164, 3697332573265195207, -9076677223602850225, 4002292324271769976, 5826441122634846875, 8171498939270188961, -8467159702287736726, 6509544541400722383, -7717347117135555451, -7966763369056639081, 8269356800200102793, -2896708088772065419, 8682479654349602266, -4175209269749908112, 2584299138910217097, -809247191664492467, 8398436003572149079, 3497234959772076571, -6205111019897946062, -1430118280471530840, 8661533972821968073, -8521448203938029843, -8360557201354951019, -3776479469046687040, -4394471295216041117, 5306288845692612157, 3056006891388602475, -1748363847809204170, 5697136015891952455, 5937714342893416629, -125618599919776279, 8260765207333016632, 6942153985967134169, 7697115243769897813, -2426405549678443871, 2055486786313550400, 2152367939828244370, -6718730947869040596, -4560975327865951570, 6821423707534902647, 8515150359172239136, -4729466015399015585, -842607049527928892, -4838398262675770925, 5471628285150179649, -4149591267856718041, -4506731485344480343, -5865996187231969021, -8376045608232065130, 2982368080335673248, 5791272695574713343, 6606369933841153328, -5715125400035016302, -4808947571611627235, 1880707490936852098, -1433671810791193193, -8438873097249883119, 8228406513569697614, -2860593376095425957, -4155754509347768111, -3859757355177839761, 3832546257082914463, -4987104937747488276, -2603264890552670585, -8828514093751435698, -244923882753137677, -5280549520179345692, -5294022225150090425, 2704134173475073295, 5822900001597655197, 8915743126126508984, -8404578397956455589, -2636964413867594330, 7773972734886365061, -3244423074490429851, 7188777215744005112, 2509236846677099113, 5975628922833554335, -6360937178477621110, -4434221168072131868, 5416863093579763768, -958253168694109934, -2618459887441939475, 4895482184605604162, -6140446091522181329, -6919984628986616591, 31268152280566262, 1462535678717326966, -1464133389559375653, 3504905418444023481, -6524409997977030579, 3385869113430274743, 4822730259655900816, 8191773831837416114, 5292449586294865386, -6090171990601960569, 5153832228516847759, 2644170584592807951, 7802797983750583734, -6167195480042020562, 2093757426299538692, 8787672015189632402, -5494401635969733668, -3638906070417731210, -3088615259430462125, -6966718357264845743, -7894833928827722438, 4456646817892110605, 4567444684714913404, 5715585842987564469, 7446569658716171357, 5563506788226812109, 7176060177395009647, 8237429551137486195, -7387886710033300740, 5898509503108719612, 7854733214036206904, 7248713092388111684, -962917874807733914, -3817171139749095979, -3598576780670027118, 2936479662060868207, 2074946433639930335, -4055715327921608745, 1618673209120928304, -4215039625426580007, 6527651964660508742, 2525116720861666747, -5087213503398874522, 4441054782473057136, 5191737829272025909, -4204370355553960444, -5494437721858174402, 4282313307494495995, 6997224429970917165, -2786762703765019577, -4090774704165674185, 4830810034714339608, 8550110279617460779, -1432899949838825034, 5070163724535877362, -9044587224043010993, -331828969708912678, -4045743947221240460, -5026588202134245205, 7387394859196808259, 8323953104565172936, -5528106662582682818, -7712553295838005157, 496614122408246046, -6261122541863392878, -4574015954428015586, -2197905781724515181, 2844546404849359771, -5279032238356719102, 8993546499667354710, 6573002144407406380, -4535089777605057592, 42079127602989245, -4203267462921212169, -5840775966360235406, 140468831591233090, -2372192320096247829, -8778251851052291231, -336668325564777739, 7264370331718102095, 6254063536340397718, 6123236786011580167, 7556731230735356441, 6110809143575471493, -3432908134227590300, -5783426087718219583, 1401578931289679630, 4860236125773274406, -7848223246551919396, -3797441023746850885, 8889006900515515775, -7001892991386329751, -504276022409278947, 4496720948204362966, -4394079210323560761, -2230295723647198700, 3251715494317547084, -5846550559678048111, 10531091634037382, 1081507583933014234, -6906271136708865836, 9084709507417847718, -6919794797543057983, -9036635487855904140, 2168389059779605725, -5402687853119908315, -5969294402598625914, -3065725471442083375, -8436847784886139522, 4499580243570143897, 4593663111924881459, 6242341792114758752, -2587473680774110753, -6346963533779961058, 1621775449938399197, -5304623462700880605, 313072979211750861, -8918803086819606236, -2901670726481028569, -3682526246592261951, 7548351179785347782, -5784090040902781223, 30695701285740113, -8511392528887732853, -212343505903814563, -1706280662728187023, -3965454636478785037, -485561088993170719, -7950090587677592836, -5540338441211352471, 5885515753065214812, -5731917489646869491, 319516077428049744, -910417023177818004, 2190841222023097499, -4456395002828951917, 1255785325280306590, -2775252394013648963, 232640318517196044, -3219784824083473065, 1045529630686363187, 8411759974186310596, -1094615808186632023, -6553950934895304754, -408316319763781313, -3176841451238048633, 4075371581935362359, 187643253600159831, -837428644143947467, -5461650288315529644, -1526919325465841362, -2954442387366988787, -4406407738182325204, 1829805892604809544, -126573444704897734, 7828995678619994488, -3305668970380320127, -1948177510863190427, -6060115724564481252, -8021616758837321162, 6960572855714557416, 350591236226749052, 2894293684535105120, -8270156129969398283, -7188224773617208772, -5046346848348099259, 1762604501393566217, -3917600212583329023, -5140095807187043821, 2237243525513954619, -5491471575519032800, 4589515224526221922, -7539760866426895222, -7037068932864253220, 8211831817367956277, -1395763541646935624, 1607573943448927879, -1505636040087400087, -122124503865255803, 4634165469973816801, -3146952822801268000, -5052196907548347629, -1241659820199679608, -6699837385241890808, 2464994060646676914, -3951993366216514883, 611342031781514911, -3565512073329093591, -8091157542284683695, -6357009554415832646, -1429579645206812482, -2061030198880877944, 8613279126438435103, -4699418513816477309, -8899719653184083570, -9156751533214451673, -8369179409893466386, -2174045754289880327, 1599071487304328536, -2221165333317956202, -7121959024856558834, 4693904663870910343, 3492234935112039157, -7267189198736873061, 4672240566207031262, 7155931176632835961, 3948405042281303031, 9221170186590954197, 4168657775701795991, 7842926999448825295, -1149692690864390610, -5151108606920029561, -526708427937813567, 7894348920840823806, 2111915680842160057, -4447152505108858331, 8128811137535223140, -2781073544192744865, -2613927713168968822, -1690346388484587737, 6876548642199495650, 1611707069120701764, 6836918745913798671, -3094017886170210818, 6236828316978813663, 1081329020158948822, -1186213594634875190, 6793406906590299321, -8809740130797831503, 1786353697273303450, 6840136804880913516, 7145347421754118327, 4462054547281554765, -5318572558201569928, -3303535985347873063, 4733051702192248506, -7326070061278184447, 8369329347074427304, 7927959850489965817, 8320087556329764783, 2193354433274004612, -7544733638699219370, -7014045369693366256, 2151577797033403336, 8933006192851897008, -5318774782760541624, -7315196304228305879, -3904941717348361503, 9005033294424616904, 3320013229488173382, -7213842621665824653, -6254056522832732416, 2745408013397436716, -7386682146393396764, -2984509115122706340, -5352396307474345222, 3274018835385278013, -7381234373720372311, 1918193944134468019, 5717967813067618971, 5454410947887301155, -97618650599649709, 2210650427815000690, -3970692241953874241, -5109866680064885784, -7925697423337014550, -8697893115030792754, -6824932659698348984, -5847467963116463090, 8615256658994433156, -1053728463713085330, -160713768715038702, -101318550931045248, -4343188737347009626, -3248115887011897910, -6402395057505262095, 1096182353871742512, 6753465784923287540, -6804624562896151215, -5837125201228162439, 1382647607087451163, 4277582916411384127, 4693186594773602005, 7683280651461172993, 267398271524978993, -8596377037167186490, -5819935517185918536, 1124318629146026182, -5042061127034683796, 77826962194866506, -2250556505242295363, 5236257964961817301, -2333821165930122393, -5301093680979268405, -1710088636309852808, -667839113832134276, 3176520658028215542, 4801050178364021757, -1931748694707043520, 2827614563385783085, -5357590726796636164, -7591311695961610974, -4482998109962336100, 5492795781228717163, 7071585097437485537, -8256511212370819639, -1033296134836724593, 545588205163843946, 4841490740364333020, 1431879702182751667, 7158281449455708963, 604852328893362626, -4732035416621109281, -8696787544095760574, 3710000897335207322, -6140563005407990027, -1485868397268390778, -5634048999810817231, 9055394178316974534, -6992655989971692377, -8379075168281811025, -4177712831863022584, 8557193642835830463, 8727652050309847405, 9101228003095798318, 342276935468733528, 2125454917839578029, -6956409807454930954, -6799943977472325249, 6504154235262509479, -8539888869393801574, -5278083227692286949, -485507237784893599, -8938331974819664179, 6277782500598935942, -430858978908780091, 423142523572608281, -7912724908260959867, 7024984236779840316, 9072978020563012791, 5909231403474564040, -6092798456170918434, -5371271227702978749, 7600418820403680403, -7817342174481767324, -1208233401998943632, -8125475038879897011, 921842133729814488, -5930943891786904273, 750759186909135111, -8474550839788589774, -38695762770562065, -3748349612018398917, 3390897881502099515, 4060669248005398560, 3947749429396924301, 1523483650689135774, 723627418186446678, -2048471960624520038, 3259321852545717832, 809625161299679418, 4172940743163814057, -5255239287699671123, 1962512671155703256, -2146694811129990436, 8523918060091283685, 3909214533264395110, 9013974636356443615, -4965640563133462743, 336600851691663085, -4857027692605061116, -1042125884295943823, -8997397798520175525, 8011258720552881883, -7678416752233649575, 882133936434857313, -8532741990298826278, 1500822475052167126, -7722457738688111658, -2412923846393933191, -8786465162638587173, -8467916395796496473, 4112408740757711666, -7436389022937243099, 4121258431372096232, 2981774707645685279, 6192549078600663801, 3593326712426288406, -4937266943212939580, 4383598015781351388, 3500367667777625099, 4265445979313189893, -7722445123572687019, -8089758488900180117, -1183512982463252734, 5100791319698432343, -7864317229507846364, -8316242451608839418, 941076088028934556, -7375280543745950464, 4092634805284438777, -218945203279289748, 2642739844500348337, -4868857381080662703, 6947840098331849963, 1316005834143845078, 7112945344492306472, 3837608633821605687, 6612953847286164681, 7369116975816483029, 8203800728707370162, 745264072414834480, 3621821338405982457, 1787248701645224414, -8725499828321224652, 5759223232994807872, -6809468993514024728, -5106996447345046008, -1716125143705151606, 8920889292959459674, 1543487363196534528, -1422401727934476138, 5860260653618727672, -3906452349894177628, -4013308462155976136, 6372558017689448063, -781237135359215281, -5144054286467933144, 4282535083589780594, 2396107973253839261, 7365801472716975191, 7316827559627905107, 575866959481419500, 1909520162061294283, -8121086638470045648, 7666955699783671898, 6764014194441244928, -1317946468755875228, -7324167591413870675, -4954190638318189280, -7486335486492237873, 5332744067378770001, -323186611794603812, -3198678866318261509, 2068713640950114482, 3069353812861597238, -6467069238341544841, 9193181258034790848, -7348692611442398875, 8747396694909907999, 3662292962193528123, -6592283124932139589, -5440340727297120619, -2150708159681829289, 5154899013155084974, 300931462916846710, 267306129028303629, -6124402025857570481, -2380862100557754478, -8322782998950903402, 2203849044199742240, 7189962897065300181, -8196293205269926822, -6129722503598130442, -5717855583525242650, -7975313698385058299, -4394814386818113299, 8439719004326965297, -1853466123124981772, -8251721808467378698, 1332718692995289516, -3809748939990651052, 1711930554606737283, 6833741922071233626, -4746950157081688732, -5467758056403617718, -45553055250825220, 1156758914636241803, 5948193078099675785, -5962488332994723134, 7740792189484702658, -6863363731893569278, 1789243812814554167, -2471776969995239390, -6732014630508503900, 1844130485483900815, -200568493491779112, -436077017430881927, 3919223787046752168, 8021529304731123514, -8610751941045982309, -6256790461359078051, 1135953594877785960, -8649939117570278886, 512081662839873769, 281686122159629418, -5413101347049893607, -5127982072271321180, 8829245259139364789, -4992060981889383422, -7011762443625431546, -8956140975323702261, -2270955087903718521, -5175011738133382439, 657640191311126730, 4091251227200427343, -6376895040745033169, -8508555100273529430, -1796050355685702518, -7479868720901504471, -5693370525191439017, -3124825009832723230, 774528893311273039, 9094157038382657252, 8134250295867635801, -926102615299587563, 2769802780729386319, -1298828413415974516, -5875668061957414574, -8567687956511688734, 233394549322687598, -5895936930699961627, 1506589231432092810, 673454251841598024, -3864419293898015851, 8769089921809615643, -1256885168795612395, 3806027142330471271, 2628293344092275199, 865800620207458536, -1382327376923515606, 5206767734543250343, 756017486055271922, 4850772404988320878, 625442543634124181, -4369974630687344896, -3695576970140377038, -9168146533523609146, -7491269378073904551, 590139486766072594, -528353216840969278, 2439540592134774917, 4441888984435367795, -4462545664660870614, 747570505408124171, -4473619033861261733, -3324092939983153226, -3873689014480318940, 5182336296753675920, 7873764258453728801, -7707472075484813175, -3499584067824619030, -4363669762455143317, -999194618656210599, -5956207405289502258, 6088854365980969717, 884915936130810611, -3403372171423376387, 295363824065805385, 2286099348201328420, -1009241209628196304, 389365988436719678, 6366665261248409318, -3000897104692751348, -8801031179767441413, 3082863725940309590, 116072542729193868, 298868359587831624, 2632026018652181729, -1838284396540890431, 2082973454121984783, 8141066170324930012, -3279079705355382969, 474704650168943363, 6226317328107536369, 4825910540062605953, 5945263003255050778, 4504821081943907717, 4368580867379439264, -2818720317675853613, -4361067299114656414, 5008345756066421481, 8031101549735632146, -4148573144730325996, -6371332763708233005, -7239302400229886016, -2014395882539237498, -4557361942559936912, 4849766911099362137, -4114671162324339357, 4721514747018921326, -5805803238004189414, 7552698164482785756, -2922840131454980906, -1669191079305453102, -2531215509889715468, 5439356077135540601, -6343114842632758846, 2629942975255414574, 8286884461927020068, -7871488877533307791, 2862083316722898491, 7087387006969898480, 606711885235407217, 1693734614856232642, 217812560108109734, -5192024600182825344, -8478414091738455841, -3883421583894329607, -3369084816838402991, -5907051089772642916, 2483299219641833672, 4013666645553606665, -602318766852464546, -1077903559315031146, 770082142730356829, 3993899725793039928, -1229458295801142802, -7427564167209533319, 5744627202631096538, -4307622145389755129, -3235672070839353056, 1509870615572337394, 5155510312138930465, -347833235362661169, 2884411256285248683, -7487719631604369919, -1423783742145509702, 1173199934709978722, 1326657929459911373, -1585920494862835341, 3047872656379971433, -7641609213374676823, 2590250378075021977, -6472628529171104197, -6927900969806126702, 1747954734382651024, -6152543370889567078, 754358163957577809, -8351318808938792381, 326825291789732117, 5557618892685483060, -5849777647240212801, 5760837234435517008, -3843804261769104675, 7222778241614397433, 8864895893229875687, -8422456700173688630, 7273523800189460156, 492179030368810476, -2391480277429268284, 750834839931384475, 8278665001739515818, -4982482698709692101, 6475385556371811030, -7853095560331657104, -5848657393720385028, 4753865672451948336, 5512849629924609485, 5116641493098583451, 2815226095414166430, -8494854239959616675, 1782078395145329791, -5158653085431633500, -4657046649979588160, -111873088748600590, -1939359841773274182, -1393657311545381938, 3519568563701362857, 612692445395799226, 2590166644063810226, 2784744666920505647, -6483266022223056305, -3130119144388962152, -5935204981350286860, 3106025523692912745, 1881736877774620439, 8193576216936208758, -975280572085523442, -1541414951107285938, 9036817538786496170, 3121172592683938345, -2312993974902646780, 2918043619159089576, -5557011336181423922, -7232783249999228981, -6808261010130612619, -1024226312373348323, 390267185930883049, -433773452758753890, -1382188157026655723, 5552684775601009220, 7423416825822047242, 5921594515673978074, 1623161230277289138, -8635996496859796366, -8341198799787506612, 3684274307140230103, -3525979106511607914, -8150260350424184478, -8532800934409415517, -4825284869295363913, 6096824428633248996, -6934839419233550764, -3952569066269370263, 8829949667617343402, -1084935265649891560, 4888155050469376768, 7759001841431655476, -632465181939387254, 6823471927599469521, 5123512777902473827, 2294694572406052559, 7293379777634816638, -3954484737852232932, -2604163955193706319, 5302199851468118708, 7941997818865972731, -2944316522978960643, -114533323212471318, 5143101534135716130, 5503830823786557143, 4293836402769053661, 2443793899823007245, -8071123656826297050, 5347773595699610761, -8929372395762077376, -1585177283667380717, 2914214588282404436, 1504725386427480254, -1023403796257129121, -3815055356083271397, -1602177549551322433, -5218135579937239946, -8682427831710675231, 6708818568356231300, 1460617358915420542, 8419233541028365779, -2203822834983361938, -1931612997367313039, -7090136942616851123, 6159601980531272771, -2924982422417083368, 8625733557184675609, 455806705506487484, -4175122711639362245, 9183344182512950169, -9205269537311193262, 1180206716364896655, -5105075516890051179, -7015458375405687643, 7461146559025422960, 9217651932099188075, -2566722736742416809, 461436019440732543, -1600352722337213990, 3717854620828942012, -1025875194482804295, 2086135012014834367, -4704994046889660330, 5403589599609442036, 8946573654584661369, -5851412813291557272, -6114186204370949459, 8846115909828536457, 2516480883147209491, -4896484736258034480, -5906029717909633600, 6265789318254371860, 5901987565094300772, -5134657975554973139, 3754493426391366020, -1024841823846166871, -375837918500718563, 951082404374829235, 4968059706062408597, 551360151702058730, -897839361899024578, 8423280353089141563, -3067730695236925986, -3026133068307276139, -347944654449501921, -940860396850113768, -8480884751044675527, 809962066770662957, 5570805929138081955, -8536365026315448451, -1785006368005680537, -7539890532479137853, -1685625021416486080, -495084654998941506, -7199283939338655440, -6322523877276066390, -1924280359267481057, 3386811195096545218, 4340173080453476318, 6364546987214926734, -5539307997095767096, 4788361980582625532, 3661405512672161742, 4604494546812057752, 8370694602000383875, 5751823553944575080, -80732473868442682, -5068975410524126635, 1331105462545369438, 598972586912857703, 5802402952647492833, 7351347543334195739, 4629965513871560492, -4477065353550525982, 4293618117058312116, -6815898000427288159, 846705003859041619, 3186171236091860712, 4576063879771282323, -1518436754082451324, 7445306181558445577, -89593885154150055, 1614218553588509528, 818189339834939969, -6927299680575465663, 774958765598804809, 4184480648866898818, 709459366790959167, -4626091224208877513, 4645906675380526157, -6375925064930762469, -8825007961980179238, -7325276889309215544, -3027372533955547264, -1927195262342876859, -667359508884563370, -5415417686542208967, -5074170138512727390, -5893063287029739857, 2536729896110987882, -6272080088435360542, 8951868953695015582, 7657733672058879951, -3591774230959004874, -4098576984620957257, -7954501087248739387, 4278808274080018333, -4189589147412854906, 3828103683445085006, 9074562452350853598, 4059407993900385140, -5997554768177503082, -4636925930469952744, 5080884309044199817, 1665616659663714146, 7970275004708093640, -3515425865023497791, -6360788715005919459, 7681345674226937024, -1591754913526476693, 5278190882276400205, -8713532464964466486, -2461950230538602509, -2727563323241331517, -287882604865952548, -4998482287525601156, -1649942588236592323, -8334141899698381045, -7269267742813065958, -7465996355516162442, -8367728504152794794, -3459103132137325384, -1442198878028866612, 1345426515571720162, 957338003967035704, -2303816575022567080, 1208712301355977128, -8664278389558935051, 2585968968163383394, -7442461843337218072, -5180740110988816831, -8127690790899584447, 1997488320728279352, 4286740531879912040, 8274874197080548026, -4090772764543241414, -4179221920081656990, 1240571758916158831, 5831155452761097247, 4491312469535288412, -2214189452237794995, 7803610570916068138, -7512765815705388819, 4495939759546582316, 5919234342593647532, 2228366347447295854, 1200108966100871600, 5690160104032373911, 7608341886840415982, -3591711374593353612, -4138862006196247025, 3035941869393087219, 6865636581281765649, -1005446072170419096, 7567108779417572888, 7837517685344243063, -150544188122666775, 4151631287228471306, 4526501527929220747, 4226079951478001946, 1202356483128737661, -2739082484678542864, 9014315043463709342, 5433171088527550481, -675011903020846570, -2390268965994021074, -6400528939907285297, 6150357763280260129, -3017666321637668155, -8521816736249195554, 9201474057859856959, 7787251696844674920, 5459333673413767625, 1426920414208397410, -6429487967293043397, -5257783894738967233, -4284393545900291341, 4495860121982827476, -46895423979592336, 1296883116656120401, 5786280337555694459, -4666319220415667626, -3461086543927012398, -7466201980694565103, -1140264047004134064, 1788452594610260380, 2122482110897982437, -967561019628217055, -3085653831748559619, 8968205811622157951, 2548019779744265006, 3102188766046202682, -2248855211814195250, 1840990658819753196, -2774269581294831808, 7736515481348219928, 9018202947188024121, 665256893255762772, 5335232103275708859, -6147769550004725594, 3101116076125687634, 8997815652593752671, -991039277422269440, 7401069779267872655, -4265706085782567959, 3543936723168736598, -156641789358572940, -3787937288235758175, 8493545078498008813, -1246104920785264932, -8472321413018125528, 2488827515048085824, 8921536292508501002, 6738563439579654225, -200494991427853633, 1522770512287049875, 27967913645549852, 4522774353626005250, 1256679544378049641, 3405255849140860312, 7600273242978473381, 23575511431754301, -4672409883425447422, -1889984186866827497, 7296992012812133386, -4352477371763479278, -7044820154857814072, -12882897692051401, 3386197820290517830, 3757006914775894255, -1373125215551940593, -3417240353472760107, 4545004743879531724, -8452197784793964824, 4011326474920807008, 5525699117455073819, -3509792888780752488, -2678176774927838959, -7865242219225730860, 910114598761973557, 8729218338529719741, 2193454523997047762, -7768649955433311043, -59570399940716217, 5379873663944752595, 6958753457463799369, -6834288079848933917, 6017726407627186015, -5605007233816630810, -2133202062587357392, 6308144618868189880, 2410467815773232712, 3362613551949800205, -8338291721789685875, 6806446490174013722, 3617871453764871716, -8089650650345025368, 3404255987694622585, 2202469573791039532, 8917069822569678336, 3673380902626594473, 2006086046514863996, 124547239434762347, -6699895425011329664, -654980885606504113, 5693921821332933733, 6240465266111347301, -5116742469232271276, -7234779267632071457, 2252310932068953919, -4826663343385305810, -5138935515462782395, 4689492763043291304, 8050868810895092300, 962693406226418360, -4449695870065690339, -8090037331985041074, 3267588726403168015, -818610592836939733, 7132156710085247201, 8105498990887613566, 5292883430792218720, -8967672561525703489, -3060374723375263315, 6471936150048936450, 2172367360780066734, -1827028870686942816, 8184252284225033604, 12627831469234390, -7044530554455258102, 4876415032581521430, -3432957251328609060, 2824204544680857114, -6957079231530010699, 8190949275851966633, 6823755481099456679, -5876393354565011558, -53970842360164026, 3853564448249494149, -2972682942843227938, -2348220370393093578, -6728559394063198303, -428422563929318788, -1957417017065146130, -4576719719265522168, 8053316042690501278, 3310213367865201347, -4112824968274046397, 9181248053861701240, 5060815935519305174, 7032513404456678609, 177101472299265594, 9016686722828226635, -3992609091501539892, 3143581933428900547, 8128180822245920683, -2491463316461667999, 2330203500336038282, -5110918847855557615, -7491970226199025008, -4282477307488025506, -7781771132730950018, 110713113935466601, 5587248837089220356, 1255960974818918754, 8698965655282249228, 1142240120158884473, -5140871044598154651, 4242316612159154748, 3196934947642219001, 4142985180027536009, 2284684766136520859, 7816460186487161689, 5634691966513170702, 826997164884838579, 3671534939283556119, -844031886846999857, -1657668728488381095, 8601048722354210748, 1874055730116185503, -1085772457483182900, -2379097533368203544, -5332523084927766221, -5720827504987796707, -500660857826907077, 4907278821539746137, 1612608063453637092, 999864768533873242, 697789296164832681, 7245427910569743072, 1915079413800755968, -5131813309895086474, 8603554651152580284, 7004256889621974285, -8841849929405732104, 6266043455441667211, 4281933208146509394, 589626416538186847, -9110023954929925113, 6228236764400239770, -9097851054913215828, -5615926735483961873, -3816309666573504094, -6658235192728664890, -3489437372181895819, 6473906457060472482, -3937193548061835672, -3330600485619962728, -1144571853544535461, -3951778588605513599, 4357554689713104672, -4357398228254444450, 4271030972656924912, -3244690036564156625, 8156367274598166522, -3931250004521385041, -2911389906840280156, 2346135012548426971, 576993460546804143, 7755992082919279476, 5029888512237914138, 4169682438101948249, 3117687678292024900, 1389717223270727909, 2970221911793514584, 5050422048466027618, -9167054139502708775, -4740218251362552892, -3553211067591049806, 2581209126211751705, 6210955990385848062, 4029216681594316343, 4757775271400889122, -3976277041015824707, -4679861032853884697, 4796453839497959957, -6840455779837473580, -9128818347027882259, 903574838146320940, 1535682736054934768, 9203128279744177178, 7825465624445881366, 4729623009342607951, -8445010477853746168, 2779359132169173177, -7787638646415434082, 8630307791021786349, 7678698831967593045, 8924323017326743858, -7838933716625602894, -5363993515335776073, -4758848622545323715, 8165749912610324377, 3890814894726346511, -224522875182829871, -8504675575833067, -3136726367779306378, 180991206201918487, 1734914536475617191, -8026633819492051296, 585377375399552857, -4057686706863967291, -8792006564640315718, 5133949230062027221, 966490915736029700, -6856276960559046469, -3209050650471783039, 1997946309212720291, -2694844664018723792, 3040950680047421026, 664257877741578415, -1549762200498106454, -6557905093166641386, -8211748983442216867, 454695318135322844, 8098973132628461804, -5374114151749928624, 250875467351983359, 8620562681172610875, 7000258589713572687, -1664130791612438228, 7543643719287184369, -7801214284011511231, 7582532710654096211, -1305082352635692836, 467279306749204029, -4699785433075779598, 6850508823342814093, -6352453380479010935, 4359866734038908518, 5902667197491083031, 7491369333420527577, 368394965541002310, 6196741845111984131, 6216658244935918994, -2752843053616425955, -1148561512128619591, -6370429481649296125, -3234284230884801704, 4606987715801616028, -2718306068765596780, 6914318796004499819, -5955316532302996313, -296482199804435617, -1622236069462721855, 3501158302851784486, -572523975562305942, 7098284566686338285, 2060918062386840664, -1036304409717708042, 2037141206169921799, -9157679456705931543, 5921174993872226438, 2258376583953503577, 1380384900532319897, 5150863500031027649, 4491459583774403100, -8799333906252164078, -7436299637009861037, -8897605254734354534, -33573020224461376, -598118414029620053, -1036032722062113417, 3112711594643544824, -6413355946478926157, -4306076522754702353, 8624135096108717536, -1391526975651603912, -2546415741280369889, 248708739663316717, -4076449748166029713, -5531141162888212301, 9157140210067052907, -7152812193245389267, -8753601697609765711, -4020732460633455383, 7187437046903224286, -5055160253822539475, 5740244605347500833, -683871540398120655, 7898025549943690712, -1290240967206721704, -1743125062461769548, 6422263519987998930, 6839574880723343706, 5874745018847963481, 5228066245330305137, -977796713401175104, -2638646963020434633, 1031149875050997514, -5269507848698839757, -5537344948493036939, 7386325726715884105, 5044850892597083588, 396022206904815266, -4634210581742012041, 5016832958586948828, 3037314680921923855, -7714084903984746866, -1202569377564993821, -7401114300118604435, 7704534374415376277, 2156604305649768794, 2817748268707172365, 1053569788744816184, -4301201223533542269, -1599613411082562407, -4955672137856541273, -6243615707262612649, 1630246511914211374, 8743683296570668073, 1389080168999368683, -5264898573472638830, -5277151964454990744, 8278880058128573084, 5988807441639222597, 4766863221614704793, 5359524312828082327, 4466911741370325898, 4190251645054681054, 6844747556036323011, 2787084668216008586, -8842753752665197773, 7811869791363827446, 1947986319779991562, 2595675121194158456, 1928698732085290081, 3445100354674624654, 4698092473852175334, -8389240440663659562, 4037095003311488799, 3612199949675998165, 7475295921963138980, 643461511745356493, 2759701459090278254, 8039108320664086624, -4789457556455813773, -3046417913880116144, 4604279469796709200, 3091999775913123966, 2525308934924979894, 4788231701303947795, -8804124782913533732, -7810151231409358469, 3914487398198805513, 7405176402717547027, -4088208378638131629, 8185598939756282511, -4923220187259011432, -4205676137230147531, 1212255400888206837, -2732932430502287969, 6968133671527913135, 6774264180253840475, 5058260994715711882, -8130125491347080982, 1149156941701589453, -6010198640283435488, 1449319895462962850, -2281107511056733355, -466571451550039668, 6685982507464898108, -3312513759151219649]), 42), 42)),) julia> @finch_code begin Ct .= 0 for i = _ @@ -20,25 +20,26 @@ julia> @finch_code begin end end quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl = ((ex.bodies[1]).bodies[1]).tns.bind.lvl Ct_lvl_2 = Ct_lvl.lvl Ct_lvl_3 = Ct_lvl_2.lvl Ct_lvl_2_locks = Ct_lvl_2.lvl.locks Ct_lvl_4 = Ct_lvl_3.lvl Ct_lvl_3_val = Ct_lvl_3.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] B_lvl_val = B_lvl.lvl.val A_lvl.shape[2] == B_lvl.shape[1] || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl.shape[2]) != $(B_lvl.shape[1]))")) @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + result = nothing pos_stop = A_lvl.shape[1] * B_lvl.shape[2] Finch.resize_if_smaller!(Ct_lvl_2_locks, pos_stop) @inbounds for idx = 1:pos_stop @@ -72,21 +73,21 @@ quote aquire_lock!(CPU(1), Ct_lvl_3atomicArraysAcc) locksArray = Ct_lvl_2_locks val = Ct_lvl_3_val - Ct_lvl_3_val = moveto(Ct_lvl_3_val, CPU(Threads.nthreads())) + Ct_lvl_3_val = (Finch).moveto(Ct_lvl_3_val, CPU(Threads.nthreads())) B_lvl_ptr_2 = B_lvl_ptr B_lvl_tbl1_2 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl1 = (Finch).moveto(B_lvl_tbl1, CPU(Threads.nthreads())) B_lvl_tbl2_2 = B_lvl_tbl2 val_2 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + B_lvl_val = (Finch).moveto(B_lvl_val, CPU(Threads.nthreads())) A_lvl_ptr_2 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_ptr = (Finch).moveto(A_lvl_ptr, CPU(Threads.nthreads())) A_lvl_tbl1_2 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl1 = (Finch).moveto(A_lvl_tbl1, CPU(Threads.nthreads())) A_lvl_tbl2_2 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + A_lvl_tbl2 = (Finch).moveto(A_lvl_tbl2, CPU(Threads.nthreads())) val_3 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + A_lvl_val = (Finch).moveto(A_lvl_val, CPU(Threads.nthreads())) Threads.@threads for i_6 = 1:Threads.nthreads() B_lvl_q_2 = B_lvl_q if B_lvl_q < B_lvl_q_step @@ -136,13 +137,13 @@ quote A_lvl_i_3 = A_lvl_tbl1[A_lvl_q_3] if A_lvl_i_3 < phase_stop_9 A_lvl_2_val = A_lvl_val[A_lvl_q_3] - Ct_lvl_3_val[Ct_lvl_2_q] = Ct_lvl_3_val[Ct_lvl_2_q] + B_lvl_2_val_2 * A_lvl_2_val + Ct_lvl_3_val[Ct_lvl_2_q] += B_lvl_2_val_2 * A_lvl_2_val A_lvl_q_3 += 1 else phase_stop_11 = min(A_lvl_i_3, phase_stop_9) if A_lvl_i_3 == phase_stop_11 A_lvl_2_val = A_lvl_val[A_lvl_q_3] - Ct_lvl_3_val[Ct_lvl_2_q] = Ct_lvl_3_val[Ct_lvl_2_q] + B_lvl_2_val_2 * A_lvl_2_val + Ct_lvl_3_val[Ct_lvl_2_q] += B_lvl_2_val_2 * A_lvl_2_val A_lvl_q_3 += 1 end break @@ -181,21 +182,21 @@ quote aquire_lock!(CPU(1), Ct_lvl_3atomicArraysAcc_2) locksArray_2 = Ct_lvl_2_locks val_4 = Ct_lvl_3_val - Ct_lvl_3_val = moveto(Ct_lvl_3_val, CPU(Threads.nthreads())) + Ct_lvl_3_val = (Finch).moveto(Ct_lvl_3_val, CPU(Threads.nthreads())) B_lvl_ptr_3 = B_lvl_ptr B_lvl_tbl1_3 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl1 = (Finch).moveto(B_lvl_tbl1, CPU(Threads.nthreads())) B_lvl_tbl2_3 = B_lvl_tbl2 val_5 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + B_lvl_val = (Finch).moveto(B_lvl_val, CPU(Threads.nthreads())) A_lvl_ptr_3 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_ptr = (Finch).moveto(A_lvl_ptr, CPU(Threads.nthreads())) A_lvl_tbl1_3 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl1 = (Finch).moveto(A_lvl_tbl1, CPU(Threads.nthreads())) A_lvl_tbl2_3 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + A_lvl_tbl2 = (Finch).moveto(A_lvl_tbl2, CPU(Threads.nthreads())) val_6 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + A_lvl_val = (Finch).moveto(A_lvl_val, CPU(Threads.nthreads())) Threads.@threads for i_8 = 1:Threads.nthreads() B_lvl_q_2 = B_lvl_q if B_lvl_q < B_lvl_q_step @@ -245,13 +246,13 @@ quote A_lvl_i_9 = A_lvl_tbl1[A_lvl_q_9] if A_lvl_i_9 < phase_stop_30 A_lvl_2_val_2 = A_lvl_val[A_lvl_q_9] - Ct_lvl_3_val[Ct_lvl_2_q_2] = Ct_lvl_3_val[Ct_lvl_2_q_2] + B_lvl_2_val_8 * A_lvl_2_val_2 + Ct_lvl_3_val[Ct_lvl_2_q_2] += B_lvl_2_val_8 * A_lvl_2_val_2 A_lvl_q_9 += 1 else phase_stop_32 = min(A_lvl_i_9, phase_stop_30) if A_lvl_i_9 == phase_stop_32 A_lvl_2_val_2 = A_lvl_val[A_lvl_q_9] - Ct_lvl_3_val[Ct_lvl_2_q_2] = Ct_lvl_3_val[Ct_lvl_2_q_2] + B_lvl_2_val_8 * A_lvl_2_val_2 + Ct_lvl_3_val[Ct_lvl_2_q_2] += B_lvl_2_val_8 * A_lvl_2_val_2 A_lvl_q_9 += 1 end break @@ -287,11 +288,10 @@ quote end end end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(Ct_lvl_2_locks, qos_2) - resize!(Ct_lvl_3_val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}((AtomicLevel){Vector{Base.Threads.SpinLock}, ElementLevel{0, Int64, Int64, Vector{Int64}}}(Ct_lvl_4, Ct_lvl_2_locks), A_lvl.shape[1]), B_lvl.shape[2])),) + resize!(Ct_lvl_2_locks, A_lvl.shape[1] * B_lvl.shape[2]) + resize!(Ct_lvl_3_val, A_lvl.shape[1] * B_lvl.shape[2]) + result = (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}((AtomicLevel){Vector{Base.Threads.SpinLock}, ElementLevel{0, Int64, Int64, Vector{Int64}}}(Ct_lvl_4, Ct_lvl_2_locks), A_lvl.shape[1]), B_lvl.shape[2])),) + result end julia> @finch begin Ct .= 0 @@ -303,7 +303,7 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Atomic([Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0)], Element{0, Int64, Int64}([-7852945239420660260, 3802864504850227773, 7132563740294941325, -7734229606977869371, 4610816547292327398, -231875892530149519, 6479067223724325995, -5993925410246119408, 7769769731936043186, 6508773581643622648, 8377470195368681305, -5026402568726958822, 1827804178661326297, 8945035746065187189, 9142616182405809812, -6444208854588150036, 3277304349445109851, 4784032081641147304, -6760158860367436072, -2973384685745632037, -8129972329073734262, 777092723910886802, -3245293789031672332, -3523460009327721843, 2918555815140811990, -8265569238908005417, 8801036620359715779, -4389685962177437849, -2137918316110048538, -3323946906471089812, -3314215782571951707, 778527069577570500, 8137954887180256780, -1449505600878168980, -606788686983349880, -4214419631996394082, -6982805642717038791, 4797874315021516200, -5482864460890143793, -9177912505471373539, -7126158702130095549, -1766466893224773589, 3638231163231949755, -4674003454091887679, 2257428816284239881, -1332826559188755030, -8548057139935380399, -6301259390274164526, -3288288979021163907, 6879439315951637090, -3835737217327853145, 6946150187905484505, 1010965014357589050, 5912572766312215522, -752662070435057852, 8324512872143105908, -8900647382996764479, 5389249056777042937, -1935499292012667397, 2848753909332170903, 9015678537102606643, 5924330619075555357, -7424534445741392445, -5600321413798073996, 8384040311367110728, 4366481991429755226, 799319475113248361, 915077563132424308, -5228690859154680766, -4955233076805992406, 7164775445931617845, -3741939346817651094, 4768331828354054553, 7629488070185682238, 2229303825265914208, -5262491359642418345, 6811771686481969504, -3925706312675979806, 4696878665903208702, 9013503350500413278, -3376912663266974892, 8653621680026928799, 1396781445024355796, 621390305019145984, 8372778663022275550, -7480329048309833839, 1560173607708756635, -3514469212498253617, 2082849966979030776, 2855014826193932577, -6098003633715037270, 4973995505549769974, -934656248683882969, -7138618497546152206, -8796608146899612477, 2599534084177250165, -3661022375209093319, 8439818100222661491, 8879020977128083301, -1369089299051099462, -5718241577534868428, -4601048383104503916, 178015583525721472, -4766352168228543906, -7581342006403310193, 5305627711042476897, -798942769184694703, -7013308532278854794, 2556970310791640083, -8310154389049907193, 1935579670641235148, -9182270706148454992, 6116070734446565692, -6638702227973546141, 650090674291676413, 8236754832241948399, -9198994051622221936, -347542563766738388, 3388642901454996993, 5348134068670085253, 5074530787207075513, 1395232644756449952, 8090997313784423115, -1550511403107108256, 8571008051355695605, 1306564260425723057, 5922529389724171586, 8799033188003922464, 5410444795730799007, -3373047473574331090, -8548302006770261151, 5021861578667389638, -432669836523104479, -6438627394278666063, -7251108417612047114, -6291884531541975330, 6537071113687438992, 8966161431802402633, -5259240086960564044, 3503163060697962605, -4065148945903097744, -1777564193334828938, 1747809001727155632, -3417070383920828456, -4980740299784891473, -559866941814657186, -6426350914229905139, -5679160652862202404, -6211678578062624482, 848841581372246207, -2989862519366817864, -9055561009588072094, 6765006199830890923, -2062587279559167170, -7502248691809669785, 7718809563802492192, 3633483956842288096, -5531671318896978179, 5326224353406326292, 6726394281003005045, -3084004046040097502, 6024523542812863783, -1763399164735930073, 4266920826307605526, 622375407618332670, 924750278369831554, 7715246185820712492, -851172504061428819, -1826385467445025486, -7822412245781439819, 8017872321912493505, 6373242139699342871, -6944882458072813137, 4697620715257964034, -4365394206032703789, -547148396038045198, -5035570107494867275, 7793404466643051559, 1881499215940437004, 1166061378200498396, 7869675745020435628, -2361412551770162450, -7930855384212681335, 1713868002622874066, 1815164889887382324, -512154663509791484, 6537275880940401093, -3910570248961609024, -3836656625145607293, -8938294775136724153, 3137992178936692074, -1150538280928728183, 6973878162312254627, 6572969588409572611, 1002231209937518033, 6908277548248118165, -6022132921017429451, -7025870997712287358, 683251940863450233, 7973207760137559178, -7276639915615857470, -103883638664277997, -5314704606673142253, -7038752337314182336, 5560169698698056371, -5881866866010041715, -4469522438057826665, -8939893843141765247, 2642101218897762188, -3300172923916323330, 3406877150223971060, -4599989828244211563, -4689672051384272495, 4279374017424089065, 4398221897453782925, 2422944416491435362, 7922267869330361805, 5995998007128456283, 6280625043231339994, 1281719705789272621, 4383174748559532813, -8546441422012175712, -7893577028946492213, 9027885389349284629, -6125149023153379003, -4956546681275572683, 5715129565539777013, 2892249326173122423, 7560337431809868738, -31750236024934407, -3810198350997910123, -1146409313986505151, -428701850515027514, -468073762720447669, -205535322238921579, 2835265798923663700, 5764913612679834112, 958810651968247391, -3797815661291407520, 6460520626648203269, 211708702104126221, 2261091765752400712, -2964977199137046896, -5182340784991289715, 3116185924188946137, -5761351368673475568, -5305436920427785009, -2907282851691115609, 447743807557596132, 63862440751247066, 3514479843707153842, 5999601496287905231, -3654531195335519906, -2542600877922342253, -7290989393844413666, 9085469624507262735, -2187820520454032667, -7971088789235032060, 7689978220151207746, -6091093344151125224, 4146313462351794903, -4167999392509592540, -9039445678299213909, -2897620361955974656, 6291529442536905084, -3374963351675626609, 5237654850422667445, -5497601031482005775, -2916886395075307235, -3883261685502767633, 9179413910741410099, 6289334284246669717, 4234089800929872794, -2655732539271996720, -3035070633871992593, -2437303472975627474, 8832963047795505553, -829388827821593367, -6040699764313360703, -8911288617151731105, 6714137128155914855, -6937785380240140879, 6843680808443863386, 8750156478448565502, 2574912636013720638, -4885946830234328537, 7521358135764728226, 535303159333155897, 8138574657622192110, 4034520194043626939, -8992321412901943906, -7281936363115109639, -8021896963196621378, -7216651923179770008, -6506422878573197942, 8915586083417585942, 5371232788505226594, -1740133450893903245, -982304251078917805, 2244112516915558506, -3114958008453226, -4610260728675861751, -1143025776890919762, 8288487391050636375, 4388285265909577760, 1232243352541145132, -7717830768524962099, 1009870943563687751, -6100861997340233106, -2693097123288405810, -8966860417189303788, 7436873303994409336, -6866257591078604457, -5486323029786467602, -749419638916086313, 387633405786106344, -2444684956722819414, -8879980142125000057, 9032213405251538238, -196725452198675903, 4109301537930725517, 6117388314164827016, 4382653125308287762, 77521133169697924, 7077666419656637399, 133555131055822904, -5646416627939285533, 5697558321456541168, 7399783912995781559, 1137891396677380707, 5074079993681838043, -657911960963882852, 1137470059873220310, 7020780662981280391, -9177001920397809522, 790362239680355816, 600172032624920855, 8543420636741980368, 4528589445176971886, -8166399503465287620, 5514186694424436532, -5432336659913866735, -9101698761136084341, 3911807348846574985, -2933766100391426874, 1800193705806185930, -7054816631402652609, 7183265689053958885, 5699677378061885134, 4220153114531888679, 8286682243768326060, -3718825949288568614, 4247279726743304081, 3401929723154371418, -7791632387902813891, -8525035833654653815, 5197629274650133894, 8571834255563384580, -615080775143020047, -9141302276862944236, 2497129230952559091, -3719206893743333508, 4697020691819045650, 8078487089138316076, -6314877087348456338, -6022391240308026330, 6950678089694500897, 5377750684446461249, -921140928622983181, -1520460049452102693, -8497197529519753794, -4051624390692544861, -2825784479508224090, -5008690521298053399, 1770783004922494527, -13148767819519113, -4503771241503652292, -4788400236276842410, 5619353998326498739, -3701011697076308480, -8034418559493520412, 6350765187233515105, 982558642287986027, -1448602610424440694, -5618483166513344245, -6278878478122580648, 7537160758203387055, -6154847048393471752, 6245902540254353496, 102968748125835682, 3380786423909888574, 3948417958341752791, -280169358260137594, 5686013332820589556, -6793945691483312138, -5657337314720073764, -2316326789392298880, -4866926317354982963, 5672048876768223736, 4801755278649149250, -8527375304959792767, 5660898524916791368, 9008328499307364991, 7282355400911599490, -4441459441233669588, 1248812713894084058, 4295529333031152182, 235010168203572616, -4332156008277813622, -3630222689564383817, 3224219654798343804, -2046414069220643115, -4768268609286612707, -4595767465089756149, 432385139172141595, 5744340903783987934, -5907814276982578230, 571373857369851574, -4615364944658920518, 985558362311014501, -5069799483088262018, -1302185237448651425, 2960234619888514885, -4221579384574605709, -33577900070920492, -1383491017420984722, -6667111422768545223, 2209578116218914144, -6192696716189832095, -8682232579400392473, 3926742208689603882, -2605251114517028176, -3432143345789886934, 956256818538240068, 7048231574365916809, 5172150567611355985, -7087473940080722223, 2829725628381946973, 6615614511402804897, 5597114989308889913, -6360862330806523233, 7263403909484904208, 1722745349057533175, -6250859958048377022, 3841932226021965555, 4544273279457948494, 6871378735684121062, 323828819100839855, -3070913893427269938, 4474858432188499679, -3027153348937151936, 6723187138491054590, -4633043728650674379, -6923489996304544514, -7608004350687835922, 8618729303360011673, 6145931189986425565, -700125041702955627, -7361791825514005778, -3052622408661881441, 8247111715450418050, 7644850195268952347, 201981812631246530, -5366187106284689552, -2029797231246849282, -8929354876130746907, 7087397157118443141, -4238258482995696907, -8690707102946532636, 698882384912534156, -4794116262100392441, 3313569380430314248, 7003634692020991413, 7153034981607221582, -5530822942131330273, 7182058408716498125, 6272977706245272491, -1611832087259919849, 6304118920652930260, 2664243321321065829, -6991256246863621561, 7763559060359215549, -1363294210753473603, -5984590649126030611, 8835145660544963598, -4339100511013335484, -7658343482117166946, 4767592705684863404, 6567026582399699474, 1241984525409511450, -5043459788309072162, -6788638110335657665, 3067875880987570325, -3386866538103387786, -3435764054745173624, 6561588844054851309, 6358866269624109218, -2265970059794978437, 981754089422755666, -5796837225499776351, -1637078045909787216, 5039180299052306271, -805267853773756628, -4916014943876365639, -4786790738315442642, -4112969230517500969, -2053067729163411292, -5506471273731989096, -9192763281442671194, -9154538478094146297, 844512131685900736, 5622194151159285613, 8194896671418306404, 1412467403218231788, 3881564188099745981, -6535023704129633935, -4422084769610503611, 2576914033266992340, -472587132304431690, -6711994900235227794, 5354997878416558687, -4192781941439730955, -8276784137446227768, 8055846518519871975, -2415348653243756702, 3420189508094535959, 632472561226799626, -316915838599081463, -4088888662813871032, 5342377372296981891, -3801097690651839512, -6717542854769676338, 5697661121986271761, 3927988631544080837, 336875038379374793, -1762255469438213123, -6027642762916463535, 8879943609619899579, -184738763864498592, 8286471420479395455, -3671168160630258225, 5320361181567019590, 8958205738403874292, 3782571393394012068, -8985467336212511099, 4358217428218486255, 5323123421330561591, 5764541270351390266, -6963051555266077147, -8117203354060625734, -3369353168590364075, 8066080865612783830, -5493399428262160806, -8062951269302324167, -7795183678321688541, 4270469270852553336, 5515134373073409924, -4715340744920803950, 2105370441481331601, 377342343915534328, 9024587429061028407, 3950645024865924468, -7513885460653066738, -5143113390221691275, -4007675874528217094, 685254662537812760, -7675519858059415042, 901700859132852851, 3306012866190376430, 2408392168740675300, -1818210664377266977, 439608055324657585, 6859135827266771568, 6142180884473663150, 1662736140744539339, -5748205425049442259, -1431038593146932184, -7772606991892607571, -348435608257889917, 3323776957236852960, -4109021388662695665, -1035387926833810113, -6252075674217952235, -1688047783032235782, 4835484251275026119, 2539574017089547948, -552211881628052457, 5384536775555840272, -8608662509892950952, 8688323792329827521, 4639288709326029154, -7997418775765929203, -536103785062713510, -6343663721617708900, -3154255286206413772, 7778544095371035370, -6087249532642040836, -2119136938453566451, -688238790820179873, -6835440198851144923, 5656672416985601506, 8173102513358076492, 8890070247690982784, -4771766013066052606, 931917254490650404, -557345458441442938, 3220011825320527555, 4758599324177870490, 7109875313372060233, 280358344723014545, 4073635623147573470, -1805499844278566084, 5814569477732551196, -2166719128253350835, 7972222541364502368, -410436740688301883, -8413621775294896865, -8989368555919190902, -7176709214957782648, 5254791890939739259, 6506593041716222957, -64275500919664736, -2441305534489441569, -8607529290606256433, 2704494450480538341, 8252863318644872588, 4942203213553244593, -1362881973065009152, 3227375449815221716, 4230416557459228451, 4888346025621830176, -3745891300561966309, -1058276989298619601, -1641422116181591194, -822466760760516658, 2825161483390831391, 5043089523958593235, 9160523363278870467, 2440291487886579299, -5076764184565375538, 4008082098413400136, -2574196012088549257, 1815165426871122463, -1810363067796950052, 4564660363457428284, -2979682748740342374, 1263528409113807511, 664902837787653319, -7730990515836195905, -2880800962758009323, -7855792495166800696, -3741677040754952297, 4706538099020817013, -9136310530026765146, 6214908330569213306, -3306943983211023738, 2006683290226313727, -5195458884941167793, 5070401159692077631, -8643576681302494805, 8696392328149980718, -2881724085663247400, -3287341067959381540, -5751614067967906600, -2388135268153109148, -8469588793806311740, 6498489205468056363, -5500244887538822899, 2180911647749845602, 8505364545645231746, 836973405812942824, -4740164100896755286, 5278723018552192484, -1437440665187625187, 1912414053442122549, 7961288608439452300, -6431662516133743485, 3288471137468863622, 1094976596329727971, 2917604787022697684, -2269332560827388244, -8443034525381127221, -7259595132044303319, -2012053671767524104, 5408651494181464015, -2202304456831760230, 5063787465367491805, -486043291012940650, 6661198455654543904, -6677120136819219766, 6873215010129388137, -8544492697357908484, -4891416620674641993, 1066350291493174315, 6140179405370666573, -2530674188465907541, -5542826884668502138, -4624987738903378785, 6055897868744384304, 1893227478513103707, -5998481717337431109, 3830666628195019250, -5913931363817003441, 3200695281108542221, -6354873668485439169, -7106406847876828463, 7267111195904963580, 7933454732992989449, -1704431805338802811, -8696936927315328156, 812223521137539840, 5028737084052092939, 3407605794075165074, 5452332172318207897, 721364426528035202, -8061778870788033499, 6206577632233922077, -3358825340647308897, 2615281023954623119, 5796586417262572998, -197225006894562884, 196909717615705016, -247775495361433931, 7935788894770135235, 2974543031667961203, 5518401755150062594, 4289467554573218060, -2110026776485502130, 7660756127445162484, 2652618791759013773, 4490480744367531310, 5560337963744008127, 1101969946984775230, 5426060883804367122, -7414569778895362694, -2574548713218219896, -8667400765660450694, -5823705257574844942, 8997571444431443269, 7042636308067180449, -5283570316461887039, 8142095188421778064, -1181296329706394604, -4106900401332576063, 5096961868284753927, 1281307679037151525, -4021426169291977454, 5964579201184846556, -4988322673323777218, -7591589437120250551, 6121551103365558066, -4487816973319572586, -1552743699661830151, -2960134158460000031, 388000481836191254, 4969717821228980736, 4894250187668109836, 3314809537038085119, 4588524784136728210, 5638475739414110754, -5684084138082962342, -1286085397614972483, 8553120024705253495, -6678458086474660614, -7506274041001472908, -5757410831092511843, 3076084975765635926, 7850034963640689904, -8651748294440545843, 194609034680985428, 8961175923080965683, -93748348755505189, -3956994964458812590, -2327127188025401628, 9187079670668733343, 6176196235074071579, 3009606879975158151, 7702825886158486334, -5855613686156591038, 7799351880585559652, 4934874524942948135, -4524815086816888633, -4965206657008516450, 269236596925883928, 1073428163366009326, 7126792485072910069, 7569987982476504769, 8262969537673837817, -7393607729414256813, 4017211294382715408, -1453708362719534126, 4307169287498447691, -9096393784442866629, 8699405990322605810, -1035874136575275173, 1501762893680666911, 1276194578649014061, 2046811301114170274, 8998489168100364093, -6765725969608803740, 3805877505873456422, -2895703504735894621, -5230950451898686709, -6669061264839270575, -5138851837205629206, -1835119422478560204, 2603594006469150259, -2868548477659140639, -7304472927563130653, -2534068374958773882, 6121172275459048511, 2422761568693286421, -3154464100737039984, 5653397006733775922, -8039795195496143176, -6114200605642013428, 4738401726556400980, 7771670936381907321, -1348538616798334459, 5166727242185760724, 2241975167395940351, -7821112919434789020, 558406059872965377, -652528105474834764, -6029896875260562574, -9057992421702200599, -216079402402926518, 887407835530247623, -4090364169749485345, -9002718339211513139, -7119863260277045123, -7186889934574275077, 1786346915042454610, -1034431575705158448, 2644876102600825848, 8628759535217154371, 1714062364326055934, 5595534221719835067, 6278270011273397462, -1987507060144813825, -4918793481045561857, 4705805374047951498, -8468046916149675701, 7176601854751293210, 56669650886358090, 2450014310347923761, 8564531909892678053, -8455196864544157950, -7257596480926253873, 6959408330130435752, 3028838432902894936, 4424195858928857704, 6121497124194972504, -5469042773842318014, 2159359821694864340, -5947113653447376879, 4773753398554759043, -4920560136873612524, 7648830520509108133, -7371898747435017516, -845894640102415955, 8686498035411426229, 5985907670960414557, -7006168817797129900, 5479137187044139679, 4647241554359727919, -7056835850526619003, -6083660857753840170, -8047496266502346341, -7226197892441689165, 741327366913048535, -3711828024047014264, 3862158898379466077, 449693655808431935, -4882540886884501973, 355059938346446172, 620553667069897427, -6713481484814371951, -7543587771860356019, 810524291612691607, -3659121362368402512, -5595441051298399244, 8088291422822166417, -6303984734444135248, 2538192324764122524, 3617704513102699155, 318441833366879701, -5816949687022080463, -9169168096039126102, 3498136889899078646, -7683733487593609117, 2509276746373528458, 5235508280732183917, 7339694618503759905, -7712552639387445993, 6759061446299827503, 9164297432474703925, -1110357104587476086, 1829423683580763459, -3799180270173028795, 8306026342220315310, -2726954641281485486, -1863888117327900205, 8290803837007910428, 3744050168945036153, 4528951249037614908, 4258594066663919620, -3980786014056604956, -6634679619236991963, -4774774115148739666, -1688262812036369479, -3034548033917499658, -6138019552428793663, 1588376700080465528, -7759058167839367430, -4775874273596731934, 3221595815258590133, -6828959650403546499, 4346943720922699157, 4321429297150868675, -8589044593817257493, -5081781874907419607, 795506955051888424, -4667459908101512289, 4206977884410966721, -5197565432654930036, 3326560315392948439, -5878101577814599326, -8546474537134600654, 4309823164209170224, -3850248640668593914, 8681749283296418130, 4990534815930281841, -7750801661905292077, -3291032507257295915, 6665735555297233110, 7050489721279484184, 3121241993847386777, 9186786829891405296, 4166168050877046636, 7493753755601945303, 6899283068593432141, -8003769299659583968, 2565085644824379929, 3944502551732855469, 2189710644855030524, 2255493561976705206, -2028904478079631879, 4294982312243112084, -5660229707439867961, 800423085895901894, 8347122627753775462, -9101577785114185615, -4216452881448732796, -5297285646106039108, 1608114244844304377, 4322600483518696469, 8241560863719005179, -4129441230004651128, 3479615647121648386, -944237097498064686, -3412316248640445049, 1216386815926349358, 2626756706523947064, 7368591831166517715, -1142163371321856898, -372851778878484647, 5995055175251528039, 5499555783411494776, 7601686492886867132, 1279886563391834469, 5165391760856510060, 482439280342617310, -7445758287171966471, 5839000974438980820, -5125341234978471209, 121392944104683131, 6179055483354016942, 9063275686698059196, 1720815667965783260, -2090747494244625688, -7864214085579409526, 6028043825066031897, -870947118366293771, 7376428769075962994, 1893490138897624353, -7559210779123390159, 5229519170995839908, 3782678275042073308, 8444457277148000247, 7575393971659806405, -4109490609317660541, -957376746896582101, -1823443228678068953, -7406349357662140793, -7066353634914162328, -932893465250817358, -6158979365981425485, -3999272364858205076, 4376092228086515820, 2513046484924596765, 1682565735361783149, 6869702267679149853, 3598461422649849004, 6721690358813739611, -5015414950752771986, 5196130127330595784, 7895850317227961581, 5701551820088369908, 4253014790918207382, 2681305943933975380, -802509536169972911, -2921706024223960837, -9084398191436379512, -7519519527403626152, 3410883059237029545, 2095075860303886315, 7914139912546804769, -5208297295218658898, -7044648509550560506, -1909323676633451912, 8930318598773654893, -8039939177580969146, 7860061109504978153, 419124991549078423, 52439998177737723, 76668279870828606, 7926117908856309254, -6792499803763550020, 3154574853391034842, 5862475602994236150, 3866940609041914244, -2451342656371401396, 6905559753998185538, -2196985923367857975, -259009949159744310, -2170183067760494195, -1717224464730633452, 5546156896245179429, 4506845207597160820, 5813836834777993870, -5037970301511180119, -6283363831235414834, -2112512675648312385, 491800089892071944, 1091841107193066408, 7222413797760368389, -4061073684265419648, -6814505748970986107, 8035167421124665899, 4919021796047562901, -8884884164310583259, 6153891825926211445, 4869639300001698143, 3837324736330986571, 8636904264010803969, -6432957171918516733, -3788559728040549625, -9017234204035095885, 7974176819879521382, 8518789095085259635, -3908843812016366962, 6951099628380613842, -8130281757214184420, 697619035660462877, -5347667485898134831, -7870811613775178028, -1834786346436674311, -333041748521768769, 5107911109826800955, 3300477209814784624, -1708767489614571672, 1525551322408592196, 9080360653706424402, 1862002907449656483, -8631288433031181655, 2969113138124740044, -6647892099329100204, -6988290737149534654, 7213791800550484241, -3515983215941949272, 2776751762191199071, 4071933170036566928, 2542857362577342497, -2837771298453665817, -3090388734688474776, 5082944286075818548, 609755467484712029, 4072847486654097862, 8529301158860902869, 946912055446259682, -2248520461543232716, 5002603540450016650, -7275890548477817354, 5552567242686637655, -269706394334676566, -7398717228811622700, -4808125464463073144, 3775199331707802161, 2135641040248441133, 5816637985293937763, -8395349302799883021, -3360643109416540838, 2829560474022851198, 352291131791977996, 8394782611214630132, 17475987862371471, -4488499446877241684, 6767262301426119887, -2769737041134652019, -3193753686399895142, 7241778878096412757, 7797099283865407968, -2671749878988612917, 4696277170143113298, -5423752625035881763, -670732946661190647, -5711362811761083541, 4199832504691110757, -8677080819421441869, 3205643745224196359, 543646793087604365, 8503219288198855644, -848262837790928773, 387374760481732684, -9059158253510589576, -5856801177533266560, -7432011656959400529, 2198315888507745377, -7784997841364446485, 5347278335471818322, -6869526283408290890, 1352984110104423676, 6604074908186486860, 3540137177162802697, 1016927313450879985, 4071162570240874321, -5551488416681382753, -1504833906763233366, -5197958147423262666, -195819750883991358, -3945019213013735347, 6902249401976467405, -8912844306838907648, 4722491225058563626, 8140893302518733651, -5690073294438117370, -343581089371292977, 7487125160865276118, 1027267844838067655, -2137534930747931929, 2809569435246364642, -4144004208315175629, 5255075717374606982, 7626373563000023350, 8149042251253369001, -8408446547381679894, 1486032901530289193, 4064054887282446575, 1589944372692791144, 8551589340706916563, -8068500293077637628, -4352463204946506034, 1104988023160260811, 4645391736645529886, 2010913571168295586, -4673266332316019224, -6129726247014324152, -8746414242767683103, 2374062997617988521, 2762859988315805754, 4077923914156429843, -9041689727396256791, 8413929943723227620, 2773700164543912806, -3519424763423213991, 3151293449748791827, 5483423829303258017, -5946703767041794347, 6924471319109536589, 7701491958403800059, -3979073630416352084, 4050296355956131792, -4739375335957240500, 1273557423668894202, -8157791041761503052, -3460628271189892145, 7995561814538810256, 6436799742219583197, -5386107234107497189, 1105429829723289433, 5041979046245310635, 2772779352725880615, 6104391435732090158, 509237612818462766, -8907837183171812543, -4849921552569347853, 8373135239934695333, 7751397787702975214, -7720289196893704743, -5554204491061059859, 7770120768186700539, 2351786434290874202, -2862041859356855047, -8299453550863835259, -4990806288016181990, 5702555028297223797, -7412013855987842169, 646706808393679723, 2860990118563046086, 7347537387001437151, 6617834339254038549, -3251203956058986562, 6892741295472734065, -6093187166351286471, 6366349407510672509, -4312704304396901639, -6195786539509038928, -1449170463311090827, -709193276924158629, 8842697574196472282, 7172961009424657280, -3086117591933807359, 280668548915001621, 5623299142074972937, 6672160606420637960, 7754570087534551249, 4152353032828795027, 7269286384995548933, -6251412664921890878, 5732127079576970324, 7234424551899679503, -3642728981546782033, -3638300185011093242, 758429305061830090, 6807454373907029375, -2407746269258439538, 3182121106579414795, 4412608899209555624, -3826881076377531812, 5352059540893878558, -7624394860603430636, -8586227141178724702, -8333849234994046518, 5466525086493196113, -4736468741174250587, -6761513090258468865, 2757033529591673069, 2729369021924837617, -1440397775663379929, -3682680090127880756, -4024262810569674934, 5734119662788048810, 7267386939198869053, -5732042765175834343, 8098289276583123084, -4126848089642629947, -8832084056016214993, 918234824385712530, 676970414934466709, -5794527027417515112, 3290964827801383201, 27750847269835893, -2141504133172325665, -393870739762170378, 7341126657537991596, 3042161428414889656, 8319098477369136797, 3714381407608491489, 6871028708069796695, -9116209644422794377, -898115304925379815, -6100921916446089973, 2407259165779504625, -7824595574994867809, -7812941900040155346, -5362156552380630972, -7636933866430767357, 2565489144529271919, -2775667212831852387, -8490494758318716088, -5768969488081270158, -4163725029626196551, 425158554688666490, 236621108823379185, 5592527110007246515, 2250712273533240792, -6996902570942094740, -4316193418261480778, -423017690736900269, 6499561801793623752, 5999756229412561116, 2122709403244307390, -6614237089257075273, -4438754439933732943, 789637292451054077, -3828302258654058750, -4536174171928321428, -294446715323926202, 935637585377645959, 2493495210256659688, -7065985576821599091, 4771064322299072228, -8324047390232687097, -5445425345608658269, 661838500088622926, 7732518589889101302, 1769360504705134935, 8594133951145052917, 1546731758972081654, -6952941121480094423, 1665047803842622879, -5392109943851106148, 6178752138086101852, 431831984523785014, -3478733297737652068, 3625098395866689397, -2265434394587802483, 1898173869432619635, 3905980956606711904, 161742211489651122, -8560503291870850826, 2442336170526152937, 4387117302429090810, 2576950350674509603, -3159727556622278707, 6463385243237218927, -4244656898675278709, -3639733836666543106, 5150557251574321755, -1847330250029237854, 7990644495793807288, 6325210485967347078, 5669665901579369390, -8516756017270853386, -2163641417216885795, -419690911529103853, 8389050361839906714, -4755603407177446434, -3628876977205345798, 6346120274506356620, 2897382412678952073, 2892018529361149983, -3105945328483409777, 397471260119955477, -5924914980966965208, 3259916578022711299, 3584107160451422225, 7335984245174911695, -740299529193763425, -1132793386238322552, -8882624640591065694, -3132393138391844276, 5819861013084344169, -7875274867444632753, 8187945432875751521, 2367121363901039734, 5683244793647259503, 4107383082803893848, 7587180870095676331, 4413573636895389667, -7908655157105234973, 6012542666924997773, 1543290098636558500, 1167829086925604611, 2777803534220614400, 5402112821476681615, -6363368269235420996, 4371085781904923839, 1633853775080032376, -690845074949180188, -3454635082436672696, -5633966314565017765, 7670209807588770713, 3204939451242551097, -1194334364385733269, -6562358138680278599, -2424390587904992168, -8598491278835370190, -909646813366796865, -6282299275378582741, 1091786653924799826, -7151604730926028, -1952001457689034822, 6594682270311865613, 5297253419387719327, 7174384514581700900, 4179089671585649194, -1438112379026769819, 7830903689545303054, -6258500577607877153, -3191184177787625636, 5247643985080738052, -4249605461827630928, 848024707032423852, 2578176992048298935, 4277106059776803841, 1027307997622416172, -2034184717655156741, -4032075691921298833, -1725223926910214795, -8355218558445840600, -807432826419964742, -8691053822978844932, 5190610597372914740, -5685703413827560197, 8834097498441652178, -8573622742179143460, -5120225676224448990, -5713210850430827610, -4407146778693477095, -1232178234092987486, -455203650113225090, 1257217750953438197, -3000992489362198928, -7978022942807666493, -6027283969716886506, 2039426148959366399, 2349300899242575287, 412136285666780739, 6737962169699689176, 5396043023802829490, -7375578319123588090, 848689289605827984, -8962743046285584688, 5005546626448703271, -6810534590182341273, 6243718176309554767, 5704504967202978556, -5186820242653188418, 5733494837941841739, 220945504840061108, -6134138428611997085, 1839281472386260502, -3959944160474481058, -3734459438928472268, 3721194299693987183, 6767703249986874259, 2045991906683057358, -8742954565638258573, 1159933107177853644, -367492685541062268, 4355219222598868416, 8572842933899504804, -3701739195979978554, -7764549138235732147, -8598925157129974153, 8630394791613539087, -4766444500353057904, -7001982766296723356, -4509281008628660053, 2257290521599354392, 8810412979742623813, 8490414288126231798, 5852946775791635490, 565991384714764421, -2205977094397869034, 246619722621583797, 8701711500730861947, -5723159815829278387, 2413055362373823891, 4026630626738278077, 626257627860460242, 9048586282554266748, 1225984626747539527, 4932610320264372136, -1601402908635975756, 7046043975985485604, 6725048163205005162, -7576705462287398067, -2531652356020173951, 6390475535474516267, 4788643053430318685, 1212769581897394400, 6930146611691842308, 5201836123535642753, -1691904946575510235, 2663199435933348098, 6910705755054739103, -1445154807745938237, -1305866680652390683, -4123655378022181618, -8064221424814919501, 7446614750020132187, -5068110728266677912, -2030505626005615587, 2000339047753778091, -9099800368377379118, 8147724146984858620, -7692468401008699966, -3672609321985504948, -7142451754177878046, -2896478347708996217, 8782220829960750497, 8924188190885341159, 1193728541266948796, 2292573676038833952, -8855412556553540266, 317468215313058893, -2724448286275139831, -4850615461204879897, -864740314491768661, -2490524393871915862, 5939397460706106640, -8861963624388260436, -897462606730994032, -400305460423163334, -82260487316074112, 2335306980672653822, 7810394748744828878, -2237567985926212329, 2687818835146282560, 6112149537489265528, -7705775471756675233, -6212557483975450875, 3316513936364892531, 3929671093886264075, -6242171865364499591, 1864513425979011482, 1142454994086149910, 2109745038183423244, -5218788255965248853, 7148330854725749930, -6350213392518178678, -5964480677519945158, -280002382744552497, 5866510398096934772, -4453231543043354473, -7773402607793519054, -3834638464799366814, -3278979331036933950, 3772051427216111937, 1707017430062992775, 6633491810638318034, 4184520795854560136, 7597254842510533611, -8279104207355801361, 600209822568521256, -3193350568000648133, -7833434008084958161, 5377254431830388749, 6469619144829771684, -5766007922421549853, 245305866791464031, 5924851661031465757, 3055811671924051893, -7757673726764291611, 5425488801254271646, -1230513747359704646, -8856055219109968322, -4731754271270239734, -3264856159650276367, 8368480760176687700, 8143173203566375840, -1210747890098141143, 5295731456734954614, -7498167121192897541, -3428045625716315797, -4791314006867460823, 2948723375377110370, -3810064731319107123, -9202716795541515555, 6148653665839630204, 2848560055796753936, 1954069631098137796, 4697862255330998161, -193476793171573000, 9194232325669679334, 2656267557937312535, 216571313074995985, -624555491147103224, -8631140942763948473, -2331918944750595202, 4397027584363125867, 2538347749394059355, 7413989927117471885, -3517357964246821289, 975658892222707909, -6721616076848566230, -6069691543165016804, -1699756216060889754, -1276872363769808299, -2332106662160828140, -9190658909128292389, 998308533634505219, 8907745002351060091, 6966162761873418126, -5194650919107828434, -9003424612543715863, -3769760580289899712, 7344040885552774285, 8580824699370710315, -2979057855708079246, 3927517266022277004, -6833174667206608458, 7205558902237879956, -7422227807001150653, 2892291292690035479, 1284760228866985595, 1579008536286502803, -8186844164684197837, -3187052903249540562, -851709603269520241, -942456947636162847, -197259298036992424, 5750027500961963107, -2018037553987817304, 4516587109721854134, -6756980873638829294, 6089727200252654253, 6090966007180500784, 6469485832367150258, 3727493373269336793, 6291666731217101540, -7084732212740878330, -7903055913758755665, -1624170516471680444, -8624979534479996969, -3150803291726511210, 2623467983448099462, -7840898703047755463, 6195459232260184637, -4501449511014022632, 8158799952216643156, -3808461453592762235, -5731376923648533699, -4425465515852070203, 1247832115472580356, -7050642510907647091, 1632564478019437796, -4164009650339589679, 7901878537714761394, 7182754167453189923, 7443735283409136954, 3014006097182656664, -5618443559635495015, -5618885033101121558, -5722427897820759491, 1465565160996165613, 835907336590737450, 1257219254618299668, 2609819195336490748, 8938460768518194998, 1062342481094570886, -4375128033036425666, -404853979334087511, -1834092297765356110, -3519968044035730035, 342399303427600858, -2532143186992956190, -1777167417949977190, -4568326529056220102, -5737232779408480624, 5811787797216829954, -8020456284040308452, -3042194865030802631, -6446259211561084653, 4438782287801714457, 2161950337870754038, -1710982377937381651, -5866004210805338489, -8498661003156499972, 2778304605465959957, 4396759401194328589, 5809309630589945276, 8218348086650361303, 3342130357882968747, -793660217799580436, 2646163611383045898, -2416033543020295149, -6095464533266716295, 1769382373075867919, 5769921217545593205, 1483513476934797680, -1414369372293739819, 552238703840022885, 3971959281509960737, 5871938996071876746, 9144138102870479074, -7051583752714084284, 7997594892977403594, 619092365854049724, -8425857984263225571, -8474802266062078918, 6556741587070699944, 7216242330947147668, 6068615299846548272, 6190047022681470000, 8025324066560663415, -6635968656501651102, -4801756026236962503, -2019199295183210468, -3662481029228087433, -4145069547545433261, -3049242395576128771, 4037435087481423908, -3298406179824595912, -4245153772169063194, 6249637735652821419, 7712589346562801891, -3215613063795247515, -8858591175844031521, -2087790524802605170, 1417733501490955314, -9063725495583630514, -655483526137291502, -1191912813457342762, 7566687464776014044, -8141381772450745660, -4279904944725432103, 6315788478946072243, 7002063045159257489, -6590365664777896890, -4679403751815604977, 8714069546965743554, 309533184730636769, 4316355607870589378, -8249109378692746867, 1715917523820996495, -3305013732482176309, -6283738402495740501, 2915853436366935644, -8412631837984923299, -5702708199784995265, -6433065803429162631, -4180970319895671172, 4566414226601749606, -5561528520719418585, 9123566069177685279, 622220666159857096, -708782930522252335, 5707712868431236809, 5313827561404790193, -5799394264768564243, -1774362590765209798, -6918953997843796104, -1980381867595314801, 1327414459290737935, 5553240067124633984, -6296091561738456701, 145974771717445135, -8724843072185840624, 37791342206206222, -5669892701680001231, -4576914265385553592, 5910120660565540139, -5970819293263084113, -595010541964357447, -3312166820520539819, 2138938008172669579, 1754706572008805133, 5509391222621898877, -5410020369828183384, -4612573236316801425, -788151160991829846, 3475822491801193714, 5968496206040960656, -2738273231885091334, -1394144455222408656, 8445783368824786530, 1090934155240864175, 3666668840304884557, -7481508096164382026, 5809539258269464286])), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Atomic([Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0)], Element{0, Int64, Int64}([6890327428561110798, -2279941192816175426, 3589307988553427907, -4232640767906270886, -9044133075237715381, 5814921716775220834, 1984686205080786680, 9061086397927623712, -7305334761889522293, 1120323265964696336, -3846116119587858228, -262342919401545940, 4465099781639392863, -2211763620736824942, 5666645008031514269, -1327364040915398565, -2194547984037078177, -5969354033529683723, -1260706530325114884, -7513623401632354996, 8868380549151888102, -7688252827115482380, 2801115262965917591, 3283210314769761053, -4716892793561655300, -2288052069362467524, 6647432114356861726, -1808660770598102607, 3477321511136071709, -541321933842117820, 1931983037678998792, -1543784239066540918, -8896434483004799611, 8304914340100503713, -1749149773188757073, -1368462329312938935, 2773257519917319869, -1273332777544346279, -8741471974913376683, -3678031711239952825, -6700798423721258528, -7371585820169692141, -5070095379162361771, -7672636988039838930, 8513184466457123138, -5715548372384509649, -8341867563147112022, -9154711993198778743, 7839807884227327651, -5605994647490154907, -2133692759629638928, -6818992290088315340, 992118422339879211, 796660569155974881, 5491138161645048288, 5593431438176231967, 4196491676969776537, -783602413421165030, -7505548251537004776, -4894434821428678410, -4136673636756609937, -6196315042773250978, -1680644584068137242, 629124823636772517, -8974230699676449460, -2521981898387533604, 102158584490734227, -476947301419400062, -3885248478543714173, 3838966950421206534, 4298966649781035557, -3553229965089205098, -2069070993183081526, 4114579515408933624, -2282975407414895203, -4010817463667493000, 2272132884598706492, -6575563091909465195, -2658398725032414884, -3364682623876156767, -7778027708949105160, -3298325222861527795, -7334123207334007089, -2620178568527066666, 1885820391848317025, -1809689919395848308, -4615465087923795216, -7125623111667442778, -136085712019972095, -4633575576292637172, -4443232576713801656, -8076496271736850097, -2991169373749732480, 3567928539132559690, -1520874962119149489, -6672722304684961988, -1342044052416051911, -4959055271284697717, 1765100301178932779, -5510766831019094681, 8762504261652914538, -1026280257437091520, -7740612711282779002, -75651066155007076, 1175917286708115796, 215650005689746159, 1074059239977842503, -3135540340322246212, -8651473182625612144, 117813528700745474, -8324379894325358325, 1757180236983103362, 6655766257549366197, -3777535527257508441, 114580098802359632, 5255671476731356193, 533238602716561034, -6831552431332570448, -3069975939161138528, 191156998276919113, -3859369208365892857, 2500343402209988606, 2031188468273843282, 6084801927996304684, -6585643968775483825, 2853372987952842246, -3176092365888706331, -4004089601980614520, 1294599066541705050, 7455638925896823104, -734522458797731096, -8477619822868967933, -7827075641126318775, 1658199605681625762, -900396499488497236, 3608798237042314711, 8142435028468432630, 8181648831838397358, 3699002468877240631, -7851053360339404453, -7285699680868015036, -8914039785447533926, 1660245175449796023, 5544688554457903268, 743884732810431664, -5193009945833911851, 4169874342607881648, -3280411169991606487, 740109633387393617, -3414457411597068721, -6053778541607745348, 4743624378245093802, 817546885620956986, 3060126976419944263, 6596746720844310770, -32670440557642426, 7773291265218164464, -2747139949208106021, 4787690020561098504, 6611779436841384171, 4004924413349104377, 4057890700771820801, 1547947635322075762, -4041605863834384811, 8083854711850129991, -3032246449125321576, -6935676039559832962, -7262552710344937689, 6638561143303018670, 8629138486666825214, -6852883101006975241, 8141551686256635351, -1364452382653690930, 2901351249282526336, -8590405837522545098, 1284768462277737195, -6960561302066832858, -5680943179817551408, 6191855644274592326, 4852470840893629285, 2821167647780664441, -2016944790852979054, 4226801472565080501, -8299844357481969923, 8176472583251538243, 8387452082259514660, -2580531537330522609, 6019809268550026078, 7383985014565391283, 3078561957169121216, -553913864285782311, -8396720008997848599, -7916910578423142081, 2474282350293529219, 3763454144318303849, 1017553452432181156, -608242219460478402, -989972312085529006, 7424117444770982588, -7758235694518870862, -8743465346336514685, 2719718679164977811, -5344475697054329836, -5382875460926617461, -2287520955119718235, -755851979808619677, -7207379975876718081, -8499315421799027837, 5382094811866924412, 94858159835758548, -8518410356026546738, 2419486042431974568, 1178451709781345389, -2891412715490904712, -1047784102008514673, 2301585637633828788, -8819487786822738794, -5301481819882246180, -5718432348353176905, 7635043189795304941, 3647751477487297040, 8888119265583541163, -8758976751002095265, 7323235085077979835, 6402386422456545962, 9119746976188580479, -339981380232968078, 7862094120031162190, 1928350441872024538, 5861817903497048633, 8789248006831377358, -2427109916992032365, 5246723151818488323, -4712120449265687255, 8916170145161342841, 6429160948844906067, -7340558410143580649, -2878118280097051778, -4708137013670504139, -6737935883573392882, -3286809900179080876, -8542648342686245264, 1705683826679995175, 1874888461382203165, -43385098015304382, -3541512226970701965, -1758477137358473977, 4657092760823067875, -8034153054673763206, 2270007119073554112, 8805059194979907611, -6506227936394196777, 6569593093608871545, 534087455402064133, -1153532872034890610, 4907020166765653515, -2968567846914676056, 5370722016210637787, 1096862329635763807, -7546832585001031185, 1772274834989744506, -2797059347358140582, -3473640875567042896, 7692486032135901986, -8656979047320341319, 2917526022556381111, -6833526356477474527, 9200461546197610548, 3108314503145315700, 6604241365987180538, -4358386518056275218, 1534771724291309767, 4065316681210752413, 1563045780770436755, 7106755852532509365, -5732307671635230159, 7227897221307801531, 2010992442160439666, -1122916357391281896, 5028338562960665496, 8636061262223520406, -1636404242550753810, 1914395787243909596, 3867717114584627246, -2522618580544469737, 7944328755863357247, 3609664606705607460, -5315882602018566936, -5761904302177895735, -2120387842794615300, -4700880319524423632, -5613769913787470034, 5210287635986052957, -8856939431749312928, -9164866423631936276, -926712920787083296, 1908405553760652597, -2652471932491244161, -3697650070410053186, 815203688271104236, 2488007171374780339, 8330805294023136182, -3517636027632871239, 3868845882950791705, 735411088686162206, -2994223186984088280, -6607675160595665991, -2201949612928716154, -3192490547890152354, 8133430253359871171, 879836038470343844, -7736046093151852400, 5545981780264421978, -4341467717169434611, -5127462363124695999, 2949881086671151985, -8391405146023982934, 5904919608898826122, -9144440787076319032, 689136294291637577, -2886932334773361591, 7952202709403391192, 3153775940809706391, 1874908383608426604, 1075117585599875089, 8867274469205928536, -4375744716795996716, -3533998611034387740, -5232750331483954024, 451782236881133152, 2341915282050883711, 8172151985369103604, -1394365009673627432, -5123594722994514063, -5460177156375603901, 4157621169839366172, -5358704860857059836, 5278983455575550295, 1274050648147683138, 3126713394381709974, -3307644194743865067, -7750736059176508847, -618096002207417309, -8506818772582631348, 1513319371717577726, 7740551717965270481, -4426574321230828472, 1937385030182228455, -998535532730322164, 3697332573265195207, -9076677223602850225, 4002292324271769976, 5826441122634846875, 8171498939270188961, -8467159702287736726, 6509544541400722383, -7717347117135555451, -7966763369056639081, 8269356800200102793, -2896708088772065419, 8682479654349602266, -4175209269749908112, 2584299138910217097, -809247191664492467, 1381803024218819472, 3497234959772076571, -6205111019897946062, -1430118280471530840, 8661533972821968073, -8521448203938029843, -8360557201354951019, -3776479469046687040, -4394471295216041117, 5306288845692612157, 3056006891388602475, -1748363847809204170, -6319814303782099420, 5937714342893416629, -125618599919776279, 8260765207333016632, 6942153985967134169, 7697115243769897813, -2426405549678443871, 2055486786313550400, 2152367939828244370, -6718730947869040596, -4560975327865951570, 6821423707534902647, 8515150359172239136, -4729466015399015585, -842607049527928892, -4838398262675770925, 5471628285150179649, -4149591267856718041, -4506731485344480343, -5865996187231969021, -8376045608232065130, 2982368080335673248, 5791272695574713343, 6606369933841153328, -5715125400035016302, -5237618934643538603, 1880707490936852098, -1433671810791193193, -8438873097249883119, 8228406513569697614, -2860593376095425957, -5920168085197321213, -3859757355177839761, 3832546257082914463, -4987104937747488276, -2603264890552670585, -8828514093751435698, -244923882753137677, -5280549520179345692, -5294022225150090425, -4914073045333139109, 5822900001597655197, 8915743126126508984, -8404578397956455589, 2599159074559944807, 7773972734886365061, -3244423074490429851, 1719119174990683945, 2509236846677099113, 5975628922833554335, -6360937178477621110, -788292733667908831, 2887872776624158549, -958253168694109934, 9117330869091396073, 4895482184605604162, 8676150951179744132, -6919984628986616591, 31268152280566262, 1462535678717326966, -1464133389559375653, 3504905418444023481, -6524409997977030579, 3385869113430274743, 4822730259655900816, 8191773831837416114, 5292449586294865386, -6090171990601960569, 5153832228516847759, 2644170584592807951, 7802797983750583734, -6167195480042020562, 2093757426299538692, 8787672015189632402, -5494401635969733668, -3638906070417731210, -3088615259430462125, -4475354658711362928, -7894833928827722438, 4456646817892110605, 4567444684714913404, 5715585842987564469, 7446569658716171357, 5563506788226812109, 7176060177395009647, 8237429551137486195, -7387886710033300740, -4980471763119016240, 7854733214036206904, 7248713092388111684, 5492092011839391750, -3817171139749095979, -7591207862802500651, 2936479662060868207, 2074946433639930335, -4055715327921608745, 1618673209120928304, -4215039625426580007, 6527651964660508742, -946321883275317281, 8374897552708527590, 4441054782473057136, 9127500922246554397, 3323925318704755300, 2416160300810132023, 4282313307494495995, 6997224429970917165, -2786762703765019577, -4090774704165674185, 4830810034714339608, 8550110279617460779, -1452738064384684260, -1691755765315614452, -9044587224043010993, -331828969708912678, -4045743947221240460, -7878105855686105689, 7387394859196808259, 8323953104565172936, -5528106662582682818, -7712553295838005157, 496614122408246046, -6261122541863392878, -4574015954428015586, -2197905781724515181, 2844546404849359771, -5279032238356719102, -6151382023751130250, 6573002144407406380, -4535089777605057592, 42079127602989245, -4203267462921212169, -5840775966360235406, 140468831591233090, -2372192320096247829, -8778251851052291231, -336668325564777739, 7264370331718102095, 3269765099837152788, 6123236786011580167, 7556731230735356441, 6110809143575471493, -3432908134227590300, -5783426087718219583, 1401578931289679630, 4860236125773274406, -7848223246551919396, -3797441023746850885, 8889006900515515775, -7001892991386329751, 9169859588556767138, 4496720948204362966, -4394079210323560761, -2230295723647198700, 3251715494317547084, -2818810727613465063, 10531091634037382, -6574515964090834616, -6906271136708865836, 9084709507417847718, -6919794797543057983, -9036635487855904140, 2168389059779605725, -5402687853119908315, -5969294402598625914, 3563984170435069944, -8436847784886139522, 1775253521704649335, 4593663111924881459, 6242341792114758752, -2587473680774110753, -6346963533779961058, 1621775449938399197, -5304623462700880605, 313072979211750861, -8918803086819606236, -2901670726481028569, -6132641914007411370, -6913751109500873694, -8862304034844263207, 30695701285740113, 6531539235367993259, -212343505903814563, -1706280662728187023, -3965454636478785037, -485561088993170719, 3976101665252002352, -5540338441211352471, 3564596801867213806, 6489487755314610587, 7702696907271101121, -8075065241346516127, 2190841222023097499, -4456395002828951917, 1255785325280306590, -2775252394013648963, 232640318517196044, -3219784824083473065, 1045529630686363187, 8411759974186310596, -4280691422928558213, -6553950934895304754, -408316319763781313, -3176841451238048633, 4075371581935362359, 187643253600159831, -837428644143947467, -5461650288315529644, -1526919325465841362, -2954442387366988787, 7714770874831818628, 1829805892604809544, -126573444704897734, 7828995678619994488, -3305668970380320127, -1948177510863190427, -6060115724564481252, -8021616758837321162, 6960572855714557416, 350591236226749052, 2894293684535105120, -8270156129969398283, 7618756952854194106, -5046346848348099259, 1762604501393566217, -3917600212583329023, -5140095807187043821, 2237243525513954619, -5491471575519032800, 4589515224526221922, -7539760866426895222, -7037068932864253220, 8211831817367956277, -1395763541646935624, 1607573943448927879, 8307931152337609179, -122124503865255803, 4634165469973816801, -3146952822801268000, -5052196907548347629, -1241659820199679608, -6699837385241890808, 2464994060646676914, -3951993366216514883, 611342031781514911, -3565512073329093591, -8091157542284683695, -6357009554415832646, -1429579645206812482, -2061030198880877944, 8613279126438435103, -4699418513816477309, -8899719653184083570, -9156751533214451673, -5327098450373659624, -2174045754289880327, 1599071487304328536, -2682796231144983368, -7121959024856558834, 4693904663870910343, 3492234935112039157, -7267189198736873061, 4672240566207031262, 7155931176632835961, 3948405042281303031, 9221170186590954197, 4168657775701795991, 7842926999448825295, -1149692690864390610, -5151108606920029561, -526708427937813567, 7894348920840823806, 2111915680842160057, -4447152505108858331, 8128811137535223140, -2781073544192744865, -2613927713168968822, -1690346388484587737, 6876548642199495650, 1611707069120701764, 6836918745913798671, -3094017886170210818, 6236828316978813663, -4536180127083931974, -1186213594634875190, 6793406906590299321, -8809740130797831503, 1786353697273303450, 6840136804880913516, 1376610386836637095, 4462054547281554765, -5318572558201569928, -3303535985347873063, 4733051702192248506, -7326070061278184447, 8369329347074427304, 7927959850489965817, 8320087556329764783, 2193354433274004612, -7544733638699219370, -5231604408646172461, 2151577797033403336, -3630615961126938570, -5318774782760541624, -7315196304228305879, -3904941717348361503, -6824525496817478056, 859605577905401788, -7213842621665824653, -6254056522832732416, -5652298361345862312, -7386682146393396764, 949839117091538378, -5352396307474345222, 738640210310170633, -7381234373720372311, 1918193944134468019, 5717967813067618971, 5454410947887301155, -97618650599649709, 2210650427815000690, -5660617011352148361, 5801341024158453384, 3277777267460406186, 5781246772573631342, -6824932659698348984, 4244535381631023936, 8615256658994433156, -1053728463713085330, -160713768715038702, -101318550931045248, -4343188737347009626, 4269206809854913114, -6402395057505262095, 1096182353871742512, 6753465784923287540, -6804624562896151215, -3902070491272084583, 1382647607087451163, 1869154773113262999, 4693186594773602005, 7683280651461172993, 267398271524978993, -8596377037167186490, -5819935517185918536, 1124318629146026182, -5042061127034683796, 77826962194866506, -2250556505242295363, 5236257964961817301, -2333821165930122393, -5301093680979268405, -1710088636309852808, -667839113832134276, 3176520658028215542, 4801050178364021757, -1931748694707043520, 2827614563385783085, -5357590726796636164, -7591311695961610974, 1315476336959596848, 5492795781228717163, -1878896769451716867, -8256511212370819639, -1033296134836724593, 545588205163843946, 4841490740364333020, 1431879702182751667, 7158281449455708963, -7631448564431039156, -4732035416621109281, -8696787544095760574, -8265442421376384490, -6140563005407990027, -1485868397268390778, -923688304585298905, 9055394178316974534, -6992655989971692377, -8379075168281811025, -4177712831863022584, 8557193642835830463, 8727652050309847405, 9101228003095798318, 342276935468733528, 2125454917839578029, -7795473510618373167, -6799943977472325249, 6504154235262509479, -8539888869393801574, -5278083227692286949, -485507237784893599, -8938331974819664179, 6277782500598935942, 6795697188417154749, 423142523572608281, -4218034603490236356, 7024984236779840316, 9072978020563012791, 5909231403474564040, -6092798456170918434, -6988933892553991393, 1982250600826180234, -7817342174481767324, -1208233401998943632, -8125475038879897011, 921842133729814488, -5930943891786904273, -4278998845352686820, -8474550839788589774, -38695762770562065, -3748349612018398917, 3390897881502099515, 4060669248005398560, 3947749429396924301, 1523483650689135774, 723627418186446678, 2599267814863891732, 3259321852545717832, 809625161299679418, -8011810762692538519, -5255239287699671123, 1962512671155703256, -2146694811129990436, 8523918060091283685, 3909214533264395110, 9013974636356443615, -4965640563133462743, 336600851691663085, -4857027692605061116, 2414966089177146081, -8031994595006148723, 8011258720552881883, -4841567232898172341, -6017736734984315879, -2350389121251217143, 1500822475052167126, -7722457738688111658, -2412923846393933191, -8786465162638587173, -8467916395796496473, -9201545908010918829, -7436389022937243099, 4121258431372096232, 2981774707645685279, 6192549078600663801, 2239507141855735662, -4937266943212939580, 4383598015781351388, 3500367667777625099, 4265445979313189893, -7722445123572687019, -8089758488900180117, 6045165134377421808, 5100791319698432343, -7864317229507846364, -8316242451608839418, 941076088028934556, -7375280543745950464, 4092634805284438777, -218945203279289748, 2642739844500348337, -4868857381080662703, 6947840098331849963, 1316005834143845078, 7112945344492306472, 3837608633821605687, 6612953847286164681, -2708905474413822518, 8203800728707370162, -667665333115193729, 2298297173892577820, 1787248701645224414, -8725499828321224652, 5759223232994807872, -6809468993514024728, -5106996447345046008, -1716125143705151606, 8920889292959459674, 1543487363196534528, -1422401727934476138, -6875173367096606369, -3906452349894177628, -4013308462155976136, 6372558017689448063, -781237135359215281, -5144054286467933144, 4282535083589780594, 2396107973253839261, 7365801472716975191, 7316827559627905107, 575866959481419500, 1909520162061294283, -8121086638470045648, 2859638368248538054, 6764014194441244928, -1317946468755875228, -7324167591413870675, -4954190638318189280, -7486335486492237873, 5332744067378770001, -323186611794603812, -3198678866318261509, 2068713640950114482, 3069353812861597238, -6467069238341544841, 9193181258034790848, -7348692611442398875, 8747396694909907999, 3662292962193528123, -6592283124932139589, -5440340727297120619, -2150708159681829289, 5154899013155084974, 300931462916846710, 267306129028303629, -6124402025857570481, -2380862100557754478, -8322782998950903402, 2203849044199742240, 7189962897065300181, -8196293205269926822, -6129722503598130442, -5717855583525242650, 5602953333822323107, -4394814386818113299, 8439719004326965297, -1853466123124981772, -8251721808467378698, -6468265281388358912, -3809748939990651052, 1711930554606737283, -8930806179946901186, 1128073246959904379, -5467758056403617718, -45553055250825220, 1156758914636241803, 5948193078099675785, -5962488332994723134, 7740792189484702658, -6863363731893569278, 1789243812814554167, -2471776969995239390, -6732014630508503900, 1844130485483900815, -200568493491779112, -436077017430881927, 3919223787046752168, 8021529304731123514, -8610751941045982309, 2491900769970361038, 1135953594877785960, -8649939117570278886, 512081662839873769, 281686122159629418, -5413101347049893607, -5127982072271321180, 8829245259139364789, -4992060981889383422, -7011762443625431546, -8956140975323702261, -2270955087903718521, -5175011738133382439, 657640191311126730, 4091251227200427343, -6376895040745033169, -8508555100273529430, -1796050355685702518, -7479868720901504471, -5693370525191439017, -3124825009832723230, 774528893311273039, 9094157038382657252, -2594721374980053369, -926102615299587563, 2769802780729386319, -1298828413415974516, -5875668061957414574, -8567687956511688734, 233394549322687598, 5134640738553506267, 1506589231432092810, 673454251841598024, -3864419293898015851, -4546733640323423295, -1256885168795612395, -2343815280982982225, 2628293344092275199, 865800620207458536, -1382327376923515606, 5206767734543250343, 756017486055271922, 4850772404988320878, -663553206968607637, -5509160184204113214, -3695576970140377038, -9168146533523609146, -7491269378073904551, -6267617133518579094, -528353216840969278, 2439540592134774917, 4441888984435367795, -4462545664660870614, 747570505408124171, 401797950445292427, -3324092939983153226, -3873689014480318940, 5182336296753675920, 7873764258453728801, 7014262476081928616, -3499584067824619030, 1344877861478481526, 5469107153228227900, -5956207405289502258, 6088854365980969717, 884915936130810611, -3403372171423376387, 295363824065805385, -5062502498413589220, -1009241209628196304, 389365988436719678, 3103943042928171802, -3000897104692751348, -6712447631233122461, 3082863725940309590, 116072542729193868, 298868359587831624, 2907319611001266877, -1838284396540890431, 2082973454121984783, -5161203116080320320, 7282860745056959634, 474704650168943363, 6226317328107536369, 4825910540062605953, 5945263003255050778, 4504821081943907717, -7598018404869471239, -2818720317675853613, -4361067299114656414, 5008345756066421481, -8849124832622501767, -4148573144730325996, -6526827364186854224, -7239302400229886016, -2014395882539237498, -4557361942559936912, 861107001019165001, -4114671162324339357, 4721514747018921326, -5805803238004189414, 7552698164482785756, 7497316560639380357, -1669191079305453102, -2531215509889715468, 5439356077135540601, 2911737040468451421, 2629942975255414574, 8286884461927020068, -7871488877533307791, 2862083316722898491, 7087387006969898480, 606711885235407217, 1693734614856232642, 217812560108109734, -5192024600182825344, -8478414091738455841, -3883421583894329607, -3369084816838402991, -5907051089772642916, 2483299219641833672, 7172282743255780479, -602318766852464546, -1077903559315031146, 770082142730356829, 3993899725793039928, -1229458295801142802, -7427564167209533319, 5744627202631096538, -4307622145389755129, -8430207265372188331, 1509870615572337394, 5155510312138930465, -347833235362661169, 7129984587994260576, -7487719631604369919, -1423783742145509702, 1173199934709978722, 1326657929459911373, -1585920494862835341, -3975994624345999391, -8976387390288710492, 2590250378075021977, -1426734627869002447, -6927900969806126702, 1747954734382651024, -6152543370889567078, 754358163957577809, -8351318808938792381, 326825291789732117, 5557618892685483060, -5849777647240212801, 5760837234435517008, -3843804261769104675, 7222778241614397433, 8864895893229875687, -8422456700173688630, 7273523800189460156, 492179030368810476, -2391480277429268284, 750834839931384475, 8278665001739515818, -4982482698709692101, 6475385556371811030, -7853095560331657104, -5848657393720385028, -3364380733318459954, -8546827743546458805, 5116641493098583451, 2815226095414166430, -8494854239959616675, 1782078395145329791, -5158653085431633500, -4657046649979588160, -111873088748600590, -1939359841773274182, -1393657311545381938, -7275447868482485976, 612692445395799226, 2590166644063810226, 2784744666920505647, -6483266022223056305, -3130119144388962152, -5935204981350286860, 6746183148444015223, 1881736877774620439, 8193576216936208758, -975280572085523442, -1541414951107285938, 8720882032155484537, 3121172592683938345, -2312993974902646780, -6748613446494416376, -5557011336181423922, -7232783249999228981, -6808261010130612619, -1024226312373348323, 390267185930883049, -433773452758753890, -1382188157026655723, 5552684775601009220, 7423416825822047242, 5921594515673978074, 1623161230277289138, -8635996496859796366, -8341198799787506612, 3684274307140230103, -3525979106511607914, -8150260350424184478, -8532800934409415517, -2289292315123368766, 6096824428633248996, -6934839419233550764, -3952569066269370263, 8829949667617343402, 5864957961624401730, 4888155050469376768, 7759001841431655476, -632465181939387254, 6823471927599469521, 5123512777902473827, 2294694572406052559, 7293379777634816638, -3954484737852232932, -2604163955193706319, 5302199851468118708, 7941997818865972731, -2944316522978960643, -114533323212471318, 5143101534135716130, 5503830823786557143, 4293836402769053661, 2443793899823007245, 4664151635658311636, 5347773595699610761, -8929372395762077376, -1585177283667380717, 2914214588282404436, 1504725386427480254, -1023403796257129121, -3815055356083271397, -1602177549551322433, 4464340290292481424, 2596283952846398759, 6708818568356231300, 1460617358915420542, 8419233541028365779, -2203822834983361938, -1931612997367313039, -7090136942616851123, 6159601980531272771, -2924982422417083368, 8625733557184675609, 4966400309055554077, -8420955481265415186, 9183344182512950169, -9205269537311193262, 1180206716364896655, 5649332854950898528, -7015458375405687643, 7461146559025422960, 9217651932099188075, 4216402007961329410, 461436019440732543, -1600352722337213990, 3717854620828942012, -1025875194482804295, 2086135012014834367, -4704994046889660330, 5403589599609442036, 372037190386320350, -5851412813291557272, -5170328938926897777, 8846115909828536457, 2516480883147209491, -4896484736258034480, -5906029717909633600, 6265789318254371860, -4184972177002461374, 2969877626312101119, 3754493426391366020, -5988933217627427307, -506504264594884287, -2306219102686063308, 4968059706062408597, 551360151702058730, -897839361899024578, 8423280353089141563, -3067730695236925986, -3026133068307276139, -347944654449501921, -940860396850113768, -8480884751044675527, 809962066770662957, 5570805929138081955, -8536365026315448451, -1785006368005680537, -7539890532479137853, -1685625021416486080, -495084654998941506, -7199283939338655440, -6322523877276066390, -1924280359267481057, 3386811195096545218, 4340173080453476318, 6364546987214926734, -2912796951270685079, 8400259745492783989, 3661405512672161742, 4604494546812057752, 8370694602000383875, 5751823553944575080, -80732473868442682, -5068975410524126635, 1331105462545369438, 598972586912857703, 5802402952647492833, 7351347543334195739, 4629965513871560492, -4477065353550525982, 4293618117058312116, -6815898000427288159, 846705003859041619, 3186171236091860712, 4576063879771282323, -1518436754082451324, 7445306181558445577, -89593885154150055, 2904823363991754002, 818189339834939969, -6927299680575465663, 774958765598804809, 4184480648866898818, 709459366790959167, -4626091224208877513, -4003719419553378414, -6375925064930762469, -8825007961980179238, -7325276889309215544, -3027372533955547264, -1927195262342876859, -667359508884563370, -5415417686542208967, -3784508763376007847, -5893063287029739857, 2536729896110987882, -6272080088435360542, 8951868953695015582, 7657733672058879951, -3591774230959004874, 4601441236653546432, -7954501087248739387, 4278808274080018333, -4189589147412854906, 3828103683445085006, 9074562452350853598, 4059407993900385140, -5997554768177503082, -4636925930469952744, 5080884309044199817, 1665616659663714146, 7970275004708093640, -3515425865023497791, -6360788715005919459, 7681345674226937024, -1591754913526476693, 5278190882276400205, -8713532464964466486, -2461950230538602509, -2727563323241331517, -287882604865952548, -4998482287525601156, -1649942588236592323, -8334141899698381045, -7269267742813065958, -7465996355516162442, -8367728504152794794, -3459103132137325384, -1442198878028866612, 1345426515571720162, 957338003967035704, -2303816575022567080, 1208712301355977128, -8664278389558935051, -6574363558896842278, -7442461843337218072, -5180740110988816831, -6146405288281139548, 1997488320728279352, 7990081663600268439, 8274874197080548026, -386791932584511903, -4179221920081656990, 1240571758916158831, -1588596297266368324, 4491312469535288412, -2214189452237794995, 7803610570916068138, -5640046785458659998, -7392020203068829438, 5919234342593647532, 2228366347447295854, -8249544441613091232, -3099994497127353743, -8712297251007557648, -8444081228236190486, -4138862006196247025, 3035941869393087219, 6865636581281765649, -1005446072170419096, 7567108779417572888, 7837517685344243063, 7670447677317119573, 4151631287228471306, 4526501527929220747, 4226079951478001946, 1202356483128737661, -2739082484678542864, 4391123101800491274, 5433171088527550481, -675011903020846570, -2390268965994021074, -6400528939907285297, 6150357763280260129, -3017666321637668155, -1053021560348986776, 9201474057859856959, 7787251696844674920, 5459333673413767625, 1426920414208397410, -6429487967293043397, -5257783894738967233, -4284393545900291341, 4495860121982827476, -46895423979592336, 1296883116656120401, 5786280337555694459, -4666319220415667626, -3461086543927012398, -7466201980694565103, -1140264047004134064, 1788452594610260380, 2122482110897982437, -5293404697371027017, -3085653831748559619, 8968205811622157951, 2548019779744265006, 3102188766046202682, -2248855211814195250, 1840990658819753196, -2774269581294831808, 7736515481348219928, -7581335344458835462, 665256893255762772, 5335232103275708859, -6147769550004725594, 3101116076125687634, 8997815652593752671, -991039277422269440, 7401069779267872655, -4265706085782567959, 3543936723168736598, -156641789358572940, -4629238417234483327, 8493545078498008813, -1246104920785264932, -8472321413018125528, 2488827515048085824, 8921536292508501002, 6738563439579654225, -200494991427853633, 1522770512287049875, 27967913645549852, 4522774353626005250, 1256679544378049641, 3405255849140860312, 7600273242978473381, 23575511431754301, -4672409883425447422, -1889984186866827497, 7296992012812133386, 7613921948614865957, -7044820154857814072, -12882897692051401, 3386197820290517830, 3757006914775894255, -1373125215551940593, -3417240353472760107, 4545004743879531724, -8452197784793964824, 4011326474920807008, 5525699117455073819, -3509792888780752488, 7747786058626772811, -7865242219225730860, 910114598761973557, 8729218338529719741, 2193454523997047762, 4953648112241098125, -59570399940716217, -6891932827762610950, 688729686249553424, -6834288079848933917, 6017726407627186015, -5605007233816630810, -2133202062587357392, 6308144618868189880, 2410467815773232712, 3362613551949800205, -8338291721789685875, 6806446490174013722, 3617871453764871716, -8089650650345025368, 3404255987694622585, 2202469573791039532, -7038901024420444641, 7326487216627937675, 2006086046514863996, -4848829373502046379, -6687748984161091542, -4704499280845394759, 5693921821332933733, 6240465266111347301, -5116742469232271276, -7234779267632071457, 2252310932068953919, -8595127224043306421, -5138935515462782395, 4689492763043291304, 8050868810895092300, 962693406226418360, -4449695870065690339, 8935126896712982994, 3267588726403168015, -818610592836939733, 7132156710085247201, 8105498990887613566, 5292883430792218720, -8967672561525703489, -3060374723375263315, 6471936150048936450, 2172367360780066734, -1827028870686942816, 8184252284225033604, 12627831469234390, -2395062585798175981, 4876415032581521430, -3432957251328609060, 2824204544680857114, -6957079231530010699, 1714026339693802571, 6823755481099456679, 1364401565068280193, -53970842360164026, 3853564448249494149, -2972682942843227938, -2348220370393093578, -6728559394063198303, -428422563929318788, -1957417017065146130, -4576719719265522168, 8053316042690501278, 3310213367865201347, -4112824968274046397, 9181248053861701240, 5060815935519305174, 7032513404456678609, 177101472299265594, 9016686722828226635, -3992609091501539892, 3143581933428900547, 8128180822245920683, -2491463316461667999, 2330203500336038282, -5110918847855557615, -7491970226199025008, -4282477307488025506, -7781771132730950018, 110713113935466601, 5587248837089220356, 1255960974818918754, 8698965655282249228, 1142240120158884473, -5140871044598154651, 4242316612159154748, 3196934947642219001, 4142985180027536009, 2284684766136520859, 7816460186487161689, 5634691966513170702, 826997164884838579, 3671534939283556119, -844031886846999857, -1657668728488381095, 8601048722354210748, -4666584954286161010, -1085772457483182900, -2379097533368203544, -5332523084927766221, -5720827504987796707, -500660857826907077, 4907278821539746137, 1612608063453637092, 999864768533873242, -7685650682105223826, 7245427910569743072, 1915079413800755968, -5131813309895086474, 8603554651152580284, -3652229143877557486, -8841849929405732104, 6266043455441667211, 4281933208146509394, 589626416538186847, 5635303622841263125, -8667555342721547899, -9097851054913215828, -5615926735483961873, -3816309666573504094, -6658235192728664890, -3489437372181895819, 6473906457060472482, 4084129016480245043, -4883048595868761561, -1144571853544535461, -3951778588605513599, 4357554689713104672, -4357398228254444450, 1145204610306466049, -3244690036564156625, 8156367274598166522, -3931250004521385041, -2911389906840280156, 2346135012548426971, 576993460546804143, 7755992082919279476, 5029888512237914138, 4169682438101948249, 3117687678292024900, 2812443196596217794, 2970221911793514584, 5050422048466027618, -9167054139502708775, -4740218251362552892, -3553211067591049806, 2581209126211751705, 6210955990385848062, 4029216681594316343, 4757775271400889122, 2168566460174157610, -4679861032853884697, 4796453839497959957, -6840455779837473580, -9128818347027882259, 903574838146320940, 1535682736054934768, 9203128279744177178, 7825465624445881366, 4729623009342607951, -8445010477853746168, 2779359132169173177, -7787638646415434082, 8630307791021786349, 7678698831967593045, 8924323017326743858, -7838933716625602894, -5363993515335776073, -4758848622545323715, 8165749912610324377, 3890814894726346511, -224522875182829871, -8504675575833067, -3136726367779306378, 1730973323036014299, 1734914536475617191, -8026633819492051296, 585377375399552857, 4964974511298566884, -8792006564640315718, 5133949230062027221, 966490915736029700, -6856276960559046469, -3209050650471783039, 1997946309212720291, -2694844664018723792, 3040950680047421026, 664257877741578415, -1549762200498106454, -6557905093166641386, -8211748983442216867, 454695318135322844, 8098973132628461804, -5374114151749928624, 250875467351983359, 8620562681172610875, 7000258589713572687, -1664130791612438228, 7543643719287184369, -7801214284011511231, 7582532710654096211, -1305082352635692836, 467279306749204029, -4699785433075779598, 6850508823342814093, -6352453380479010935, 4359866734038908518, 5902667197491083031, 7491369333420527577, 368394965541002310, 6196741845111984131, 6216658244935918994, -2752843053616425955, -1148561512128619591, -6370429481649296125, -3234284230884801704, 4606987715801616028, -2718306068765596780, 6914318796004499819, -5955316532302996313, -296482199804435617, 3919412655103512781, 6269319759630105643, -572523975562305942, 7098284566686338285, 2060918062386840664, -224632482533677750, 2037141206169921799, 1111659287311468957, 845168212116422988, 2258376583953503577, 1380384900532319897, 5150863500031027649, 4491459583774403100, -8799333906252164078, -7436299637009861037, -8897605254734354534, -33573020224461376, -598118414029620053, -1036032722062113417, 3112711594643544824, -6413355946478926157, 260077946076331348, 8624135096108717536, -1391526975651603912, -2546415741280369889, 6725196710923716083, 1498135459392738623, -5531141162888212301, 9157140210067052907, -7152812193245389267, -8753601697609765711, 4234813085864327843, 7187437046903224286, -5055160253822539475, 5740244605347500833, -683871540398120655, 7898025549943690712, -1290240967206721704, -1743125062461769548, 6422263519987998930, 6839574880723343706, 5874745018847963481, 5228066245330305137, -977796713401175104, -2638646963020434633, 1031149875050997514, -5269507848698839757, -5537344948493036939, 952640385806733361, 5044850892597083588, 396022206904815266, -4634210581742012041, 5016832958586948828, 3037314680921923855, -7714084903984746866, -1202569377564993821, -7401114300118604435, 7704534374415376277, 2156604305649768794, 2817748268707172365, 1053569788744816184, -4301201223533542269, -1599613411082562407, -4955672137856541273, -6243615707262612649, 1630246511914211374, 8743683296570668073, 1389080168999368683, -5264898573472638830, -5277151964454990744, 8278880058128573084, 5988807441639222597, 4766863221614704793, 5359524312828082327, 4466911741370325898, 4190251645054681054, 6844747556036323011, -794352884304297490, 4270533900276389769, 7811869791363827446, 1947986319779991562, 2595675121194158456, 1928698732085290081, 3445100354674624654, 4698092473852175334, 2325570931244996584, -5209475154473419273, 3612199949675998165, 7475295921963138980, 643461511745356493, 2759701459090278254, -189151161835056444, -4789457556455813773, -3046417913880116144, -8433861090395941960, 3091999775913123966, 5879136492948900995, 4788231701303947795, -8804124782913533732, 792440245580090219, 3914487398198805513, 7405176402717547027, -4088208378638131629, 8185598939756282511, 1102615283913532604, -4205676137230147531, 1212255400888206837, -2732932430502287969, 6968133671527913135, 6774264180253840475, 5058260994715711882, -8130125491347080982, 1149156941701589453, -6010198640283435488, 1449319895462962850, -2281107511056733355, -466571451550039668, 6685982507464898108, -299126195897750697])), 42), 42)),) julia> @finch_code begin Ct .= 0 for i = _ @@ -315,26 +315,27 @@ julia> @finch_code begin end end quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl = ((ex.bodies[1]).bodies[1]).tns.bind.lvl Ct_lvl_2 = Ct_lvl.lvl Ct_lvl_3 = Ct_lvl_2.lvl Ct_lvl_2_locks = Ct_lvl_2.lvl.locks Ct_lvl_4 = Ct_lvl_3.lvl Ct_lvl_3_val = Ct_lvl_3.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] B_lvl_val = B_lvl.lvl.val A_lvl.shape[2] == B_lvl.shape[1] || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl.shape[2]) != $(B_lvl.shape[1]))")) @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" @warn "Performance Warning: non-concordant traversal of B[k, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + result = nothing pos_stop = A_lvl.shape[1] * B_lvl.shape[2] Finch.resize_if_smaller!(Ct_lvl_2_locks, pos_stop) @inbounds for idx = 1:pos_stop @@ -344,25 +345,25 @@ quote Finch.fill_range!(Ct_lvl_3_val, 0, 1, pos_stop) for i_4 = 1:A_lvl.shape[1] locksArray = Ct_lvl_2_locks - Ct_lvl_2_locks = moveto(Ct_lvl_2_locks, CPU(Threads.nthreads())) + Ct_lvl_2_locks = (Finch).moveto(Ct_lvl_2_locks, CPU(Threads.nthreads())) val = Ct_lvl_3_val - Ct_lvl_3_val = moveto(Ct_lvl_3_val, CPU(Threads.nthreads())) + Ct_lvl_3_val = (Finch).moveto(Ct_lvl_3_val, CPU(Threads.nthreads())) B_lvl_ptr_2 = B_lvl_ptr - B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_ptr = (Finch).moveto(B_lvl_ptr, CPU(Threads.nthreads())) B_lvl_tbl1_2 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl1 = (Finch).moveto(B_lvl_tbl1, CPU(Threads.nthreads())) B_lvl_tbl2_2 = B_lvl_tbl2 - B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + B_lvl_tbl2 = (Finch).moveto(B_lvl_tbl2, CPU(Threads.nthreads())) val_2 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + B_lvl_val = (Finch).moveto(B_lvl_val, CPU(Threads.nthreads())) A_lvl_ptr_2 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_ptr = (Finch).moveto(A_lvl_ptr, CPU(Threads.nthreads())) A_lvl_tbl1_2 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl1 = (Finch).moveto(A_lvl_tbl1, CPU(Threads.nthreads())) A_lvl_tbl2_2 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + A_lvl_tbl2 = (Finch).moveto(A_lvl_tbl2, CPU(Threads.nthreads())) val_3 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + A_lvl_val = (Finch).moveto(A_lvl_val, CPU(Threads.nthreads())) Threads.@threads for i_5 = 1:Threads.nthreads() A_lvl_q = A_lvl_ptr[1] A_lvl_q_stop = A_lvl_ptr[1 + 1] @@ -443,7 +444,7 @@ quote phase_stop_10 = min(B_lvl_i_2, phase_stop_8) if B_lvl_i_2 == phase_stop_10 B_lvl_2_val = B_lvl_val[B_lvl_q_2] - Ct_lvl_3_val[Ct_lvl_2_q] = Ct_lvl_3_val[Ct_lvl_2_q] + A_lvl_2_val * B_lvl_2_val + Ct_lvl_3_val[Ct_lvl_2_q] += A_lvl_2_val * B_lvl_2_val B_lvl_q_2 += 1 end break @@ -480,7 +481,7 @@ quote phase_stop_15 = min(B_lvl_i_2, phase_stop_13) if B_lvl_i_2 == phase_stop_15 B_lvl_2_val_2 = B_lvl_val[B_lvl_q_2] - Ct_lvl_3_val[Ct_lvl_2_q_2] = Ct_lvl_3_val[Ct_lvl_2_q_2] + A_lvl_2_val * B_lvl_2_val_2 + Ct_lvl_3_val[Ct_lvl_2_q_2] += A_lvl_2_val * B_lvl_2_val_2 B_lvl_q_2 += 1 end break @@ -543,7 +544,7 @@ quote phase_stop_23 = min(B_lvl_i_3, phase_stop_21) if B_lvl_i_3 == phase_stop_23 B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] - Ct_lvl_3_val[Ct_lvl_2_q_3] = Ct_lvl_3_val[Ct_lvl_2_q_3] + A_lvl_2_val * B_lvl_2_val_3 + Ct_lvl_3_val[Ct_lvl_2_q_3] += A_lvl_2_val * B_lvl_2_val_3 B_lvl_q_3 += 1 end break @@ -580,7 +581,7 @@ quote phase_stop_28 = min(B_lvl_i_3, phase_stop_26) if B_lvl_i_3 == phase_stop_28 B_lvl_2_val_4 = B_lvl_val[B_lvl_q_3] - Ct_lvl_3_val[Ct_lvl_2_q_4] = Ct_lvl_3_val[Ct_lvl_2_q_4] + A_lvl_2_val * B_lvl_2_val_4 + Ct_lvl_3_val[Ct_lvl_2_q_4] += A_lvl_2_val * B_lvl_2_val_4 B_lvl_q_3 += 1 end break @@ -663,7 +664,7 @@ quote phase_stop_39 = min(B_lvl_i_4, phase_stop_37) if B_lvl_i_4 == phase_stop_39 B_lvl_2_val_5 = B_lvl_val[B_lvl_q_4] - Ct_lvl_3_val[Ct_lvl_2_q_5] = Ct_lvl_3_val[Ct_lvl_2_q_5] + A_lvl_2_val_2 * B_lvl_2_val_5 + Ct_lvl_3_val[Ct_lvl_2_q_5] += A_lvl_2_val_2 * B_lvl_2_val_5 B_lvl_q_4 += 1 end break @@ -700,7 +701,7 @@ quote phase_stop_44 = min(B_lvl_i_4, phase_stop_42) if B_lvl_i_4 == phase_stop_44 B_lvl_2_val_6 = B_lvl_val[B_lvl_q_4] - Ct_lvl_3_val[Ct_lvl_2_q_6] = Ct_lvl_3_val[Ct_lvl_2_q_6] + A_lvl_2_val_2 * B_lvl_2_val_6 + Ct_lvl_3_val[Ct_lvl_2_q_6] += A_lvl_2_val_2 * B_lvl_2_val_6 B_lvl_q_4 += 1 end break @@ -763,7 +764,7 @@ quote phase_stop_52 = min(B_lvl_i_5, phase_stop_50) if B_lvl_i_5 == phase_stop_52 B_lvl_2_val_7 = B_lvl_val[B_lvl_q_5] - Ct_lvl_3_val[Ct_lvl_2_q_7] = Ct_lvl_3_val[Ct_lvl_2_q_7] + A_lvl_2_val_2 * B_lvl_2_val_7 + Ct_lvl_3_val[Ct_lvl_2_q_7] += A_lvl_2_val_2 * B_lvl_2_val_7 B_lvl_q_5 += 1 end break @@ -800,7 +801,7 @@ quote phase_stop_57 = min(B_lvl_i_5, phase_stop_55) if B_lvl_i_5 == phase_stop_57 B_lvl_2_val_8 = B_lvl_val[B_lvl_q_5] - Ct_lvl_3_val[Ct_lvl_2_q_8] = Ct_lvl_3_val[Ct_lvl_2_q_8] + A_lvl_2_val_2 * B_lvl_2_val_8 + Ct_lvl_3_val[Ct_lvl_2_q_8] += A_lvl_2_val_2 * B_lvl_2_val_8 B_lvl_q_5 += 1 end break @@ -838,11 +839,10 @@ quote A_lvl_tbl2 = A_lvl_tbl2_2 A_lvl_val = val_3 end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(Ct_lvl_2_locks, qos_2) - resize!(Ct_lvl_3_val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}((AtomicLevel){Vector{Base.Threads.SpinLock}, ElementLevel{0, Int64, Int64, Vector{Int64}}}(Ct_lvl_4, Ct_lvl_2_locks), A_lvl.shape[1]), B_lvl.shape[2])),) + resize!(Ct_lvl_2_locks, A_lvl.shape[1] * B_lvl.shape[2]) + resize!(Ct_lvl_3_val, A_lvl.shape[1] * B_lvl.shape[2]) + result = (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}((AtomicLevel){Vector{Base.Threads.SpinLock}, ElementLevel{0, Int64, Int64, Vector{Int64}}}(Ct_lvl_4, Ct_lvl_2_locks), A_lvl.shape[1]), B_lvl.shape[2])),) + result end julia> @finch begin Ct .= 0 @@ -854,7 +854,7 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Atomic([Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0)], Element{0, Int64, Int64}([-311528392542676525, 3802864504850227773, 7132563740294941325, -7734229606977869371, 4610816547292327398, -231875892530149519, 6479067223724325995, -5993925410246119408, 7769769731936043186, 6508773581643622648, 8377470195368681305, -5026402568726958822, 1827804178661326297, 8945035746065187189, 9142616182405809812, -6444208854588150036, 3277304349445109851, 4784032081641147304, -6760158860367436072, -2973384685745632037, -8129972329073734262, 777092723910886802, -3245293789031672332, -3523460009327721843, -5684260890958137224, -8265569238908005417, 8801036620359715779, 3266176164242776697, -2137918316110048538, -3323946906471089812, -3314215782571951707, 778527069577570500, 8137954887180256780, 8430989329655386292, -606788686983349880, -4214419631996394082, -6982805642717038791, 4797874315021516200, -2404366658509915138, -9177912505471373539, -7126158702130095549, -1766466893224773589, 8924417853649894089, -4674003454091887679, 2257428816284239881, -1332826559188755030, -8548057139935380399, -6301259390274164526, -3288288979021163907, 6879439315951637090, 4337023968316665593, 6946150187905484505, 1010965014357589050, 5912572766312215522, -752662070435057852, 8324512872143105908, 3863764696845398606, 5389249056777042937, -1935499292012667397, 7268079289042811102, 9015678537102606643, 5924330619075555357, -7424534445741392445, -629875664608289672, 8384040311367110728, 4366481991429755226, 799319475113248361, 915077563132424308, -402689656772636859, -4955233076805992406, 7164775445931617845, -3741939346817651094, 626388912028592424, 7629488070185682238, 2229303825265914208, -5262491359642418345, -4880619796691544255, -3925706312675979806, 4696878665903208702, 5071857546218785861, -3376912663266974892, 8653621680026928799, 1396781445024355796, 621390305019145984, 8372778663022275550, -7480329048309833839, 1560173607708756635, -3514469212498253617, 2082849966979030776, 2855014826193932577, -6098003633715037270, 4973995505549769974, -934656248683882969, -7138618497546152206, -8796608146899612477, 2599534084177250165, -3661022375209093319, 6753861788669983217, 8879020977128083301, -1369089299051099462, -5718241577534868428, -4601048383104503916, -7761404906865992561, -4766352168228543906, -7581342006403310193, 5305627711042476897, -798942769184694703, -7013308532278854794, 2556970310791640083, -8310154389049907193, 1935579670641235148, -9182270706148454992, 9150818649447775758, -6638702227973546141, 650090674291676413, 8236754832241948399, 790792765911863457, -347542563766738388, 3388642901454996993, 5348134068670085253, 5074530787207075513, 1395232644756449952, 8090997313784423115, -1550511403107108256, 8571008051355695605, 1306564260425723057, 5818833840846631664, 8799033188003922464, 5410444795730799007, -3373047473574331090, -8548302006770261151, 5021861578667389638, -432669836523104479, -6438627394278666063, -7251108417612047114, -6291884531541975330, 6537071113687438992, 8966161431802402633, -5259240086960564044, 3503163060697962605, -4065148945903097744, -1777564193334828938, 1747809001727155632, -3417070383920828456, -4980740299784891473, -559866941814657186, -6426350914229905139, -5679160652862202404, -6211678578062624482, 848841581372246207, -2989862519366817864, -9055561009588072094, 6765006199830890923, -2062587279559167170, -7502248691809669785, 7718809563802492192, 3633483956842288096, -5531671318896978179, 5326224353406326292, 6726394281003005045, -1713581532815293882, 6024523542812863783, -1763399164735930073, 4266920826307605526, 622375407618332670, 4341466034596968525, 7715246185820712492, -5773491122824348016, -1826385467445025486, -7822412245781439819, 8017872321912493505, 6373242139699342871, -6944882458072813137, 4697620715257964034, -4365394206032703789, -547148396038045198, -5035570107494867275, 7793404466643051559, 4469721766633126697, 1166061378200498396, 1554858931156904800, -2361412551770162450, -7930855384212681335, 1713868002622874066, 7409111426406558639, -512154663509791484, 6537275880940401093, -3910570248961609024, -3836656625145607293, -8938294775136724153, -6507444214278732621, -1150538280928728183, 6973878162312254627, 6572969588409572611, 1002231209937518033, 6908277548248118165, -6022132921017429451, -7025870997712287358, 683251940863450233, 2493524975192955782, -7276639915615857470, -103883638664277997, -5314704606673142253, -7038752337314182336, 5560169698698056371, -5881866866010041715, -4469522438057826665, -8939893843141765247, 2642101218897762188, -3300172923916323330, 6352877754718065190, 4084338072180105389, -4342549113399200393, 4279374017424089065, 4398221897453782925, 2422944416491435362, 7922267869330361805, 5995998007128456283, 6280625043231339994, -3275865643381161731, 4383174748559532813, -8546441422012175712, -7893577028946492213, 9027885389349284629, -6125149023153379003, -4956546681275572683, 5715129565539777013, 6623276731031366799, 7560337431809868738, -31750236024934407, -3810198350997910123, -1146409313986505151, -428701850515027514, -468073762720447669, -1390050471520983211, 2835265798923663700, 5764913612679834112, 958810651968247391, -3797815661291407520, 6460520626648203269, 211708702104126221, 2261091765752400712, -2964977199137046896, -4385151649562144001, 3116185924188946137, 6739692152509783528, -5305436920427785009, -2907282851691115609, 447743807557596132, 63862440751247066, 3514479843707153842, 5999601496287905231, -3654531195335519906, -2542600877922342253, -7290989393844413666, 9085469624507262735, -541455872346318235, -7971088789235032060, 7689978220151207746, -2711513566589271239, -8343310657572295416, -4167999392509592540, -9039445678299213909, -7170301895717218884, 6291529442536905084, -3374963351675626609, -5373168051494346318, -5497601031482005775, -2916886395075307235, -3883261685502767633, 9179413910741410099, 6289334284246669717, 4234089800929872794, -2655732539271996720, -3035070633871992593, -2437303472975627474, 8832963047795505553, -829388827821593367, -5370201744962103593, -8911288617151731105, 6714137128155914855, -6937785380240140879, -4804598248727707302, 8750156478448565502, 2574912636013720638, -4885946830234328537, 7521358135764728226, 535303159333155897, 8138574657622192110, 2456224430349956627, -8992321412901943906, -7281936363115109639, 2704721690134351097, -7216651923179770008, -6506422878573197942, 8915586083417585942, 5371232788505226594, -1740133450893903245, -982304251078917805, 2244112516915558506, -3114958008453226, -4610260728675861751, -1143025776890919762, 8288487391050636375, 4388285265909577760, 1232243352541145132, -7717830768524962099, -5901227017481054829, -6100861997340233106, 8279906479564605152, -5427340363020812495, 7436873303994409336, 4437395942259467556, -5486323029786467602, -749419638916086313, 387633405786106344, -2444684956722819414, -8879980142125000057, 9032213405251538238, -196725452198675903, 4109301537930725517, 6117388314164827016, 8847370785979768678, 77521133169697924, 7077666419656637399, 133555131055822904, 61998257733475790, 5697558321456541168, 7399783912995781559, 1137891396677380707, 5074079993681838043, -657911960963882852, 1137470059873220310, 7020780662981280391, -9177001920397809522, 790362239680355816, 600172032624920855, 8543420636741980368, 4528589445176971886, 5960728324702488119, 5514186694424436532, -5432336659913866735, -2057725448378912415, 3911807348846574985, -2933766100391426874, 1800193705806185930, -7054816631402652609, 7183265689053958885, 5699677378061885134, 4220153114531888679, 8286682243768326060, -3718825949288568614, 4247279726743304081, 3401929723154371418, -7791632387902813891, -8525035833654653815, 4642847250936202202, 8571834255563384580, -615080775143020047, -9141302276862944236, 2497129230952559091, -8795367116044177149, 4697020691819045650, 8078487089138316076, -6314877087348456338, -8272915201734457268, 6950678089694500897, 5377750684446461249, -921140928622983181, -1520460049452102693, -3177121019444108678, -4051624390692544861, -2825784479508224090, -5008690521298053399, 1770783004922494527, -5527822838273234845, -4503771241503652292, -4788400236276842410, 5619353998326498739, -3701011697076308480, -8034418559493520412, 6350765187233515105, 982558642287986027, -1448602610424440694, -5618483166513344245, -6278878478122580648, 7537160758203387055, -6154847048393471752, -3053777167706908675, 102968748125835682, -4368004269290628803, 3948417958341752791, 3441688668713259055, 5686013332820589556, -6793945691483312138, -5657337314720073764, -2316326789392298880, 8429883766104818531, 5672048876768223736, 4801755278649149250, 2457832606218017605, 5660898524916791368, 9008328499307364991, 7282355400911599490, -675022808189279520, 1248812713894084058, 4295529333031152182, 235010168203572616, -4332156008277813622, 1584706501703338551, 3224219654798343804, -2046414069220643115, -4768268609286612707, -4595767465089756149, 432385139172141595, 5744340903783987934, -5907814276982578230, 571373857369851574, -4615364944658920518, 985558362311014501, 1146748558906210730, 7358527181149231649, 2960234619888514885, -4221579384574605709, -33577900070920492, -1383491017420984722, -6667111422768545223, 2209578116218914144, -6192696716189832095, -8682232579400392473, 3926742208689603882, -2605251114517028176, -3432143345789886934, 956256818538240068, 7048231574365916809, 5172150567611355985, -7087473940080722223, 2829725628381946973, 6615614511402804897, 5597114989308889913, -6360862330806523233, 7263403909484904208, 1722745349057533175, -6250859958048377022, 7854765438825869947, 4544273279457948494, 6871378735684121062, -3351123348798445569, -3070913893427269938, 4474858432188499679, -3027153348937151936, 6723187138491054590, -4633043728650674379, -6923489996304544514, -7608004350687835922, 8618729303360011673, 6145931189986425565, -700125041702955627, -7361791825514005778, -3052622408661881441, 8247111715450418050, 7644850195268952347, 201981812631246530, -5366187106284689552, 2240979599738100899, -8929354876130746907, 622748136125783190, -2241977980877970148, -8690707102946532636, 1816258902369550876, 6082608921810779350, 3313569380430314248, 7003634692020991413, 5388495764620726128, -5530822942131330273, 7182058408716498125, 6272977706245272491, -1611832087259919849, 6304118920652930260, 2664243321321065829, -6991256246863621561, 7763559060359215549, -1363294210753473603, -5984590649126030611, 8835145660544963598, -4339100511013335484, -7658343482117166946, 4767592705684863404, 6567026582399699474, 1241984525409511450, -5043459788309072162, -6788638110335657665, 3425502247489073842, -3386866538103387786, -3435764054745173624, 6561588844054851309, 6358866269624109218, -2265970059794978437, 981754089422755666, 303360095818360815, -1637078045909787216, 5039180299052306271, -5050307403632054071, -4916014943876365639, -4786790738315442642, -4112969230517500969, -2053067729163411292, -5506471273731989096, -9192763281442671194, -9154538478094146297, 844512131685900736, 5622194151159285613, 8194896671418306404, 1412467403218231788, 3881564188099745981, -6535023704129633935, -4422084769610503611, 2842323006370744908, -472587132304431690, 5418894508652286502, 5354997878416558687, -4192781941439730955, -3177986442565831154, 8055846518519871975, -2415348653243756702, 3420189508094535959, 632472561226799626, 9048880056639467255, -4088888662813871032, 5342377372296981891, 4269139230891294005, -6717542854769676338, 5697661121986271761, -1342180587334633568, 336875038379374793, -1762255469438213123, -1771219285192270657, 8879943609619899579, -6124059468186375892, 8286471420479395455, 5543997467023211823, 5320361181567019590, 8958205738403874292, 3782571393394012068, -8985467336212511099, 4358217428218486255, 5323123421330561591, 5764541270351390266, -6963051555266077147, -8117203354060625734, -3369353168590364075, 8066080865612783830, -5493399428262160806, -8062951269302324167, -7795183678321688541, 4270469270852553336, 5515134373073409924, -4715340744920803950, 2105370441481331601, 377342343915534328, 9024587429061028407, 3950645024865924468, -7513885460653066738, 5679113338470321965, -4007675874528217094, 685254662537812760, -7675519858059415042, 901700859132852851, 3306012866190376430, 2408392168740675300, -1818210664377266977, -5985536775766332429, 6859135827266771568, 6142180884473663150, 1662736140744539339, -5748205425049442259, -1431038593146932184, -7772606991892607571, -348435608257889917, 3323776957236852960, -4109021388662695665, -1035387926833810113, -6252075674217952235, -1688047783032235782, 4835484251275026119, -1130434861387672189, -552211881628052457, -9041375001510857971, -8608662509892950952, 8688323792329827521, 4639288709326029154, -7997418775765929203, -536103785062713510, -6343663721617708900, -3154255286206413772, 7778544095371035370, -6087249532642040836, -2119136938453566451, -688238790820179873, -6835440198851144923, 5315054982053402284, 8173102513358076492, -2069317718895641958, -4771766013066052606, 931917254490650404, -557345458441442938, 3220011825320527555, -1158400632381301374, 7109875313372060233, 280358344723014545, 1781923481723729313, -1805499844278566084, 5814569477732551196, -2166719128253350835, -7610231454586483844, -410436740688301883, -8413621775294896865, -8989368555919190902, -7176709214957782648, -7904552684938415090, 6506593041716222957, -64275500919664736, -2441305534489441569, -8607529290606256433, 2704494450480538341, 8252863318644872588, 7679830104172517933, -1362881973065009152, 3227375449815221716, 4230416557459228451, 749940150731561981, -3955830997208866872, -1058276989298619601, -1641422116181591194, -822466760760516658, -2021155498858226231, 5043089523958593235, 9160523363278870467, 2440291487886579299, -5076764184565375538, 4008082098413400136, -2574196012088549257, 1815165426871122463, -1810363067796950052, 4564660363457428284, -2979682748740342374, 1263528409113807511, 664902837787653319, -7730990515836195905, -2880800962758009323, -7855792495166800696, -3741677040754952297, 4706538099020817013, -9136310530026765146, 6214908330569213306, -3306943983211023738, 2006683290226313727, -6277376814587543000, 5070401159692077631, -8643576681302494805, 8696392328149980718, -2881724085663247400, -3287341067959381540, 4490394380103475251, -2388135268153109148, -3688564781415624446, 6498489205468056363, -5500244887538822899, 2180911647749845602, 8505364545645231746, 836973405812942824, -4740164100896755286, 5278723018552192484, -1437440665187625187, -323731977913999807, 7961288608439452300, -6431662516133743485, 3288471137468863622, 1094976596329727971, -7153147127300532286, -2269332560827388244, -8443034525381127221, -7259595132044303319, 6598374410643793929, 5408651494181464015, -2202304456831760230, 5063787465367491805, -486043291012940650, 6661198455654543904, -6677120136819219766, 6873215010129388137, -8544492697357908484, -4891416620674641993, 6278728749137780699, 6140179405370666573, -2530674188465907541, -5542826884668502138, -4624987738903378785, 6055897868744384304, 1893227478513103707, -5998481717337431109, 3830666628195019250, -5536286911313861609, 3200695281108542221, -6354873668485439169, -7106406847876828463, 7267111195904963580, 7933454732992989449, -1704431805338802811, -7611850130507733188, 812223521137539840, 5028737084052092939, 1988409904336613546, 5452332172318207897, 721364426528035202, -8061778870788033499, 6206577632233922077, -3358825340647308897, 2615281023954623119, 5796586417262572998, -197225006894562884, 196909717615705016, -247775495361433931, 7935788894770135235, 2974543031667961203, 5518401755150062594, 4289467554573218060, -2110026776485502130, 7660756127445162484, 3210017035054168881, 4490480744367531310, 5560337963744008127, 1101969946984775230, 5426060883804367122, -7414569778895362694, -2574548713218219896, -8667400765660450694, -5823705257574844942, 8997571444431443269, 7042636308067180449, -5283570316461887039, 8142095188421778064, 3651820187667613831, -4106900401332576063, 5096961868284753927, 1281307679037151525, 3157982099299110758, 5964579201184846556, 4180328246833948732, -7591589437120250551, -5609987180487736705, -4487816973319572586, -1552743699661830151, -2960134158460000031, 388000481836191254, 4969717821228980736, 4894250187668109836, 3314809537038085119, 4588524784136728210, -2535627291226530894, -5684084138082962342, -1286085397614972483, -7103165809748549698, -6678458086474660614, -7506274041001472908, -5757410831092511843, 3076084975765635926, 7850034963640689904, -8651748294440545843, 194609034680985428, 8961175923080965683, -93748348755505189, 8117513138674933995, -2327127188025401628, 9187079670668733343, 6176196235074071579, -2820708281421643585, 7702825886158486334, -5855613686156591038, 7799351880585559652, 4934874524942948135, 478516408624230993, -4965206657008516450, 269236596925883928, 1073428163366009326, 7126792485072910069, 7569987982476504769, 8262969537673837817, -7393607729414256813, 4017211294382715408, -1453708362719534126, 4307169287498447691, -9096393784442866629, 8699405990322605810, -1035874136575275173, 5307229917593282401, 1276194578649014061, 7817361645793510414, 8807328459013683574, -6765725969608803740, 3805877505873456422, -2895703504735894621, -5230950451898686709, -6669061264839270575, -5138851837205629206, -1835119422478560204, 2603594006469150259, -2868548477659140639, -3022288051024437226, -2534068374958773882, -8740036738980731237, 2422761568693286421, 2502279617218189169, 5653397006733775922, -8039795195496143176, -6114200605642013428, 4738401726556400980, -1124125357168446237, -1348538616798334459, 5166727242185760724, -8859072289987873964, -7821112919434789020, 558406059872965377, -652528105474834764, -6029896875260562574, 2091769615884194159, -216079402402926518, 887407835530247623, -4090364169749485345, -2641220401477988829, -7119863260277045123, -7186889934574275077, 1786346915042454610, -1034431575705158448, 2644876102600825848, 8628759535217154371, -5076435861824768815, 5595534221719835067, 6278270011273397462, -1987507060144813825, -4918793481045561857, -8270154588131917026, -8468046916149675701, 7176601854751293210, 56669650886358090, -3166866242311034523, 8564531909892678053, -8455196864544157950, -7257596480926253873, 6959408330130435752, 3028838432902894936, 4424195858928857704, 6121497124194972504, -5469042773842318014, 2159359821694864340, -5947113653447376879, -1257220895728861725, 1392685009302569024, 7648830520509108133, -7371898747435017516, -845894640102415955, 8686498035411426229, 5985907670960414557, -7006168817797129900, 5479137187044139679, 4647241554359727919, -7056835850526619003, -6083660857753840170, -8047496266502346341, -7226197892441689165, 741327366913048535, -3711828024047014264, 3862158898379466077, 449693655808431935, -4882540886884501973, -7383637210504776854, 620553667069897427, -6713481484814371951, -7543587771860356019, 810524291612691607, -3659121362368402512, -5595441051298399244, 8088291422822166417, -6303984734444135248, -678233978165917904, 3617704513102699155, -5352941627192876325, -5816949687022080463, -9169168096039126102, 7975547379037659726, 4623395118382308799, 2509276746373528458, 5235508280732183917, -8712780009966718399, -7712552639387445993, 6759061446299827503, 9164297432474703925, -1110357104587476086, 1829423683580763459, -3799180270173028795, 8306026342220315310, -2726954641281485486, -1863888117327900205, -402316169456308966, 3744050168945036153, 4528951249037614908, 4258594066663919620, -3980786014056604956, -6634679619236991963, -4774774115148739666, -1688262812036369479, -3034548033917499658, -5071122385621078715, 1588376700080465528, -7759058167839367430, -4775874273596731934, 3221595815258590133, -6828959650403546499, 4346943720922699157, 4928547898720269926, -8589044593817257493, -5081781874907419607, 951694801960191091, -4667459908101512289, 4206977884410966721, -5197565432654930036, 3326560315392948439, -5878101577814599326, -8546474537134600654, 4309823164209170224, -3850248640668593914, 8681749283296418130, 4990534815930281841, -7750801661905292077, -3291032507257295915, 6665735555297233110, 7050489721279484184, 4317248664266774559, 9186786829891405296, 4166168050877046636, 7493753755601945303, 6899283068593432141, -5031904746579415020, 2565085644824379929, 3944502551732855469, 2189710644855030524, 2255493561976705206, 271365360135379886, 4294982312243112084, -5660229707439867961, 800423085895901894, 8347122627753775462, 6822896499937221573, -7651490681616894, -5297285646106039108, 1608114244844304377, 5839483976720836889, 8241560863719005179, -4129441230004651128, 3479615647121648386, -3074954311106453268, -3412316248640445049, 1216386815926349358, 2626756706523947064, 7368591831166517715, -1142163371321856898, -372851778878484647, 5995055175251528039, 5499555783411494776, 2016478622954748816, 1279886563391834469, 5165391760856510060, 734258640138801802, -7445758287171966471, 5839000974438980820, -5125341234978471209, 121392944104683131, 6179055483354016942, 9063275686698059196, 1720815667965783260, -2090747494244625688, -7864214085579409526, 6028043825066031897, -870947118366293771, 7376428769075962994, 1893490138897624353, -2886384328350744909, 5229519170995839908, 3782678275042073308, 8444457277148000247, 7575393971659806405, -5934742581324588974, -957376746896582101, -1823443228678068953, -7406349357662140793, -7066353634914162328, -932893465250817358, -6158979365981425485, -3999272364858205076, 4376092228086515820, 2513046484924596765, 1682565735361783149, 6869702267679149853, 3598461422649849004, 6721690358813739611, -5015414950752771986, 5196130127330595784, -8263471740181652146, 5701551820088369908, 4253014790918207382, 2681305943933975380, -802509536169972911, -2921706024223960837, -9084398191436379512, -7519519527403626152, 3410883059237029545, 2095075860303886315, 7914139912546804769, -8370416930809779762, -7044648509550560506, -4902792417226064745, 8930318598773654893, -8039939177580969146, 7860061109504978153, 419124991549078423, 52439998177737723, 76668279870828606, 2400418361498442757, -6792499803763550020, 3154574853391034842, 7821968058100120318, 3866940609041914244, -2451342656371401396, 6905559753998185538, 6642467155099476743, 9184008300019616920, -2170183067760494195, -1717224464730633452, 5546156896245179429, -2017194334177493538, 5813836834777993870, -5037970301511180119, -6283363831235414834, -2112512675648312385, 491800089892071944, 1091841107193066408, 8220715112944896727, -4061073684265419648, -6814505748970986107, 8035167421124665899, 4919021796047562901, -8884884164310583259, 6153891825926211445, 4869639300001698143, 3837324736330986571, -1644424597952783500, -6432957171918516733, -3788559728040549625, -9017234204035095885, 7974176819879521382, 8518789095085259635, -3908843812016366962, 6951099628380613842, -8130281757214184420, 697619035660462877, -5347667485898134831, -7870811613775178028, -6511218273726014463, -333041748521768769, 5107911109826800955, 3300477209814784624, -1708767489614571672, 1525551322408592196, 9080360653706424402, -6708214637440210952, -8631288433031181655, 2969113138124740044, -6647892099329100204, -6988290737149534654, 7213791800550484241, -3515983215941949272, 2776751762191199071, 4071933170036566928, -4265187988772916685, -2837771298453665817, -3090388734688474776, 5082944286075818548, 609755467484712029, 4072847486654097862, 8529301158860902869, 946912055446259682, -2248520461543232716, 5002603540450016650, -7275890548477817354, 1780246636470144442, -269706394334676566, -8177505231864803521, -4808125464463073144, 3775199331707802161, 2135641040248441133, -6436387871891641508, -7300737480287384013, -3360643109416540838, -8725466580297208946, 352291131791977996, 8394782611214630132, 17475987862371471, -4488499446877241684, 6767262301426119887, -2769737041134652019, -3193753686399895142, 7241778878096412757, 7797099283865407968, -2671749878988612917, 4696277170143113298, -5423752625035881763, -670732946661190647, -5711362811761083541, 4199832504691110757, -8677080819421441869, 3205643745224196359, 543646793087604365, -6804492024407055184, -848262837790928773, 387374760481732684, -9059158253510589576, -5856801177533266560, -7432011656959400529, 2198315888507745377, -7784997841364446485, 5347278335471818322, -6869526283408290890, 1352984110104423676, 6604074908186486860, 3540137177162802697, 1016927313450879985, 4071162570240874321, -5551488416681382753, -1504833906763233366, -5197958147423262666, -195819750883991358, -3945019213013735347, 6902249401976467405, -8912844306838907648, 4722491225058563626, 8140893302518733651, -5690073294438117370, -5969694801694774088, 7487125160865276118, 3007343065818503767, -2137534930747931929, 2809569435246364642, -4144004208315175629, 5255075717374606982, 7626373563000023350, 8149042251253369001, -8408446547381679894, 1486032901530289193, 4064054887282446575, 1589944372692791144, 6449119204549353091, -8068500293077637628, -4352463204946506034, 2337319196167003851, 4645391736645529886, 2010913571168295586, 1067508280099262661, -6129726247014324152, -611394079563159886, 2374062997617988521, 2762859988315805754, 4077923914156429843, -9041689727396256791, 8413929943723227620, 2773700164543912806, -3519424763423213991, 3151293449748791827, 5483423829303258017, -5946703767041794347, -6685640504011780936, 7701491958403800059, -3979073630416352084, 1302223521793369618, -4739375335957240500, 1273557423668894202, -8157791041761503052, -1958803071486003789, 7995561814538810256, 6436799742219583197, -5386107234107497189, 1105429829723289433, 5041979046245310635, 2772779352725880615, 6104391435732090158, 509237612818462766, -8907837183171812543, 8961506241364999076, 8373135239934695333, 7751397787702975214, -7720289196893704743, -5554204491061059859, -8487390470244497973, 2351786434290874202, -2862041859356855047, -6701648002700596727, -4990806288016181990, 5702555028297223797, -7412013855987842169, 646706808393679723, 2860990118563046086, 7347537387001437151, 6617834339254038549, -4724711214635521652, 6892741295472734065, -6093187166351286471, 7856072582143761513, -4312704304396901639, 5815988893927131312, -9010852855013400179, -709193276924158629, 8842697574196472282, 7172961009424657280, -3086117591933807359, 280668548915001621, 5623299142074972937, 6672160606420637960, 7754570087534551249, 4152353032828795027, 7269286384995548933, -6251412664921890878, 5732127079576970324, 7234424551899679503, -3642728981546782033, -3638300185011093242, 758429305061830090, 6807454373907029375, -2407746269258439538, 4041466388407032509, 4412608899209555624, -3826881076377531812, 8863453888803774091, -7624394860603430636, -8586227141178724702, -8333849234994046518, 5466525086493196113, 8976129229655792662, -6761513090258468865, 2757033529591673069, 2729369021924837617, -5342219263217653521, -3682680090127880756, -4024262810569674934, 5734119662788048810, 7267386939198869053, -5732042765175834343, 8098289276583123084, 5528374394051795198, -8832084056016214993, 918234824385712530, 676970414934466709, -5794527027417515112, 7833682562510519926, 27750847269835893, -2141504133172325665, -393870739762170378, 6628987571319571919, 3042161428414889656, 8319098477369136797, 3714381407608491489, 6871028708069796695, -9116209644422794377, -898115304925379815, -6100921916446089973, 2407259165779504625, -7824595574994867809, -7812941900040155346, -3874610317902165720, -383060374023677741, 2565489144529271919, -2775667212831852387, -8490494758318716088, -5768969488081270158, -4163725029626196551, 425158554688666490, 236621108823379185, 5592527110007246515, 2250712273533240792, -6996902570942094740, -4316193418261480778, -423017690736900269, 6499561801793623752, 5999756229412561116, 2122709403244307390, -6614237089257075273, -4438754439933732943, 7755990109693945275, -3828302258654058750, -4536174171928321428, -294446715323926202, 935637585377645959, 2493495210256659688, -7065985576821599091, 4771064322299072228, -8324047390232687097, -6214767548469241356, 661838500088622926, -5496419443662109009, 1769360504705134935, 8594133951145052917, 1919665994205776303, -2829008152524712179, -3534926825330291593, -5392109943851106148, -9174936343936187588, 431831984523785014, -3478733297737652068, 3625098395866689397, -2265434394587802483, 1898173869432619635, 3905980956606711904, 4899181388449222978, -8560503291870850826, 2442336170526152937, 4758854970978333179, 2576950350674509603, -3159727556622278707, 6463385243237218927, -4244656898675278709, -3639733836666543106, 5150557251574321755, -1847330250029237854, 7990644495793807288, -4844220065225521206, 5669665901579369390, -8516756017270853386, -2163641417216885795, -419690911529103853, 8389050361839906714, -4755603407177446434, -3628876977205345798, 6346120274506356620, 2897382412678952073, 2892018529361149983, -3105945328483409777, 397471260119955477, -5924914980966965208, 3259916578022711299, 3584107160451422225, 7335984245174911695, -740299529193763425, -1132793386238322552, -8882624640591065694, -3132393138391844276, 5819861013084344169, -7875274867444632753, 8187945432875751521, 2367121363901039734, 5703419689657841727, 4107383082803893848, 4567302762139612814, 4413573636895389667, -7908655157105234973, 6012542666924997773, 1543290098636558500, 1167829086925604611, 2777803534220614400, 5402112821476681615, 7508255472390188504, 4371085781904923839, 1633853775080032376, -3977888499508807807, -3454635082436672696, -5633966314565017765, -8027628515978432555, 3204939451242551097, -1194334364385733269, 4715733242512836960, -2424390587904992168, -8598491278835370190, -909646813366796865, -6282299275378582741, 1091786653924799826, -7151604730926028, -1952001457689034822, 6594682270311865613, 5297253419387719327, 7174384514581700900, 4179089671585649194, -1438112379026769819, 5863458219802778896, -6258500577607877153, -3191184177787625636, 5247643985080738052, -4249605461827630928, 848024707032423852, 2578176992048298935, 4277106059776803841, 1027307997622416172, -2034184717655156741, -4032075691921298833, -1725223926910214795, -8355218558445840600, -807432826419964742, -8691053822978844932, 5190610597372914740, -5685703413827560197, 1201444270328420824, -8573622742179143460, -5120225676224448990, -5713210850430827610, -4407146778693477095, 6616043013230938178, -455203650113225090, 1257217750953438197, 7038774887541165092, -7978022942807666493, -6027283969716886506, 2039426148959366399, 2349300899242575287, 412136285666780739, 6737962169699689176, 5396043023802829490, -7375578319123588090, 848689289605827984, -8962743046285584688, -4978454835941389091, -6810534590182341273, -7904631394849341310, 4986473973338859037, -5186820242653188418, 5733494837941841739, 220945504840061108, -6134138428611997085, 1839281472386260502, -3959944160474481058, -3734459438928472268, 3721194299693987183, 6767703249986874259, 2045991906683057358, -8742954565638258573, 2420326502842248753, -367492685541062268, 4355219222598868416, 8572842933899504804, -3701739195979978554, -7764549138235732147, -8598925157129974153, -1207019761626072373, -4766444500353057904, -7001982766296723356, -2193148807691074317, 2257290521599354392, 8810412979742623813, 8490414288126231798, 5852946775791635490, -4580603465805866303, -2205977094397869034, 246619722621583797, 8701711500730861947, -5723159815829278387, 2413055362373823891, 4026630626738278077, 626257627860460242, 2574073136387432412, 1225984626747539527, 4932610320264372136, 5801172410851190171, 7046043975985485604, 6725048163205005162, -7576705462287398067, -2531652356020173951, 6390475535474516267, 7954408693665804646, 1212769581897394400, 6930146611691842308, 3315566551407884820, -1691904946575510235, 2663199435933348098, 6910705755054739103, -1445154807745938237, -1305866680652390683, -4123655378022181618, -8064221424814919501, 7446614750020132187, -5068110728266677912, -2030505626005615587, 2000339047753778091, 8498499418863079418, 293614270927881287, -7692468401008699966, -3672609321985504948, -7142451754177878046, -2896478347708996217, 8782220829960750497, 6479357669621747111, 1193728541266948796, 2292573676038833952, -8855412556553540266, 317468215313058893, -2724448286275139831, -4850615461204879897, -864740314491768661, -2490524393871915862, -5497905834125156430, -8861963624388260436, -897462606730994032, -400305460423163334, -82260487316074112, 2335306980672653822, 7810394748744828878, -1713283213271910906, 2687818835146282560, 6112149537489265528, -7705775471756675233, -6212557483975450875, 3316513936364892531, -2247846567664673941, -6242171865364499591, 1864513425979011482, 1142454994086149910, 3839287919838368040, 506402678586865400, 7148330854725749930, -1563308216343959635, -5964480677519945158, -280002382744552497, 5866510398096934772, -4453231543043354473, -7773402607793519054, -3834638464799366814, -3278979331036933950, 3772051427216111937, 1707017430062992775, -102267837227575076, 4184520795854560136, 7597254842510533611, -8279104207355801361, 600209822568521256, -3193350568000648133, -7833434008084958161, 5377254431830388749, 6469619144829771684, 6052343019477107280, 245305866791464031, 5924851661031465757, 3055811671924051893, -7757673726764291611, 5425488801254271646, -1230513747359704646, -8856055219109968322, -4731754271270239734, -3264856159650276367, 8368480760176687700, 8143173203566375840, -1210747890098141143, 5295731456734954614, -7498167121192897541, -3428045625716315797, -4791314006867460823, 2948723375377110370, -3810064731319107123, -9202716795541515555, 6148653665839630204, 2848560055796753936, 1954069631098137796, 4697862255330998161, -193476793171573000, 9194232325669679334, 2656267557937312535, 784853794420870025, -624555491147103224, -8631140942763948473, -2331918944750595202, 6315237728705772778, 2538347749394059355, 7413989927117471885, -3517357964246821289, 5421999950889627853, -6721616076848566230, -6069691543165016804, -2059672142945104532, -1276872363769808299, -2332106662160828140, -9190658909128292389, 998308533634505219, 8907745002351060091, 9115911785525303560, -5194650919107828434, -9003424612543715863, -3769760580289899712, 7344040885552774285, -1843874887890373545, -2979057855708079246, 3927517266022277004, -6833174667206608458, 7205558902237879956, -7422227807001150653, 2892291292690035479, 1284760228866985595, 1579008536286502803, -8186844164684197837, -3187052903249540562, 8095458229268227600, -942456947636162847, -197259298036992424, 5750027500961963107, -8780627866791874144, 4516587109721854134, -6756980873638829294, 6089727200252654253, 6090966007180500784, 6469485832367150258, 3727493373269336793, 6291666731217101540, -7084732212740878330, -7903055913758755665, 4891022811619987916, -8624979534479996969, -3150803291726511210, 2623467983448099462, -7840898703047755463, 959779825982640998, -4501449511014022632, 8158799952216643156, 6178308647687332151, 3246276148886561759, -4425465515852070203, 1247832115472580356, -7050642510907647091, 1732161476419586910, -4164009650339589679, 7901878537714761394, 4178886057429322163, 7443735283409136954, 3014006097182656664, -8798335101393201203, -5618885033101121558, -569071355841480030, 1465565160996165613, 835907336590737450, 1257219254618299668, 2609819195336490748, 8938460768518194998, 1062342481094570886, -4375128033036425666, -404853979334087511, -1834092297765356110, -3519968044035730035, 342399303427600858, -2532143186992956190, -1777167417949977190, -4568326529056220102, -3304778777115413905, 5811787797216829954, -8020456284040308452, -3042194865030802631, -6446259211561084653, 4438782287801714457, 2161950337870754038, -1710982377937381651, 3293767809639986307, -8498661003156499972, 2778304605465959957, 4396759401194328589, 5809309630589945276, -3761311896714212621, 3342130357882968747, -793660217799580436, 2646163611383045898, -2416033543020295149, -6095464533266716295, 1769382373075867919, 5769921217545593205, -2763147873675394053, -1414369372293739819, 552238703840022885, 3971959281509960737, 5871938996071876746, 9144138102870479074, -7051583752714084284, 7997594892977403594, 6973237725993655918, 6759721585491969005, -8474802266062078918, 6556741587070699944, 1797176452359594013, 6068615299846548272, 6190047022681470000, 8025324066560663415, -6635968656501651102, -4801756026236962503, -2019199295183210468, -3662481029228087433, -4145069547545433261, -3049242395576128771, 4037435087481423908, 8741081107921224099, -4245153772169063194, 4568953288012583293, 7712589346562801891, -3215613063795247515, -8858591175844031521, -2087790524802605170, 1417733501490955314, -9063725495583630514, -655483526137291502, -1191912813457342762, 7566687464776014044, -8141381772450745660, -4279904944725432103, 6315788478946072243, 7002063045159257489, -6590365664777896890, -4679403751815604977, 8714069546965743554, 309533184730636769, 4316355607870589378, -8249109378692746867, -4536319397565701860, -3305013732482176309, 2701230281724653072, 2915853436366935644, -5927461005461889274, -5702708199784995265, -6433065803429162631, -4180970319895671172, 4849896012027919472, -5561528520719418585, 9123566069177685279, 622220666159857096, -708782930522252335, 5707712868431236809, 5313827561404790193, -5799394264768564243, -1774362590765209798, -6918953997843796104, -1980381867595314801, 1327414459290737935, 5553240067124633984, -6296091561738456701, 145974771717445135, -8724843072185840624, 37791342206206222, -4696476260914498163, -4576914265385553592, 5910120660565540139, -5970819293263084113, -595010541964357447, -3312166820520539819, 2138938008172669579, 1754706572008805133, 5509391222621898877, -5305407397355808074, -4612573236316801425, -788151160991829846, 3475822491801193714, 7334847274467493432, -2738273231885091334, -1394144455222408656, 8445783368824786530, 1090934155240864175, 3666668840304884557, -7481508096164382026, 5809539258269464286])), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Atomic([Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0)], Element{0, Int64, Int64}([8294554698039956467, -2279941192816175426, 3589307988553427907, -7593990112949036348, -9044133075237715381, 5814921716775220834, 1984686205080786680, 5559296861321236943, -5768354944895451207, 1120323265964696336, -3846116119587858228, -262342919401545940, -2049971580522475001, -2211763620736824942, 5666645008031514269, -1327364040915398565, -2194547984037078177, -5969354033529683723, -1260706530325114884, -7513623401632354996, 8868380549151888102, 7623177491685914752, 2801115262965917591, 3283210314769761053, -4716892793561655300, -2288052069362467524, 6647432114356861726, -1808660770598102607, 3477321511136071709, -2083291106471311307, 1931983037678998792, -1543784239066540918, -8896434483004799611, 8304914340100503713, -1749149773188757073, -1368462329312938935, 8842032079864795141, -1273332777544346279, -8741471974913376683, -3678031711239952825, -6700798423721258528, -7371585820169692141, -8065605016636076675, -7672636988039838930, 8052062968846911257, -5715548372384509649, -8341867563147112022, -9154711993198778743, 2933732122345518678, -5605994647490154907, -2133692759629638928, -6818992290088315340, 992118422339879211, 796660569155974881, 5491138161645048288, 5593431438176231967, 4196491676969776537, -783602413421165030, -2343162328237456754, -2347667087918498914, -4136673636756609937, -6196315042773250978, -1680644584068137242, 629124823636772517, -8974230699676449460, -2521981898387533604, 102158584490734227, -476947301419400062, -3885248478543714173, 3838966950421206534, 4298966649781035557, -3553229965089205098, -2069070993183081526, 4114579515408933624, -2282975407414895203, -4010817463667493000, 2272132884598706492, -6575563091909465195, -2658398725032414884, -3364682623876156767, -7778027708949105160, -3298325222861527795, -7334123207334007089, -5452139065710288443, 1885820391848317025, -3168683330050685268, -4615465087923795216, -7125623111667442778, -136085712019972095, -4633575576292637172, -4443232576713801656, -8076496271736850097, -2991169373749732480, 3567928539132559690, -1520874962119149489, -6672722304684961988, -1342044052416051911, -4959055271284697717, 1765100301178932779, -5510766831019094681, 8762504261652914538, -1026280257437091520, -7740612711282779002, -75651066155007076, 1175917286708115796, 215650005689746159, 1074059239977842503, -3135540340322246212, 4487796223479468161, 117813528700745474, -8324379894325358325, 1757180236983103362, 6655766257549366197, -3777535527257508441, 114580098802359632, -6320944068319392490, 533238602716561034, -6831552431332570448, -8190494930775264353, 191156998276919113, -3859369208365892857, 2500343402209988606, 2031188468273843282, 1065023235612899838, -6585643968775483825, 2853372987952842246, -3176092365888706331, -4004089601980614520, 1294599066541705050, 7455638925896823104, -734522458797731096, -8477619822868967933, -7827075641126318775, 1658199605681625762, -900396499488497236, 3608798237042314711, 8142435028468432630, 8181648831838397358, 3699002468877240631, -7851053360339404453, -7285699680868015036, -8914039785447533926, 1660245175449796023, 5544688554457903268, 743884732810431664, -5193009945833911851, 4169874342607881648, -3280411169991606487, 134315025965011425, -3414457411597068721, -6053778541607745348, 4743624378245093802, 817546885620956986, 3060126976419944263, 6596746720844310770, -32670440557642426, 7773291265218164464, -2747139949208106021, 4787690020561098504, 6611779436841384171, 4004924413349104377, 4057890700771820801, 1547947635322075762, -4041605863834384811, 8083854711850129991, -3032246449125321576, -6935676039559832962, -7262552710344937689, 6638561143303018670, -2431956156442432310, -6852883101006975241, 8141551686256635351, -2793114698018293480, 2901351249282526336, -8590405837522545098, 1284768462277737195, -6960561302066832858, 2470921323386149221, -1293209798633367855, 4852470840893629285, 2821167647780664441, 6366973705476444977, 4226801472565080501, -9103879725305025059, 8176472583251538243, 8387452082259514660, -2736021226548995081, 6019809268550026078, 5843683665502852812, 3078561957169121216, -553913864285782311, -8396720008997848599, -7916910578423142081, 2474282350293529219, 3763454144318303849, -3143306749835985712, -608242219460478402, -989972312085529006, 7643836624016829132, -7758235694518870862, -8743465346336514685, 2719718679164977811, -5344475697054329836, -5382875460926617461, -2287520955119718235, 5089895164004774048, -7207379975876718081, -8499315421799027837, 5382094811866924412, 94858159835758548, 4714444885585399249, 2419486042431974568, 1178451709781345389, -3244272477430105521, -1047784102008514673, -5908281368045588844, -8819487786822738794, 7375554233921962988, 7117586722854956039, 7635043189795304941, 3647751477487297040, 8888119265583541163, 438773896985192780, 7323235085077979835, 6402386422456545962, 9119746976188580479, -339981380232968078, 7862094120031162190, 1928350441872024538, 5861817903497048633, 8789248006831377358, -3662518157867280773, 5246723151818488323, -4712120449265687255, 8916170145161342841, 6429160948844906067, -7340558410143580649, -2878118280097051778, -4708137013670504139, -6737935883573392882, -3286809900179080876, -8542648342686245264, 1705683826679995175, 1874888461382203165, -43385098015304382, -3541512226970701965, 7308519021589705414, 4657092760823067875, -8034153054673763206, 2270007119073554112, 8805059194979907611, -6506227936394196777, 6569593093608871545, -5455263039233081924, -4894608299203557538, 4907020166765653515, -3651987278181836016, 5370722016210637787, 1096862329635763807, -7546832585001031185, 1772274834989744506, -2797059347358140582, -3473640875567042896, 7692486032135901986, -8656979047320341319, 3769023647569885435, 982341113303111384, -3673687436306074461, -81446334802288730, 6604241365987180538, -8369021354568862340, -4372506992592134813, 4065316681210752413, 1563045780770436755, 7830981927612419729, -5732307671635230159, 7227897221307801531, 2010992442160439666, -1122916357391281896, 5028338562960665496, -4666933955791003754, -1636404242550753810, 1914395787243909596, 3867717114584627246, -5161185302939881190, 7944328755863357247, 3609664606705607460, -5315882602018566936, -5761904302177895735, -6809130468709054173, -4700880319524423632, -5613769913787470034, 5210287635986052957, -5731191730373361431, -9164866423631936276, -926712920787083296, 1908405553760652597, -2652471932491244161, -3697650070410053186, 815203688271104236, 2488007171374780339, 8330805294023136182, -3517636027632871239, 3868845882950791705, 735411088686162206, -2994223186984088280, -6607675160595665991, -2201949612928716154, -3192490547890152354, 8133430253359871171, 879836038470343844, -7736046093151852400, 5545981780264421978, -4341467717169434611, -5127462363124695999, 2949881086671151985, -8391405146023982934, 5904919608898826122, -2227073708090958904, 689136294291637577, -2886932334773361591, 7952202709403391192, 3153775940809706391, 1874908383608426604, 1075117585599875089, 8867274469205928536, -4375744716795996716, -3533998611034387740, 6384747161645763267, 451782236881133152, 2341915282050883711, 1031445492266793189, -1394365009673627432, -5123594722994514063, -5460177156375603901, 4157621169839366172, -5358704860857059836, 5278983455575550295, 1274050648147683138, 3126713394381709974, -3307644194743865067, -7750736059176508847, -618096002207417309, -8506818772582631348, 1513319371717577726, 7740551717965270481, -4426574321230828472, 1937385030182228455, -998535532730322164, 3697332573265195207, -9076677223602850225, 4002292324271769976, 5826441122634846875, 8171498939270188961, -8467159702287736726, 6509544541400722383, -7717347117135555451, -7966763369056639081, 8269356800200102793, -2896708088772065419, 8682479654349602266, -4175209269749908112, 2584299138910217097, -809247191664492467, 8398436003572149079, 3497234959772076571, -6205111019897946062, -1430118280471530840, 8661533972821968073, -8521448203938029843, -8360557201354951019, -3776479469046687040, -4394471295216041117, 5306288845692612157, 3056006891388602475, -1748363847809204170, 5697136015891952455, 5937714342893416629, -125618599919776279, 8260765207333016632, 6942153985967134169, 7697115243769897813, -2426405549678443871, 2055486786313550400, 2152367939828244370, -6718730947869040596, -4560975327865951570, 6821423707534902647, 8515150359172239136, -4729466015399015585, -842607049527928892, -4838398262675770925, 5471628285150179649, -4149591267856718041, -4506731485344480343, -5865996187231969021, -8376045608232065130, 2982368080335673248, 5791272695574713343, 6606369933841153328, -5715125400035016302, -4808947571611627235, 1880707490936852098, -1433671810791193193, -8438873097249883119, 8228406513569697614, -2860593376095425957, -4155754509347768111, -3859757355177839761, 3832546257082914463, -4987104937747488276, -2603264890552670585, -8828514093751435698, -244923882753137677, -5280549520179345692, -5294022225150090425, 2704134173475073295, 5822900001597655197, 8915743126126508984, -8404578397956455589, -2636964413867594330, 7773972734886365061, -3244423074490429851, 7188777215744005112, 2509236846677099113, 5975628922833554335, -6360937178477621110, -4434221168072131868, 5416863093579763768, -958253168694109934, -2618459887441939475, 4895482184605604162, -6140446091522181329, -6919984628986616591, 31268152280566262, 1462535678717326966, -1464133389559375653, 3504905418444023481, -6524409997977030579, 3385869113430274743, 4822730259655900816, 8191773831837416114, 5292449586294865386, -6090171990601960569, 5153832228516847759, 2644170584592807951, 7802797983750583734, -6167195480042020562, 2093757426299538692, 8787672015189632402, -5494401635969733668, -3638906070417731210, -3088615259430462125, -6966718357264845743, -7894833928827722438, 4456646817892110605, 4567444684714913404, 5715585842987564469, 7446569658716171357, 5563506788226812109, 7176060177395009647, 8237429551137486195, -7387886710033300740, 5898509503108719612, 7854733214036206904, 7248713092388111684, -962917874807733914, -3817171139749095979, -3598576780670027118, 2936479662060868207, 2074946433639930335, -4055715327921608745, 1618673209120928304, -4215039625426580007, 6527651964660508742, 2525116720861666747, -5087213503398874522, 4441054782473057136, 5191737829272025909, -4204370355553960444, -5494437721858174402, 4282313307494495995, 6997224429970917165, -2786762703765019577, -4090774704165674185, 4830810034714339608, 8550110279617460779, -1432899949838825034, 5070163724535877362, -9044587224043010993, -331828969708912678, -4045743947221240460, -5026588202134245205, 7387394859196808259, 8323953104565172936, -5528106662582682818, -7712553295838005157, 496614122408246046, -6261122541863392878, -4574015954428015586, -2197905781724515181, 2844546404849359771, -5279032238356719102, 8993546499667354710, 6573002144407406380, -4535089777605057592, 42079127602989245, -4203267462921212169, -5840775966360235406, 140468831591233090, -2372192320096247829, -8778251851052291231, -336668325564777739, 7264370331718102095, 6254063536340397718, 6123236786011580167, 7556731230735356441, 6110809143575471493, -3432908134227590300, -5783426087718219583, 1401578931289679630, 4860236125773274406, -7848223246551919396, -3797441023746850885, 8889006900515515775, -7001892991386329751, -504276022409278947, 4496720948204362966, -4394079210323560761, -2230295723647198700, 3251715494317547084, -5846550559678048111, 10531091634037382, 1081507583933014234, -6906271136708865836, 9084709507417847718, -6919794797543057983, -9036635487855904140, 2168389059779605725, -5402687853119908315, -5969294402598625914, -3065725471442083375, -8436847784886139522, 4499580243570143897, 4593663111924881459, 6242341792114758752, -2587473680774110753, -6346963533779961058, 1621775449938399197, -5304623462700880605, 313072979211750861, -8918803086819606236, -2901670726481028569, -3682526246592261951, 7548351179785347782, -5784090040902781223, 30695701285740113, -8511392528887732853, -212343505903814563, -1706280662728187023, -3965454636478785037, -485561088993170719, -7950090587677592836, -5540338441211352471, 5885515753065214812, -5731917489646869491, 319516077428049744, -910417023177818004, 2190841222023097499, -4456395002828951917, 1255785325280306590, -2775252394013648963, 232640318517196044, -3219784824083473065, 1045529630686363187, 8411759974186310596, -1094615808186632023, -6553950934895304754, -408316319763781313, -3176841451238048633, 4075371581935362359, 187643253600159831, -837428644143947467, -5461650288315529644, -1526919325465841362, -2954442387366988787, -4406407738182325204, 1829805892604809544, -126573444704897734, 7828995678619994488, -3305668970380320127, -1948177510863190427, -6060115724564481252, -8021616758837321162, 6960572855714557416, 350591236226749052, 2894293684535105120, -8270156129969398283, -7188224773617208772, -5046346848348099259, 1762604501393566217, -3917600212583329023, -5140095807187043821, 2237243525513954619, -5491471575519032800, 4589515224526221922, -7539760866426895222, -7037068932864253220, 8211831817367956277, -1395763541646935624, 1607573943448927879, -1505636040087400087, -122124503865255803, 4634165469973816801, -3146952822801268000, -5052196907548347629, -1241659820199679608, -6699837385241890808, 2464994060646676914, -3951993366216514883, 611342031781514911, -3565512073329093591, -8091157542284683695, -6357009554415832646, -1429579645206812482, -2061030198880877944, 8613279126438435103, -4699418513816477309, -8899719653184083570, -9156751533214451673, -8369179409893466386, -2174045754289880327, 1599071487304328536, -2221165333317956202, -7121959024856558834, 4693904663870910343, 3492234935112039157, -7267189198736873061, 4672240566207031262, 7155931176632835961, 3948405042281303031, 9221170186590954197, 4168657775701795991, 7842926999448825295, -1149692690864390610, -5151108606920029561, -526708427937813567, 7894348920840823806, 2111915680842160057, -4447152505108858331, 8128811137535223140, -2781073544192744865, -2613927713168968822, -1690346388484587737, 6876548642199495650, 1611707069120701764, 6836918745913798671, -3094017886170210818, 6236828316978813663, 1081329020158948822, -1186213594634875190, 6793406906590299321, -8809740130797831503, 1786353697273303450, 6840136804880913516, 7145347421754118327, 4462054547281554765, -5318572558201569928, -3303535985347873063, 4733051702192248506, -7326070061278184447, 8369329347074427304, 7927959850489965817, 8320087556329764783, 2193354433274004612, -7544733638699219370, -7014045369693366256, 2151577797033403336, 8933006192851897008, -5318774782760541624, -7315196304228305879, -3904941717348361503, 9005033294424616904, 3320013229488173382, -7213842621665824653, -6254056522832732416, 2745408013397436716, -7386682146393396764, -2984509115122706340, -5352396307474345222, 3274018835385278013, -7381234373720372311, 1918193944134468019, 5717967813067618971, 5454410947887301155, -97618650599649709, 2210650427815000690, -3970692241953874241, -5109866680064885784, -7925697423337014550, -8697893115030792754, -6824932659698348984, -5847467963116463090, 8615256658994433156, -1053728463713085330, -160713768715038702, -101318550931045248, -4343188737347009626, -3248115887011897910, -6402395057505262095, 1096182353871742512, 6753465784923287540, -6804624562896151215, -5837125201228162439, 1382647607087451163, 4277582916411384127, 4693186594773602005, 7683280651461172993, 267398271524978993, -8596377037167186490, -5819935517185918536, 1124318629146026182, -5042061127034683796, 77826962194866506, -2250556505242295363, 5236257964961817301, -2333821165930122393, -5301093680979268405, -1710088636309852808, -667839113832134276, 3176520658028215542, 4801050178364021757, -1931748694707043520, 2827614563385783085, -5357590726796636164, -7591311695961610974, -4482998109962336100, 5492795781228717163, 7071585097437485537, -8256511212370819639, -1033296134836724593, 545588205163843946, 4841490740364333020, 1431879702182751667, 7158281449455708963, 604852328893362626, -4732035416621109281, -8696787544095760574, 3710000897335207322, -6140563005407990027, -1485868397268390778, -5634048999810817231, 9055394178316974534, -6992655989971692377, -8379075168281811025, -4177712831863022584, 8557193642835830463, 8727652050309847405, 9101228003095798318, 342276935468733528, 2125454917839578029, -6956409807454930954, -6799943977472325249, 6504154235262509479, -8539888869393801574, -5278083227692286949, -485507237784893599, -8938331974819664179, 6277782500598935942, -430858978908780091, 423142523572608281, -7912724908260959867, 7024984236779840316, 9072978020563012791, 5909231403474564040, -6092798456170918434, -5371271227702978749, 7600418820403680403, -7817342174481767324, -1208233401998943632, -8125475038879897011, 921842133729814488, -5930943891786904273, 750759186909135111, -8474550839788589774, -38695762770562065, -3748349612018398917, 3390897881502099515, 4060669248005398560, 3947749429396924301, 1523483650689135774, 723627418186446678, -2048471960624520038, 3259321852545717832, 809625161299679418, 4172940743163814057, -5255239287699671123, 1962512671155703256, -2146694811129990436, 8523918060091283685, 3909214533264395110, 9013974636356443615, -4965640563133462743, 336600851691663085, -4857027692605061116, -1042125884295943823, -8997397798520175525, 8011258720552881883, -7678416752233649575, 882133936434857313, -8532741990298826278, 1500822475052167126, -7722457738688111658, -2412923846393933191, -8786465162638587173, -8467916395796496473, 4112408740757711666, -7436389022937243099, 4121258431372096232, 2981774707645685279, 6192549078600663801, 3593326712426288406, -4937266943212939580, 4383598015781351388, 3500367667777625099, 4265445979313189893, -7722445123572687019, -8089758488900180117, -1183512982463252734, 5100791319698432343, -7864317229507846364, -8316242451608839418, 941076088028934556, -7375280543745950464, 4092634805284438777, -218945203279289748, 2642739844500348337, -4868857381080662703, 6947840098331849963, 1316005834143845078, 7112945344492306472, 3837608633821605687, 6612953847286164681, 7369116975816483029, 8203800728707370162, 745264072414834480, 3621821338405982457, 1787248701645224414, -8725499828321224652, 5759223232994807872, -6809468993514024728, -5106996447345046008, -1716125143705151606, 8920889292959459674, 1543487363196534528, -1422401727934476138, 5860260653618727672, -3906452349894177628, -4013308462155976136, 6372558017689448063, -781237135359215281, -5144054286467933144, 4282535083589780594, 2396107973253839261, 7365801472716975191, 7316827559627905107, 575866959481419500, 1909520162061294283, -8121086638470045648, 7666955699783671898, 6764014194441244928, -1317946468755875228, -7324167591413870675, -4954190638318189280, -7486335486492237873, 5332744067378770001, -323186611794603812, -3198678866318261509, 2068713640950114482, 3069353812861597238, -6467069238341544841, 9193181258034790848, -7348692611442398875, 8747396694909907999, 3662292962193528123, -6592283124932139589, -5440340727297120619, -2150708159681829289, 5154899013155084974, 300931462916846710, 267306129028303629, -6124402025857570481, -2380862100557754478, -8322782998950903402, 2203849044199742240, 7189962897065300181, -8196293205269926822, -6129722503598130442, -5717855583525242650, -7975313698385058299, -4394814386818113299, 8439719004326965297, -1853466123124981772, -8251721808467378698, 1332718692995289516, -3809748939990651052, 1711930554606737283, 6833741922071233626, -4746950157081688732, -5467758056403617718, -45553055250825220, 1156758914636241803, 5948193078099675785, -5962488332994723134, 7740792189484702658, -6863363731893569278, 1789243812814554167, -2471776969995239390, -6732014630508503900, 1844130485483900815, -200568493491779112, -436077017430881927, 3919223787046752168, 8021529304731123514, -8610751941045982309, -6256790461359078051, 1135953594877785960, -8649939117570278886, 512081662839873769, 281686122159629418, -5413101347049893607, -5127982072271321180, 8829245259139364789, -4992060981889383422, -7011762443625431546, -8956140975323702261, -2270955087903718521, -5175011738133382439, 657640191311126730, 4091251227200427343, -6376895040745033169, -8508555100273529430, -1796050355685702518, -7479868720901504471, -5693370525191439017, -3124825009832723230, 774528893311273039, 9094157038382657252, 8134250295867635801, -926102615299587563, 2769802780729386319, -1298828413415974516, -5875668061957414574, -8567687956511688734, 233394549322687598, -5895936930699961627, 1506589231432092810, 673454251841598024, -3864419293898015851, 8769089921809615643, -1256885168795612395, 3806027142330471271, 2628293344092275199, 865800620207458536, -1382327376923515606, 5206767734543250343, 756017486055271922, 4850772404988320878, 625442543634124181, -4369974630687344896, -3695576970140377038, -9168146533523609146, -7491269378073904551, 590139486766072594, -528353216840969278, 2439540592134774917, 4441888984435367795, -4462545664660870614, 747570505408124171, -4473619033861261733, -3324092939983153226, -3873689014480318940, 5182336296753675920, 7873764258453728801, -7707472075484813175, -3499584067824619030, -4363669762455143317, -999194618656210599, -5956207405289502258, 6088854365980969717, 884915936130810611, -3403372171423376387, 295363824065805385, 2286099348201328420, -1009241209628196304, 389365988436719678, 6366665261248409318, -3000897104692751348, -8801031179767441413, 3082863725940309590, 116072542729193868, 298868359587831624, 2632026018652181729, -1838284396540890431, 2082973454121984783, 8141066170324930012, -3279079705355382969, 474704650168943363, 6226317328107536369, 4825910540062605953, 5945263003255050778, 4504821081943907717, 4368580867379439264, -2818720317675853613, -4361067299114656414, 5008345756066421481, 8031101549735632146, -4148573144730325996, -6371332763708233005, -7239302400229886016, -2014395882539237498, -4557361942559936912, 4849766911099362137, -4114671162324339357, 4721514747018921326, -5805803238004189414, 7552698164482785756, -2922840131454980906, -1669191079305453102, -2531215509889715468, 5439356077135540601, -6343114842632758846, 2629942975255414574, 8286884461927020068, -7871488877533307791, 2862083316722898491, 7087387006969898480, 606711885235407217, 1693734614856232642, 217812560108109734, -5192024600182825344, -8478414091738455841, -3883421583894329607, -3369084816838402991, -5907051089772642916, 2483299219641833672, 4013666645553606665, -602318766852464546, -1077903559315031146, 770082142730356829, 3993899725793039928, -1229458295801142802, -7427564167209533319, 5744627202631096538, -4307622145389755129, -3235672070839353056, 1509870615572337394, 5155510312138930465, -347833235362661169, 2884411256285248683, -7487719631604369919, -1423783742145509702, 1173199934709978722, 1326657929459911373, -1585920494862835341, 3047872656379971433, -7641609213374676823, 2590250378075021977, -6472628529171104197, -6927900969806126702, 1747954734382651024, -6152543370889567078, 754358163957577809, -8351318808938792381, 326825291789732117, 5557618892685483060, -5849777647240212801, 5760837234435517008, -3843804261769104675, 7222778241614397433, 8864895893229875687, -8422456700173688630, 7273523800189460156, 492179030368810476, -2391480277429268284, 750834839931384475, 8278665001739515818, -4982482698709692101, 6475385556371811030, -7853095560331657104, -5848657393720385028, 4753865672451948336, 5512849629924609485, 5116641493098583451, 2815226095414166430, -8494854239959616675, 1782078395145329791, -5158653085431633500, -4657046649979588160, -111873088748600590, -1939359841773274182, -1393657311545381938, 3519568563701362857, 612692445395799226, 2590166644063810226, 2784744666920505647, -6483266022223056305, -3130119144388962152, -5935204981350286860, 3106025523692912745, 1881736877774620439, 8193576216936208758, -975280572085523442, -1541414951107285938, 9036817538786496170, 3121172592683938345, -2312993974902646780, 2918043619159089576, -5557011336181423922, -7232783249999228981, -6808261010130612619, -1024226312373348323, 390267185930883049, -433773452758753890, -1382188157026655723, 5552684775601009220, 7423416825822047242, 5921594515673978074, 1623161230277289138, -8635996496859796366, -8341198799787506612, 3684274307140230103, -3525979106511607914, -8150260350424184478, -8532800934409415517, -4825284869295363913, 6096824428633248996, -6934839419233550764, -3952569066269370263, 8829949667617343402, -1084935265649891560, 4888155050469376768, 7759001841431655476, -632465181939387254, 6823471927599469521, 5123512777902473827, 2294694572406052559, 7293379777634816638, -3954484737852232932, -2604163955193706319, 5302199851468118708, 7941997818865972731, -2944316522978960643, -114533323212471318, 5143101534135716130, 5503830823786557143, 4293836402769053661, 2443793899823007245, -8071123656826297050, 5347773595699610761, -8929372395762077376, -1585177283667380717, 2914214588282404436, 1504725386427480254, -1023403796257129121, -3815055356083271397, -1602177549551322433, -5218135579937239946, -8682427831710675231, 6708818568356231300, 1460617358915420542, 8419233541028365779, -2203822834983361938, -1931612997367313039, -7090136942616851123, 6159601980531272771, -2924982422417083368, 8625733557184675609, 455806705506487484, -4175122711639362245, 9183344182512950169, -9205269537311193262, 1180206716364896655, -5105075516890051179, -7015458375405687643, 7461146559025422960, 9217651932099188075, -2566722736742416809, 461436019440732543, -1600352722337213990, 3717854620828942012, -1025875194482804295, 2086135012014834367, -4704994046889660330, 5403589599609442036, 8946573654584661369, -5851412813291557272, -6114186204370949459, 8846115909828536457, 2516480883147209491, -4896484736258034480, -5906029717909633600, 6265789318254371860, 5901987565094300772, -5134657975554973139, 3754493426391366020, -1024841823846166871, -375837918500718563, 951082404374829235, 4968059706062408597, 551360151702058730, -897839361899024578, 8423280353089141563, -3067730695236925986, -3026133068307276139, -347944654449501921, -940860396850113768, -8480884751044675527, 809962066770662957, 5570805929138081955, -8536365026315448451, -1785006368005680537, -7539890532479137853, -1685625021416486080, -495084654998941506, -7199283939338655440, -6322523877276066390, -1924280359267481057, 3386811195096545218, 4340173080453476318, 6364546987214926734, -5539307997095767096, 4788361980582625532, 3661405512672161742, 4604494546812057752, 8370694602000383875, 5751823553944575080, -80732473868442682, -5068975410524126635, 1331105462545369438, 598972586912857703, 5802402952647492833, 7351347543334195739, 4629965513871560492, -4477065353550525982, 4293618117058312116, -6815898000427288159, 846705003859041619, 3186171236091860712, 4576063879771282323, -1518436754082451324, 7445306181558445577, -89593885154150055, 1614218553588509528, 818189339834939969, -6927299680575465663, 774958765598804809, 4184480648866898818, 709459366790959167, -4626091224208877513, 4645906675380526157, -6375925064930762469, -8825007961980179238, -7325276889309215544, -3027372533955547264, -1927195262342876859, -667359508884563370, -5415417686542208967, -5074170138512727390, -5893063287029739857, 2536729896110987882, -6272080088435360542, 8951868953695015582, 7657733672058879951, -3591774230959004874, -4098576984620957257, -7954501087248739387, 4278808274080018333, -4189589147412854906, 3828103683445085006, 9074562452350853598, 4059407993900385140, -5997554768177503082, -4636925930469952744, 5080884309044199817, 1665616659663714146, 7970275004708093640, -3515425865023497791, -6360788715005919459, 7681345674226937024, -1591754913526476693, 5278190882276400205, -8713532464964466486, -2461950230538602509, -2727563323241331517, -287882604865952548, -4998482287525601156, -1649942588236592323, -8334141899698381045, -7269267742813065958, -7465996355516162442, -8367728504152794794, -3459103132137325384, -1442198878028866612, 1345426515571720162, 957338003967035704, -2303816575022567080, 1208712301355977128, -8664278389558935051, 2585968968163383394, -7442461843337218072, -5180740110988816831, -8127690790899584447, 1997488320728279352, 4286740531879912040, 8274874197080548026, -4090772764543241414, -4179221920081656990, 1240571758916158831, 5831155452761097247, 4491312469535288412, -2214189452237794995, 7803610570916068138, -7512765815705388819, 4495939759546582316, 5919234342593647532, 2228366347447295854, 1200108966100871600, 5690160104032373911, 7608341886840415982, -3591711374593353612, -4138862006196247025, 3035941869393087219, 6865636581281765649, -1005446072170419096, 7567108779417572888, 7837517685344243063, -150544188122666775, 4151631287228471306, 4526501527929220747, 4226079951478001946, 1202356483128737661, -2739082484678542864, 9014315043463709342, 5433171088527550481, -675011903020846570, -2390268965994021074, -6400528939907285297, 6150357763280260129, -3017666321637668155, -8521816736249195554, 9201474057859856959, 7787251696844674920, 5459333673413767625, 1426920414208397410, -6429487967293043397, -5257783894738967233, -4284393545900291341, 4495860121982827476, -46895423979592336, 1296883116656120401, 5786280337555694459, -4666319220415667626, -3461086543927012398, -7466201980694565103, -1140264047004134064, 1788452594610260380, 2122482110897982437, -967561019628217055, -3085653831748559619, 8968205811622157951, 2548019779744265006, 3102188766046202682, -2248855211814195250, 1840990658819753196, -2774269581294831808, 7736515481348219928, 9018202947188024121, 665256893255762772, 5335232103275708859, -6147769550004725594, 3101116076125687634, 8997815652593752671, -991039277422269440, 7401069779267872655, -4265706085782567959, 3543936723168736598, -156641789358572940, -3787937288235758175, 8493545078498008813, -1246104920785264932, -8472321413018125528, 2488827515048085824, 8921536292508501002, 6738563439579654225, -200494991427853633, 1522770512287049875, 27967913645549852, 4522774353626005250, 1256679544378049641, 3405255849140860312, 7600273242978473381, 23575511431754301, -4672409883425447422, -1889984186866827497, 7296992012812133386, -4352477371763479278, -7044820154857814072, -12882897692051401, 3386197820290517830, 3757006914775894255, -1373125215551940593, -3417240353472760107, 4545004743879531724, -8452197784793964824, 4011326474920807008, 5525699117455073819, -3509792888780752488, -2678176774927838959, -7865242219225730860, 910114598761973557, 8729218338529719741, 2193454523997047762, -7768649955433311043, -59570399940716217, 5379873663944752595, 6958753457463799369, -6834288079848933917, 6017726407627186015, -5605007233816630810, -2133202062587357392, 6308144618868189880, 2410467815773232712, 3362613551949800205, -8338291721789685875, 6806446490174013722, 3617871453764871716, -8089650650345025368, 3404255987694622585, 2202469573791039532, 8917069822569678336, 3673380902626594473, 2006086046514863996, 124547239434762347, -6699895425011329664, -654980885606504113, 5693921821332933733, 6240465266111347301, -5116742469232271276, -7234779267632071457, 2252310932068953919, -4826663343385305810, -5138935515462782395, 4689492763043291304, 8050868810895092300, 962693406226418360, -4449695870065690339, -8090037331985041074, 3267588726403168015, -818610592836939733, 7132156710085247201, 8105498990887613566, 5292883430792218720, -8967672561525703489, -3060374723375263315, 6471936150048936450, 2172367360780066734, -1827028870686942816, 8184252284225033604, 12627831469234390, -7044530554455258102, 4876415032581521430, -3432957251328609060, 2824204544680857114, -6957079231530010699, 8190949275851966633, 6823755481099456679, -5876393354565011558, -53970842360164026, 3853564448249494149, -2972682942843227938, -2348220370393093578, -6728559394063198303, -428422563929318788, -1957417017065146130, -4576719719265522168, 8053316042690501278, 3310213367865201347, -4112824968274046397, 9181248053861701240, 5060815935519305174, 7032513404456678609, 177101472299265594, 9016686722828226635, -3992609091501539892, 3143581933428900547, 8128180822245920683, -2491463316461667999, 2330203500336038282, -5110918847855557615, -7491970226199025008, -4282477307488025506, -7781771132730950018, 110713113935466601, 5587248837089220356, 1255960974818918754, 8698965655282249228, 1142240120158884473, -5140871044598154651, 4242316612159154748, 3196934947642219001, 4142985180027536009, 2284684766136520859, 7816460186487161689, 5634691966513170702, 826997164884838579, 3671534939283556119, -844031886846999857, -1657668728488381095, 8601048722354210748, 1874055730116185503, -1085772457483182900, -2379097533368203544, -5332523084927766221, -5720827504987796707, -500660857826907077, 4907278821539746137, 1612608063453637092, 999864768533873242, 697789296164832681, 7245427910569743072, 1915079413800755968, -5131813309895086474, 8603554651152580284, 7004256889621974285, -8841849929405732104, 6266043455441667211, 4281933208146509394, 589626416538186847, -9110023954929925113, 6228236764400239770, -9097851054913215828, -5615926735483961873, -3816309666573504094, -6658235192728664890, -3489437372181895819, 6473906457060472482, -3937193548061835672, -3330600485619962728, -1144571853544535461, -3951778588605513599, 4357554689713104672, -4357398228254444450, 4271030972656924912, -3244690036564156625, 8156367274598166522, -3931250004521385041, -2911389906840280156, 2346135012548426971, 576993460546804143, 7755992082919279476, 5029888512237914138, 4169682438101948249, 3117687678292024900, 1389717223270727909, 2970221911793514584, 5050422048466027618, -9167054139502708775, -4740218251362552892, -3553211067591049806, 2581209126211751705, 6210955990385848062, 4029216681594316343, 4757775271400889122, -3976277041015824707, -4679861032853884697, 4796453839497959957, -6840455779837473580, -9128818347027882259, 903574838146320940, 1535682736054934768, 9203128279744177178, 7825465624445881366, 4729623009342607951, -8445010477853746168, 2779359132169173177, -7787638646415434082, 8630307791021786349, 7678698831967593045, 8924323017326743858, -7838933716625602894, -5363993515335776073, -4758848622545323715, 8165749912610324377, 3890814894726346511, -224522875182829871, -8504675575833067, -3136726367779306378, 180991206201918487, 1734914536475617191, -8026633819492051296, 585377375399552857, -4057686706863967291, -8792006564640315718, 5133949230062027221, 966490915736029700, -6856276960559046469, -3209050650471783039, 1997946309212720291, -2694844664018723792, 3040950680047421026, 664257877741578415, -1549762200498106454, -6557905093166641386, -8211748983442216867, 454695318135322844, 8098973132628461804, -5374114151749928624, 250875467351983359, 8620562681172610875, 7000258589713572687, -1664130791612438228, 7543643719287184369, -7801214284011511231, 7582532710654096211, -1305082352635692836, 467279306749204029, -4699785433075779598, 6850508823342814093, -6352453380479010935, 4359866734038908518, 5902667197491083031, 7491369333420527577, 368394965541002310, 6196741845111984131, 6216658244935918994, -2752843053616425955, -1148561512128619591, -6370429481649296125, -3234284230884801704, 4606987715801616028, -2718306068765596780, 6914318796004499819, -5955316532302996313, -296482199804435617, -1622236069462721855, 3501158302851784486, -572523975562305942, 7098284566686338285, 2060918062386840664, -1036304409717708042, 2037141206169921799, -9157679456705931543, 5921174993872226438, 2258376583953503577, 1380384900532319897, 5150863500031027649, 4491459583774403100, -8799333906252164078, -7436299637009861037, -8897605254734354534, -33573020224461376, -598118414029620053, -1036032722062113417, 3112711594643544824, -6413355946478926157, -4306076522754702353, 8624135096108717536, -1391526975651603912, -2546415741280369889, 248708739663316717, -4076449748166029713, -5531141162888212301, 9157140210067052907, -7152812193245389267, -8753601697609765711, -4020732460633455383, 7187437046903224286, -5055160253822539475, 5740244605347500833, -683871540398120655, 7898025549943690712, -1290240967206721704, -1743125062461769548, 6422263519987998930, 6839574880723343706, 5874745018847963481, 5228066245330305137, -977796713401175104, -2638646963020434633, 1031149875050997514, -5269507848698839757, -5537344948493036939, 7386325726715884105, 5044850892597083588, 396022206904815266, -4634210581742012041, 5016832958586948828, 3037314680921923855, -7714084903984746866, -1202569377564993821, -7401114300118604435, 7704534374415376277, 2156604305649768794, 2817748268707172365, 1053569788744816184, -4301201223533542269, -1599613411082562407, -4955672137856541273, -6243615707262612649, 1630246511914211374, 8743683296570668073, 1389080168999368683, -5264898573472638830, -5277151964454990744, 8278880058128573084, 5988807441639222597, 4766863221614704793, 5359524312828082327, 4466911741370325898, 4190251645054681054, 6844747556036323011, 2787084668216008586, -8842753752665197773, 7811869791363827446, 1947986319779991562, 2595675121194158456, 1928698732085290081, 3445100354674624654, 4698092473852175334, -8389240440663659562, 4037095003311488799, 3612199949675998165, 7475295921963138980, 643461511745356493, 2759701459090278254, 8039108320664086624, -4789457556455813773, -3046417913880116144, 4604279469796709200, 3091999775913123966, 2525308934924979894, 4788231701303947795, -8804124782913533732, -7810151231409358469, 3914487398198805513, 7405176402717547027, -4088208378638131629, 8185598939756282511, -4923220187259011432, -4205676137230147531, 1212255400888206837, -2732932430502287969, 6968133671527913135, 6774264180253840475, 5058260994715711882, -8130125491347080982, 1149156941701589453, -6010198640283435488, 1449319895462962850, -2281107511056733355, -466571451550039668, 6685982507464898108, -3312513759151219649])), 42), 42)),) julia> @finch_code begin Ct .= 0 for k = parallel(_) @@ -866,25 +866,26 @@ julia> @finch_code begin end end quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl = ((ex.bodies[1]).bodies[1]).tns.bind.lvl Ct_lvl_2 = Ct_lvl.lvl Ct_lvl_3 = Ct_lvl_2.lvl Ct_lvl_2_locks = Ct_lvl_2.lvl.locks Ct_lvl_4 = Ct_lvl_3.lvl Ct_lvl_3_val = Ct_lvl_3.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] B_lvl_val = B_lvl.lvl.val A_lvl.shape[2] == B_lvl.shape[1] || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl.shape[2]) != $(B_lvl.shape[1]))")) @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" @warn "Performance Warning: non-concordant traversal of B[k, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + result = nothing pos_stop = A_lvl.shape[1] * B_lvl.shape[2] Finch.resize_if_smaller!(Ct_lvl_2_locks, pos_stop) @inbounds for idx = 1:pos_stop @@ -893,17 +894,17 @@ quote Finch.resize_if_smaller!(Ct_lvl_3_val, pos_stop) Finch.fill_range!(Ct_lvl_3_val, 0, 1, pos_stop) locksArray = Ct_lvl_2_locks - Ct_lvl_2_locks = moveto(Ct_lvl_2_locks, CPU(Threads.nthreads())) + Ct_lvl_2_locks = (Finch).moveto(Ct_lvl_2_locks, CPU(Threads.nthreads())) val = Ct_lvl_3_val - Ct_lvl_3_val = moveto(Ct_lvl_3_val, CPU(Threads.nthreads())) - B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Ct_lvl_3_val = (Finch).moveto(Ct_lvl_3_val, CPU(Threads.nthreads())) + B_lvl_ptr = (Finch).moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1 = (Finch).moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2 = (Finch).moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + B_lvl_val = (Finch).moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr = (Finch).moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1 = (Finch).moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2 = (Finch).moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + A_lvl_val = (Finch).moveto(A_lvl_val, CPU(Threads.nthreads())) Threads.@threads for i_4 = 1:Threads.nthreads() A_lvl_q = A_lvl_ptr[1] A_lvl_q_stop = A_lvl_ptr[1 + 1] @@ -984,7 +985,7 @@ quote phase_stop_10 = min(B_lvl_i_2, phase_stop_8) if B_lvl_i_2 == phase_stop_10 B_lvl_2_val = B_lvl_val[B_lvl_q_2] - Ct_lvl_3_val[Ct_lvl_2_q] = Ct_lvl_3_val[Ct_lvl_2_q] + A_lvl_2_val * B_lvl_2_val + Ct_lvl_3_val[Ct_lvl_2_q] += A_lvl_2_val * B_lvl_2_val B_lvl_q_2 += 1 end break @@ -1021,7 +1022,7 @@ quote phase_stop_15 = min(B_lvl_i_2, phase_stop_13) if B_lvl_i_2 == phase_stop_15 B_lvl_2_val_2 = B_lvl_val[B_lvl_q_2] - Ct_lvl_3_val[Ct_lvl_2_q_2] = Ct_lvl_3_val[Ct_lvl_2_q_2] + A_lvl_2_val * B_lvl_2_val_2 + Ct_lvl_3_val[Ct_lvl_2_q_2] += A_lvl_2_val * B_lvl_2_val_2 B_lvl_q_2 += 1 end break @@ -1084,7 +1085,7 @@ quote phase_stop_23 = min(B_lvl_i_3, phase_stop_21) if B_lvl_i_3 == phase_stop_23 B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] - Ct_lvl_3_val[Ct_lvl_2_q_3] = Ct_lvl_3_val[Ct_lvl_2_q_3] + A_lvl_2_val * B_lvl_2_val_3 + Ct_lvl_3_val[Ct_lvl_2_q_3] += A_lvl_2_val * B_lvl_2_val_3 B_lvl_q_3 += 1 end break @@ -1121,7 +1122,7 @@ quote phase_stop_28 = min(B_lvl_i_3, phase_stop_26) if B_lvl_i_3 == phase_stop_28 B_lvl_2_val_4 = B_lvl_val[B_lvl_q_3] - Ct_lvl_3_val[Ct_lvl_2_q_4] = Ct_lvl_3_val[Ct_lvl_2_q_4] + A_lvl_2_val * B_lvl_2_val_4 + Ct_lvl_3_val[Ct_lvl_2_q_4] += A_lvl_2_val * B_lvl_2_val_4 B_lvl_q_3 += 1 end break @@ -1204,7 +1205,7 @@ quote phase_stop_39 = min(B_lvl_i_4, phase_stop_37) if B_lvl_i_4 == phase_stop_39 B_lvl_2_val_5 = B_lvl_val[B_lvl_q_4] - Ct_lvl_3_val[Ct_lvl_2_q_5] = Ct_lvl_3_val[Ct_lvl_2_q_5] + A_lvl_2_val_2 * B_lvl_2_val_5 + Ct_lvl_3_val[Ct_lvl_2_q_5] += A_lvl_2_val_2 * B_lvl_2_val_5 B_lvl_q_4 += 1 end break @@ -1241,7 +1242,7 @@ quote phase_stop_44 = min(B_lvl_i_4, phase_stop_42) if B_lvl_i_4 == phase_stop_44 B_lvl_2_val_6 = B_lvl_val[B_lvl_q_4] - Ct_lvl_3_val[Ct_lvl_2_q_6] = Ct_lvl_3_val[Ct_lvl_2_q_6] + A_lvl_2_val_2 * B_lvl_2_val_6 + Ct_lvl_3_val[Ct_lvl_2_q_6] += A_lvl_2_val_2 * B_lvl_2_val_6 B_lvl_q_4 += 1 end break @@ -1304,7 +1305,7 @@ quote phase_stop_52 = min(B_lvl_i_5, phase_stop_50) if B_lvl_i_5 == phase_stop_52 B_lvl_2_val_7 = B_lvl_val[B_lvl_q_5] - Ct_lvl_3_val[Ct_lvl_2_q_7] = Ct_lvl_3_val[Ct_lvl_2_q_7] + A_lvl_2_val_2 * B_lvl_2_val_7 + Ct_lvl_3_val[Ct_lvl_2_q_7] += A_lvl_2_val_2 * B_lvl_2_val_7 B_lvl_q_5 += 1 end break @@ -1341,7 +1342,7 @@ quote phase_stop_57 = min(B_lvl_i_5, phase_stop_55) if B_lvl_i_5 == phase_stop_57 B_lvl_2_val_8 = B_lvl_val[B_lvl_q_5] - Ct_lvl_3_val[Ct_lvl_2_q_8] = Ct_lvl_3_val[Ct_lvl_2_q_8] + A_lvl_2_val_2 * B_lvl_2_val_8 + Ct_lvl_3_val[Ct_lvl_2_q_8] += A_lvl_2_val_2 * B_lvl_2_val_8 B_lvl_q_5 += 1 end break @@ -1368,11 +1369,10 @@ quote end end end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(locksArray, qos_2) - resize!(val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}((AtomicLevel){Vector{Base.Threads.SpinLock}, ElementLevel{0, Int64, Int64, Vector{Int64}}}(Ct_lvl_4, locksArray), A_lvl.shape[1]), B_lvl.shape[2])),) + resize!(locksArray, A_lvl.shape[1] * B_lvl.shape[2]) + resize!(val, A_lvl.shape[1] * B_lvl.shape[2]) + result = (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}((AtomicLevel){Vector{Base.Threads.SpinLock}, ElementLevel{0, Int64, Int64, Vector{Int64}}}(Ct_lvl_4, locksArray), A_lvl.shape[1]), B_lvl.shape[2])),) + result end julia> @finch begin Ct .= 0 @@ -1384,5 +1384,5 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Atomic([Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0)], Element{0, Int64, Int64}([-311528392542676525, 3802864504850227773, 7132563740294941325, -7734229606977869371, 4610816547292327398, -231875892530149519, 6479067223724325995, -5993925410246119408, 7769769731936043186, 6508773581643622648, 8377470195368681305, -5026402568726958822, 1827804178661326297, 8945035746065187189, 9142616182405809812, -6444208854588150036, 3277304349445109851, 4784032081641147304, -6760158860367436072, -2973384685745632037, -8129972329073734262, 777092723910886802, -3245293789031672332, -3523460009327721843, -5684260890958137224, -8265569238908005417, 8801036620359715779, 3266176164242776697, -2137918316110048538, -3323946906471089812, -3314215782571951707, 778527069577570500, 8137954887180256780, 8430989329655386292, -606788686983349880, -4214419631996394082, -6982805642717038791, 4797874315021516200, -2404366658509915138, -9177912505471373539, -7126158702130095549, -1766466893224773589, 8924417853649894089, -4674003454091887679, 2257428816284239881, -1332826559188755030, -8548057139935380399, -6301259390274164526, -3288288979021163907, 6879439315951637090, 4337023968316665593, 6946150187905484505, 1010965014357589050, 5912572766312215522, -752662070435057852, 8324512872143105908, 3863764696845398606, 5389249056777042937, -1935499292012667397, 7268079289042811102, 9015678537102606643, 5924330619075555357, -7424534445741392445, -629875664608289672, 8384040311367110728, 4366481991429755226, 799319475113248361, 915077563132424308, -402689656772636859, -4955233076805992406, 7164775445931617845, -3741939346817651094, 626388912028592424, 7629488070185682238, 2229303825265914208, -5262491359642418345, -4880619796691544255, -3925706312675979806, 4696878665903208702, 5071857546218785861, -3376912663266974892, 8653621680026928799, 1396781445024355796, 621390305019145984, 8372778663022275550, -7480329048309833839, 1560173607708756635, -3514469212498253617, 2082849966979030776, 2855014826193932577, -6098003633715037270, 4973995505549769974, -934656248683882969, -7138618497546152206, -8796608146899612477, 2599534084177250165, -3661022375209093319, 6753861788669983217, 8879020977128083301, -1369089299051099462, -5718241577534868428, -4601048383104503916, -7761404906865992561, -4766352168228543906, -7581342006403310193, 5305627711042476897, -798942769184694703, -7013308532278854794, 2556970310791640083, -8310154389049907193, 1935579670641235148, -9182270706148454992, 9150818649447775758, -6638702227973546141, 650090674291676413, 8236754832241948399, 790792765911863457, -347542563766738388, 3388642901454996993, 5348134068670085253, 5074530787207075513, 1395232644756449952, 8090997313784423115, -1550511403107108256, 8571008051355695605, 1306564260425723057, 5818833840846631664, 8799033188003922464, 5410444795730799007, -3373047473574331090, -8548302006770261151, 5021861578667389638, -432669836523104479, -6438627394278666063, -7251108417612047114, -6291884531541975330, 6537071113687438992, 8966161431802402633, -5259240086960564044, 3503163060697962605, -4065148945903097744, -1777564193334828938, 1747809001727155632, -3417070383920828456, -4980740299784891473, -559866941814657186, -6426350914229905139, -5679160652862202404, -6211678578062624482, 848841581372246207, -2989862519366817864, -9055561009588072094, 6765006199830890923, -2062587279559167170, -7502248691809669785, 7718809563802492192, 3633483956842288096, -5531671318896978179, 5326224353406326292, 6726394281003005045, -1713581532815293882, 6024523542812863783, -1763399164735930073, 4266920826307605526, 622375407618332670, 4341466034596968525, 7715246185820712492, -5773491122824348016, -1826385467445025486, -7822412245781439819, 8017872321912493505, 6373242139699342871, -6944882458072813137, 4697620715257964034, -4365394206032703789, -547148396038045198, -5035570107494867275, 7793404466643051559, 4469721766633126697, 1166061378200498396, 1554858931156904800, -2361412551770162450, -7930855384212681335, 1713868002622874066, 7409111426406558639, -512154663509791484, 6537275880940401093, -3910570248961609024, -3836656625145607293, -8938294775136724153, -6507444214278732621, -1150538280928728183, 6973878162312254627, 6572969588409572611, 1002231209937518033, 6908277548248118165, -6022132921017429451, -7025870997712287358, 683251940863450233, 2493524975192955782, -7276639915615857470, -103883638664277997, -5314704606673142253, -7038752337314182336, 5560169698698056371, -5881866866010041715, -4469522438057826665, -8939893843141765247, 2642101218897762188, -3300172923916323330, 6352877754718065190, 4084338072180105389, -4342549113399200393, 4279374017424089065, 4398221897453782925, 2422944416491435362, 7922267869330361805, 5995998007128456283, 6280625043231339994, -3275865643381161731, 4383174748559532813, -8546441422012175712, -7893577028946492213, 9027885389349284629, -6125149023153379003, -4956546681275572683, 5715129565539777013, 6623276731031366799, 7560337431809868738, -31750236024934407, -3810198350997910123, -1146409313986505151, -428701850515027514, -468073762720447669, -1390050471520983211, 2835265798923663700, 5764913612679834112, 958810651968247391, -3797815661291407520, 6460520626648203269, 211708702104126221, 2261091765752400712, -2964977199137046896, -4385151649562144001, 3116185924188946137, 6739692152509783528, -5305436920427785009, -2907282851691115609, 447743807557596132, 63862440751247066, 3514479843707153842, 5999601496287905231, -3654531195335519906, -2542600877922342253, -7290989393844413666, 9085469624507262735, -541455872346318235, -7971088789235032060, 7689978220151207746, -2711513566589271239, -8343310657572295416, -4167999392509592540, -9039445678299213909, -7170301895717218884, 6291529442536905084, -3374963351675626609, -5373168051494346318, -5497601031482005775, -2916886395075307235, -3883261685502767633, 9179413910741410099, 6289334284246669717, 4234089800929872794, -2655732539271996720, -3035070633871992593, -2437303472975627474, 8832963047795505553, -829388827821593367, -5370201744962103593, -8911288617151731105, 6714137128155914855, -6937785380240140879, -4804598248727707302, 8750156478448565502, 2574912636013720638, -4885946830234328537, 7521358135764728226, 535303159333155897, 8138574657622192110, 2456224430349956627, -8992321412901943906, -7281936363115109639, 2704721690134351097, -7216651923179770008, -6506422878573197942, 8915586083417585942, 5371232788505226594, -1740133450893903245, -982304251078917805, 2244112516915558506, -3114958008453226, -4610260728675861751, -1143025776890919762, 8288487391050636375, 4388285265909577760, 1232243352541145132, -7717830768524962099, -5901227017481054829, -6100861997340233106, 8279906479564605152, -5427340363020812495, 7436873303994409336, 4437395942259467556, -5486323029786467602, -749419638916086313, 387633405786106344, -2444684956722819414, -8879980142125000057, 9032213405251538238, -196725452198675903, 4109301537930725517, 6117388314164827016, 8847370785979768678, 77521133169697924, 7077666419656637399, 133555131055822904, 61998257733475790, 5697558321456541168, 7399783912995781559, 1137891396677380707, 5074079993681838043, -657911960963882852, 1137470059873220310, 7020780662981280391, -9177001920397809522, 790362239680355816, 600172032624920855, 8543420636741980368, 4528589445176971886, 5960728324702488119, 5514186694424436532, -5432336659913866735, -2057725448378912415, 3911807348846574985, -2933766100391426874, 1800193705806185930, -7054816631402652609, 7183265689053958885, 5699677378061885134, 4220153114531888679, 8286682243768326060, -3718825949288568614, 4247279726743304081, 3401929723154371418, -7791632387902813891, -8525035833654653815, 4642847250936202202, 8571834255563384580, -615080775143020047, -9141302276862944236, 2497129230952559091, -8795367116044177149, 4697020691819045650, 8078487089138316076, -6314877087348456338, -8272915201734457268, 6950678089694500897, 5377750684446461249, -921140928622983181, -1520460049452102693, -3177121019444108678, -4051624390692544861, -2825784479508224090, -5008690521298053399, 1770783004922494527, -5527822838273234845, -4503771241503652292, -4788400236276842410, 5619353998326498739, -3701011697076308480, -8034418559493520412, 6350765187233515105, 982558642287986027, -1448602610424440694, -5618483166513344245, -6278878478122580648, 7537160758203387055, -6154847048393471752, -3053777167706908675, 102968748125835682, -4368004269290628803, 3948417958341752791, 3441688668713259055, 5686013332820589556, -6793945691483312138, -5657337314720073764, -2316326789392298880, 8429883766104818531, 5672048876768223736, 4801755278649149250, 2457832606218017605, 5660898524916791368, 9008328499307364991, 7282355400911599490, -675022808189279520, 1248812713894084058, 4295529333031152182, 235010168203572616, -4332156008277813622, 1584706501703338551, 3224219654798343804, -2046414069220643115, -4768268609286612707, -4595767465089756149, 432385139172141595, 5744340903783987934, -5907814276982578230, 571373857369851574, -4615364944658920518, 985558362311014501, 1146748558906210730, 7358527181149231649, 2960234619888514885, -4221579384574605709, -33577900070920492, -1383491017420984722, -6667111422768545223, 2209578116218914144, -6192696716189832095, -8682232579400392473, 3926742208689603882, -2605251114517028176, -3432143345789886934, 956256818538240068, 7048231574365916809, 5172150567611355985, -7087473940080722223, 2829725628381946973, 6615614511402804897, 5597114989308889913, -6360862330806523233, 7263403909484904208, 1722745349057533175, -6250859958048377022, 7854765438825869947, 4544273279457948494, 6871378735684121062, -3351123348798445569, -3070913893427269938, 4474858432188499679, -3027153348937151936, 6723187138491054590, -4633043728650674379, -6923489996304544514, -7608004350687835922, 8618729303360011673, 6145931189986425565, -700125041702955627, -7361791825514005778, -3052622408661881441, 8247111715450418050, 7644850195268952347, 201981812631246530, -5366187106284689552, 2240979599738100899, -8929354876130746907, 622748136125783190, -2241977980877970148, -8690707102946532636, 1816258902369550876, 6082608921810779350, 3313569380430314248, 7003634692020991413, 5388495764620726128, -5530822942131330273, 7182058408716498125, 6272977706245272491, -1611832087259919849, 6304118920652930260, 2664243321321065829, -6991256246863621561, 7763559060359215549, -1363294210753473603, -5984590649126030611, 8835145660544963598, -4339100511013335484, -7658343482117166946, 4767592705684863404, 6567026582399699474, 1241984525409511450, -5043459788309072162, -6788638110335657665, 3425502247489073842, -3386866538103387786, -3435764054745173624, 6561588844054851309, 6358866269624109218, -2265970059794978437, 981754089422755666, 303360095818360815, -1637078045909787216, 5039180299052306271, -5050307403632054071, -4916014943876365639, -4786790738315442642, -4112969230517500969, -2053067729163411292, -5506471273731989096, -9192763281442671194, -9154538478094146297, 844512131685900736, 5622194151159285613, 8194896671418306404, 1412467403218231788, 3881564188099745981, -6535023704129633935, -4422084769610503611, 2842323006370744908, -472587132304431690, 5418894508652286502, 5354997878416558687, -4192781941439730955, -3177986442565831154, 8055846518519871975, -2415348653243756702, 3420189508094535959, 632472561226799626, 9048880056639467255, -4088888662813871032, 5342377372296981891, 4269139230891294005, -6717542854769676338, 5697661121986271761, -1342180587334633568, 336875038379374793, -1762255469438213123, -1771219285192270657, 8879943609619899579, -6124059468186375892, 8286471420479395455, 5543997467023211823, 5320361181567019590, 8958205738403874292, 3782571393394012068, -8985467336212511099, 4358217428218486255, 5323123421330561591, 5764541270351390266, -6963051555266077147, -8117203354060625734, -3369353168590364075, 8066080865612783830, -5493399428262160806, -8062951269302324167, -7795183678321688541, 4270469270852553336, 5515134373073409924, -4715340744920803950, 2105370441481331601, 377342343915534328, 9024587429061028407, 3950645024865924468, -7513885460653066738, 5679113338470321965, -4007675874528217094, 685254662537812760, -7675519858059415042, 901700859132852851, 3306012866190376430, 2408392168740675300, -1818210664377266977, -5985536775766332429, 6859135827266771568, 6142180884473663150, 1662736140744539339, -5748205425049442259, -1431038593146932184, -7772606991892607571, -348435608257889917, 3323776957236852960, -4109021388662695665, -1035387926833810113, -6252075674217952235, -1688047783032235782, 4835484251275026119, -1130434861387672189, -552211881628052457, -9041375001510857971, -8608662509892950952, 8688323792329827521, 4639288709326029154, -7997418775765929203, -536103785062713510, -6343663721617708900, -3154255286206413772, 7778544095371035370, -6087249532642040836, -2119136938453566451, -688238790820179873, -6835440198851144923, 5315054982053402284, 8173102513358076492, -2069317718895641958, -4771766013066052606, 931917254490650404, -557345458441442938, 3220011825320527555, -1158400632381301374, 7109875313372060233, 280358344723014545, 1781923481723729313, -1805499844278566084, 5814569477732551196, -2166719128253350835, -7610231454586483844, -410436740688301883, -8413621775294896865, -8989368555919190902, -7176709214957782648, -7904552684938415090, 6506593041716222957, -64275500919664736, -2441305534489441569, -8607529290606256433, 2704494450480538341, 8252863318644872588, 7679830104172517933, -1362881973065009152, 3227375449815221716, 4230416557459228451, 749940150731561981, -3955830997208866872, -1058276989298619601, -1641422116181591194, -822466760760516658, -2021155498858226231, 5043089523958593235, 9160523363278870467, 2440291487886579299, -5076764184565375538, 4008082098413400136, -2574196012088549257, 1815165426871122463, -1810363067796950052, 4564660363457428284, -2979682748740342374, 1263528409113807511, 664902837787653319, -7730990515836195905, -2880800962758009323, -7855792495166800696, -3741677040754952297, 4706538099020817013, -9136310530026765146, 6214908330569213306, -3306943983211023738, 2006683290226313727, -6277376814587543000, 5070401159692077631, -8643576681302494805, 8696392328149980718, -2881724085663247400, -3287341067959381540, 4490394380103475251, -2388135268153109148, -3688564781415624446, 6498489205468056363, -5500244887538822899, 2180911647749845602, 8505364545645231746, 836973405812942824, -4740164100896755286, 5278723018552192484, -1437440665187625187, -323731977913999807, 7961288608439452300, -6431662516133743485, 3288471137468863622, 1094976596329727971, -7153147127300532286, -2269332560827388244, -8443034525381127221, -7259595132044303319, 6598374410643793929, 5408651494181464015, -2202304456831760230, 5063787465367491805, -486043291012940650, 6661198455654543904, -6677120136819219766, 6873215010129388137, -8544492697357908484, -4891416620674641993, 6278728749137780699, 6140179405370666573, -2530674188465907541, -5542826884668502138, -4624987738903378785, 6055897868744384304, 1893227478513103707, -5998481717337431109, 3830666628195019250, -5536286911313861609, 3200695281108542221, -6354873668485439169, -7106406847876828463, 7267111195904963580, 7933454732992989449, -1704431805338802811, -7611850130507733188, 812223521137539840, 5028737084052092939, 1988409904336613546, 5452332172318207897, 721364426528035202, -8061778870788033499, 6206577632233922077, -3358825340647308897, 2615281023954623119, 5796586417262572998, -197225006894562884, 196909717615705016, -247775495361433931, 7935788894770135235, 2974543031667961203, 5518401755150062594, 4289467554573218060, -2110026776485502130, 7660756127445162484, 3210017035054168881, 4490480744367531310, 5560337963744008127, 1101969946984775230, 5426060883804367122, -7414569778895362694, -2574548713218219896, -8667400765660450694, -5823705257574844942, 8997571444431443269, 7042636308067180449, -5283570316461887039, 8142095188421778064, 3651820187667613831, -4106900401332576063, 5096961868284753927, 1281307679037151525, 3157982099299110758, 5964579201184846556, 4180328246833948732, -7591589437120250551, -5609987180487736705, -4487816973319572586, -1552743699661830151, -2960134158460000031, 388000481836191254, 4969717821228980736, 4894250187668109836, 3314809537038085119, 4588524784136728210, -2535627291226530894, -5684084138082962342, -1286085397614972483, -7103165809748549698, -6678458086474660614, -7506274041001472908, -5757410831092511843, 3076084975765635926, 7850034963640689904, -8651748294440545843, 194609034680985428, 8961175923080965683, -93748348755505189, 8117513138674933995, -2327127188025401628, 9187079670668733343, 6176196235074071579, -2820708281421643585, 7702825886158486334, -5855613686156591038, 7799351880585559652, 4934874524942948135, 478516408624230993, -4965206657008516450, 269236596925883928, 1073428163366009326, 7126792485072910069, 7569987982476504769, 8262969537673837817, -7393607729414256813, 4017211294382715408, -1453708362719534126, 4307169287498447691, -9096393784442866629, 8699405990322605810, -1035874136575275173, 5307229917593282401, 1276194578649014061, 7817361645793510414, 8807328459013683574, -6765725969608803740, 3805877505873456422, -2895703504735894621, -5230950451898686709, -6669061264839270575, -5138851837205629206, -1835119422478560204, 2603594006469150259, -2868548477659140639, -3022288051024437226, -2534068374958773882, -8740036738980731237, 2422761568693286421, 2502279617218189169, 5653397006733775922, -8039795195496143176, -6114200605642013428, 4738401726556400980, -1124125357168446237, -1348538616798334459, 5166727242185760724, -8859072289987873964, -7821112919434789020, 558406059872965377, -652528105474834764, -6029896875260562574, 2091769615884194159, -216079402402926518, 887407835530247623, -4090364169749485345, -2641220401477988829, -7119863260277045123, -7186889934574275077, 1786346915042454610, -1034431575705158448, 2644876102600825848, 8628759535217154371, -5076435861824768815, 5595534221719835067, 6278270011273397462, -1987507060144813825, -4918793481045561857, -8270154588131917026, -8468046916149675701, 7176601854751293210, 56669650886358090, -3166866242311034523, 8564531909892678053, -8455196864544157950, -7257596480926253873, 6959408330130435752, 3028838432902894936, 4424195858928857704, 6121497124194972504, -5469042773842318014, 2159359821694864340, -5947113653447376879, -1257220895728861725, 1392685009302569024, 7648830520509108133, -7371898747435017516, -845894640102415955, 8686498035411426229, 5985907670960414557, -7006168817797129900, 5479137187044139679, 4647241554359727919, -7056835850526619003, -6083660857753840170, -8047496266502346341, -7226197892441689165, 741327366913048535, -3711828024047014264, 3862158898379466077, 449693655808431935, -4882540886884501973, -7383637210504776854, 620553667069897427, -6713481484814371951, -7543587771860356019, 810524291612691607, -3659121362368402512, -5595441051298399244, 8088291422822166417, -6303984734444135248, -678233978165917904, 3617704513102699155, -5352941627192876325, -5816949687022080463, -9169168096039126102, 7975547379037659726, 4623395118382308799, 2509276746373528458, 5235508280732183917, -8712780009966718399, -7712552639387445993, 6759061446299827503, 9164297432474703925, -1110357104587476086, 1829423683580763459, -3799180270173028795, 8306026342220315310, -2726954641281485486, -1863888117327900205, -402316169456308966, 3744050168945036153, 4528951249037614908, 4258594066663919620, -3980786014056604956, -6634679619236991963, -4774774115148739666, -1688262812036369479, -3034548033917499658, -5071122385621078715, 1588376700080465528, -7759058167839367430, -4775874273596731934, 3221595815258590133, -6828959650403546499, 4346943720922699157, 4928547898720269926, -8589044593817257493, -5081781874907419607, 951694801960191091, -4667459908101512289, 4206977884410966721, -5197565432654930036, 3326560315392948439, -5878101577814599326, -8546474537134600654, 4309823164209170224, -3850248640668593914, 8681749283296418130, 4990534815930281841, -7750801661905292077, -3291032507257295915, 6665735555297233110, 7050489721279484184, 4317248664266774559, 9186786829891405296, 4166168050877046636, 7493753755601945303, 6899283068593432141, -5031904746579415020, 2565085644824379929, 3944502551732855469, 2189710644855030524, 2255493561976705206, 271365360135379886, 4294982312243112084, -5660229707439867961, 800423085895901894, 8347122627753775462, 6822896499937221573, -7651490681616894, -5297285646106039108, 1608114244844304377, 5839483976720836889, 8241560863719005179, -4129441230004651128, 3479615647121648386, -3074954311106453268, -3412316248640445049, 1216386815926349358, 2626756706523947064, 7368591831166517715, -1142163371321856898, -372851778878484647, 5995055175251528039, 5499555783411494776, 2016478622954748816, 1279886563391834469, 5165391760856510060, 734258640138801802, -7445758287171966471, 5839000974438980820, -5125341234978471209, 121392944104683131, 6179055483354016942, 9063275686698059196, 1720815667965783260, -2090747494244625688, -7864214085579409526, 6028043825066031897, -870947118366293771, 7376428769075962994, 1893490138897624353, -2886384328350744909, 5229519170995839908, 3782678275042073308, 8444457277148000247, 7575393971659806405, -5934742581324588974, -957376746896582101, -1823443228678068953, -7406349357662140793, -7066353634914162328, -932893465250817358, -6158979365981425485, -3999272364858205076, 4376092228086515820, 2513046484924596765, 1682565735361783149, 6869702267679149853, 3598461422649849004, 6721690358813739611, -5015414950752771986, 5196130127330595784, -8263471740181652146, 5701551820088369908, 4253014790918207382, 2681305943933975380, -802509536169972911, -2921706024223960837, -9084398191436379512, -7519519527403626152, 3410883059237029545, 2095075860303886315, 7914139912546804769, -8370416930809779762, -7044648509550560506, -4902792417226064745, 8930318598773654893, -8039939177580969146, 7860061109504978153, 419124991549078423, 52439998177737723, 76668279870828606, 2400418361498442757, -6792499803763550020, 3154574853391034842, 7821968058100120318, 3866940609041914244, -2451342656371401396, 6905559753998185538, 6642467155099476743, 9184008300019616920, -2170183067760494195, -1717224464730633452, 5546156896245179429, -2017194334177493538, 5813836834777993870, -5037970301511180119, -6283363831235414834, -2112512675648312385, 491800089892071944, 1091841107193066408, 8220715112944896727, -4061073684265419648, -6814505748970986107, 8035167421124665899, 4919021796047562901, -8884884164310583259, 6153891825926211445, 4869639300001698143, 3837324736330986571, -1644424597952783500, -6432957171918516733, -3788559728040549625, -9017234204035095885, 7974176819879521382, 8518789095085259635, -3908843812016366962, 6951099628380613842, -8130281757214184420, 697619035660462877, -5347667485898134831, -7870811613775178028, -6511218273726014463, -333041748521768769, 5107911109826800955, 3300477209814784624, -1708767489614571672, 1525551322408592196, 9080360653706424402, -6708214637440210952, -8631288433031181655, 2969113138124740044, -6647892099329100204, -6988290737149534654, 7213791800550484241, -3515983215941949272, 2776751762191199071, 4071933170036566928, -4265187988772916685, -2837771298453665817, -3090388734688474776, 5082944286075818548, 609755467484712029, 4072847486654097862, 8529301158860902869, 946912055446259682, -2248520461543232716, 5002603540450016650, -7275890548477817354, 1780246636470144442, -269706394334676566, -8177505231864803521, -4808125464463073144, 3775199331707802161, 2135641040248441133, -6436387871891641508, -7300737480287384013, -3360643109416540838, -8725466580297208946, 352291131791977996, 8394782611214630132, 17475987862371471, -4488499446877241684, 6767262301426119887, -2769737041134652019, -3193753686399895142, 7241778878096412757, 7797099283865407968, -2671749878988612917, 4696277170143113298, -5423752625035881763, -670732946661190647, -5711362811761083541, 4199832504691110757, -8677080819421441869, 3205643745224196359, 543646793087604365, -6804492024407055184, -848262837790928773, 387374760481732684, -9059158253510589576, -5856801177533266560, -7432011656959400529, 2198315888507745377, -7784997841364446485, 5347278335471818322, -6869526283408290890, 1352984110104423676, 6604074908186486860, 3540137177162802697, 1016927313450879985, 4071162570240874321, -5551488416681382753, -1504833906763233366, -5197958147423262666, -195819750883991358, -3945019213013735347, 6902249401976467405, -8912844306838907648, 4722491225058563626, 8140893302518733651, -5690073294438117370, -5969694801694774088, 7487125160865276118, 3007343065818503767, -2137534930747931929, 2809569435246364642, -4144004208315175629, 5255075717374606982, 7626373563000023350, 8149042251253369001, -8408446547381679894, 1486032901530289193, 4064054887282446575, 1589944372692791144, 6449119204549353091, -8068500293077637628, -4352463204946506034, 2337319196167003851, 4645391736645529886, 2010913571168295586, 1067508280099262661, -6129726247014324152, -611394079563159886, 2374062997617988521, 2762859988315805754, 4077923914156429843, -9041689727396256791, 8413929943723227620, 2773700164543912806, -3519424763423213991, 3151293449748791827, 5483423829303258017, -5946703767041794347, -6685640504011780936, 7701491958403800059, -3979073630416352084, 1302223521793369618, -4739375335957240500, 1273557423668894202, -8157791041761503052, -1958803071486003789, 7995561814538810256, 6436799742219583197, -5386107234107497189, 1105429829723289433, 5041979046245310635, 2772779352725880615, 6104391435732090158, 509237612818462766, -8907837183171812543, 8961506241364999076, 8373135239934695333, 7751397787702975214, -7720289196893704743, -5554204491061059859, -8487390470244497973, 2351786434290874202, -2862041859356855047, -6701648002700596727, -4990806288016181990, 5702555028297223797, -7412013855987842169, 646706808393679723, 2860990118563046086, 7347537387001437151, 6617834339254038549, -4724711214635521652, 6892741295472734065, -6093187166351286471, 7856072582143761513, -4312704304396901639, 5815988893927131312, -9010852855013400179, -709193276924158629, 8842697574196472282, 7172961009424657280, -3086117591933807359, 280668548915001621, 5623299142074972937, 6672160606420637960, 7754570087534551249, 4152353032828795027, 7269286384995548933, -6251412664921890878, 5732127079576970324, 7234424551899679503, -3642728981546782033, -3638300185011093242, 758429305061830090, 6807454373907029375, -2407746269258439538, 4041466388407032509, 4412608899209555624, -3826881076377531812, 8863453888803774091, -7624394860603430636, -8586227141178724702, -8333849234994046518, 5466525086493196113, 8976129229655792662, -6761513090258468865, 2757033529591673069, 2729369021924837617, -5342219263217653521, -3682680090127880756, -4024262810569674934, 5734119662788048810, 7267386939198869053, -5732042765175834343, 8098289276583123084, 5528374394051795198, -8832084056016214993, 918234824385712530, 676970414934466709, -5794527027417515112, 7833682562510519926, 27750847269835893, -2141504133172325665, -393870739762170378, 6628987571319571919, 3042161428414889656, 8319098477369136797, 3714381407608491489, 6871028708069796695, -9116209644422794377, -898115304925379815, -6100921916446089973, 2407259165779504625, -7824595574994867809, -7812941900040155346, -3874610317902165720, -383060374023677741, 2565489144529271919, -2775667212831852387, -8490494758318716088, -5768969488081270158, -4163725029626196551, 425158554688666490, 236621108823379185, 5592527110007246515, 2250712273533240792, -6996902570942094740, -4316193418261480778, -423017690736900269, 6499561801793623752, 5999756229412561116, 2122709403244307390, -6614237089257075273, -4438754439933732943, 7755990109693945275, -3828302258654058750, -4536174171928321428, -294446715323926202, 935637585377645959, 2493495210256659688, -7065985576821599091, 4771064322299072228, -8324047390232687097, -6214767548469241356, 661838500088622926, -5496419443662109009, 1769360504705134935, 8594133951145052917, 1919665994205776303, -2829008152524712179, -3534926825330291593, -5392109943851106148, -9174936343936187588, 431831984523785014, -3478733297737652068, 3625098395866689397, -2265434394587802483, 1898173869432619635, 3905980956606711904, 4899181388449222978, -8560503291870850826, 2442336170526152937, 4758854970978333179, 2576950350674509603, -3159727556622278707, 6463385243237218927, -4244656898675278709, -3639733836666543106, 5150557251574321755, -1847330250029237854, 7990644495793807288, -4844220065225521206, 5669665901579369390, -8516756017270853386, -2163641417216885795, -419690911529103853, 8389050361839906714, -4755603407177446434, -3628876977205345798, 6346120274506356620, 2897382412678952073, 2892018529361149983, -3105945328483409777, 397471260119955477, -5924914980966965208, 3259916578022711299, 3584107160451422225, 7335984245174911695, -740299529193763425, -1132793386238322552, -8882624640591065694, -3132393138391844276, 5819861013084344169, -7875274867444632753, 8187945432875751521, 2367121363901039734, 5703419689657841727, 4107383082803893848, 4567302762139612814, 4413573636895389667, -7908655157105234973, 6012542666924997773, 1543290098636558500, 1167829086925604611, 2777803534220614400, 5402112821476681615, 7508255472390188504, 4371085781904923839, 1633853775080032376, -3977888499508807807, -3454635082436672696, -5633966314565017765, -8027628515978432555, 3204939451242551097, -1194334364385733269, 4715733242512836960, -2424390587904992168, -8598491278835370190, -909646813366796865, -6282299275378582741, 1091786653924799826, -7151604730926028, -1952001457689034822, 6594682270311865613, 5297253419387719327, 7174384514581700900, 4179089671585649194, -1438112379026769819, 5863458219802778896, -6258500577607877153, -3191184177787625636, 5247643985080738052, -4249605461827630928, 848024707032423852, 2578176992048298935, 4277106059776803841, 1027307997622416172, -2034184717655156741, -4032075691921298833, -1725223926910214795, -8355218558445840600, -807432826419964742, -8691053822978844932, 5190610597372914740, -5685703413827560197, 1201444270328420824, -8573622742179143460, -5120225676224448990, -5713210850430827610, -4407146778693477095, 6616043013230938178, -455203650113225090, 1257217750953438197, 7038774887541165092, -7978022942807666493, -6027283969716886506, 2039426148959366399, 2349300899242575287, 412136285666780739, 6737962169699689176, 5396043023802829490, -7375578319123588090, 848689289605827984, -8962743046285584688, -4978454835941389091, -6810534590182341273, -7904631394849341310, 4986473973338859037, -5186820242653188418, 5733494837941841739, 220945504840061108, -6134138428611997085, 1839281472386260502, -3959944160474481058, -3734459438928472268, 3721194299693987183, 6767703249986874259, 2045991906683057358, -8742954565638258573, 2420326502842248753, -367492685541062268, 4355219222598868416, 8572842933899504804, -3701739195979978554, -7764549138235732147, -8598925157129974153, -1207019761626072373, -4766444500353057904, -7001982766296723356, -2193148807691074317, 2257290521599354392, 8810412979742623813, 8490414288126231798, 5852946775791635490, -4580603465805866303, -2205977094397869034, 246619722621583797, 8701711500730861947, -5723159815829278387, 2413055362373823891, 4026630626738278077, 626257627860460242, 2574073136387432412, 1225984626747539527, 4932610320264372136, 5801172410851190171, 7046043975985485604, 6725048163205005162, -7576705462287398067, -2531652356020173951, 6390475535474516267, 7954408693665804646, 1212769581897394400, 6930146611691842308, 3315566551407884820, -1691904946575510235, 2663199435933348098, 6910705755054739103, -1445154807745938237, -1305866680652390683, -4123655378022181618, -8064221424814919501, 7446614750020132187, -5068110728266677912, -2030505626005615587, 2000339047753778091, 8498499418863079418, 293614270927881287, -7692468401008699966, -3672609321985504948, -7142451754177878046, -2896478347708996217, 8782220829960750497, 6479357669621747111, 1193728541266948796, 2292573676038833952, -8855412556553540266, 317468215313058893, -2724448286275139831, -4850615461204879897, -864740314491768661, -2490524393871915862, -5497905834125156430, -8861963624388260436, -897462606730994032, -400305460423163334, -82260487316074112, 2335306980672653822, 7810394748744828878, -1713283213271910906, 2687818835146282560, 6112149537489265528, -7705775471756675233, -6212557483975450875, 3316513936364892531, -2247846567664673941, -6242171865364499591, 1864513425979011482, 1142454994086149910, 3839287919838368040, 506402678586865400, 7148330854725749930, -1563308216343959635, -5964480677519945158, -280002382744552497, 5866510398096934772, -4453231543043354473, -7773402607793519054, -3834638464799366814, -3278979331036933950, 3772051427216111937, 1707017430062992775, -102267837227575076, 4184520795854560136, 7597254842510533611, -8279104207355801361, 600209822568521256, -3193350568000648133, -7833434008084958161, 5377254431830388749, 6469619144829771684, 6052343019477107280, 245305866791464031, 5924851661031465757, 3055811671924051893, -7757673726764291611, 5425488801254271646, -1230513747359704646, -8856055219109968322, -4731754271270239734, -3264856159650276367, 8368480760176687700, 8143173203566375840, -1210747890098141143, 5295731456734954614, -7498167121192897541, -3428045625716315797, -4791314006867460823, 2948723375377110370, -3810064731319107123, -9202716795541515555, 6148653665839630204, 2848560055796753936, 1954069631098137796, 4697862255330998161, -193476793171573000, 9194232325669679334, 2656267557937312535, 784853794420870025, -624555491147103224, -8631140942763948473, -2331918944750595202, 6315237728705772778, 2538347749394059355, 7413989927117471885, -3517357964246821289, 5421999950889627853, -6721616076848566230, -6069691543165016804, -2059672142945104532, -1276872363769808299, -2332106662160828140, -9190658909128292389, 998308533634505219, 8907745002351060091, 9115911785525303560, -5194650919107828434, -9003424612543715863, -3769760580289899712, 7344040885552774285, -1843874887890373545, -2979057855708079246, 3927517266022277004, -6833174667206608458, 7205558902237879956, -7422227807001150653, 2892291292690035479, 1284760228866985595, 1579008536286502803, -8186844164684197837, -3187052903249540562, 8095458229268227600, -942456947636162847, -197259298036992424, 5750027500961963107, -8780627866791874144, 4516587109721854134, -6756980873638829294, 6089727200252654253, 6090966007180500784, 6469485832367150258, 3727493373269336793, 6291666731217101540, -7084732212740878330, -7903055913758755665, 4891022811619987916, -8624979534479996969, -3150803291726511210, 2623467983448099462, -7840898703047755463, 959779825982640998, -4501449511014022632, 8158799952216643156, 6178308647687332151, 3246276148886561759, -4425465515852070203, 1247832115472580356, -7050642510907647091, 1732161476419586910, -4164009650339589679, 7901878537714761394, 4178886057429322163, 7443735283409136954, 3014006097182656664, -8798335101393201203, -5618885033101121558, -569071355841480030, 1465565160996165613, 835907336590737450, 1257219254618299668, 2609819195336490748, 8938460768518194998, 1062342481094570886, -4375128033036425666, -404853979334087511, -1834092297765356110, -3519968044035730035, 342399303427600858, -2532143186992956190, -1777167417949977190, -4568326529056220102, -3304778777115413905, 5811787797216829954, -8020456284040308452, -3042194865030802631, -6446259211561084653, 4438782287801714457, 2161950337870754038, -1710982377937381651, 3293767809639986307, -8498661003156499972, 2778304605465959957, 4396759401194328589, 5809309630589945276, -3761311896714212621, 3342130357882968747, -793660217799580436, 2646163611383045898, -2416033543020295149, -6095464533266716295, 1769382373075867919, 5769921217545593205, -2763147873675394053, -1414369372293739819, 552238703840022885, 3971959281509960737, 5871938996071876746, 9144138102870479074, -7051583752714084284, 7997594892977403594, 6973237725993655918, 6759721585491969005, -8474802266062078918, 6556741587070699944, 1797176452359594013, 6068615299846548272, 6190047022681470000, 8025324066560663415, -6635968656501651102, -4801756026236962503, -2019199295183210468, -3662481029228087433, -4145069547545433261, -3049242395576128771, 4037435087481423908, 8741081107921224099, -4245153772169063194, 4568953288012583293, 7712589346562801891, -3215613063795247515, -8858591175844031521, -2087790524802605170, 1417733501490955314, -9063725495583630514, -655483526137291502, -1191912813457342762, 7566687464776014044, -8141381772450745660, -4279904944725432103, 6315788478946072243, 7002063045159257489, -6590365664777896890, -4679403751815604977, 8714069546965743554, 309533184730636769, 4316355607870589378, -8249109378692746867, -4536319397565701860, -3305013732482176309, 2701230281724653072, 2915853436366935644, -5927461005461889274, -5702708199784995265, -6433065803429162631, -4180970319895671172, 4849896012027919472, -5561528520719418585, 9123566069177685279, 622220666159857096, -708782930522252335, 5707712868431236809, 5313827561404790193, -5799394264768564243, -1774362590765209798, -6918953997843796104, -1980381867595314801, 1327414459290737935, 5553240067124633984, -6296091561738456701, 145974771717445135, -8724843072185840624, 37791342206206222, -4696476260914498163, -4576914265385553592, 5910120660565540139, -5970819293263084113, -595010541964357447, -3312166820520539819, 2138938008172669579, 1754706572008805133, 5509391222621898877, -5305407397355808074, -4612573236316801425, -788151160991829846, 3475822491801193714, 7334847274467493432, -2738273231885091334, -1394144455222408656, 8445783368824786530, 1090934155240864175, 3666668840304884557, -7481508096164382026, 5809539258269464286])), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Atomic([Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0)], Element{0, Int64, Int64}([8294554698039956467, -2279941192816175426, 3589307988553427907, -7593990112949036348, -9044133075237715381, 5814921716775220834, 1984686205080786680, 5559296861321236943, -5768354944895451207, 1120323265964696336, -3846116119587858228, -262342919401545940, -2049971580522475001, -2211763620736824942, 5666645008031514269, -1327364040915398565, -2194547984037078177, -5969354033529683723, -1260706530325114884, -7513623401632354996, 8868380549151888102, 7623177491685914752, 2801115262965917591, 3283210314769761053, -4716892793561655300, -2288052069362467524, 6647432114356861726, -1808660770598102607, 3477321511136071709, -2083291106471311307, 1931983037678998792, -1543784239066540918, -8896434483004799611, 8304914340100503713, -1749149773188757073, -1368462329312938935, 8842032079864795141, -1273332777544346279, -8741471974913376683, -3678031711239952825, -6700798423721258528, -7371585820169692141, -8065605016636076675, -7672636988039838930, 8052062968846911257, -5715548372384509649, -8341867563147112022, -9154711993198778743, 2933732122345518678, -5605994647490154907, -2133692759629638928, -6818992290088315340, 992118422339879211, 796660569155974881, 5491138161645048288, 5593431438176231967, 4196491676969776537, -783602413421165030, -2343162328237456754, -2347667087918498914, -4136673636756609937, -6196315042773250978, -1680644584068137242, 629124823636772517, -8974230699676449460, -2521981898387533604, 102158584490734227, -476947301419400062, -3885248478543714173, 3838966950421206534, 4298966649781035557, -3553229965089205098, -2069070993183081526, 4114579515408933624, -2282975407414895203, -4010817463667493000, 2272132884598706492, -6575563091909465195, -2658398725032414884, -3364682623876156767, -7778027708949105160, -3298325222861527795, -7334123207334007089, -5452139065710288443, 1885820391848317025, -3168683330050685268, -4615465087923795216, -7125623111667442778, -136085712019972095, -4633575576292637172, -4443232576713801656, -8076496271736850097, -2991169373749732480, 3567928539132559690, -1520874962119149489, -6672722304684961988, -1342044052416051911, -4959055271284697717, 1765100301178932779, -5510766831019094681, 8762504261652914538, -1026280257437091520, -7740612711282779002, -75651066155007076, 1175917286708115796, 215650005689746159, 1074059239977842503, -3135540340322246212, 4487796223479468161, 117813528700745474, -8324379894325358325, 1757180236983103362, 6655766257549366197, -3777535527257508441, 114580098802359632, -6320944068319392490, 533238602716561034, -6831552431332570448, -8190494930775264353, 191156998276919113, -3859369208365892857, 2500343402209988606, 2031188468273843282, 1065023235612899838, -6585643968775483825, 2853372987952842246, -3176092365888706331, -4004089601980614520, 1294599066541705050, 7455638925896823104, -734522458797731096, -8477619822868967933, -7827075641126318775, 1658199605681625762, -900396499488497236, 3608798237042314711, 8142435028468432630, 8181648831838397358, 3699002468877240631, -7851053360339404453, -7285699680868015036, -8914039785447533926, 1660245175449796023, 5544688554457903268, 743884732810431664, -5193009945833911851, 4169874342607881648, -3280411169991606487, 134315025965011425, -3414457411597068721, -6053778541607745348, 4743624378245093802, 817546885620956986, 3060126976419944263, 6596746720844310770, -32670440557642426, 7773291265218164464, -2747139949208106021, 4787690020561098504, 6611779436841384171, 4004924413349104377, 4057890700771820801, 1547947635322075762, -4041605863834384811, 8083854711850129991, -3032246449125321576, -6935676039559832962, -7262552710344937689, 6638561143303018670, -2431956156442432310, -6852883101006975241, 8141551686256635351, -2793114698018293480, 2901351249282526336, -8590405837522545098, 1284768462277737195, -6960561302066832858, 2470921323386149221, -1293209798633367855, 4852470840893629285, 2821167647780664441, 6366973705476444977, 4226801472565080501, -9103879725305025059, 8176472583251538243, 8387452082259514660, -2736021226548995081, 6019809268550026078, 5843683665502852812, 3078561957169121216, -553913864285782311, -8396720008997848599, -7916910578423142081, 2474282350293529219, 3763454144318303849, -3143306749835985712, -608242219460478402, -989972312085529006, 7643836624016829132, -7758235694518870862, -8743465346336514685, 2719718679164977811, -5344475697054329836, -5382875460926617461, -2287520955119718235, 5089895164004774048, -7207379975876718081, -8499315421799027837, 5382094811866924412, 94858159835758548, 4714444885585399249, 2419486042431974568, 1178451709781345389, -3244272477430105521, -1047784102008514673, -5908281368045588844, -8819487786822738794, 7375554233921962988, 7117586722854956039, 7635043189795304941, 3647751477487297040, 8888119265583541163, 438773896985192780, 7323235085077979835, 6402386422456545962, 9119746976188580479, -339981380232968078, 7862094120031162190, 1928350441872024538, 5861817903497048633, 8789248006831377358, -3662518157867280773, 5246723151818488323, -4712120449265687255, 8916170145161342841, 6429160948844906067, -7340558410143580649, -2878118280097051778, -4708137013670504139, -6737935883573392882, -3286809900179080876, -8542648342686245264, 1705683826679995175, 1874888461382203165, -43385098015304382, -3541512226970701965, 7308519021589705414, 4657092760823067875, -8034153054673763206, 2270007119073554112, 8805059194979907611, -6506227936394196777, 6569593093608871545, -5455263039233081924, -4894608299203557538, 4907020166765653515, -3651987278181836016, 5370722016210637787, 1096862329635763807, -7546832585001031185, 1772274834989744506, -2797059347358140582, -3473640875567042896, 7692486032135901986, -8656979047320341319, 3769023647569885435, 982341113303111384, -3673687436306074461, -81446334802288730, 6604241365987180538, -8369021354568862340, -4372506992592134813, 4065316681210752413, 1563045780770436755, 7830981927612419729, -5732307671635230159, 7227897221307801531, 2010992442160439666, -1122916357391281896, 5028338562960665496, -4666933955791003754, -1636404242550753810, 1914395787243909596, 3867717114584627246, -5161185302939881190, 7944328755863357247, 3609664606705607460, -5315882602018566936, -5761904302177895735, -6809130468709054173, -4700880319524423632, -5613769913787470034, 5210287635986052957, -5731191730373361431, -9164866423631936276, -926712920787083296, 1908405553760652597, -2652471932491244161, -3697650070410053186, 815203688271104236, 2488007171374780339, 8330805294023136182, -3517636027632871239, 3868845882950791705, 735411088686162206, -2994223186984088280, -6607675160595665991, -2201949612928716154, -3192490547890152354, 8133430253359871171, 879836038470343844, -7736046093151852400, 5545981780264421978, -4341467717169434611, -5127462363124695999, 2949881086671151985, -8391405146023982934, 5904919608898826122, -2227073708090958904, 689136294291637577, -2886932334773361591, 7952202709403391192, 3153775940809706391, 1874908383608426604, 1075117585599875089, 8867274469205928536, -4375744716795996716, -3533998611034387740, 6384747161645763267, 451782236881133152, 2341915282050883711, 1031445492266793189, -1394365009673627432, -5123594722994514063, -5460177156375603901, 4157621169839366172, -5358704860857059836, 5278983455575550295, 1274050648147683138, 3126713394381709974, -3307644194743865067, -7750736059176508847, -618096002207417309, -8506818772582631348, 1513319371717577726, 7740551717965270481, -4426574321230828472, 1937385030182228455, -998535532730322164, 3697332573265195207, -9076677223602850225, 4002292324271769976, 5826441122634846875, 8171498939270188961, -8467159702287736726, 6509544541400722383, -7717347117135555451, -7966763369056639081, 8269356800200102793, -2896708088772065419, 8682479654349602266, -4175209269749908112, 2584299138910217097, -809247191664492467, 8398436003572149079, 3497234959772076571, -6205111019897946062, -1430118280471530840, 8661533972821968073, -8521448203938029843, -8360557201354951019, -3776479469046687040, -4394471295216041117, 5306288845692612157, 3056006891388602475, -1748363847809204170, 5697136015891952455, 5937714342893416629, -125618599919776279, 8260765207333016632, 6942153985967134169, 7697115243769897813, -2426405549678443871, 2055486786313550400, 2152367939828244370, -6718730947869040596, -4560975327865951570, 6821423707534902647, 8515150359172239136, -4729466015399015585, -842607049527928892, -4838398262675770925, 5471628285150179649, -4149591267856718041, -4506731485344480343, -5865996187231969021, -8376045608232065130, 2982368080335673248, 5791272695574713343, 6606369933841153328, -5715125400035016302, -4808947571611627235, 1880707490936852098, -1433671810791193193, -8438873097249883119, 8228406513569697614, -2860593376095425957, -4155754509347768111, -3859757355177839761, 3832546257082914463, -4987104937747488276, -2603264890552670585, -8828514093751435698, -244923882753137677, -5280549520179345692, -5294022225150090425, 2704134173475073295, 5822900001597655197, 8915743126126508984, -8404578397956455589, -2636964413867594330, 7773972734886365061, -3244423074490429851, 7188777215744005112, 2509236846677099113, 5975628922833554335, -6360937178477621110, -4434221168072131868, 5416863093579763768, -958253168694109934, -2618459887441939475, 4895482184605604162, -6140446091522181329, -6919984628986616591, 31268152280566262, 1462535678717326966, -1464133389559375653, 3504905418444023481, -6524409997977030579, 3385869113430274743, 4822730259655900816, 8191773831837416114, 5292449586294865386, -6090171990601960569, 5153832228516847759, 2644170584592807951, 7802797983750583734, -6167195480042020562, 2093757426299538692, 8787672015189632402, -5494401635969733668, -3638906070417731210, -3088615259430462125, -6966718357264845743, -7894833928827722438, 4456646817892110605, 4567444684714913404, 5715585842987564469, 7446569658716171357, 5563506788226812109, 7176060177395009647, 8237429551137486195, -7387886710033300740, 5898509503108719612, 7854733214036206904, 7248713092388111684, -962917874807733914, -3817171139749095979, -3598576780670027118, 2936479662060868207, 2074946433639930335, -4055715327921608745, 1618673209120928304, -4215039625426580007, 6527651964660508742, 2525116720861666747, -5087213503398874522, 4441054782473057136, 5191737829272025909, -4204370355553960444, -5494437721858174402, 4282313307494495995, 6997224429970917165, -2786762703765019577, -4090774704165674185, 4830810034714339608, 8550110279617460779, -1432899949838825034, 5070163724535877362, -9044587224043010993, -331828969708912678, -4045743947221240460, -5026588202134245205, 7387394859196808259, 8323953104565172936, -5528106662582682818, -7712553295838005157, 496614122408246046, -6261122541863392878, -4574015954428015586, -2197905781724515181, 2844546404849359771, -5279032238356719102, 8993546499667354710, 6573002144407406380, -4535089777605057592, 42079127602989245, -4203267462921212169, -5840775966360235406, 140468831591233090, -2372192320096247829, -8778251851052291231, -336668325564777739, 7264370331718102095, 6254063536340397718, 6123236786011580167, 7556731230735356441, 6110809143575471493, -3432908134227590300, -5783426087718219583, 1401578931289679630, 4860236125773274406, -7848223246551919396, -3797441023746850885, 8889006900515515775, -7001892991386329751, -504276022409278947, 4496720948204362966, -4394079210323560761, -2230295723647198700, 3251715494317547084, -5846550559678048111, 10531091634037382, 1081507583933014234, -6906271136708865836, 9084709507417847718, -6919794797543057983, -9036635487855904140, 2168389059779605725, -5402687853119908315, -5969294402598625914, -3065725471442083375, -8436847784886139522, 4499580243570143897, 4593663111924881459, 6242341792114758752, -2587473680774110753, -6346963533779961058, 1621775449938399197, -5304623462700880605, 313072979211750861, -8918803086819606236, -2901670726481028569, -3682526246592261951, 7548351179785347782, -5784090040902781223, 30695701285740113, -8511392528887732853, -212343505903814563, -1706280662728187023, -3965454636478785037, -485561088993170719, -7950090587677592836, -5540338441211352471, 5885515753065214812, -5731917489646869491, 319516077428049744, -910417023177818004, 2190841222023097499, -4456395002828951917, 1255785325280306590, -2775252394013648963, 232640318517196044, -3219784824083473065, 1045529630686363187, 8411759974186310596, -1094615808186632023, -6553950934895304754, -408316319763781313, -3176841451238048633, 4075371581935362359, 187643253600159831, -837428644143947467, -5461650288315529644, -1526919325465841362, -2954442387366988787, -4406407738182325204, 1829805892604809544, -126573444704897734, 7828995678619994488, -3305668970380320127, -1948177510863190427, -6060115724564481252, -8021616758837321162, 6960572855714557416, 350591236226749052, 2894293684535105120, -8270156129969398283, -7188224773617208772, -5046346848348099259, 1762604501393566217, -3917600212583329023, -5140095807187043821, 2237243525513954619, -5491471575519032800, 4589515224526221922, -7539760866426895222, -7037068932864253220, 8211831817367956277, -1395763541646935624, 1607573943448927879, -1505636040087400087, -122124503865255803, 4634165469973816801, -3146952822801268000, -5052196907548347629, -1241659820199679608, -6699837385241890808, 2464994060646676914, -3951993366216514883, 611342031781514911, -3565512073329093591, -8091157542284683695, -6357009554415832646, -1429579645206812482, -2061030198880877944, 8613279126438435103, -4699418513816477309, -8899719653184083570, -9156751533214451673, -8369179409893466386, -2174045754289880327, 1599071487304328536, -2221165333317956202, -7121959024856558834, 4693904663870910343, 3492234935112039157, -7267189198736873061, 4672240566207031262, 7155931176632835961, 3948405042281303031, 9221170186590954197, 4168657775701795991, 7842926999448825295, -1149692690864390610, -5151108606920029561, -526708427937813567, 7894348920840823806, 2111915680842160057, -4447152505108858331, 8128811137535223140, -2781073544192744865, -2613927713168968822, -1690346388484587737, 6876548642199495650, 1611707069120701764, 6836918745913798671, -3094017886170210818, 6236828316978813663, 1081329020158948822, -1186213594634875190, 6793406906590299321, -8809740130797831503, 1786353697273303450, 6840136804880913516, 7145347421754118327, 4462054547281554765, -5318572558201569928, -3303535985347873063, 4733051702192248506, -7326070061278184447, 8369329347074427304, 7927959850489965817, 8320087556329764783, 2193354433274004612, -7544733638699219370, -7014045369693366256, 2151577797033403336, 8933006192851897008, -5318774782760541624, -7315196304228305879, -3904941717348361503, 9005033294424616904, 3320013229488173382, -7213842621665824653, -6254056522832732416, 2745408013397436716, -7386682146393396764, -2984509115122706340, -5352396307474345222, 3274018835385278013, -7381234373720372311, 1918193944134468019, 5717967813067618971, 5454410947887301155, -97618650599649709, 2210650427815000690, -3970692241953874241, -5109866680064885784, -7925697423337014550, -8697893115030792754, -6824932659698348984, -5847467963116463090, 8615256658994433156, -1053728463713085330, -160713768715038702, -101318550931045248, -4343188737347009626, -3248115887011897910, -6402395057505262095, 1096182353871742512, 6753465784923287540, -6804624562896151215, -5837125201228162439, 1382647607087451163, 4277582916411384127, 4693186594773602005, 7683280651461172993, 267398271524978993, -8596377037167186490, -5819935517185918536, 1124318629146026182, -5042061127034683796, 77826962194866506, -2250556505242295363, 5236257964961817301, -2333821165930122393, -5301093680979268405, -1710088636309852808, -667839113832134276, 3176520658028215542, 4801050178364021757, -1931748694707043520, 2827614563385783085, -5357590726796636164, -7591311695961610974, -4482998109962336100, 5492795781228717163, 7071585097437485537, -8256511212370819639, -1033296134836724593, 545588205163843946, 4841490740364333020, 1431879702182751667, 7158281449455708963, 604852328893362626, -4732035416621109281, -8696787544095760574, 3710000897335207322, -6140563005407990027, -1485868397268390778, -5634048999810817231, 9055394178316974534, -6992655989971692377, -8379075168281811025, -4177712831863022584, 8557193642835830463, 8727652050309847405, 9101228003095798318, 342276935468733528, 2125454917839578029, -6956409807454930954, -6799943977472325249, 6504154235262509479, -8539888869393801574, -5278083227692286949, -485507237784893599, -8938331974819664179, 6277782500598935942, -430858978908780091, 423142523572608281, -7912724908260959867, 7024984236779840316, 9072978020563012791, 5909231403474564040, -6092798456170918434, -5371271227702978749, 7600418820403680403, -7817342174481767324, -1208233401998943632, -8125475038879897011, 921842133729814488, -5930943891786904273, 750759186909135111, -8474550839788589774, -38695762770562065, -3748349612018398917, 3390897881502099515, 4060669248005398560, 3947749429396924301, 1523483650689135774, 723627418186446678, -2048471960624520038, 3259321852545717832, 809625161299679418, 4172940743163814057, -5255239287699671123, 1962512671155703256, -2146694811129990436, 8523918060091283685, 3909214533264395110, 9013974636356443615, -4965640563133462743, 336600851691663085, -4857027692605061116, -1042125884295943823, -8997397798520175525, 8011258720552881883, -7678416752233649575, 882133936434857313, -8532741990298826278, 1500822475052167126, -7722457738688111658, -2412923846393933191, -8786465162638587173, -8467916395796496473, 4112408740757711666, -7436389022937243099, 4121258431372096232, 2981774707645685279, 6192549078600663801, 3593326712426288406, -4937266943212939580, 4383598015781351388, 3500367667777625099, 4265445979313189893, -7722445123572687019, -8089758488900180117, -1183512982463252734, 5100791319698432343, -7864317229507846364, -8316242451608839418, 941076088028934556, -7375280543745950464, 4092634805284438777, -218945203279289748, 2642739844500348337, -4868857381080662703, 6947840098331849963, 1316005834143845078, 7112945344492306472, 3837608633821605687, 6612953847286164681, 7369116975816483029, 8203800728707370162, 745264072414834480, 3621821338405982457, 1787248701645224414, -8725499828321224652, 5759223232994807872, -6809468993514024728, -5106996447345046008, -1716125143705151606, 8920889292959459674, 1543487363196534528, -1422401727934476138, 5860260653618727672, -3906452349894177628, -4013308462155976136, 6372558017689448063, -781237135359215281, -5144054286467933144, 4282535083589780594, 2396107973253839261, 7365801472716975191, 7316827559627905107, 575866959481419500, 1909520162061294283, -8121086638470045648, 7666955699783671898, 6764014194441244928, -1317946468755875228, -7324167591413870675, -4954190638318189280, -7486335486492237873, 5332744067378770001, -323186611794603812, -3198678866318261509, 2068713640950114482, 3069353812861597238, -6467069238341544841, 9193181258034790848, -7348692611442398875, 8747396694909907999, 3662292962193528123, -6592283124932139589, -5440340727297120619, -2150708159681829289, 5154899013155084974, 300931462916846710, 267306129028303629, -6124402025857570481, -2380862100557754478, -8322782998950903402, 2203849044199742240, 7189962897065300181, -8196293205269926822, -6129722503598130442, -5717855583525242650, -7975313698385058299, -4394814386818113299, 8439719004326965297, -1853466123124981772, -8251721808467378698, 1332718692995289516, -3809748939990651052, 1711930554606737283, 6833741922071233626, -4746950157081688732, -5467758056403617718, -45553055250825220, 1156758914636241803, 5948193078099675785, -5962488332994723134, 7740792189484702658, -6863363731893569278, 1789243812814554167, -2471776969995239390, -6732014630508503900, 1844130485483900815, -200568493491779112, -436077017430881927, 3919223787046752168, 8021529304731123514, -8610751941045982309, -6256790461359078051, 1135953594877785960, -8649939117570278886, 512081662839873769, 281686122159629418, -5413101347049893607, -5127982072271321180, 8829245259139364789, -4992060981889383422, -7011762443625431546, -8956140975323702261, -2270955087903718521, -5175011738133382439, 657640191311126730, 4091251227200427343, -6376895040745033169, -8508555100273529430, -1796050355685702518, -7479868720901504471, -5693370525191439017, -3124825009832723230, 774528893311273039, 9094157038382657252, 8134250295867635801, -926102615299587563, 2769802780729386319, -1298828413415974516, -5875668061957414574, -8567687956511688734, 233394549322687598, -5895936930699961627, 1506589231432092810, 673454251841598024, -3864419293898015851, 8769089921809615643, -1256885168795612395, 3806027142330471271, 2628293344092275199, 865800620207458536, -1382327376923515606, 5206767734543250343, 756017486055271922, 4850772404988320878, 625442543634124181, -4369974630687344896, -3695576970140377038, -9168146533523609146, -7491269378073904551, 590139486766072594, -528353216840969278, 2439540592134774917, 4441888984435367795, -4462545664660870614, 747570505408124171, -4473619033861261733, -3324092939983153226, -3873689014480318940, 5182336296753675920, 7873764258453728801, -7707472075484813175, -3499584067824619030, -4363669762455143317, -999194618656210599, -5956207405289502258, 6088854365980969717, 884915936130810611, -3403372171423376387, 295363824065805385, 2286099348201328420, -1009241209628196304, 389365988436719678, 6366665261248409318, -3000897104692751348, -8801031179767441413, 3082863725940309590, 116072542729193868, 298868359587831624, 2632026018652181729, -1838284396540890431, 2082973454121984783, 8141066170324930012, -3279079705355382969, 474704650168943363, 6226317328107536369, 4825910540062605953, 5945263003255050778, 4504821081943907717, 4368580867379439264, -2818720317675853613, -4361067299114656414, 5008345756066421481, 8031101549735632146, -4148573144730325996, -6371332763708233005, -7239302400229886016, -2014395882539237498, -4557361942559936912, 4849766911099362137, -4114671162324339357, 4721514747018921326, -5805803238004189414, 7552698164482785756, -2922840131454980906, -1669191079305453102, -2531215509889715468, 5439356077135540601, -6343114842632758846, 2629942975255414574, 8286884461927020068, -7871488877533307791, 2862083316722898491, 7087387006969898480, 606711885235407217, 1693734614856232642, 217812560108109734, -5192024600182825344, -8478414091738455841, -3883421583894329607, -3369084816838402991, -5907051089772642916, 2483299219641833672, 4013666645553606665, -602318766852464546, -1077903559315031146, 770082142730356829, 3993899725793039928, -1229458295801142802, -7427564167209533319, 5744627202631096538, -4307622145389755129, -3235672070839353056, 1509870615572337394, 5155510312138930465, -347833235362661169, 2884411256285248683, -7487719631604369919, -1423783742145509702, 1173199934709978722, 1326657929459911373, -1585920494862835341, 3047872656379971433, -7641609213374676823, 2590250378075021977, -6472628529171104197, -6927900969806126702, 1747954734382651024, -6152543370889567078, 754358163957577809, -8351318808938792381, 326825291789732117, 5557618892685483060, -5849777647240212801, 5760837234435517008, -3843804261769104675, 7222778241614397433, 8864895893229875687, -8422456700173688630, 7273523800189460156, 492179030368810476, -2391480277429268284, 750834839931384475, 8278665001739515818, -4982482698709692101, 6475385556371811030, -7853095560331657104, -5848657393720385028, 4753865672451948336, 5512849629924609485, 5116641493098583451, 2815226095414166430, -8494854239959616675, 1782078395145329791, -5158653085431633500, -4657046649979588160, -111873088748600590, -1939359841773274182, -1393657311545381938, 3519568563701362857, 612692445395799226, 2590166644063810226, 2784744666920505647, -6483266022223056305, -3130119144388962152, -5935204981350286860, 3106025523692912745, 1881736877774620439, 8193576216936208758, -975280572085523442, -1541414951107285938, 9036817538786496170, 3121172592683938345, -2312993974902646780, 2918043619159089576, -5557011336181423922, -7232783249999228981, -6808261010130612619, -1024226312373348323, 390267185930883049, -433773452758753890, -1382188157026655723, 5552684775601009220, 7423416825822047242, 5921594515673978074, 1623161230277289138, -8635996496859796366, -8341198799787506612, 3684274307140230103, -3525979106511607914, -8150260350424184478, -8532800934409415517, -4825284869295363913, 6096824428633248996, -6934839419233550764, -3952569066269370263, 8829949667617343402, -1084935265649891560, 4888155050469376768, 7759001841431655476, -632465181939387254, 6823471927599469521, 5123512777902473827, 2294694572406052559, 7293379777634816638, -3954484737852232932, -2604163955193706319, 5302199851468118708, 7941997818865972731, -2944316522978960643, -114533323212471318, 5143101534135716130, 5503830823786557143, 4293836402769053661, 2443793899823007245, -8071123656826297050, 5347773595699610761, -8929372395762077376, -1585177283667380717, 2914214588282404436, 1504725386427480254, -1023403796257129121, -3815055356083271397, -1602177549551322433, -5218135579937239946, -8682427831710675231, 6708818568356231300, 1460617358915420542, 8419233541028365779, -2203822834983361938, -1931612997367313039, -7090136942616851123, 6159601980531272771, -2924982422417083368, 8625733557184675609, 455806705506487484, -4175122711639362245, 9183344182512950169, -9205269537311193262, 1180206716364896655, -5105075516890051179, -7015458375405687643, 7461146559025422960, 9217651932099188075, -2566722736742416809, 461436019440732543, -1600352722337213990, 3717854620828942012, -1025875194482804295, 2086135012014834367, -4704994046889660330, 5403589599609442036, 8946573654584661369, -5851412813291557272, -6114186204370949459, 8846115909828536457, 2516480883147209491, -4896484736258034480, -5906029717909633600, 6265789318254371860, 5901987565094300772, -5134657975554973139, 3754493426391366020, -1024841823846166871, -375837918500718563, 951082404374829235, 4968059706062408597, 551360151702058730, -897839361899024578, 8423280353089141563, -3067730695236925986, -3026133068307276139, -347944654449501921, -940860396850113768, -8480884751044675527, 809962066770662957, 5570805929138081955, -8536365026315448451, -1785006368005680537, -7539890532479137853, -1685625021416486080, -495084654998941506, -7199283939338655440, -6322523877276066390, -1924280359267481057, 3386811195096545218, 4340173080453476318, 6364546987214926734, -5539307997095767096, 4788361980582625532, 3661405512672161742, 4604494546812057752, 8370694602000383875, 5751823553944575080, -80732473868442682, -5068975410524126635, 1331105462545369438, 598972586912857703, 5802402952647492833, 7351347543334195739, 4629965513871560492, -4477065353550525982, 4293618117058312116, -6815898000427288159, 846705003859041619, 3186171236091860712, 4576063879771282323, -1518436754082451324, 7445306181558445577, -89593885154150055, 1614218553588509528, 818189339834939969, -6927299680575465663, 774958765598804809, 4184480648866898818, 709459366790959167, -4626091224208877513, 4645906675380526157, -6375925064930762469, -8825007961980179238, -7325276889309215544, -3027372533955547264, -1927195262342876859, -667359508884563370, -5415417686542208967, -5074170138512727390, -5893063287029739857, 2536729896110987882, -6272080088435360542, 8951868953695015582, 7657733672058879951, -3591774230959004874, -4098576984620957257, -7954501087248739387, 4278808274080018333, -4189589147412854906, 3828103683445085006, 9074562452350853598, 4059407993900385140, -5997554768177503082, -4636925930469952744, 5080884309044199817, 1665616659663714146, 7970275004708093640, -3515425865023497791, -6360788715005919459, 7681345674226937024, -1591754913526476693, 5278190882276400205, -8713532464964466486, -2461950230538602509, -2727563323241331517, -287882604865952548, -4998482287525601156, -1649942588236592323, -8334141899698381045, -7269267742813065958, -7465996355516162442, -8367728504152794794, -3459103132137325384, -1442198878028866612, 1345426515571720162, 957338003967035704, -2303816575022567080, 1208712301355977128, -8664278389558935051, 2585968968163383394, -7442461843337218072, -5180740110988816831, -8127690790899584447, 1997488320728279352, 4286740531879912040, 8274874197080548026, -4090772764543241414, -4179221920081656990, 1240571758916158831, 5831155452761097247, 4491312469535288412, -2214189452237794995, 7803610570916068138, -7512765815705388819, 4495939759546582316, 5919234342593647532, 2228366347447295854, 1200108966100871600, 5690160104032373911, 7608341886840415982, -3591711374593353612, -4138862006196247025, 3035941869393087219, 6865636581281765649, -1005446072170419096, 7567108779417572888, 7837517685344243063, -150544188122666775, 4151631287228471306, 4526501527929220747, 4226079951478001946, 1202356483128737661, -2739082484678542864, 9014315043463709342, 5433171088527550481, -675011903020846570, -2390268965994021074, -6400528939907285297, 6150357763280260129, -3017666321637668155, -8521816736249195554, 9201474057859856959, 7787251696844674920, 5459333673413767625, 1426920414208397410, -6429487967293043397, -5257783894738967233, -4284393545900291341, 4495860121982827476, -46895423979592336, 1296883116656120401, 5786280337555694459, -4666319220415667626, -3461086543927012398, -7466201980694565103, -1140264047004134064, 1788452594610260380, 2122482110897982437, -967561019628217055, -3085653831748559619, 8968205811622157951, 2548019779744265006, 3102188766046202682, -2248855211814195250, 1840990658819753196, -2774269581294831808, 7736515481348219928, 9018202947188024121, 665256893255762772, 5335232103275708859, -6147769550004725594, 3101116076125687634, 8997815652593752671, -991039277422269440, 7401069779267872655, -4265706085782567959, 3543936723168736598, -156641789358572940, -3787937288235758175, 8493545078498008813, -1246104920785264932, -8472321413018125528, 2488827515048085824, 8921536292508501002, 6738563439579654225, -200494991427853633, 1522770512287049875, 27967913645549852, 4522774353626005250, 1256679544378049641, 3405255849140860312, 7600273242978473381, 23575511431754301, -4672409883425447422, -1889984186866827497, 7296992012812133386, -4352477371763479278, -7044820154857814072, -12882897692051401, 3386197820290517830, 3757006914775894255, -1373125215551940593, -3417240353472760107, 4545004743879531724, -8452197784793964824, 4011326474920807008, 5525699117455073819, -3509792888780752488, -2678176774927838959, -7865242219225730860, 910114598761973557, 8729218338529719741, 2193454523997047762, -7768649955433311043, -59570399940716217, 5379873663944752595, 6958753457463799369, -6834288079848933917, 6017726407627186015, -5605007233816630810, -2133202062587357392, 6308144618868189880, 2410467815773232712, 3362613551949800205, -8338291721789685875, 6806446490174013722, 3617871453764871716, -8089650650345025368, 3404255987694622585, 2202469573791039532, 8917069822569678336, 3673380902626594473, 2006086046514863996, 124547239434762347, -6699895425011329664, -654980885606504113, 5693921821332933733, 6240465266111347301, -5116742469232271276, -7234779267632071457, 2252310932068953919, -4826663343385305810, -5138935515462782395, 4689492763043291304, 8050868810895092300, 962693406226418360, -4449695870065690339, -8090037331985041074, 3267588726403168015, -818610592836939733, 7132156710085247201, 8105498990887613566, 5292883430792218720, -8967672561525703489, -3060374723375263315, 6471936150048936450, 2172367360780066734, -1827028870686942816, 8184252284225033604, 12627831469234390, -7044530554455258102, 4876415032581521430, -3432957251328609060, 2824204544680857114, -6957079231530010699, 8190949275851966633, 6823755481099456679, -5876393354565011558, -53970842360164026, 3853564448249494149, -2972682942843227938, -2348220370393093578, -6728559394063198303, -428422563929318788, -1957417017065146130, -4576719719265522168, 8053316042690501278, 3310213367865201347, -4112824968274046397, 9181248053861701240, 5060815935519305174, 7032513404456678609, 177101472299265594, 9016686722828226635, -3992609091501539892, 3143581933428900547, 8128180822245920683, -2491463316461667999, 2330203500336038282, -5110918847855557615, -7491970226199025008, -4282477307488025506, -7781771132730950018, 110713113935466601, 5587248837089220356, 1255960974818918754, 8698965655282249228, 1142240120158884473, -5140871044598154651, 4242316612159154748, 3196934947642219001, 4142985180027536009, 2284684766136520859, 7816460186487161689, 5634691966513170702, 826997164884838579, 3671534939283556119, -844031886846999857, -1657668728488381095, 8601048722354210748, 1874055730116185503, -1085772457483182900, -2379097533368203544, -5332523084927766221, -5720827504987796707, -500660857826907077, 4907278821539746137, 1612608063453637092, 999864768533873242, 697789296164832681, 7245427910569743072, 1915079413800755968, -5131813309895086474, 8603554651152580284, 7004256889621974285, -8841849929405732104, 6266043455441667211, 4281933208146509394, 589626416538186847, -9110023954929925113, 6228236764400239770, -9097851054913215828, -5615926735483961873, -3816309666573504094, -6658235192728664890, -3489437372181895819, 6473906457060472482, -3937193548061835672, -3330600485619962728, -1144571853544535461, -3951778588605513599, 4357554689713104672, -4357398228254444450, 4271030972656924912, -3244690036564156625, 8156367274598166522, -3931250004521385041, -2911389906840280156, 2346135012548426971, 576993460546804143, 7755992082919279476, 5029888512237914138, 4169682438101948249, 3117687678292024900, 1389717223270727909, 2970221911793514584, 5050422048466027618, -9167054139502708775, -4740218251362552892, -3553211067591049806, 2581209126211751705, 6210955990385848062, 4029216681594316343, 4757775271400889122, -3976277041015824707, -4679861032853884697, 4796453839497959957, -6840455779837473580, -9128818347027882259, 903574838146320940, 1535682736054934768, 9203128279744177178, 7825465624445881366, 4729623009342607951, -8445010477853746168, 2779359132169173177, -7787638646415434082, 8630307791021786349, 7678698831967593045, 8924323017326743858, -7838933716625602894, -5363993515335776073, -4758848622545323715, 8165749912610324377, 3890814894726346511, -224522875182829871, -8504675575833067, -3136726367779306378, 180991206201918487, 1734914536475617191, -8026633819492051296, 585377375399552857, -4057686706863967291, -8792006564640315718, 5133949230062027221, 966490915736029700, -6856276960559046469, -3209050650471783039, 1997946309212720291, -2694844664018723792, 3040950680047421026, 664257877741578415, -1549762200498106454, -6557905093166641386, -8211748983442216867, 454695318135322844, 8098973132628461804, -5374114151749928624, 250875467351983359, 8620562681172610875, 7000258589713572687, -1664130791612438228, 7543643719287184369, -7801214284011511231, 7582532710654096211, -1305082352635692836, 467279306749204029, -4699785433075779598, 6850508823342814093, -6352453380479010935, 4359866734038908518, 5902667197491083031, 7491369333420527577, 368394965541002310, 6196741845111984131, 6216658244935918994, -2752843053616425955, -1148561512128619591, -6370429481649296125, -3234284230884801704, 4606987715801616028, -2718306068765596780, 6914318796004499819, -5955316532302996313, -296482199804435617, -1622236069462721855, 3501158302851784486, -572523975562305942, 7098284566686338285, 2060918062386840664, -1036304409717708042, 2037141206169921799, -9157679456705931543, 5921174993872226438, 2258376583953503577, 1380384900532319897, 5150863500031027649, 4491459583774403100, -8799333906252164078, -7436299637009861037, -8897605254734354534, -33573020224461376, -598118414029620053, -1036032722062113417, 3112711594643544824, -6413355946478926157, -4306076522754702353, 8624135096108717536, -1391526975651603912, -2546415741280369889, 248708739663316717, -4076449748166029713, -5531141162888212301, 9157140210067052907, -7152812193245389267, -8753601697609765711, -4020732460633455383, 7187437046903224286, -5055160253822539475, 5740244605347500833, -683871540398120655, 7898025549943690712, -1290240967206721704, -1743125062461769548, 6422263519987998930, 6839574880723343706, 5874745018847963481, 5228066245330305137, -977796713401175104, -2638646963020434633, 1031149875050997514, -5269507848698839757, -5537344948493036939, 7386325726715884105, 5044850892597083588, 396022206904815266, -4634210581742012041, 5016832958586948828, 3037314680921923855, -7714084903984746866, -1202569377564993821, -7401114300118604435, 7704534374415376277, 2156604305649768794, 2817748268707172365, 1053569788744816184, -4301201223533542269, -1599613411082562407, -4955672137856541273, -6243615707262612649, 1630246511914211374, 8743683296570668073, 1389080168999368683, -5264898573472638830, -5277151964454990744, 8278880058128573084, 5988807441639222597, 4766863221614704793, 5359524312828082327, 4466911741370325898, 4190251645054681054, 6844747556036323011, 2787084668216008586, -8842753752665197773, 7811869791363827446, 1947986319779991562, 2595675121194158456, 1928698732085290081, 3445100354674624654, 4698092473852175334, -8389240440663659562, 4037095003311488799, 3612199949675998165, 7475295921963138980, 643461511745356493, 2759701459090278254, 8039108320664086624, -4789457556455813773, -3046417913880116144, 4604279469796709200, 3091999775913123966, 2525308934924979894, 4788231701303947795, -8804124782913533732, -7810151231409358469, 3914487398198805513, 7405176402717547027, -4088208378638131629, 8185598939756282511, -4923220187259011432, -4205676137230147531, 1212255400888206837, -2732932430502287969, 6968133671527913135, 6774264180253840475, 5058260994715711882, -8130125491347080982, 1149156941701589453, -6010198640283435488, 1449319895462962850, -2281107511056733355, -466571451550039668, 6685982507464898108, -3312513759151219649])), 42), 42)),) diff --git a/test/reference64/debug_parallel_spmms_no_atomics.txt b/test/reference64/debug_parallel_spmms_no_atomics.txt index 9b29695dd..9dfc091e1 100644 --- a/test/reference64/debug_parallel_spmms_no_atomics.txt +++ b/test/reference64/debug_parallel_spmms_no_atomics.txt @@ -8,7 +8,7 @@ julia> @finch begin end end end -(CR = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25238968158185693, 0.0, 0.0, 0.48865059160643304, 0.11871952163266221, 0.13783085437527975, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1100520583840872, 0.0, 0.6593611321473758, 0.05928345080192752, 0.009174411759749758, 0.0, 0.0, 0.19127876171690858, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07691735887883953, 0.0, 0.05392395392410878, 0.02141387988861775, 0.34710885925020263, 0.0, 0.0, 0.0, 0.0, 0.004888456103411815, 0.23938597192062988, 0.14380896793554465, 0.0, 0.0, 0.11091906743258541, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.42492930113736893, 0.0, 0.0, 0.0, 0.3917786049138451, 0.0, 0.027947398300345625, 0.0, 0.0, 0.0, 0.027990755993474236, 0.23996972136870412, 0.0, 0.0, 0.0, 0.16076348282437408, 0.0, 0.0, 0.0, 0.0, 0.2346717239666177, 0.0, 0.1645197835042719, 0.0, 0.15581124610211206, 0.0, 0.0, 0.0, 0.0, 0.16923528472284902, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07802881298690809, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0008989792695458017, 0.0, 0.0, 0.0, 0.0, 0.06720357557125424, 0.0, 0.0, 0.0, 0.3718711629986387, 0.0, 0.0, 0.3609126159300422, 0.1163460342216259, 0.26803502779771143, 0.5785179690130179, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20913099459980355, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3230898388302748, 0.31857597482541405, 0.458635468333174, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7731954314831251, 0.7216673432976093, 0.0, 0.7303507448180484, 0.14951424728459475, 0.7849205313632122, 0.0, 0.61487751501265, 0.0, 0.0, 0.25756111513158075, 0.0, 0.4611561614453371, 0.11767850077853764, 0.8141145056659213, 0.17774815965387922, 0.0, 0.0, 0.6559733835287642, 0.36761704346577023, 0.0, 0.0, 0.0, 0.7451998098255509, 0.033169973232688346, 0.411513621864204, 0.20930644094410764, 0.0, 0.0, 0.0, 0.10412334822136202, 0.6428221612529075, 0.2944149731643712, 0.0, 0.01883057275583864, 0.0, 0.05108593913912473, 0.0, 0.0, 0.521025535425184, 0.0008200368898190739, 0.0, 1.1919622969351262, 0.6934669965376988, 0.46942192138741023, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37125241315091917, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29594902098744047, 0.0, 0.0, 0.0, 0.5073161019921272, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.36145064005412786, 0.0, 0.054781056420259586, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6055780045451759, 0.09162757378665623, 0.04766798091106047, 0.0, 0.46059427954757914, 0.1119031338013209, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37567607243684537, 0.6215033212682567, 0.6577405362916645, 0.03204652922702584, 0.0, 0.0650525320202852, 0.18029632002719695, 0.0, 0.0, 0.0, 0.0, 0.008472932483726157, 0.0, 0.0, 0.0, 0.0, 0.13094335555018422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16141065848651698, 0.0, 0.051110856273358346, 0.0, 0.020946973304893955, 0.06226614898669832, 0.0, 0.2444646619775439, 0.0, 0.0, 0.0, 0.0, 0.04963632606956389, 0.0, 0.0, 0.0, 0.08508663882314382, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1263166966867768, 0.0, 0.15643691198571966, 0.0, 0.0, 0.0, 0.15262026274680354, 0.0, 0.526388198493186, 0.0, 0.0, 0.033474977962917256, 0.060622203675208805, 0.0, 0.43377644245905544, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3151002104915899, 0.0, 0.09477312339277622, 0.0, 0.0, 0.0, 0.152252080697694, 0.0, 0.0, 0.0204339991404229, 0.1698000966652489, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22850913265749315, 0.0, 0.7903794435818682, 0.5335588868613267, 0.0, 0.0, 0.33064520351324683, 0.11423967014312472, 0.532326845734251, 0.0, 0.0, 0.0, 0.0, 0.5700696949494688, 0.5896247750753707, 0.0, 0.4280369290594203, 0.0, 0.27339018574089047, 0.25517063473696217, 0.0, 0.4053021670425236, 0.0, 0.7145118270418906, 0.18406779329511921, 0.5332101577384002, 0.15679597786898153, 0.0, 0.02405447430944597, 0.5068714011553328, 0.2632866105026604, 0.0, 0.0, 0.0, 0.0, 0.0, 0.026822919064352108, 0.0, 0.09441824561660622, 0.15069396874531527, 0.24064671368655893, 0.0, 0.06394357060327457, 0.3982245622181067, 0.22117139549869444, 0.14930545644387866, 0.0, 0.2667835225346214, 0.4473684178329899, 0.0, 0.14896069513005675, 0.0, 0.41433289250349636, 0.0, 0.5041716274275465, 0.26176138019545275, 0.5757006867537102, 0.08966813962959974, 0.11977731163657437, 0.0, 0.0, 0.29331748913539113, 0.14887247084155056, 0.1452951955564375, 0.0, 0.0, 0.0, 0.0, 0.34161907033931543, 0.05898137093682045, 0.05240866036729835, 0.0, 0.0, 0.0, 0.5188204085313443, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5773724259871397, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22601349058504813, 0.0, 0.3467947164134737, 1.502272260353748, 0.19536436403308852, 0.0, 0.0, 0.0, 0.0, 0.4899706257461605, 0.20445136303854802, 0.7748906467295266, 0.0, 0.0, 0.15253741518885644, 0.0, 0.12918615799515507, 0.0, 0.0, 0.649394095142608, 1.40604728101928, 0.0, 0.5734783753787226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8762605287663663, 0.8124102702299425, 0.0, 0.0, 0.6752965428315182, 0.25420065076928294, 0.2878352998155691, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8742900027056961, 0.0, 0.007209075676415797, 0.028458058565007462, 0.0, 0.0, 0.002645728789765276, 0.0, 0.0, 0.0, 0.669321167131686, 0.0, 0.0, 0.3215833521867582, 0.002002885293525303, 0.5455785228014223, 0.5839672123490091, 0.1695566125503257, 0.0, 0.0, 0.0, 0.0, 0.3711983399532414, 0.0, 0.0, 0.037869811310371364, 0.0, 0.0, 0.0, 0.3906765181627519, 0.0, 0.0, 0.0, 0.004333175863679718, 0.0, 0.0, 0.0, 0.0029029347517778824, 0.43381543679330525, 0.0, 0.0, 0.0, 0.0, 0.3545426084781949, 0.0, 0.3770558352493434, 0.6375411486503958, 0.0, 0.0, 0.0, 0.23985359098491452, 0.021961946298743228, 0.0, 0.3910697032182053, 0.0, 0.6932074965542865, 0.0, 0.0, 0.10364106821683754, 0.0, 0.798416207733151, 0.5329842919228587, 0.0, 0.4844692491628223, 0.0, 0.0, 0.0, 0.0, 0.09106971306440546, 0.0, 0.0, 0.0996076819499136, 0.0, 0.0, 0.1638248686693664, 0.0, 0.3325546563665125, 0.0, 0.0, 0.0, 0.06881525170797138, 0.0, 0.44073566130025815, 0.0, 0.4019788844385439, 0.0, 0.0, 0.6714215423158676, 0.3399125937167764, 0.3046141011370791, 0.0, 0.0, 0.0473355681300066, 0.3630070132608522, 0.0, 0.0800754636262803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2369140918241696, 0.0, 0.0, 0.35909981102365546, 0.2433693452274136, 0.6477566576645207, 0.0, 0.0, 0.0, 0.0, 0.4005702988980329, 0.6327139875815745, 0.45739813367595, 0.2306117264369203, 0.1673891610155256, 0.0, 0.3233168523165315, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04211122573483531, 0.0, 0.06803593591564691, 0.5741938845793657, 0.0476975123297982, 0.5504819156825551, 0.044516401141561746, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13524675835101255, 0.0, 0.22945132617429284, 0.0, 0.0, 0.0, 0.0, 0.1577714195074665, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2785368262709604, 0.12576967984327264, 0.0, 0.0, 0.0, 0.21559450852042064, 0.04903058086742513, 0.0, 0.1695895598298771, 0.11448427397866526, 0.0, 0.0, 0.023071609626772224, 0.0, 0.11421991827694536, 0.0, 0.0, 0.0, 0.007379588146467978, 0.07866376283476462, 0.3892472589606234, 0.0, 0.09184271552047321, 0.0, 0.25448001970252454, 0.2286582495545744, 0.02328034708296836, 0.0, 0.0, 0.0, 0.0, 0.3270923296219218, 0.0, 0.0, 0.0, 0.02043338740984974, 0.0, 0.0, 0.37277616481672965, 0.0, 0.0, 0.0, 0.0044846057268865735, 0.0, 0.3249615768942753, 0.0, 0.0, 0.19094547447052443, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08406342406417443, 0.0, 0.033182079075965945, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6500195484438399, 0.0, 0.0, 0.0, 0.0, 0.5537781763556555, 0.02656015063015655, 1.1909226087779956, 0.06852425737111054, 0.0, 1.3426353595976268, 0.6057701268300226, 0.9302934294779756, 0.0, 0.02223254227484718, 0.9934644128441693, 0.0, 0.06172390220433867, 0.20273446118005728, 0.5149938580802573, 0.1300590771577626, 0.2385875538652477, 0.0, 0.595480643743492, 0.0, 0.0, 0.0, 0.24275727828178406, 0.0, 0.7073132892445582, 0.0, 0.5182899096571696, 0.0, 0.363354145475898, 1.046444738015761, 0.8990939341913878, 0.5284345996323894, 0.0009271750893556132, 0.0, 0.0786791826827641, 0.5567513178048157, 0.0, 0.11672601563414542, 0.0, 0.0, 0.0, 0.0, 0.513610216882899, 0.0, 0.3599562947175533, 0.012305112294495107, 0.0, 0.3547644724719033, 0.0, 0.31743838097476296, 0.0, 0.0, 0.0744235447925737, 0.0, 0.0, 0.3186229810095584, 0.0, 0.7632822460090717, 0.3112891249755775, 0.0, 1.2592130951288079, 0.4142666686935799, 0.0, 0.0, 0.0834856922205997, 0.0, 0.5673263343800874, 0.0, 0.0, 0.0, 0.011109757680217765, 0.7473278912032746, 0.4577974378546139, 0.07323000489837116, 0.33380163101303967, 0.0, 0.014128663560806082, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19621458519667637, 0.0, 0.0, 0.0, 0.0, 0.4083399062549612, 0.0, 0.3744505994071715, 0.0, 0.5655910339236376, 0.0, 0.0, 0.08962016161963385, 0.0, 0.0, 0.0, 0.0, 0.3660241210222327, 0.0, 0.42450374338695224, 0.6660088440351456, 0.0, 0.0, 0.28456417514777416, 0.0, 0.6631091941560893, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.002609340728317194, 0.0, 0.0, 0.0, 0.0, 0.1290910408202515, 0.0, 0.12880600190077574, 0.0, 0.21852433519062017, 0.14617196989407044, 0.04712090478664361, 0.17786735669510226, 0.013608617966411374, 0.0, 0.1599219758144718, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13118766387513575, 0.18575036424480185, 0.0, 0.0, 0.0, 0.0, 0.24739057674609932, 0.08098740885007556, 0.0, 0.0, 0.11169555771003165, 0.0061692969950391426, 0.0, 0.0, 0.0, 0.1300402212804686, 0.0, 0.22061823582759926, 0.32468517510166695, 0.17899843511210062, 0.0, 0.0, 0.0, 0.0, 0.3555268023407697, 0.0, 0.0, 0.0, 0.5637648459713849, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.41259886956253183, 0.0, 0.0, 0.0, 0.0, 1.0217866044035127, 0.0, 0.0, 0.0, 0.09699076097844603, 0.49177999120325233, 0.617482417183965, 0.9254348782417843, 0.19189797684210885, 0.37564958516196006, 0.0, 0.6028533281724416, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4525887449543689, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.3536752652948492, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5159325071456758, 0.45703260113959776, 0.11783337867793497, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.014395933646557283, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5291071006274988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4362705134404812, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06167194341482688, 0.0, 0.26507468559563424, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18765355736657707, 0.0, 1.0014115383719757, 0.10542483708166006, 0.22040848700903187, 0.0, 0.3600323742449293, 0.06543742592421764, 0.0, 0.06637441639531827, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3967141864154841, 0.0, 0.18259679072826512, 0.0, 0.2818810986099949, 0.0, 0.0, 0.0, 0.04462260901941838, 0.650460148621926, 0.9472330785275007, 0.0, 0.0, 0.0, 0.0, 0.20815281221075516, 0.19618764447572262, 0.06473525648539784, 0.0, 0.0, 0.0, 0.1542243249790465, 0.13224172712193835, 0.0, 0.007908832517684252, 0.0, 0.051353982240120374, 0.0032977751233809844, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27800255996089945, 0.0, 0.0, 0.1281258773488851, 0.0, 0.0, 0.0, 0.31683019969084447, 0.0, 0.0, 0.0, 0.19099043815219882, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2169883137756601, 0.0, 0.7505306274250138, 0.5066582758142599, 0.0, 0.07143979002259558, 0.10210504506442938, 0.15444313156667316, 0.5054883509033501, 0.0, 0.0, 0.0, 0.0028518817212982773, 0.3481320627001662, 0.559897472000501, 0.0, 0.40645645270348807, 0.0, 0.36960222637651485, 0.34497081323202616, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0330129037169125, 0.05220506486278423, 0.053654185080025577, 0.0, 0.0, 0.1851124085000456, 0.04497376440934621, 0.35304695602824443, 0.0, 0.0, 0.343295765136816, 0.2793332554556384, 0.0, 0.0, 0.040358875497600165, 0.24978160129073035, 0.0, 0.0, 0.0, 0.0, 0.07246092173943684, 0.0, 0.16628600115413392, 0.0, 0.0, 0.0, 0.06634041958053304, 0.0, 0.0, 0.0, 0.008112084482454424, 0.0, 0.0, 0.3510991071496956, 0.30792356595023396, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24591462609017128, 0.0, 0.0, 0.0, 0.0, 0.1723485353456609, 0.17746213232343597, 0.26032482377035826, 0.0, 0.0, 0.09642188463361992, 0.0, 0.0, 0.9312549994812083, 0.0, 0.4355669936335271, 0.22986161845318145, 0.0, 1.1016016643957898, 0.5367168823744637, 0.0, 0.0, 0.1081626494181155, 0.0, 0.5354775491181646, 0.0, 0.0, 0.7066771289166013, 0.005913227901483509, 0.36878575613264597, 0.5931146099182986, 0.0, 0.43177137005853594, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2792172801438884, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18771394461865235, 0.0, 0.3810480475576988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04963057208911237, 0.0, 0.0, 0.0, 0.014028126739435154, 0.6487755206193258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019308069898724092, 0.0, 0.0, 0.15473333790095384, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20078144855224883, 0.04664059814698181, 0.0, 0.0, 0.02360446678134394, 0.0, 0.0, 0.06383755139363034, 0.0, 0.1295864000345023, 0.0, 0.0, 0.0972547510814237, 0.0, 0.07205581060374358, 0.016878310254842765, 0.0, 0.0, 0.0, 0.0, 0.2206348639926782, 0.0, 0.0, 0.2053453449704589, 0.18009351088331146, 0.17243879836126652, 0.16094695393647487, 0.0, 0.0, 0.0026102124382687284, 0.009478472183394092, 0.22228584913081856, 0.0, 0.0, 0.22567472183496304, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.002853715730108796, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0005790797752150057, 0.4809080576930432, 0.0, 0.0, 0.0, 0.32217587215618376, 0.0018177803358381927, 0.0, 0.0, 0.0, 0.0003287432209283418, 0.0, 0.0008918558343658391, 0.0, 0.0, 0.009096038390466929, 0.0, 0.0, 0.0, 0.00873033402576318, 0.007007183394127084, 0.45496728899530875, 0.0, 0.1316351307673038, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09338135584056179, 0.18382194877540864, 0.0, 0.563495172825665, 0.0, 0.0, 0.0, 0.05639497562938005, 0.14653622131196892, 0.0, 0.0, 0.0, 0.251192534270281, 0.1344408525103349, 0.0, 0.4650111134116464, 0.31391354376028213, 0.0, 0.0, 0.06326188293375198, 0.0, 0.31318868581904563, 0.0, 0.0763329064988246, 0.0, 0.0, 0.2156944329452718, 0.3468992967609863, 0.0, 0.2518308523576955, 0.0, 0.17896869808051252, 0.05403813425807818, 0.027124296544448725, 0.0, 0.0, 0.0, 0.0, 0.11640144853391314, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09109340489796702, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1194057971602891, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6552661573805515, 0.0, 0.0, 0.0, 0.21450271688804268, 0.0, 0.0, 0.902854749674862, 0.06907734840039648, 0.0, 0.811763991573728, 0.24446155688431725, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0551218990786032, 0.0, 0.0, 0.6659086165622266, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4110921087644639, 0.0, 0.0, 0.07931423881912922, 0.0, 0.0, 0.37316154887557274, 0.11430607897800385, 0.4150800042560803, 0.0, 0.10099097676635159, 0.6592915699634367, 0.0, 0.25936644093477396, 0.07666208914620723, 0.0, 0.0, 0.7807360976520861, 0.0, 0.0, 0.04275453625658718, 0.1985413718724771, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13633482744457018, 0.0, 0.2252743029271589, 0.0, 0.0, 0.0, 0.5464410650922171, 0.11366230227156136, 0.6018718955402885, 0.0, 0.014396279790867243, 0.0, 0.03905603312028952, 0.8092451213661034, 0.0, 0.39833251401456404, 0.0, 0.12251229365728535, 0.27200847035734843, 0.25388100105648176, 0.30685765140009125, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07517201195249319, 0.0, 0.0, 0.0, 0.0, 0.3595498458067731, 0.0, 0.0, 0.0, 0.05519776563775433, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13158680513977092, 0.0, 0.45513938379424074, 0.3072494672729318, 0.0, 0.0, 0.061918895238623206, 0.0, 0.306539997354477, 0.0, 0.0, 0.0, 0.0, 0.21111545179707192, 1.113727824196147, 0.0, 0.24648473048642042, 0.0, 0.0, 0.0, 0.6244696783059631, 0.0, 0.0, 0.010619491746539882, 0.0, 0.0, 0.057745206745770994, 0.0, 0.008858840711593166, 0.0075334185627281185, 0.1972006876834336, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15720126897663422, 0.2881788570254271, 0.05549794388099826, 0.0, 0.43880673821983995, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006158057243750719, 0.0, 0.0, 0.05862006643173159, 0.15125593941090254, 0.03302320207312045, 0.0, 0.0, 0.19199421271725345, 0.004359455697024407, 0.02909842903488052, 0.4051738652139157, 0.0, 0.0, 0.0, 0.0, 0.661857462083124, 0.27266071825745297, 0.09855620143563353, 0.03009452021788303, 0.0, 0.0, 0.36386547477639486, 0.0, 0.3154569959145931, 0.0, 0.12777365741134986, 0.0, 0.2874935496978787, 0.0, 0.0, 0.021877890033203812, 0.1316957530661763, 0.0, 1.0462327541742331, 0.24642978428043782, 0.0, 1.292534939963643e-5, 0.04966212026978902, 0.16767073337455046, 0.24586075312633993, 0.7749426824526595, 0.2192927197338787, 0.0, 0.15373812475086615, 0.1693253879539043, 1.1992945978003244, 0.0, 0.19769335810835964, 0.0, 0.2843031573913307, 0.2653563328642114, 0.6319651047837591, 0.0, 0.0, 0.2886502960323224, 0.2007500567698334, 0.0, 0.0, 0.0, 0.0, 0.4490517136878312, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.43431608561880214, 0.0, 0.0, 0.0, 0.29096240214176294, 0.0, 0.0, 0.24728201213730056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.199315833820732, 0.40813133046287003, 0.25266186539111524, 0.0908889085249469, 0.0, 0.0, 0.45688115062815576, 0.11100101499363633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02264115832549351, 0.6164930072930471, 0.0, 0.0, 0.44347420874850846, 0.0, 0.17884284240125642, 0.0, 0.2888836731929794, 0.21018531617189648, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3429810739029393, 0.02002166425453684, 0.021961075245274804, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.557136258905774, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.36191890674012556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12978916081088554, 0.0, 0.33079766328323545, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20464300021869425, 0.0, 0.0, 0.0, 0.0, 0.5063973085557268, 0.26737229244864336, 0.08619179411886842, 0.0, 0.0, 0.0, 0.49896059675156373, 0.0, 0.9000423796847855, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6355437645077721, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3962962286854009, 0.0, 0.0, 0.33976760898340913, 0.0, 0.0, 0.478819001240275, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), 42), 42)),) +(CR = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.2504314291953376, 0.0, 0.0, 0.9648065476989627, 0.2835978542736629, 0.13211849643271117, 0.2796391765298554, 0.22540993882752317, 0.5512218518807817, 0.5478145335437775, 0.0, 0.2291959647754706, 0.23520231615614767, 0.03296826745685447, 0.18421763750874248, 0.6035878434468992, 0.7441004608135994, 0.2535097758200323, 0.20236453274735783, 0.09228241774990334, 0.13384560784694935, 0.5269755678736615, 0.03880627317810495, 0.17704264007357723, 0.0, 0.2632287465084173, 0.0, 0.02720231717357045, 0.5246531850072871, 0.0, 0.0, 0.3360269038793386, 0.0, 0.22538882742471622, 0.22621665568148489, 0.0, 0.09095677592426996, 0.0, 0.2343687318872728, 0.0, 0.00044179348092010485, 0.07281055209847118, 0.6821285312867097, 0.0, 0.0, 0.0, 0.8944403740767686, 0.11973372388784431, 0.2613237068921269, 0.5923534538840982, 0.0, 0.0, 0.0, 0.8426453838331012, 0.0, 0.0, 1.0769929937540788, 0.43300907588983417, 0.0, 0.6905133736710757, 0.0, 0.0, 0.0, 0.07271653050953786, 0.8664857754450395, 0.08570530865158534, 0.0, 0.7169860381548754, 0.20498067747201715, 0.0, 0.23050103487101342, 0.0, 0.0, 0.9152746488430813, 0.14299878494120105, 0.44815460009097313, 0.0, 0.0, 0.0, 0.23162241551000032, 1.0326337985335274, 1.0530846396126474, 0.22109306040172927, 0.0, 0.0, 0.0, 1.0289491599002607, 0.008076930682810486, 0.037079469071792215, 0.0, 0.03308196940629956, 0.07165705922647192, 0.18447863887953236, 0.0, 0.24885144181470292, 0.0, 0.0, 0.0, 0.7193963651558962, 0.0, 0.6007574484421223, 0.0, 0.11361690641306497, 0.0, 0.0, 0.0, 0.0, 0.5189539173895105, 0.027360695267410504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.769945776489901, 0.00013219515459577855, 0.0, 0.0, 0.0, 0.0, 0.21518747264967641, 0.0, 0.0, 0.0, 0.10980938651098104, 0.07347552139071808, 0.0, 0.3613462418752601, 0.04465135919773286, 0.027102240057490925, 0.0, 0.0, 0.2594566815123038, 0.417973871558788, 0.02337304044012675, 0.5498222432776159, 0.011558313103301096, 0.13519961718643905, 0.0830809338177889, 0.0, 0.0, 0.0, 0.17989871031119878, 0.05233157238393502, 0.0, 0.051508809526025434, 0.225133841185459, 0.18950167625902217, 0.0, 0.0, 0.0, 0.20173577654712102, 0.7662693488070871, 0.0, 0.33259178463685746, 0.13865467767460202, 0.0, 0.8944580603877651, 0.0, 0.060682785060590494, 0.06051599339484606, 0.0, 0.0, 0.0, 0.12305720211410776, 0.10081888448105404, 0.0, 0.0, 0.2522377522294325, 0.0, 0.12103967793114603, 0.06077105223878225, 0.0, 0.0, 0.5586258592154407, 0.0, 0.0, 0.0, 0.2984848816909581, 0.029564782247173068, 0.6276543733906952, 0.0, 0.07353625635562432, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08001934416956356, 0.13808411155288577, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0013608908425346389, 0.15477792583676012, 0.8924302032481646, 0.0, 0.13515079773758784, 0.0, 0.059793517595463114, 0.0, 0.04933055693313389, 0.0, 0.0, 0.3342781850907459, 0.02578025634698341, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1229501707927792, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287208489034296, 0.0, 0.0, 0.28149278769379354, 0.0, 0.0, 0.0, 0.031923890851782225, 0.23740383631799186, 0.0, 0.0, 0.0, 0.0, 0.06362127081034188, 0.2629034525588847, 0.0, 0.9151807425831917, 0.0, 0.0, 0.0, 0.6693739198309284, 0.0, 0.0, 0.2061930933620024, 0.27528937724536684, 0.0, 0.0, 0.0, 0.0, 0.2675780483794807, 0.02063619759744684, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5460074055587408, 0.0, 0.6541555536266587, 0.0, 0.0, 0.07150154126300666, 0.0, 0.15048122306270975, 0.034115472912426725, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.050926612139623545, 0.21044506008920905, 0.0, 0.0, 0.4253961501964202, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5242476712268254, 0.0, 0.0, 0.6721198397890595, 0.02913210340779019, 0.0, 0.20059561631676462, 0.0, 0.29433701033990906, 0.0, 0.0, 0.0, 0.12559144077146528, 0.0, 0.0, 0.32229898127496104, 0.0, 0.0, 0.05500938293182685, 0.1114468235961369, 0.09601244908001759, 0.255231140185047, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05242264559033129, 0.07189305704474794, 0.29708512061039594, 0.0, 0.0, 0.16167981650220184, 0.0, 0.0, 0.42894283906704944, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24120550186102305, 0.002462183433889286, 0.1185465354728046, 0.0, 0.0, 0.20924909285728116, 0.0, 0.2383879501918044, 0.0, 0.08928505124693381, 0.0, 0.0, 0.2291277246538886, 0.0, 0.0, 0.039107088380868994, 0.03339412468553525, 0.0, 0.17867986571670036, 0.0, 0.15885581639487184, 0.0, 0.4770109811329409, 0.46521958209705216, 0.08213268605220507, 0.8570033319080816, 0.5762497735248863, 0.025109002675938377, 0.0, 0.0, 0.0, 0.006062678222071191, 0.6895253688974624, 0.0, 0.0, 0.14425623656373723, 0.0, 0.26058653129843573, 0.2499129405223175, 0.5556369963578781, 0.0, 0.0, 0.14846473797228377, 1.311439497677356, 0.0, 0.0, 0.0, 0.14844299347189643, 0.0, 0.06204384333300274, 0.5085214657536261, 0.06333953518463412, 0.0, 0.4087271917522072, 0.56471815720299, 0.0, 0.7613475113276124, 0.31092441757595435, 0.25657570652463557, 0.0, 0.6284352010004853, 0.0, 0.44245087677575873, 0.0, 0.5840306487685422, 0.886297089335757, 0.0, 0.2141960416332438, 0.0, 0.0, 0.7455493113099605, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9841442926021067, 0.155496454991287, 0.0, 0.0, 0.07678252545804619, 0.0, 0.0, 0.3721354350358947, 0.020164712785984047, 0.0, 0.0, 0.0, 0.0, 0.1088564167894987, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9595213220321046, 0.0, 0.026588936071193094, 0.0, 0.0, 0.18249673153915044, 0.041373682209080435, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04976306812868327, 0.2056369238513726, 0.0, 0.0, 0.341205976763526, 0.0, 0.0, 0.0, 0.0, 0.5785815925839551, 0.0, 0.0, 0.0, 0.5989984098523007, 0.041848978991102986, 0.0, 0.7058966144833084, 0.0, 0.1357909427918936, 0.0, 0.0, 0.0, 0.6943234317201388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03329077451447904, 0.0, 0.16959332194846893, 0.03825181104342904, 0.0, 0.030570483496490792, 0.0, 0.181963825346749, 0.0, 0.0, 0.0861751567882612, 0.0, 0.23433890396321935, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06468139820825311, 0.4901043774165395, 0.0, 0.1652405132589817, 0.0, 0.0, 0.07483443864111192, 0.0, 0.0, 0.0, 0.2810295005684995, 0.0, 0.3898372849078984, 0.0, 0.27070466717435465, 0.5873234092956581, 0.0, 0.0, 0.8033877947986148, 0.0, 0.0, 0.0, 0.5030084273245645, 0.1643009637310288, 0.0, 0.0, 0.0, 0.052313365367879956, 0.02924539070601191, 0.0, 0.7815339827038686, 0.0, 0.631919493277437, 0.08243985181699306, 0.0, 0.0, 0.0, 0.0, 0.12868680907403285, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.1259698971001804, 0.7198499769348474, 0.0, 0.41807281750787384, 0.0, 0.0, 0.6290848565988848, 0.7773412611170788, 0.0, 0.3270721417747804, 0.0, 0.0, 0.6187710034515789, 0.07069501936159496, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15113911645003905, 0.0, 0.15654877177402662, 1.1322176354521876, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2636197382380641, 0.0, 0.0, 0.34206988627899454, 0.0, 0.0, 0.2168559436204628, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12189174979618164, 0.009400555275465744, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02319896532052816, 0.09586554938115534, 0.0, 0.0, 0.47758214062526055, 0.0, 0.0, 0.0, 0.0, 0.766521270904984, 0.0, 0.0, 0.0, 0.05687724891036996, 0.0, 0.0, 0.0, 0.019988327516632248, 0.0, 0.0, 0.24020596976351885, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5319793134128888, 0.0, 0.0, 0.12310759546793347, 0.28424710350697324, 0.0, 0.9704064926727941, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.595062055789435, 0.0, 0.022922464313533127, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7479520138852049, 0.0, 0.0, 0.0, 0.0, 0.11201726895804533, 0.0, 0.0, 0.5882991104057551, 0.0, 0.0, 0.0, 0.5372591710353254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4185803721513073, 0.0, 0.4160894350708626, 0.35712090084273435, 0.0, 0.0, 0.0, 0.0, 0.3329375067097101, 0.0, 0.0, 0.0, 0.9791513934288851, 0.040171778764664906, 0.0, 0.0, 0.18774405618493867, 0.47311893679528827, 0.2590438343789052, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12077476728428499, 0.0, 0.06327325623124767, 0.0, 0.0, 0.0, 0.0, 0.34849519635188847, 0.0, 0.4382603746311635, 0.0, 0.0, 0.0, 0.09913709085437171, 0.4096661875861404, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4230910500526733, 0.0, 0.0, 0.0, 0.17776900851570368, 0.0, 0.5438917161748563, 0.0, 0.43287084617637955, 0.0, 0.0, 0.0, 0.5349746055023918, 0.0, 0.7894262258085124, 0.0, 0.0, 0.0, 0.416696264214944, 0.1414148713022835, 0.0, 0.1306712640828635, 0.5944339267365731, 0.0, 0.0, 0.0, 0.3098486230376566, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27475814956764166, 0.0, 0.0, 0.0, 0.572874722755641, 0.7993131511508778, 0.0, 0.2979949962228512, 0.14400098705349634, 0.0, 0.0, 0.02684711041673838, 0.0, 0.0575193250192605, 0.13038147684896279, 0.07982177723780243, 0.0, 0.0, 0.22370954598082965, 0.0, 0.0, 0.0, 0.16207849359014098, 0.8780589957563658, 0.0, 0.0, 0.0, 0.03773454641900064, 0.0, 0.190720074864707, 0.03823162707299666, 0.0, 0.027092618673790602, 0.07782668325822914, 0.0, 0.0, 0.025612768291380317, 0.0, 0.1339183762706947, 0.03147511447091019, 0.0, 0.0, 0.22256660522037766, 0.0, 0.050981846070955524, 0.33080849696175413, 0.22670468547648376, 0.0, 0.0, 0.2394131641393997, 0.0, 0.6763225254232694, 0.0, 0.32609931596811353, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02551395955593748, 0.0, 0.19870976845837512, 0.0, 0.8838430389981123, 0.0, 0.8900590234719281, 0.0, 0.1395885727389325, 0.39274638865688727, 0.13258182339863903, 1.0427544725112363, 0.007925765580094073, 0.0, 0.0, 0.9248219821941955, 0.0, 0.38782207933590473, 0.20331266090801786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4620448777897825, 0.5673723076761421, 0.13444042454417618, 0.0, 0.0012927651989113214, 0.0, 0.0, 0.0, 0.3049721916420315, 0.017266202832261764, 0.0, 0.0, 0.07071993264415252, 0.04567425634491729, 0.3943633692304047, 0.0, 0.15861807151929683, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05848946000294637, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0002825960061227963, 0.18362488935764, 0.0, 0.0, 0.0, 0.16115194339742445, 0.5974334511167834, 0.0, 0.04024167944046561, 0.33382381844541353, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6087942383002851, 0.0, 0.0, 0.7807479082612564, 0.3974967659255351, 1.5487027213337248, 0.03765559375444021, 0.17692333788215128, 0.23426356503546714, 0.0, 0.22388851869475412, 0.04007956243736881, 1.0262040210122396, 0.0, 0.7972348331243138, 1.0049259227957363, 0.051433760809377164, 0.0, 0.8283458296766737, 0.0, 0.7561556098507006, 0.0, 0.0, 0.0, 0.24907496608552146, 0.0, 0.5011916402324644, 0.1747189814102487, 0.9899595982235516, 0.6164188940137083, 0.11559029428984438, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.593849645786338, 0.0, 0.0, 0.0, 0.0, 0.13660851844466146, 0.030970403587585463, 0.23157107362581741, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13749939723080143, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7110898100418397, 0.0, 0.0, 0.0, 0.46081314114808425, 0.7109856621285974, 0.2884350146527927, 0.0, 0.0, 0.30337236072169704, 0.06739814120009983, 0.0, 0.7785291912169707, 0.0, 0.0, 0.13287789565404662, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3593823347180517, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4624623396236477, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.024288127378650458, 0.0, 0.793430084070044, 0.0, 0.0, 0.07003161792104487, 0.0, 0.390525043836891, 0.7636039620295462, 0.06950112764284275, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019321154098251664, 0.0, 0.18651557279691772, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05792018405822482, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18265223354453325, 0.12454723256219671, 0.0, 0.0002798455087109209, 0.0, 0.0, 0.11611318457978691, 0.05398921986713746, 0.0, 0.8752290763913787, 0.0, 0.0, 0.0, 0.0, 0.13107895831547542, 0.0, 0.0, 0.45521248179167606, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11685661958627322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44522459151527227, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26435993065610003, 0.021758541234477975, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2146225974372531, 0.0, 0.13433790512658406, 0.030902835047588124, 0.0, 0.0, 0.03139052000724026, 0.0, 0.0, 0.7200671942026683, 0.0, 0.0, 0.05946084260814123, 0.0, 0.14663715828117352, 0.03324398818324252, 0.008023890708802274, 0.05967012120515395, 0.0, 0.0, 0.0, 0.10840406404650259, 0.0, 0.0, 0.0, 0.23002554078955822, 0.0, 0.21539070760796813, 0.0, 0.15809846801096508, 0.0, 0.0, 0.023379160669788793, 0.06919243918501702, 0.0, 0.4184368340983768, 0.0, 0.0, 0.0, 0.025499570825031452, 0.0, 0.054632252014063354, 0.12383722685885369, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08100665304577326, 0.0, 0.0, 0.0, 1.137863121002405, 0.0, 0.0, 0.18114724382910816, 1.0175246627827756, 0.0, 0.8319051265218698, 0.7408406030496757, 0.0, 0.0, 0.4793159619581115, 0.26457362772519605, 0.7690370272987045, 0.02989528102721059, 0.0, 0.0, 0.0, 0.34236772701032764, 0.22777638147070367, 0.20013535639204974, 0.7445351180710278, 0.0, 0.0, 0.32085924041220354, 0.0, 0.0, 0.0, 0.5922078604864867, 0.0, 0.0, 0.18324289767504168, 0.0, 0.0, 0.05247138335835671, 0.48819810625100485, 0.0, 0.4058243472838195, 0.0, 0.0, 0.6944817185701155, 0.21684000174364465, 0.0, 0.12484778900119534, 0.0, 0.5314768166536554, 0.0, 0.0, 0.0, 0.0, 0.11888353831534566, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4539474830982486, 0.0, 0.12931153719488578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.23351697026332235, 0.0, 0.0, 0.0, 0.0, 0.2291429172294868, 0.4258647172142874, 0.0, 0.0, 0.0, 0.22479141295616378, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05853977920447593, 0.0, 0.16715127001769428, 0.0, 0.3712702672746247, 0.13508244363790445, 0.06392604260421969, 0.5912989058272206, 0.4437811402099471, 0.0, 0.0, 0.0, 0.0, 0.005827558703832637, 0.6627845677844773, 0.0, 0.0, 0.0, 0.30904361146056275, 0.6816789334794826, 0.1436649772664439, 0.16334297841077242, 0.0, 0.0, 0.7882286990025497, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7753056808075847, 0.035768380854023674, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44917737188494944, 0.0, 0.18937379890511313, 0.06882274914369534, 0.0, 0.0, 0.0, 0.009287224889287345, 0.06906497794085972, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26624227636214304, 0.0, 0.0, 0.0, 0.1829905316954157, 0.0, 0.06582989974405196, 0.2036305981722081, 0.08008655235603437, 0.0, 0.0, 0.0, 0.0, 0.0, 0.41729810318329397, 0.0, 0.0, 0.0, 0.0, 0.0, 0.037951024806923965, 0.0, 0.0, 0.0, 0.0, 0.41651629143780994, 0.0, 0.2053954771505675, 0.29245802337269494, 0.0368786813523771, 0.0, 0.38440171693921094, 0.0, 1.0326219326945734, 0.0, 0.02604768015780454, 0.9153304998316836, 0.0, 0.0, 0.0, 0.021211537114504155, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3418184639399641, 0.9530187941808128, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5415447555144779, 0.0, 0.16269589476095273, 0.0, 0.2704207942532035, 0.6129742049927741, 0.0, 0.0, 0.0, 0.0, 0.07078757436524862, 0.0, 0.7077105145475581, 0.34262729838304967, 0.5909987644476324, 0.0, 0.11177131716736882, 0.4359653240929594, 0.04723041930008277, 0.45146742793812006, 0.896649501844373, 0.0, 0.0, 0.6373803605539574, 0.5201327056992473, 0.10980024784153514, 0.07242729038979111, 0.0, 0.25075448235999825, 0.0, 0.14797679652158516, 0.0, 0.0, 0.0, 0.0, 0.6939917265420261, 0.9906375819864492, 0.9257686181712707, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37693205342755914, 0.5232740229070877, 0.0, 0.060081052233409524, 0.0, 0.3350366056610552, 0.0, 0.20067269510180097, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5308540215160052, 0.0, 0.0, 0.04969049276705586, 0.4729163126308979, 0.17206519556589087, 0.08142765800071788, 0.0, 0.6342266715653555, 0.28491323267898133, 0.0, 0.0, 0.0, 0.0, 0.3249315382934875, 0.27888197557292793, 0.0, 0.00024008316707892853, 0.0, 0.0, 0.4429941865632019, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08351200806876206, 0.0, 0.0, 0.3644144714136701, 0.0, 0.25850208657414453, 0.3044172676246769, 0.0, 0.0, 0.0, 0.42064905943656483, 0.5410542431685182, 0.0, 0.0, 0.0235250266831074, 0.17227146855360218, 0.0, 0.0, 0.11190852746246406, 0.0, 0.0, 0.0, 0.0, 0.14411942384547258, 0.0, 0.0, 0.4237744107411662, 0.0, 0.2972186074559964, 0.0, 0.5397314242092841, 0.4632402464002124, 0.0, 0.5786606886346829, 0.0, 0.0, 0.47789419623388885, 0.0, 0.0, 0.0, 0.10580588439167306, 0.0, 0.0, 0.7377357792707717, 0.0, 0.10579038780894534, 0.0, 0.0, 0.0, 0.045139981578782816, 0.0, 0.0, 0.11584045845995011, 0.0, 0.0, 0.019771431213384455, 0.36490249309768175, 0.35310751173091487, 1.1149184594112733, 0.0, 0.0, 0.0, 0.5857527772485364, 0.44959707967332574, 0.1008560617277558, 0.018841708015473753, 0.7001531183110316, 0.0, 0.0, 0.0, 0.5946141177445001, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22666010948008636, 0.0, 0.0, 0.0, 0.0, 0.0, 0.014782177343261123, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02695824533437821, 0.0, 0.0, 0.0, 0.016838719448302838, 0.0, 0.0, 0.0, 0.08231997245985787, 0.0, 0.0, 0.0, 0.01058107131899943, 0.0, 0.05814319369896461, 0.0, 0.0, 0.0, 0.0, 0.047348036509572325, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019563192629043182, 0.027295875565384514, 0.0, 0.0, 0.0, 0.0, 0.33629932740438834, 0.0, 0.0, 0.0, 0.32394391802925426, 0.5704070896351352, 0.0, 0.14173474826201982, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6013127745008292, 0.0, 0.7561985490243033, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2959306772073682, 0.2539911401819114, 0.0, 0.0, 0.7300245622804938, 0.0, 0.2367914528076339, 0.0, 0.0, 0.0, 0.33628005236128533, 0.025934644678944505, 0.0, 0.06026134263178236, 0.0, 0.0, 0.03662105153743461, 0.06883834406728133, 0.0, 0.0, 0.21279478779844782, 0.0, 0.0, 0.07129569822964256, 0.0, 0.09738688258412649, 0.06246220065656896, 0.0, 0.059045957391141574, 0.0, 0.006923917652553149, 0.051490108793371445, 0.0, 0.16644468958034975, 0.19015418061029377, 0.10882376279915186, 0.06400227485256132, 0.2644778831991808, 0.0, 0.19849197355887785, 0.0, 0.0010725148648749981, 0.12198011848273568, 0.1548472256356659, 0.0, 0.009305339154304988, 0.0, 0.10589543929012146, 0.0, 0.0, 0.17178211974814458, 0.0, 0.23085925511580369, 0.0, 0.0, 0.0, 0.31374773386794685, 0.0, 0.4234572393895347, 0.0, 0.0, 0.0, 0.045888478821935044, 0.0, 0.0, 0.13665231391596233, 0.0, 0.05546447903889757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15847133453228077, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3148706017686264, 0.2655048691833022, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.28333620483908656, 0.0, 0.0, 0.0, 0.3208604446677971, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25931056270601605, 0.0, 0.0, 0.20842242702467234, 0.0, 0.0, 0.28681902268117093, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2978149918318377, 0.0, 0.0, 0.09574337597144772, 0.0, 0.0, 0.38017827065442816, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03128644702667798, 0.0, 0.0, 0.0]), 42), 42)),) julia> @finch_code begin Ct .= 0 for i = parallel(_) @@ -20,36 +20,37 @@ julia> @finch_code begin end end quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl = ((ex.bodies[1]).bodies[1]).tns.bind.lvl Ct_lvl_2 = Ct_lvl.lvl Ct_lvl_3 = Ct_lvl_2.lvl Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] B_lvl_val = B_lvl.lvl.val B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + result = nothing pos_stop = A_lvl.shape[1] * B_lvl.shape[2] Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Ct_lvl_2_val = (Finch).moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_ptr = (Finch).moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1 = (Finch).moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2 = (Finch).moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + B_lvl_val = (Finch).moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr = (Finch).moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1 = (Finch).moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2 = (Finch).moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + A_lvl_val = (Finch).moveto(A_lvl_val, CPU(Threads.nthreads())) Threads.@threads for i_4 = 1:Threads.nthreads() phase_start_2 = max(1, 1 + fld(A_lvl.shape[1] * (i_4 + -1), Threads.nthreads())) phase_stop_2 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_4, Threads.nthreads())) @@ -123,13 +124,13 @@ quote A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] if A_lvl_i_2 < phase_stop_7 A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + Ct_lvl_2_val[Ct_lvl_2_q] += B_lvl_2_val * A_lvl_2_val A_lvl_q_2 += 1 else phase_stop_9 = min(A_lvl_i_2, phase_stop_7) if A_lvl_i_2 == phase_stop_9 A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + Ct_lvl_2_val[Ct_lvl_2_q] += B_lvl_2_val * A_lvl_2_val A_lvl_q_2 += 1 end break @@ -199,13 +200,13 @@ quote A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] if A_lvl_i_4 < phase_stop_17 A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + Ct_lvl_2_val[Ct_lvl_2_q_2] += B_lvl_2_val_3 * A_lvl_2_val_2 A_lvl_q_4 += 1 else phase_stop_19 = min(A_lvl_i_4, phase_stop_17) if A_lvl_i_4 == phase_stop_19 A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + Ct_lvl_2_val[Ct_lvl_2_q_2] += B_lvl_2_val_3 * A_lvl_2_val_2 A_lvl_q_4 += 1 end break @@ -231,10 +232,9 @@ quote end end end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) + resize!(val, A_lvl.shape[1] * B_lvl.shape[2]) + result = (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) + result end julia> @finch begin Ct .= 0 @@ -246,7 +246,7 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25238968158185693, 0.0, 0.0, 0.48865059160643304, 0.11871952163266221, 0.13783085437527975, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1100520583840872, 0.0, 0.6593611321473758, 0.05928345080192752, 0.009174411759749758, 0.0, 0.0, 0.19127876171690858, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07691735887883953, 0.0, 0.05392395392410878, 0.02141387988861775, 0.34710885925020263, 0.0, 0.0, 0.0, 0.0, 0.004888456103411815, 0.23938597192062988, 0.14380896793554465, 0.0, 0.0, 0.11091906743258541, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.42492930113736893, 0.0, 0.0, 0.0, 0.3917786049138451, 0.0, 0.027947398300345625, 0.0, 0.0, 0.0, 0.027990755993474236, 0.23996972136870412, 0.0, 0.0, 0.0, 0.16076348282437408, 0.0, 0.0, 0.0, 0.0, 0.2346717239666177, 0.0, 0.1645197835042719, 0.0, 0.15581124610211206, 0.0, 0.0, 0.0, 0.0, 0.16923528472284902, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07802881298690809, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0008989792695458017, 0.0, 0.0, 0.0, 0.0, 0.06720357557125424, 0.0, 0.0, 0.0, 0.3718711629986387, 0.0, 0.0, 0.3609126159300422, 0.1163460342216259, 0.26803502779771143, 0.5785179690130179, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20913099459980355, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3230898388302748, 0.31857597482541405, 0.458635468333174, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7731954314831251, 0.7216673432976093, 0.0, 0.7303507448180484, 0.14951424728459475, 0.7849205313632122, 0.0, 0.61487751501265, 0.0, 0.0, 0.25756111513158075, 0.0, 0.4611561614453371, 0.11767850077853764, 0.8141145056659213, 0.17774815965387922, 0.0, 0.0, 0.6559733835287642, 0.36761704346577023, 0.0, 0.0, 0.0, 0.7451998098255509, 0.033169973232688346, 0.411513621864204, 0.20930644094410764, 0.0, 0.0, 0.0, 0.10412334822136202, 0.6428221612529075, 0.2944149731643712, 0.0, 0.01883057275583864, 0.0, 0.05108593913912473, 0.0, 0.0, 0.521025535425184, 0.0008200368898190739, 0.0, 1.1919622969351262, 0.6934669965376988, 0.46942192138741023, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37125241315091917, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29594902098744047, 0.0, 0.0, 0.0, 0.5073161019921272, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.36145064005412786, 0.0, 0.054781056420259586, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6055780045451759, 0.09162757378665623, 0.04766798091106047, 0.0, 0.46059427954757914, 0.1119031338013209, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37567607243684537, 0.6215033212682567, 0.6577405362916645, 0.03204652922702584, 0.0, 0.0650525320202852, 0.18029632002719695, 0.0, 0.0, 0.0, 0.0, 0.008472932483726157, 0.0, 0.0, 0.0, 0.0, 0.13094335555018422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16141065848651698, 0.0, 0.051110856273358346, 0.0, 0.020946973304893955, 0.06226614898669832, 0.0, 0.2444646619775439, 0.0, 0.0, 0.0, 0.0, 0.04963632606956389, 0.0, 0.0, 0.0, 0.08508663882314382, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1263166966867768, 0.0, 0.15643691198571966, 0.0, 0.0, 0.0, 0.15262026274680354, 0.0, 0.526388198493186, 0.0, 0.0, 0.033474977962917256, 0.060622203675208805, 0.0, 0.43377644245905544, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3151002104915899, 0.0, 0.09477312339277622, 0.0, 0.0, 0.0, 0.152252080697694, 0.0, 0.0, 0.0204339991404229, 0.1698000966652489, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22850913265749315, 0.0, 0.7903794435818682, 0.5335588868613267, 0.0, 0.0, 0.33064520351324683, 0.11423967014312472, 0.532326845734251, 0.0, 0.0, 0.0, 0.0, 0.5700696949494688, 0.5896247750753707, 0.0, 0.4280369290594203, 0.0, 0.27339018574089047, 0.25517063473696217, 0.0, 0.4053021670425236, 0.0, 0.7145118270418906, 0.18406779329511921, 0.5332101577384002, 0.15679597786898153, 0.0, 0.02405447430944597, 0.5068714011553328, 0.2632866105026604, 0.0, 0.0, 0.0, 0.0, 0.0, 0.026822919064352108, 0.0, 0.09441824561660622, 0.15069396874531527, 0.24064671368655893, 0.0, 0.06394357060327457, 0.3982245622181067, 0.22117139549869444, 0.14930545644387866, 0.0, 0.2667835225346214, 0.4473684178329899, 0.0, 0.14896069513005675, 0.0, 0.41433289250349636, 0.0, 0.5041716274275465, 0.26176138019545275, 0.5757006867537102, 0.08966813962959974, 0.11977731163657437, 0.0, 0.0, 0.29331748913539113, 0.14887247084155056, 0.1452951955564375, 0.0, 0.0, 0.0, 0.0, 0.34161907033931543, 0.05898137093682045, 0.05240866036729835, 0.0, 0.0, 0.0, 0.5188204085313443, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5773724259871397, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22601349058504813, 0.0, 0.3467947164134737, 1.502272260353748, 0.19536436403308852, 0.0, 0.0, 0.0, 0.0, 0.4899706257461605, 0.20445136303854802, 0.7748906467295266, 0.0, 0.0, 0.15253741518885644, 0.0, 0.12918615799515507, 0.0, 0.0, 0.649394095142608, 1.40604728101928, 0.0, 0.5734783753787226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8762605287663663, 0.8124102702299425, 0.0, 0.0, 0.6752965428315182, 0.25420065076928294, 0.2878352998155691, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8742900027056961, 0.0, 0.007209075676415797, 0.028458058565007462, 0.0, 0.0, 0.002645728789765276, 0.0, 0.0, 0.0, 0.669321167131686, 0.0, 0.0, 0.3215833521867582, 0.002002885293525303, 0.5455785228014223, 0.5839672123490091, 0.1695566125503257, 0.0, 0.0, 0.0, 0.0, 0.3711983399532414, 0.0, 0.0, 0.037869811310371364, 0.0, 0.0, 0.0, 0.3906765181627519, 0.0, 0.0, 0.0, 0.004333175863679718, 0.0, 0.0, 0.0, 0.0029029347517778824, 0.43381543679330525, 0.0, 0.0, 0.0, 0.0, 0.3545426084781949, 0.0, 0.3770558352493434, 0.6375411486503958, 0.0, 0.0, 0.0, 0.23985359098491452, 0.021961946298743228, 0.0, 0.3910697032182053, 0.0, 0.6932074965542865, 0.0, 0.0, 0.10364106821683754, 0.0, 0.798416207733151, 0.5329842919228587, 0.0, 0.4844692491628223, 0.0, 0.0, 0.0, 0.0, 0.09106971306440546, 0.0, 0.0, 0.0996076819499136, 0.0, 0.0, 0.1638248686693664, 0.0, 0.3325546563665125, 0.0, 0.0, 0.0, 0.06881525170797138, 0.0, 0.44073566130025815, 0.0, 0.4019788844385439, 0.0, 0.0, 0.6714215423158676, 0.3399125937167764, 0.3046141011370791, 0.0, 0.0, 0.0473355681300066, 0.3630070132608522, 0.0, 0.0800754636262803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2369140918241696, 0.0, 0.0, 0.35909981102365546, 0.2433693452274136, 0.6477566576645207, 0.0, 0.0, 0.0, 0.0, 0.4005702988980329, 0.6327139875815745, 0.45739813367595, 0.2306117264369203, 0.1673891610155256, 0.0, 0.3233168523165315, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04211122573483531, 0.0, 0.06803593591564691, 0.5741938845793657, 0.0476975123297982, 0.5504819156825551, 0.044516401141561746, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13524675835101255, 0.0, 0.22945132617429284, 0.0, 0.0, 0.0, 0.0, 0.1577714195074665, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2785368262709604, 0.12576967984327264, 0.0, 0.0, 0.0, 0.21559450852042064, 0.04903058086742513, 0.0, 0.1695895598298771, 0.11448427397866526, 0.0, 0.0, 0.023071609626772224, 0.0, 0.11421991827694536, 0.0, 0.0, 0.0, 0.007379588146467978, 0.07866376283476462, 0.3892472589606234, 0.0, 0.09184271552047321, 0.0, 0.25448001970252454, 0.2286582495545744, 0.02328034708296836, 0.0, 0.0, 0.0, 0.0, 0.3270923296219218, 0.0, 0.0, 0.0, 0.02043338740984974, 0.0, 0.0, 0.37277616481672965, 0.0, 0.0, 0.0, 0.0044846057268865735, 0.0, 0.3249615768942753, 0.0, 0.0, 0.19094547447052443, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08406342406417443, 0.0, 0.033182079075965945, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6500195484438399, 0.0, 0.0, 0.0, 0.0, 0.5537781763556555, 0.02656015063015655, 1.1909226087779956, 0.06852425737111054, 0.0, 1.3426353595976268, 0.6057701268300226, 0.9302934294779756, 0.0, 0.02223254227484718, 0.9934644128441693, 0.0, 0.06172390220433867, 0.20273446118005728, 0.5149938580802573, 0.1300590771577626, 0.2385875538652477, 0.0, 0.595480643743492, 0.0, 0.0, 0.0, 0.24275727828178406, 0.0, 0.7073132892445582, 0.0, 0.5182899096571696, 0.0, 0.363354145475898, 1.046444738015761, 0.8990939341913878, 0.5284345996323894, 0.0009271750893556132, 0.0, 0.0786791826827641, 0.5567513178048157, 0.0, 0.11672601563414542, 0.0, 0.0, 0.0, 0.0, 0.513610216882899, 0.0, 0.3599562947175533, 0.012305112294495107, 0.0, 0.3547644724719033, 0.0, 0.31743838097476296, 0.0, 0.0, 0.0744235447925737, 0.0, 0.0, 0.3186229810095584, 0.0, 0.7632822460090717, 0.3112891249755775, 0.0, 1.2592130951288079, 0.4142666686935799, 0.0, 0.0, 0.0834856922205997, 0.0, 0.5673263343800874, 0.0, 0.0, 0.0, 0.011109757680217765, 0.7473278912032746, 0.4577974378546139, 0.07323000489837116, 0.33380163101303967, 0.0, 0.014128663560806082, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19621458519667637, 0.0, 0.0, 0.0, 0.0, 0.4083399062549612, 0.0, 0.3744505994071715, 0.0, 0.5655910339236376, 0.0, 0.0, 0.08962016161963385, 0.0, 0.0, 0.0, 0.0, 0.3660241210222327, 0.0, 0.42450374338695224, 0.6660088440351456, 0.0, 0.0, 0.28456417514777416, 0.0, 0.6631091941560893, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.002609340728317194, 0.0, 0.0, 0.0, 0.0, 0.1290910408202515, 0.0, 0.12880600190077574, 0.0, 0.21852433519062017, 0.14617196989407044, 0.04712090478664361, 0.17786735669510226, 0.013608617966411374, 0.0, 0.1599219758144718, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13118766387513575, 0.18575036424480185, 0.0, 0.0, 0.0, 0.0, 0.24739057674609932, 0.08098740885007556, 0.0, 0.0, 0.11169555771003165, 0.0061692969950391426, 0.0, 0.0, 0.0, 0.1300402212804686, 0.0, 0.22061823582759926, 0.32468517510166695, 0.17899843511210062, 0.0, 0.0, 0.0, 0.0, 0.3555268023407697, 0.0, 0.0, 0.0, 0.5637648459713849, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.41259886956253183, 0.0, 0.0, 0.0, 0.0, 1.0217866044035127, 0.0, 0.0, 0.0, 0.09699076097844603, 0.49177999120325233, 0.617482417183965, 0.9254348782417843, 0.19189797684210885, 0.37564958516196006, 0.0, 0.6028533281724416, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4525887449543689, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.3536752652948492, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5159325071456758, 0.45703260113959776, 0.11783337867793497, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.014395933646557283, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5291071006274988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4362705134404812, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06167194341482688, 0.0, 0.26507468559563424, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18765355736657707, 0.0, 1.0014115383719757, 0.10542483708166006, 0.22040848700903187, 0.0, 0.3600323742449293, 0.06543742592421764, 0.0, 0.06637441639531827, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3967141864154841, 0.0, 0.18259679072826512, 0.0, 0.2818810986099949, 0.0, 0.0, 0.0, 0.04462260901941838, 0.650460148621926, 0.9472330785275007, 0.0, 0.0, 0.0, 0.0, 0.20815281221075516, 0.19618764447572262, 0.06473525648539784, 0.0, 0.0, 0.0, 0.1542243249790465, 0.13224172712193835, 0.0, 0.007908832517684252, 0.0, 0.051353982240120374, 0.0032977751233809844, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27800255996089945, 0.0, 0.0, 0.1281258773488851, 0.0, 0.0, 0.0, 0.31683019969084447, 0.0, 0.0, 0.0, 0.19099043815219882, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2169883137756601, 0.0, 0.7505306274250138, 0.5066582758142599, 0.0, 0.07143979002259558, 0.10210504506442938, 0.15444313156667316, 0.5054883509033501, 0.0, 0.0, 0.0, 0.0028518817212982773, 0.3481320627001662, 0.559897472000501, 0.0, 0.40645645270348807, 0.0, 0.36960222637651485, 0.34497081323202616, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0330129037169125, 0.05220506486278423, 0.053654185080025577, 0.0, 0.0, 0.1851124085000456, 0.04497376440934621, 0.35304695602824443, 0.0, 0.0, 0.343295765136816, 0.2793332554556384, 0.0, 0.0, 0.040358875497600165, 0.24978160129073035, 0.0, 0.0, 0.0, 0.0, 0.07246092173943684, 0.0, 0.16628600115413392, 0.0, 0.0, 0.0, 0.06634041958053304, 0.0, 0.0, 0.0, 0.008112084482454424, 0.0, 0.0, 0.3510991071496956, 0.30792356595023396, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24591462609017128, 0.0, 0.0, 0.0, 0.0, 0.1723485353456609, 0.17746213232343597, 0.26032482377035826, 0.0, 0.0, 0.09642188463361992, 0.0, 0.0, 0.9312549994812083, 0.0, 0.4355669936335271, 0.22986161845318145, 0.0, 1.1016016643957898, 0.5367168823744637, 0.0, 0.0, 0.1081626494181155, 0.0, 0.5354775491181646, 0.0, 0.0, 0.7066771289166013, 0.005913227901483509, 0.36878575613264597, 0.5931146099182986, 0.0, 0.43177137005853594, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2792172801438884, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18771394461865235, 0.0, 0.3810480475576988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04963057208911237, 0.0, 0.0, 0.0, 0.014028126739435154, 0.6487755206193258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019308069898724092, 0.0, 0.0, 0.15473333790095384, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20078144855224883, 0.04664059814698181, 0.0, 0.0, 0.02360446678134394, 0.0, 0.0, 0.06383755139363034, 0.0, 0.1295864000345023, 0.0, 0.0, 0.0972547510814237, 0.0, 0.07205581060374358, 0.016878310254842765, 0.0, 0.0, 0.0, 0.0, 0.2206348639926782, 0.0, 0.0, 0.2053453449704589, 0.18009351088331146, 0.17243879836126652, 0.16094695393647487, 0.0, 0.0, 0.0026102124382687284, 0.009478472183394092, 0.22228584913081856, 0.0, 0.0, 0.22567472183496304, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.002853715730108796, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0005790797752150057, 0.4809080576930432, 0.0, 0.0, 0.0, 0.32217587215618376, 0.0018177803358381927, 0.0, 0.0, 0.0, 0.0003287432209283418, 0.0, 0.0008918558343658391, 0.0, 0.0, 0.009096038390466929, 0.0, 0.0, 0.0, 0.00873033402576318, 0.007007183394127084, 0.45496728899530875, 0.0, 0.1316351307673038, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09338135584056179, 0.18382194877540864, 0.0, 0.563495172825665, 0.0, 0.0, 0.0, 0.05639497562938005, 0.14653622131196892, 0.0, 0.0, 0.0, 0.251192534270281, 0.1344408525103349, 0.0, 0.4650111134116464, 0.31391354376028213, 0.0, 0.0, 0.06326188293375198, 0.0, 0.31318868581904563, 0.0, 0.0763329064988246, 0.0, 0.0, 0.2156944329452718, 0.3468992967609863, 0.0, 0.2518308523576955, 0.0, 0.17896869808051252, 0.05403813425807818, 0.027124296544448725, 0.0, 0.0, 0.0, 0.0, 0.11640144853391314, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09109340489796702, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1194057971602891, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6552661573805515, 0.0, 0.0, 0.0, 0.21450271688804268, 0.0, 0.0, 0.902854749674862, 0.06907734840039648, 0.0, 0.811763991573728, 0.24446155688431725, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0551218990786032, 0.0, 0.0, 0.6659086165622266, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4110921087644639, 0.0, 0.0, 0.07931423881912922, 0.0, 0.0, 0.37316154887557274, 0.11430607897800385, 0.4150800042560803, 0.0, 0.10099097676635159, 0.6592915699634367, 0.0, 0.25936644093477396, 0.07666208914620723, 0.0, 0.0, 0.7807360976520861, 0.0, 0.0, 0.04275453625658718, 0.1985413718724771, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13633482744457018, 0.0, 0.2252743029271589, 0.0, 0.0, 0.0, 0.5464410650922171, 0.11366230227156136, 0.6018718955402885, 0.0, 0.014396279790867243, 0.0, 0.03905603312028952, 0.8092451213661034, 0.0, 0.39833251401456404, 0.0, 0.12251229365728535, 0.27200847035734843, 0.25388100105648176, 0.30685765140009125, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07517201195249319, 0.0, 0.0, 0.0, 0.0, 0.3595498458067731, 0.0, 0.0, 0.0, 0.05519776563775433, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13158680513977092, 0.0, 0.45513938379424074, 0.3072494672729318, 0.0, 0.0, 0.061918895238623206, 0.0, 0.306539997354477, 0.0, 0.0, 0.0, 0.0, 0.21111545179707192, 1.113727824196147, 0.0, 0.24648473048642042, 0.0, 0.0, 0.0, 0.6244696783059631, 0.0, 0.0, 0.010619491746539882, 0.0, 0.0, 0.057745206745770994, 0.0, 0.008858840711593166, 0.0075334185627281185, 0.1972006876834336, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15720126897663422, 0.2881788570254271, 0.05549794388099826, 0.0, 0.43880673821983995, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006158057243750719, 0.0, 0.0, 0.05862006643173159, 0.15125593941090254, 0.03302320207312045, 0.0, 0.0, 0.19199421271725345, 0.004359455697024407, 0.02909842903488052, 0.4051738652139157, 0.0, 0.0, 0.0, 0.0, 0.661857462083124, 0.27266071825745297, 0.09855620143563353, 0.03009452021788303, 0.0, 0.0, 0.36386547477639486, 0.0, 0.3154569959145931, 0.0, 0.12777365741134986, 0.0, 0.2874935496978787, 0.0, 0.0, 0.021877890033203812, 0.1316957530661763, 0.0, 1.0462327541742331, 0.24642978428043782, 0.0, 1.292534939963643e-5, 0.04966212026978902, 0.16767073337455046, 0.24586075312633993, 0.7749426824526595, 0.2192927197338787, 0.0, 0.15373812475086615, 0.1693253879539043, 1.1992945978003244, 0.0, 0.19769335810835964, 0.0, 0.2843031573913307, 0.2653563328642114, 0.6319651047837591, 0.0, 0.0, 0.2886502960323224, 0.2007500567698334, 0.0, 0.0, 0.0, 0.0, 0.4490517136878312, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.43431608561880214, 0.0, 0.0, 0.0, 0.29096240214176294, 0.0, 0.0, 0.24728201213730056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.199315833820732, 0.40813133046287003, 0.25266186539111524, 0.0908889085249469, 0.0, 0.0, 0.45688115062815576, 0.11100101499363633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02264115832549351, 0.6164930072930471, 0.0, 0.0, 0.44347420874850846, 0.0, 0.17884284240125642, 0.0, 0.2888836731929794, 0.21018531617189648, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3429810739029393, 0.02002166425453684, 0.021961075245274804, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.557136258905774, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.36191890674012556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12978916081088554, 0.0, 0.33079766328323545, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20464300021869425, 0.0, 0.0, 0.0, 0.0, 0.5063973085557268, 0.26737229244864336, 0.08619179411886842, 0.0, 0.0, 0.0, 0.49896059675156373, 0.0, 0.9000423796847855, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6355437645077721, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3962962286854009, 0.0, 0.0, 0.33976760898340913, 0.0, 0.0, 0.478819001240275, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.2504314291953376, 0.0, 0.0, 0.9648065476989627, 0.2835978542736629, 0.13211849643271117, 0.2796391765298554, 0.22540993882752317, 0.5512218518807817, 0.5478145335437775, 0.0, 0.2291959647754706, 0.23520231615614767, 0.03296826745685447, 0.18421763750874248, 0.6035878434468992, 0.7441004608135994, 0.2535097758200323, 0.20236453274735783, 0.09228241774990334, 0.13384560784694935, 0.5269755678736615, 0.03880627317810495, 0.17704264007357723, 0.0, 0.2632287465084173, 0.0, 0.02720231717357045, 0.5246531850072871, 0.0, 0.0, 0.3360269038793386, 0.0, 0.22538882742471622, 0.22621665568148489, 0.0, 0.09095677592426996, 0.0, 0.2343687318872728, 0.0, 0.00044179348092010485, 0.07281055209847118, 0.6821285312867097, 0.0, 0.0, 0.0, 0.8944403740767686, 0.11973372388784431, 0.2613237068921269, 0.5923534538840982, 0.0, 0.0, 0.0, 0.8426453838331012, 0.0, 0.0, 1.0769929937540788, 0.43300907588983417, 0.0, 0.6905133736710757, 0.0, 0.0, 0.0, 0.07271653050953786, 0.8664857754450395, 0.08570530865158534, 0.0, 0.7169860381548754, 0.20498067747201715, 0.0, 0.23050103487101342, 0.0, 0.0, 0.9152746488430813, 0.14299878494120105, 0.44815460009097313, 0.0, 0.0, 0.0, 0.23162241551000032, 1.0326337985335274, 1.0530846396126474, 0.22109306040172927, 0.0, 0.0, 0.0, 1.0289491599002607, 0.008076930682810486, 0.037079469071792215, 0.0, 0.03308196940629956, 0.07165705922647192, 0.18447863887953236, 0.0, 0.24885144181470292, 0.0, 0.0, 0.0, 0.7193963651558962, 0.0, 0.6007574484421223, 0.0, 0.11361690641306497, 0.0, 0.0, 0.0, 0.0, 0.5189539173895105, 0.027360695267410504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.769945776489901, 0.00013219515459577855, 0.0, 0.0, 0.0, 0.0, 0.21518747264967641, 0.0, 0.0, 0.0, 0.10980938651098104, 0.07347552139071808, 0.0, 0.3613462418752601, 0.04465135919773286, 0.027102240057490925, 0.0, 0.0, 0.2594566815123038, 0.417973871558788, 0.02337304044012675, 0.5498222432776159, 0.011558313103301096, 0.13519961718643905, 0.0830809338177889, 0.0, 0.0, 0.0, 0.17989871031119878, 0.05233157238393502, 0.0, 0.051508809526025434, 0.225133841185459, 0.18950167625902217, 0.0, 0.0, 0.0, 0.20173577654712102, 0.7662693488070871, 0.0, 0.33259178463685746, 0.13865467767460202, 0.0, 0.8944580603877651, 0.0, 0.060682785060590494, 0.06051599339484606, 0.0, 0.0, 0.0, 0.12305720211410776, 0.10081888448105404, 0.0, 0.0, 0.2522377522294325, 0.0, 0.12103967793114603, 0.06077105223878225, 0.0, 0.0, 0.5586258592154407, 0.0, 0.0, 0.0, 0.2984848816909581, 0.029564782247173068, 0.6276543733906952, 0.0, 0.07353625635562432, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08001934416956356, 0.13808411155288577, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0013608908425346389, 0.15477792583676012, 0.8924302032481646, 0.0, 0.13515079773758784, 0.0, 0.059793517595463114, 0.0, 0.04933055693313389, 0.0, 0.0, 0.3342781850907459, 0.02578025634698341, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1229501707927792, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287208489034296, 0.0, 0.0, 0.28149278769379354, 0.0, 0.0, 0.0, 0.031923890851782225, 0.23740383631799186, 0.0, 0.0, 0.0, 0.0, 0.06362127081034188, 0.2629034525588847, 0.0, 0.9151807425831917, 0.0, 0.0, 0.0, 0.6693739198309284, 0.0, 0.0, 0.2061930933620024, 0.27528937724536684, 0.0, 0.0, 0.0, 0.0, 0.2675780483794807, 0.02063619759744684, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5460074055587408, 0.0, 0.6541555536266587, 0.0, 0.0, 0.07150154126300666, 0.0, 0.15048122306270975, 0.034115472912426725, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.050926612139623545, 0.21044506008920905, 0.0, 0.0, 0.4253961501964202, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5242476712268254, 0.0, 0.0, 0.6721198397890595, 0.02913210340779019, 0.0, 0.20059561631676462, 0.0, 0.29433701033990906, 0.0, 0.0, 0.0, 0.12559144077146528, 0.0, 0.0, 0.32229898127496104, 0.0, 0.0, 0.05500938293182685, 0.1114468235961369, 0.09601244908001759, 0.255231140185047, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05242264559033129, 0.07189305704474794, 0.29708512061039594, 0.0, 0.0, 0.16167981650220184, 0.0, 0.0, 0.42894283906704944, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24120550186102305, 0.002462183433889286, 0.1185465354728046, 0.0, 0.0, 0.20924909285728116, 0.0, 0.2383879501918044, 0.0, 0.08928505124693381, 0.0, 0.0, 0.2291277246538886, 0.0, 0.0, 0.039107088380868994, 0.03339412468553525, 0.0, 0.17867986571670036, 0.0, 0.15885581639487184, 0.0, 0.4770109811329409, 0.46521958209705216, 0.08213268605220507, 0.8570033319080816, 0.5762497735248863, 0.025109002675938377, 0.0, 0.0, 0.0, 0.006062678222071191, 0.6895253688974624, 0.0, 0.0, 0.14425623656373723, 0.0, 0.26058653129843573, 0.2499129405223175, 0.5556369963578781, 0.0, 0.0, 0.14846473797228377, 1.311439497677356, 0.0, 0.0, 0.0, 0.14844299347189643, 0.0, 0.06204384333300274, 0.5085214657536261, 0.06333953518463412, 0.0, 0.4087271917522072, 0.56471815720299, 0.0, 0.7613475113276124, 0.31092441757595435, 0.25657570652463557, 0.0, 0.6284352010004853, 0.0, 0.44245087677575873, 0.0, 0.5840306487685422, 0.886297089335757, 0.0, 0.2141960416332438, 0.0, 0.0, 0.7455493113099605, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9841442926021067, 0.155496454991287, 0.0, 0.0, 0.07678252545804619, 0.0, 0.0, 0.3721354350358947, 0.020164712785984047, 0.0, 0.0, 0.0, 0.0, 0.1088564167894987, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9595213220321046, 0.0, 0.026588936071193094, 0.0, 0.0, 0.18249673153915044, 0.041373682209080435, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04976306812868327, 0.2056369238513726, 0.0, 0.0, 0.341205976763526, 0.0, 0.0, 0.0, 0.0, 0.5785815925839551, 0.0, 0.0, 0.0, 0.5989984098523007, 0.041848978991102986, 0.0, 0.7058966144833084, 0.0, 0.1357909427918936, 0.0, 0.0, 0.0, 0.6943234317201388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03329077451447904, 0.0, 0.16959332194846893, 0.03825181104342904, 0.0, 0.030570483496490792, 0.0, 0.181963825346749, 0.0, 0.0, 0.0861751567882612, 0.0, 0.23433890396321935, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06468139820825311, 0.4901043774165395, 0.0, 0.1652405132589817, 0.0, 0.0, 0.07483443864111192, 0.0, 0.0, 0.0, 0.2810295005684995, 0.0, 0.3898372849078984, 0.0, 0.27070466717435465, 0.5873234092956581, 0.0, 0.0, 0.8033877947986148, 0.0, 0.0, 0.0, 0.5030084273245645, 0.1643009637310288, 0.0, 0.0, 0.0, 0.052313365367879956, 0.02924539070601191, 0.0, 0.7815339827038686, 0.0, 0.631919493277437, 0.08243985181699306, 0.0, 0.0, 0.0, 0.0, 0.12868680907403285, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.1259698971001804, 0.7198499769348474, 0.0, 0.41807281750787384, 0.0, 0.0, 0.6290848565988848, 0.7773412611170788, 0.0, 0.3270721417747804, 0.0, 0.0, 0.6187710034515789, 0.07069501936159496, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15113911645003905, 0.0, 0.15654877177402662, 1.1322176354521876, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2636197382380641, 0.0, 0.0, 0.34206988627899454, 0.0, 0.0, 0.2168559436204628, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12189174979618164, 0.009400555275465744, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02319896532052816, 0.09586554938115534, 0.0, 0.0, 0.47758214062526055, 0.0, 0.0, 0.0, 0.0, 0.766521270904984, 0.0, 0.0, 0.0, 0.05687724891036996, 0.0, 0.0, 0.0, 0.019988327516632248, 0.0, 0.0, 0.24020596976351885, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5319793134128888, 0.0, 0.0, 0.12310759546793347, 0.28424710350697324, 0.0, 0.9704064926727941, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.595062055789435, 0.0, 0.022922464313533127, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7479520138852049, 0.0, 0.0, 0.0, 0.0, 0.11201726895804533, 0.0, 0.0, 0.5882991104057551, 0.0, 0.0, 0.0, 0.5372591710353254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4185803721513073, 0.0, 0.4160894350708626, 0.35712090084273435, 0.0, 0.0, 0.0, 0.0, 0.3329375067097101, 0.0, 0.0, 0.0, 0.9791513934288851, 0.040171778764664906, 0.0, 0.0, 0.18774405618493867, 0.47311893679528827, 0.2590438343789052, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12077476728428499, 0.0, 0.06327325623124767, 0.0, 0.0, 0.0, 0.0, 0.34849519635188847, 0.0, 0.4382603746311635, 0.0, 0.0, 0.0, 0.09913709085437171, 0.4096661875861404, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4230910500526733, 0.0, 0.0, 0.0, 0.17776900851570368, 0.0, 0.5438917161748563, 0.0, 0.43287084617637955, 0.0, 0.0, 0.0, 0.5349746055023918, 0.0, 0.7894262258085124, 0.0, 0.0, 0.0, 0.416696264214944, 0.1414148713022835, 0.0, 0.1306712640828635, 0.5944339267365731, 0.0, 0.0, 0.0, 0.3098486230376566, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27475814956764166, 0.0, 0.0, 0.0, 0.572874722755641, 0.7993131511508778, 0.0, 0.2979949962228512, 0.14400098705349634, 0.0, 0.0, 0.02684711041673838, 0.0, 0.0575193250192605, 0.13038147684896279, 0.07982177723780243, 0.0, 0.0, 0.22370954598082965, 0.0, 0.0, 0.0, 0.16207849359014098, 0.8780589957563658, 0.0, 0.0, 0.0, 0.03773454641900064, 0.0, 0.190720074864707, 0.03823162707299666, 0.0, 0.027092618673790602, 0.07782668325822914, 0.0, 0.0, 0.025612768291380317, 0.0, 0.1339183762706947, 0.03147511447091019, 0.0, 0.0, 0.22256660522037766, 0.0, 0.050981846070955524, 0.33080849696175413, 0.22670468547648376, 0.0, 0.0, 0.2394131641393997, 0.0, 0.6763225254232694, 0.0, 0.32609931596811353, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02551395955593748, 0.0, 0.19870976845837512, 0.0, 0.8838430389981123, 0.0, 0.8900590234719281, 0.0, 0.1395885727389325, 0.39274638865688727, 0.13258182339863903, 1.0427544725112363, 0.007925765580094073, 0.0, 0.0, 0.9248219821941955, 0.0, 0.38782207933590473, 0.20331266090801786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4620448777897825, 0.5673723076761421, 0.13444042454417618, 0.0, 0.0012927651989113214, 0.0, 0.0, 0.0, 0.3049721916420315, 0.017266202832261764, 0.0, 0.0, 0.07071993264415252, 0.04567425634491729, 0.3943633692304047, 0.0, 0.15861807151929683, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05848946000294637, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0002825960061227963, 0.18362488935764, 0.0, 0.0, 0.0, 0.16115194339742445, 0.5974334511167834, 0.0, 0.04024167944046561, 0.33382381844541353, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6087942383002851, 0.0, 0.0, 0.7807479082612564, 0.3974967659255351, 1.5487027213337248, 0.03765559375444021, 0.17692333788215128, 0.23426356503546714, 0.0, 0.22388851869475412, 0.04007956243736881, 1.0262040210122396, 0.0, 0.7972348331243138, 1.0049259227957363, 0.051433760809377164, 0.0, 0.8283458296766737, 0.0, 0.7561556098507006, 0.0, 0.0, 0.0, 0.24907496608552146, 0.0, 0.5011916402324644, 0.1747189814102487, 0.9899595982235516, 0.6164188940137083, 0.11559029428984438, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.593849645786338, 0.0, 0.0, 0.0, 0.0, 0.13660851844466146, 0.030970403587585463, 0.23157107362581741, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13749939723080143, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7110898100418397, 0.0, 0.0, 0.0, 0.46081314114808425, 0.7109856621285974, 0.2884350146527927, 0.0, 0.0, 0.30337236072169704, 0.06739814120009983, 0.0, 0.7785291912169707, 0.0, 0.0, 0.13287789565404662, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3593823347180517, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4624623396236477, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.024288127378650458, 0.0, 0.793430084070044, 0.0, 0.0, 0.07003161792104487, 0.0, 0.390525043836891, 0.7636039620295462, 0.06950112764284275, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019321154098251664, 0.0, 0.18651557279691772, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05792018405822482, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18265223354453325, 0.12454723256219671, 0.0, 0.0002798455087109209, 0.0, 0.0, 0.11611318457978691, 0.05398921986713746, 0.0, 0.8752290763913787, 0.0, 0.0, 0.0, 0.0, 0.13107895831547542, 0.0, 0.0, 0.45521248179167606, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11685661958627322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44522459151527227, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26435993065610003, 0.021758541234477975, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2146225974372531, 0.0, 0.13433790512658406, 0.030902835047588124, 0.0, 0.0, 0.03139052000724026, 0.0, 0.0, 0.7200671942026683, 0.0, 0.0, 0.05946084260814123, 0.0, 0.14663715828117352, 0.03324398818324252, 0.008023890708802274, 0.05967012120515395, 0.0, 0.0, 0.0, 0.10840406404650259, 0.0, 0.0, 0.0, 0.23002554078955822, 0.0, 0.21539070760796813, 0.0, 0.15809846801096508, 0.0, 0.0, 0.023379160669788793, 0.06919243918501702, 0.0, 0.4184368340983768, 0.0, 0.0, 0.0, 0.025499570825031452, 0.0, 0.054632252014063354, 0.12383722685885369, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08100665304577326, 0.0, 0.0, 0.0, 1.137863121002405, 0.0, 0.0, 0.18114724382910816, 1.0175246627827756, 0.0, 0.8319051265218698, 0.7408406030496757, 0.0, 0.0, 0.4793159619581115, 0.26457362772519605, 0.7690370272987045, 0.02989528102721059, 0.0, 0.0, 0.0, 0.34236772701032764, 0.22777638147070367, 0.20013535639204974, 0.7445351180710278, 0.0, 0.0, 0.32085924041220354, 0.0, 0.0, 0.0, 0.5922078604864867, 0.0, 0.0, 0.18324289767504168, 0.0, 0.0, 0.05247138335835671, 0.48819810625100485, 0.0, 0.4058243472838195, 0.0, 0.0, 0.6944817185701155, 0.21684000174364465, 0.0, 0.12484778900119534, 0.0, 0.5314768166536554, 0.0, 0.0, 0.0, 0.0, 0.11888353831534566, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4539474830982486, 0.0, 0.12931153719488578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.23351697026332235, 0.0, 0.0, 0.0, 0.0, 0.2291429172294868, 0.4258647172142874, 0.0, 0.0, 0.0, 0.22479141295616378, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05853977920447593, 0.0, 0.16715127001769428, 0.0, 0.3712702672746247, 0.13508244363790445, 0.06392604260421969, 0.5912989058272206, 0.4437811402099471, 0.0, 0.0, 0.0, 0.0, 0.005827558703832637, 0.6627845677844773, 0.0, 0.0, 0.0, 0.30904361146056275, 0.6816789334794826, 0.1436649772664439, 0.16334297841077242, 0.0, 0.0, 0.7882286990025497, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7753056808075847, 0.035768380854023674, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44917737188494944, 0.0, 0.18937379890511313, 0.06882274914369534, 0.0, 0.0, 0.0, 0.009287224889287345, 0.06906497794085972, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26624227636214304, 0.0, 0.0, 0.0, 0.1829905316954157, 0.0, 0.06582989974405196, 0.2036305981722081, 0.08008655235603437, 0.0, 0.0, 0.0, 0.0, 0.0, 0.41729810318329397, 0.0, 0.0, 0.0, 0.0, 0.0, 0.037951024806923965, 0.0, 0.0, 0.0, 0.0, 0.41651629143780994, 0.0, 0.2053954771505675, 0.29245802337269494, 0.0368786813523771, 0.0, 0.38440171693921094, 0.0, 1.0326219326945734, 0.0, 0.02604768015780454, 0.9153304998316836, 0.0, 0.0, 0.0, 0.021211537114504155, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3418184639399641, 0.9530187941808128, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5415447555144779, 0.0, 0.16269589476095273, 0.0, 0.2704207942532035, 0.6129742049927741, 0.0, 0.0, 0.0, 0.0, 0.07078757436524862, 0.0, 0.7077105145475581, 0.34262729838304967, 0.5909987644476324, 0.0, 0.11177131716736882, 0.4359653240929594, 0.04723041930008277, 0.45146742793812006, 0.896649501844373, 0.0, 0.0, 0.6373803605539574, 0.5201327056992473, 0.10980024784153514, 0.07242729038979111, 0.0, 0.25075448235999825, 0.0, 0.14797679652158516, 0.0, 0.0, 0.0, 0.0, 0.6939917265420261, 0.9906375819864492, 0.9257686181712707, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37693205342755914, 0.5232740229070877, 0.0, 0.060081052233409524, 0.0, 0.3350366056610552, 0.0, 0.20067269510180097, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5308540215160052, 0.0, 0.0, 0.04969049276705586, 0.4729163126308979, 0.17206519556589087, 0.08142765800071788, 0.0, 0.6342266715653555, 0.28491323267898133, 0.0, 0.0, 0.0, 0.0, 0.3249315382934875, 0.27888197557292793, 0.0, 0.00024008316707892853, 0.0, 0.0, 0.4429941865632019, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08351200806876206, 0.0, 0.0, 0.3644144714136701, 0.0, 0.25850208657414453, 0.3044172676246769, 0.0, 0.0, 0.0, 0.42064905943656483, 0.5410542431685182, 0.0, 0.0, 0.0235250266831074, 0.17227146855360218, 0.0, 0.0, 0.11190852746246406, 0.0, 0.0, 0.0, 0.0, 0.14411942384547258, 0.0, 0.0, 0.4237744107411662, 0.0, 0.2972186074559964, 0.0, 0.5397314242092841, 0.4632402464002124, 0.0, 0.5786606886346829, 0.0, 0.0, 0.47789419623388885, 0.0, 0.0, 0.0, 0.10580588439167306, 0.0, 0.0, 0.7377357792707717, 0.0, 0.10579038780894534, 0.0, 0.0, 0.0, 0.045139981578782816, 0.0, 0.0, 0.11584045845995011, 0.0, 0.0, 0.019771431213384455, 0.36490249309768175, 0.35310751173091487, 1.1149184594112733, 0.0, 0.0, 0.0, 0.5857527772485364, 0.44959707967332574, 0.1008560617277558, 0.018841708015473753, 0.7001531183110316, 0.0, 0.0, 0.0, 0.5946141177445001, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22666010948008636, 0.0, 0.0, 0.0, 0.0, 0.0, 0.014782177343261123, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02695824533437821, 0.0, 0.0, 0.0, 0.016838719448302838, 0.0, 0.0, 0.0, 0.08231997245985787, 0.0, 0.0, 0.0, 0.01058107131899943, 0.0, 0.05814319369896461, 0.0, 0.0, 0.0, 0.0, 0.047348036509572325, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019563192629043182, 0.027295875565384514, 0.0, 0.0, 0.0, 0.0, 0.33629932740438834, 0.0, 0.0, 0.0, 0.32394391802925426, 0.5704070896351352, 0.0, 0.14173474826201982, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6013127745008292, 0.0, 0.7561985490243033, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2959306772073682, 0.2539911401819114, 0.0, 0.0, 0.7300245622804938, 0.0, 0.2367914528076339, 0.0, 0.0, 0.0, 0.33628005236128533, 0.025934644678944505, 0.0, 0.06026134263178236, 0.0, 0.0, 0.03662105153743461, 0.06883834406728133, 0.0, 0.0, 0.21279478779844782, 0.0, 0.0, 0.07129569822964256, 0.0, 0.09738688258412649, 0.06246220065656896, 0.0, 0.059045957391141574, 0.0, 0.006923917652553149, 0.051490108793371445, 0.0, 0.16644468958034975, 0.19015418061029377, 0.10882376279915186, 0.06400227485256132, 0.2644778831991808, 0.0, 0.19849197355887785, 0.0, 0.0010725148648749981, 0.12198011848273568, 0.1548472256356659, 0.0, 0.009305339154304988, 0.0, 0.10589543929012146, 0.0, 0.0, 0.17178211974814458, 0.0, 0.23085925511580369, 0.0, 0.0, 0.0, 0.31374773386794685, 0.0, 0.4234572393895347, 0.0, 0.0, 0.0, 0.045888478821935044, 0.0, 0.0, 0.13665231391596233, 0.0, 0.05546447903889757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15847133453228077, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3148706017686264, 0.2655048691833022, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.28333620483908656, 0.0, 0.0, 0.0, 0.3208604446677971, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25931056270601605, 0.0, 0.0, 0.20842242702467234, 0.0, 0.0, 0.28681902268117093, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2978149918318377, 0.0, 0.0, 0.09574337597144772, 0.0, 0.0, 0.38017827065442816, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03128644702667798, 0.0, 0.0, 0.0]), 42), 42)),) julia> @finch_code begin Ct .= 0 for i = _ @@ -258,45 +258,46 @@ julia> @finch_code begin end end quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl = ((ex.bodies[1]).bodies[1]).tns.bind.lvl Ct_lvl_2 = Ct_lvl.lvl Ct_lvl_3 = Ct_lvl_2.lvl Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] B_lvl_val = B_lvl.lvl.val B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + result = nothing pos_stop = A_lvl.shape[1] * B_lvl.shape[2] Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) for i_4 = 1:A_lvl.shape[1] val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + Ct_lvl_2_val = (Finch).moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) B_lvl_ptr_2 = B_lvl_ptr - B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_ptr = (Finch).moveto(B_lvl_ptr, CPU(Threads.nthreads())) B_lvl_tbl1_2 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl1 = (Finch).moveto(B_lvl_tbl1, CPU(Threads.nthreads())) B_lvl_tbl2_2 = B_lvl_tbl2 - B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + B_lvl_tbl2 = (Finch).moveto(B_lvl_tbl2, CPU(Threads.nthreads())) val_2 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + B_lvl_val = (Finch).moveto(B_lvl_val, CPU(Threads.nthreads())) A_lvl_ptr_2 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_ptr = (Finch).moveto(A_lvl_ptr, CPU(Threads.nthreads())) A_lvl_tbl1_2 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl1 = (Finch).moveto(A_lvl_tbl1, CPU(Threads.nthreads())) A_lvl_tbl2_2 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + A_lvl_tbl2 = (Finch).moveto(A_lvl_tbl2, CPU(Threads.nthreads())) val_3 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + A_lvl_val = (Finch).moveto(A_lvl_val, CPU(Threads.nthreads())) Threads.@threads for i_5 = 1:Threads.nthreads() B_lvl_q = B_lvl_ptr[1] B_lvl_q_stop = B_lvl_ptr[1 + 1] @@ -367,13 +368,13 @@ quote A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] if A_lvl_i_2 < phase_stop_6 A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + Ct_lvl_2_val[Ct_lvl_2_q] += B_lvl_2_val * A_lvl_2_val A_lvl_q_2 += 1 else phase_stop_8 = min(A_lvl_i_2, phase_stop_6) if A_lvl_i_2 == phase_stop_8 A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + Ct_lvl_2_val[Ct_lvl_2_q] += B_lvl_2_val * A_lvl_2_val A_lvl_q_2 += 1 end break @@ -443,13 +444,13 @@ quote A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] if A_lvl_i_4 < phase_stop_16 A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + Ct_lvl_2_val[Ct_lvl_2_q_2] += B_lvl_2_val_3 * A_lvl_2_val_2 A_lvl_q_4 += 1 else phase_stop_18 = min(A_lvl_i_4, phase_stop_16) if A_lvl_i_4 == phase_stop_18 A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + Ct_lvl_2_val[Ct_lvl_2_q_2] += B_lvl_2_val_3 * A_lvl_2_val_2 A_lvl_q_4 += 1 end break @@ -483,10 +484,9 @@ quote A_lvl_tbl2 = A_lvl_tbl2_2 A_lvl_val = val_3 end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(Ct_lvl_2_val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) + resize!(Ct_lvl_2_val, A_lvl.shape[1] * B_lvl.shape[2]) + result = (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) + result end julia> @finch begin Ct .= 0 @@ -498,7 +498,7 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25238968158185693, 0.0, 0.0, 0.48865059160643304, 0.11871952163266221, 0.13783085437527975, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1100520583840872, 0.0, 0.6593611321473758, 0.05928345080192752, 0.009174411759749758, 0.0, 0.0, 0.19127876171690858, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07691735887883953, 0.0, 0.05392395392410878, 0.02141387988861775, 0.34710885925020263, 0.0, 0.0, 0.0, 0.0, 0.004888456103411815, 0.23938597192062988, 0.14380896793554465, 0.0, 0.0, 0.11091906743258541, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.42492930113736893, 0.0, 0.0, 0.0, 0.3917786049138451, 0.0, 0.027947398300345625, 0.0, 0.0, 0.0, 0.027990755993474236, 0.23996972136870412, 0.0, 0.0, 0.0, 0.16076348282437408, 0.0, 0.0, 0.0, 0.0, 0.2346717239666177, 0.0, 0.1645197835042719, 0.0, 0.15581124610211206, 0.0, 0.0, 0.0, 0.0, 0.16923528472284902, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07802881298690809, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0008989792695458017, 0.0, 0.0, 0.0, 0.0, 0.06720357557125424, 0.0, 0.0, 0.0, 0.3718711629986387, 0.0, 0.0, 0.3609126159300422, 0.1163460342216259, 0.26803502779771143, 0.5785179690130179, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20913099459980355, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3230898388302748, 0.31857597482541405, 0.458635468333174, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7731954314831251, 0.7216673432976093, 0.0, 0.7303507448180484, 0.14951424728459475, 0.7849205313632122, 0.0, 0.61487751501265, 0.0, 0.0, 0.25756111513158075, 0.0, 0.4611561614453371, 0.11767850077853764, 0.8141145056659213, 0.17774815965387922, 0.0, 0.0, 0.6559733835287642, 0.36761704346577023, 0.0, 0.0, 0.0, 0.7451998098255509, 0.033169973232688346, 0.411513621864204, 0.20930644094410764, 0.0, 0.0, 0.0, 0.10412334822136202, 0.6428221612529075, 0.2944149731643712, 0.0, 0.01883057275583864, 0.0, 0.05108593913912473, 0.0, 0.0, 0.521025535425184, 0.0008200368898190739, 0.0, 1.1919622969351262, 0.6934669965376988, 0.46942192138741023, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37125241315091917, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29594902098744047, 0.0, 0.0, 0.0, 0.5073161019921272, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.36145064005412786, 0.0, 0.054781056420259586, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6055780045451759, 0.09162757378665623, 0.04766798091106047, 0.0, 0.46059427954757914, 0.1119031338013209, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37567607243684537, 0.6215033212682567, 0.6577405362916645, 0.03204652922702584, 0.0, 0.0650525320202852, 0.18029632002719695, 0.0, 0.0, 0.0, 0.0, 0.008472932483726157, 0.0, 0.0, 0.0, 0.0, 0.13094335555018422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16141065848651698, 0.0, 0.051110856273358346, 0.0, 0.020946973304893955, 0.06226614898669832, 0.0, 0.2444646619775439, 0.0, 0.0, 0.0, 0.0, 0.04963632606956389, 0.0, 0.0, 0.0, 0.08508663882314382, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1263166966867768, 0.0, 0.15643691198571966, 0.0, 0.0, 0.0, 0.15262026274680354, 0.0, 0.526388198493186, 0.0, 0.0, 0.033474977962917256, 0.060622203675208805, 0.0, 0.43377644245905544, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3151002104915899, 0.0, 0.09477312339277622, 0.0, 0.0, 0.0, 0.152252080697694, 0.0, 0.0, 0.0204339991404229, 0.1698000966652489, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22850913265749315, 0.0, 0.7903794435818682, 0.5335588868613267, 0.0, 0.0, 0.33064520351324683, 0.11423967014312472, 0.532326845734251, 0.0, 0.0, 0.0, 0.0, 0.5700696949494688, 0.5896247750753707, 0.0, 0.4280369290594203, 0.0, 0.27339018574089047, 0.25517063473696217, 0.0, 0.4053021670425236, 0.0, 0.7145118270418906, 0.18406779329511921, 0.5332101577384002, 0.15679597786898153, 0.0, 0.02405447430944597, 0.5068714011553328, 0.2632866105026604, 0.0, 0.0, 0.0, 0.0, 0.0, 0.026822919064352108, 0.0, 0.09441824561660622, 0.15069396874531527, 0.24064671368655893, 0.0, 0.06394357060327457, 0.3982245622181067, 0.22117139549869444, 0.14930545644387866, 0.0, 0.2667835225346214, 0.4473684178329899, 0.0, 0.14896069513005675, 0.0, 0.41433289250349636, 0.0, 0.5041716274275465, 0.26176138019545275, 0.5757006867537102, 0.08966813962959974, 0.11977731163657437, 0.0, 0.0, 0.29331748913539113, 0.14887247084155056, 0.1452951955564375, 0.0, 0.0, 0.0, 0.0, 0.34161907033931543, 0.05898137093682045, 0.05240866036729835, 0.0, 0.0, 0.0, 0.5188204085313443, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5773724259871397, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22601349058504813, 0.0, 0.3467947164134737, 1.502272260353748, 0.19536436403308852, 0.0, 0.0, 0.0, 0.0, 0.4899706257461605, 0.20445136303854802, 0.7748906467295266, 0.0, 0.0, 0.15253741518885644, 0.0, 0.12918615799515507, 0.0, 0.0, 0.649394095142608, 1.40604728101928, 0.0, 0.5734783753787226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8762605287663663, 0.8124102702299425, 0.0, 0.0, 0.6752965428315182, 0.25420065076928294, 0.2878352998155691, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8742900027056961, 0.0, 0.007209075676415797, 0.028458058565007462, 0.0, 0.0, 0.002645728789765276, 0.0, 0.0, 0.0, 0.669321167131686, 0.0, 0.0, 0.3215833521867582, 0.002002885293525303, 0.5455785228014223, 0.5839672123490091, 0.1695566125503257, 0.0, 0.0, 0.0, 0.0, 0.3711983399532414, 0.0, 0.0, 0.037869811310371364, 0.0, 0.0, 0.0, 0.3906765181627519, 0.0, 0.0, 0.0, 0.004333175863679718, 0.0, 0.0, 0.0, 0.0029029347517778824, 0.43381543679330525, 0.0, 0.0, 0.0, 0.0, 0.3545426084781949, 0.0, 0.3770558352493434, 0.6375411486503958, 0.0, 0.0, 0.0, 0.23985359098491452, 0.021961946298743228, 0.0, 0.3910697032182053, 0.0, 0.6932074965542865, 0.0, 0.0, 0.10364106821683754, 0.0, 0.798416207733151, 0.5329842919228587, 0.0, 0.4844692491628223, 0.0, 0.0, 0.0, 0.0, 0.09106971306440546, 0.0, 0.0, 0.0996076819499136, 0.0, 0.0, 0.1638248686693664, 0.0, 0.3325546563665125, 0.0, 0.0, 0.0, 0.06881525170797138, 0.0, 0.44073566130025815, 0.0, 0.4019788844385439, 0.0, 0.0, 0.6714215423158676, 0.3399125937167764, 0.3046141011370791, 0.0, 0.0, 0.0473355681300066, 0.3630070132608522, 0.0, 0.0800754636262803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2369140918241696, 0.0, 0.0, 0.35909981102365546, 0.2433693452274136, 0.6477566576645207, 0.0, 0.0, 0.0, 0.0, 0.4005702988980329, 0.6327139875815745, 0.45739813367595, 0.2306117264369203, 0.1673891610155256, 0.0, 0.3233168523165315, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04211122573483531, 0.0, 0.06803593591564691, 0.5741938845793657, 0.0476975123297982, 0.5504819156825551, 0.044516401141561746, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13524675835101255, 0.0, 0.22945132617429284, 0.0, 0.0, 0.0, 0.0, 0.1577714195074665, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2785368262709604, 0.12576967984327264, 0.0, 0.0, 0.0, 0.21559450852042064, 0.04903058086742513, 0.0, 0.1695895598298771, 0.11448427397866526, 0.0, 0.0, 0.023071609626772224, 0.0, 0.11421991827694536, 0.0, 0.0, 0.0, 0.007379588146467978, 0.07866376283476462, 0.3892472589606234, 0.0, 0.09184271552047321, 0.0, 0.25448001970252454, 0.2286582495545744, 0.02328034708296836, 0.0, 0.0, 0.0, 0.0, 0.3270923296219218, 0.0, 0.0, 0.0, 0.02043338740984974, 0.0, 0.0, 0.37277616481672965, 0.0, 0.0, 0.0, 0.0044846057268865735, 0.0, 0.3249615768942753, 0.0, 0.0, 0.19094547447052443, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08406342406417443, 0.0, 0.033182079075965945, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6500195484438399, 0.0, 0.0, 0.0, 0.0, 0.5537781763556555, 0.02656015063015655, 1.1909226087779956, 0.06852425737111054, 0.0, 1.3426353595976268, 0.6057701268300226, 0.9302934294779756, 0.0, 0.02223254227484718, 0.9934644128441693, 0.0, 0.06172390220433867, 0.20273446118005728, 0.5149938580802573, 0.1300590771577626, 0.2385875538652477, 0.0, 0.595480643743492, 0.0, 0.0, 0.0, 0.24275727828178406, 0.0, 0.7073132892445582, 0.0, 0.5182899096571696, 0.0, 0.363354145475898, 1.046444738015761, 0.8990939341913878, 0.5284345996323894, 0.0009271750893556132, 0.0, 0.0786791826827641, 0.5567513178048157, 0.0, 0.11672601563414542, 0.0, 0.0, 0.0, 0.0, 0.513610216882899, 0.0, 0.3599562947175533, 0.012305112294495107, 0.0, 0.3547644724719033, 0.0, 0.31743838097476296, 0.0, 0.0, 0.0744235447925737, 0.0, 0.0, 0.3186229810095584, 0.0, 0.7632822460090717, 0.3112891249755775, 0.0, 1.2592130951288079, 0.4142666686935799, 0.0, 0.0, 0.0834856922205997, 0.0, 0.5673263343800874, 0.0, 0.0, 0.0, 0.011109757680217765, 0.7473278912032746, 0.4577974378546139, 0.07323000489837116, 0.33380163101303967, 0.0, 0.014128663560806082, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19621458519667637, 0.0, 0.0, 0.0, 0.0, 0.4083399062549612, 0.0, 0.3744505994071715, 0.0, 0.5655910339236376, 0.0, 0.0, 0.08962016161963385, 0.0, 0.0, 0.0, 0.0, 0.3660241210222327, 0.0, 0.42450374338695224, 0.6660088440351456, 0.0, 0.0, 0.28456417514777416, 0.0, 0.6631091941560893, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.002609340728317194, 0.0, 0.0, 0.0, 0.0, 0.1290910408202515, 0.0, 0.12880600190077574, 0.0, 0.21852433519062017, 0.14617196989407044, 0.04712090478664361, 0.17786735669510226, 0.013608617966411374, 0.0, 0.1599219758144718, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13118766387513575, 0.18575036424480185, 0.0, 0.0, 0.0, 0.0, 0.24739057674609932, 0.08098740885007556, 0.0, 0.0, 0.11169555771003165, 0.0061692969950391426, 0.0, 0.0, 0.0, 0.1300402212804686, 0.0, 0.22061823582759926, 0.32468517510166695, 0.17899843511210062, 0.0, 0.0, 0.0, 0.0, 0.3555268023407697, 0.0, 0.0, 0.0, 0.5637648459713849, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.41259886956253183, 0.0, 0.0, 0.0, 0.0, 1.0217866044035127, 0.0, 0.0, 0.0, 0.09699076097844603, 0.49177999120325233, 0.617482417183965, 0.9254348782417843, 0.19189797684210885, 0.37564958516196006, 0.0, 0.6028533281724416, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4525887449543689, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.3536752652948492, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5159325071456758, 0.45703260113959776, 0.11783337867793497, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.014395933646557283, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5291071006274988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4362705134404812, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06167194341482688, 0.0, 0.26507468559563424, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18765355736657707, 0.0, 1.0014115383719757, 0.10542483708166006, 0.22040848700903187, 0.0, 0.3600323742449293, 0.06543742592421764, 0.0, 0.06637441639531827, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3967141864154841, 0.0, 0.18259679072826512, 0.0, 0.2818810986099949, 0.0, 0.0, 0.0, 0.04462260901941838, 0.650460148621926, 0.9472330785275007, 0.0, 0.0, 0.0, 0.0, 0.20815281221075516, 0.19618764447572262, 0.06473525648539784, 0.0, 0.0, 0.0, 0.1542243249790465, 0.13224172712193835, 0.0, 0.007908832517684252, 0.0, 0.051353982240120374, 0.0032977751233809844, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27800255996089945, 0.0, 0.0, 0.1281258773488851, 0.0, 0.0, 0.0, 0.31683019969084447, 0.0, 0.0, 0.0, 0.19099043815219882, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2169883137756601, 0.0, 0.7505306274250138, 0.5066582758142599, 0.0, 0.07143979002259558, 0.10210504506442938, 0.15444313156667316, 0.5054883509033501, 0.0, 0.0, 0.0, 0.0028518817212982773, 0.3481320627001662, 0.559897472000501, 0.0, 0.40645645270348807, 0.0, 0.36960222637651485, 0.34497081323202616, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0330129037169125, 0.05220506486278423, 0.053654185080025577, 0.0, 0.0, 0.1851124085000456, 0.04497376440934621, 0.35304695602824443, 0.0, 0.0, 0.343295765136816, 0.2793332554556384, 0.0, 0.0, 0.040358875497600165, 0.24978160129073035, 0.0, 0.0, 0.0, 0.0, 0.07246092173943684, 0.0, 0.16628600115413392, 0.0, 0.0, 0.0, 0.06634041958053304, 0.0, 0.0, 0.0, 0.008112084482454424, 0.0, 0.0, 0.3510991071496956, 0.30792356595023396, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24591462609017128, 0.0, 0.0, 0.0, 0.0, 0.1723485353456609, 0.17746213232343597, 0.26032482377035826, 0.0, 0.0, 0.09642188463361992, 0.0, 0.0, 0.9312549994812083, 0.0, 0.4355669936335271, 0.22986161845318145, 0.0, 1.1016016643957898, 0.5367168823744637, 0.0, 0.0, 0.1081626494181155, 0.0, 0.5354775491181646, 0.0, 0.0, 0.7066771289166013, 0.005913227901483509, 0.36878575613264597, 0.5931146099182986, 0.0, 0.43177137005853594, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2792172801438884, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18771394461865235, 0.0, 0.3810480475576988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04963057208911237, 0.0, 0.0, 0.0, 0.014028126739435154, 0.6487755206193258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019308069898724092, 0.0, 0.0, 0.15473333790095384, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20078144855224883, 0.04664059814698181, 0.0, 0.0, 0.02360446678134394, 0.0, 0.0, 0.06383755139363034, 0.0, 0.1295864000345023, 0.0, 0.0, 0.0972547510814237, 0.0, 0.07205581060374358, 0.016878310254842765, 0.0, 0.0, 0.0, 0.0, 0.2206348639926782, 0.0, 0.0, 0.2053453449704589, 0.18009351088331146, 0.17243879836126652, 0.16094695393647487, 0.0, 0.0, 0.0026102124382687284, 0.009478472183394092, 0.22228584913081856, 0.0, 0.0, 0.22567472183496304, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.002853715730108796, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0005790797752150057, 0.4809080576930432, 0.0, 0.0, 0.0, 0.32217587215618376, 0.0018177803358381927, 0.0, 0.0, 0.0, 0.0003287432209283418, 0.0, 0.0008918558343658391, 0.0, 0.0, 0.009096038390466929, 0.0, 0.0, 0.0, 0.00873033402576318, 0.007007183394127084, 0.45496728899530875, 0.0, 0.1316351307673038, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09338135584056179, 0.18382194877540864, 0.0, 0.563495172825665, 0.0, 0.0, 0.0, 0.05639497562938005, 0.14653622131196892, 0.0, 0.0, 0.0, 0.251192534270281, 0.1344408525103349, 0.0, 0.4650111134116464, 0.31391354376028213, 0.0, 0.0, 0.06326188293375198, 0.0, 0.31318868581904563, 0.0, 0.0763329064988246, 0.0, 0.0, 0.2156944329452718, 0.3468992967609863, 0.0, 0.2518308523576955, 0.0, 0.17896869808051252, 0.05403813425807818, 0.027124296544448725, 0.0, 0.0, 0.0, 0.0, 0.11640144853391314, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09109340489796702, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1194057971602891, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6552661573805515, 0.0, 0.0, 0.0, 0.21450271688804268, 0.0, 0.0, 0.902854749674862, 0.06907734840039648, 0.0, 0.811763991573728, 0.24446155688431725, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0551218990786032, 0.0, 0.0, 0.6659086165622266, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4110921087644639, 0.0, 0.0, 0.07931423881912922, 0.0, 0.0, 0.37316154887557274, 0.11430607897800385, 0.4150800042560803, 0.0, 0.10099097676635159, 0.6592915699634367, 0.0, 0.25936644093477396, 0.07666208914620723, 0.0, 0.0, 0.7807360976520861, 0.0, 0.0, 0.04275453625658718, 0.1985413718724771, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13633482744457018, 0.0, 0.2252743029271589, 0.0, 0.0, 0.0, 0.5464410650922171, 0.11366230227156136, 0.6018718955402885, 0.0, 0.014396279790867243, 0.0, 0.03905603312028952, 0.8092451213661034, 0.0, 0.39833251401456404, 0.0, 0.12251229365728535, 0.27200847035734843, 0.25388100105648176, 0.30685765140009125, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07517201195249319, 0.0, 0.0, 0.0, 0.0, 0.3595498458067731, 0.0, 0.0, 0.0, 0.05519776563775433, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13158680513977092, 0.0, 0.45513938379424074, 0.3072494672729318, 0.0, 0.0, 0.061918895238623206, 0.0, 0.306539997354477, 0.0, 0.0, 0.0, 0.0, 0.21111545179707192, 1.113727824196147, 0.0, 0.24648473048642042, 0.0, 0.0, 0.0, 0.6244696783059631, 0.0, 0.0, 0.010619491746539882, 0.0, 0.0, 0.057745206745770994, 0.0, 0.008858840711593166, 0.0075334185627281185, 0.1972006876834336, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15720126897663422, 0.2881788570254271, 0.05549794388099826, 0.0, 0.43880673821983995, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006158057243750719, 0.0, 0.0, 0.05862006643173159, 0.15125593941090254, 0.03302320207312045, 0.0, 0.0, 0.19199421271725345, 0.004359455697024407, 0.02909842903488052, 0.4051738652139157, 0.0, 0.0, 0.0, 0.0, 0.661857462083124, 0.27266071825745297, 0.09855620143563353, 0.03009452021788303, 0.0, 0.0, 0.36386547477639486, 0.0, 0.3154569959145931, 0.0, 0.12777365741134986, 0.0, 0.2874935496978787, 0.0, 0.0, 0.021877890033203812, 0.1316957530661763, 0.0, 1.0462327541742331, 0.24642978428043782, 0.0, 1.292534939963643e-5, 0.04966212026978902, 0.16767073337455046, 0.24586075312633993, 0.7749426824526595, 0.2192927197338787, 0.0, 0.15373812475086615, 0.1693253879539043, 1.1992945978003244, 0.0, 0.19769335810835964, 0.0, 0.2843031573913307, 0.2653563328642114, 0.6319651047837591, 0.0, 0.0, 0.2886502960323224, 0.2007500567698334, 0.0, 0.0, 0.0, 0.0, 0.4490517136878312, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.43431608561880214, 0.0, 0.0, 0.0, 0.29096240214176294, 0.0, 0.0, 0.24728201213730056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.199315833820732, 0.40813133046287003, 0.25266186539111524, 0.0908889085249469, 0.0, 0.0, 0.45688115062815576, 0.11100101499363633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02264115832549351, 0.6164930072930471, 0.0, 0.0, 0.44347420874850846, 0.0, 0.17884284240125642, 0.0, 0.2888836731929794, 0.21018531617189648, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3429810739029393, 0.02002166425453684, 0.021961075245274804, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.557136258905774, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.36191890674012556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12978916081088554, 0.0, 0.33079766328323545, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20464300021869425, 0.0, 0.0, 0.0, 0.0, 0.5063973085557268, 0.26737229244864336, 0.08619179411886842, 0.0, 0.0, 0.0, 0.49896059675156373, 0.0, 0.9000423796847855, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6355437645077721, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3962962286854009, 0.0, 0.0, 0.33976760898340913, 0.0, 0.0, 0.478819001240275, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.2504314291953376, 0.0, 0.0, 0.9648065476989627, 0.2835978542736629, 0.13211849643271117, 0.2796391765298554, 0.22540993882752317, 0.5512218518807817, 0.5478145335437775, 0.0, 0.2291959647754706, 0.23520231615614767, 0.03296826745685447, 0.18421763750874248, 0.6035878434468992, 0.7441004608135994, 0.2535097758200323, 0.20236453274735783, 0.09228241774990334, 0.13384560784694935, 0.5269755678736615, 0.03880627317810495, 0.17704264007357723, 0.0, 0.2632287465084173, 0.0, 0.02720231717357045, 0.5246531850072871, 0.0, 0.0, 0.3360269038793386, 0.0, 0.22538882742471622, 0.22621665568148489, 0.0, 0.09095677592426996, 0.0, 0.2343687318872728, 0.0, 0.00044179348092010485, 0.07281055209847118, 0.6821285312867097, 0.0, 0.0, 0.0, 0.8944403740767686, 0.11973372388784431, 0.2613237068921269, 0.5923534538840982, 0.0, 0.0, 0.0, 0.8426453838331012, 0.0, 0.0, 1.0769929937540788, 0.43300907588983417, 0.0, 0.6905133736710757, 0.0, 0.0, 0.0, 0.07271653050953786, 0.8664857754450395, 0.08570530865158534, 0.0, 0.7169860381548754, 0.20498067747201715, 0.0, 0.23050103487101342, 0.0, 0.0, 0.9152746488430813, 0.14299878494120105, 0.44815460009097313, 0.0, 0.0, 0.0, 0.23162241551000032, 1.0326337985335274, 1.0530846396126474, 0.22109306040172927, 0.0, 0.0, 0.0, 1.0289491599002607, 0.008076930682810486, 0.037079469071792215, 0.0, 0.03308196940629956, 0.07165705922647192, 0.18447863887953236, 0.0, 0.24885144181470292, 0.0, 0.0, 0.0, 0.7193963651558962, 0.0, 0.6007574484421223, 0.0, 0.11361690641306497, 0.0, 0.0, 0.0, 0.0, 0.5189539173895105, 0.027360695267410504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.769945776489901, 0.00013219515459577855, 0.0, 0.0, 0.0, 0.0, 0.21518747264967641, 0.0, 0.0, 0.0, 0.10980938651098104, 0.07347552139071808, 0.0, 0.3613462418752601, 0.04465135919773286, 0.027102240057490925, 0.0, 0.0, 0.2594566815123038, 0.417973871558788, 0.02337304044012675, 0.5498222432776159, 0.011558313103301096, 0.13519961718643905, 0.0830809338177889, 0.0, 0.0, 0.0, 0.17989871031119878, 0.05233157238393502, 0.0, 0.051508809526025434, 0.225133841185459, 0.18950167625902217, 0.0, 0.0, 0.0, 0.20173577654712102, 0.7662693488070871, 0.0, 0.33259178463685746, 0.13865467767460202, 0.0, 0.8944580603877651, 0.0, 0.060682785060590494, 0.06051599339484606, 0.0, 0.0, 0.0, 0.12305720211410776, 0.10081888448105404, 0.0, 0.0, 0.2522377522294325, 0.0, 0.12103967793114603, 0.06077105223878225, 0.0, 0.0, 0.5586258592154407, 0.0, 0.0, 0.0, 0.2984848816909581, 0.029564782247173068, 0.6276543733906952, 0.0, 0.07353625635562432, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08001934416956356, 0.13808411155288577, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0013608908425346389, 0.15477792583676012, 0.8924302032481646, 0.0, 0.13515079773758784, 0.0, 0.059793517595463114, 0.0, 0.04933055693313389, 0.0, 0.0, 0.3342781850907459, 0.02578025634698341, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1229501707927792, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287208489034296, 0.0, 0.0, 0.28149278769379354, 0.0, 0.0, 0.0, 0.031923890851782225, 0.23740383631799186, 0.0, 0.0, 0.0, 0.0, 0.06362127081034188, 0.2629034525588847, 0.0, 0.9151807425831917, 0.0, 0.0, 0.0, 0.6693739198309284, 0.0, 0.0, 0.2061930933620024, 0.27528937724536684, 0.0, 0.0, 0.0, 0.0, 0.2675780483794807, 0.02063619759744684, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5460074055587408, 0.0, 0.6541555536266587, 0.0, 0.0, 0.07150154126300666, 0.0, 0.15048122306270975, 0.034115472912426725, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.050926612139623545, 0.21044506008920905, 0.0, 0.0, 0.4253961501964202, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5242476712268254, 0.0, 0.0, 0.6721198397890595, 0.02913210340779019, 0.0, 0.20059561631676462, 0.0, 0.29433701033990906, 0.0, 0.0, 0.0, 0.12559144077146528, 0.0, 0.0, 0.32229898127496104, 0.0, 0.0, 0.05500938293182685, 0.1114468235961369, 0.09601244908001759, 0.255231140185047, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05242264559033129, 0.07189305704474794, 0.29708512061039594, 0.0, 0.0, 0.16167981650220184, 0.0, 0.0, 0.42894283906704944, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24120550186102305, 0.002462183433889286, 0.1185465354728046, 0.0, 0.0, 0.20924909285728116, 0.0, 0.2383879501918044, 0.0, 0.08928505124693381, 0.0, 0.0, 0.2291277246538886, 0.0, 0.0, 0.039107088380868994, 0.03339412468553525, 0.0, 0.17867986571670036, 0.0, 0.15885581639487184, 0.0, 0.4770109811329409, 0.46521958209705216, 0.08213268605220507, 0.8570033319080816, 0.5762497735248863, 0.025109002675938377, 0.0, 0.0, 0.0, 0.006062678222071191, 0.6895253688974624, 0.0, 0.0, 0.14425623656373723, 0.0, 0.26058653129843573, 0.2499129405223175, 0.5556369963578781, 0.0, 0.0, 0.14846473797228377, 1.311439497677356, 0.0, 0.0, 0.0, 0.14844299347189643, 0.0, 0.06204384333300274, 0.5085214657536261, 0.06333953518463412, 0.0, 0.4087271917522072, 0.56471815720299, 0.0, 0.7613475113276124, 0.31092441757595435, 0.25657570652463557, 0.0, 0.6284352010004853, 0.0, 0.44245087677575873, 0.0, 0.5840306487685422, 0.886297089335757, 0.0, 0.2141960416332438, 0.0, 0.0, 0.7455493113099605, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9841442926021067, 0.155496454991287, 0.0, 0.0, 0.07678252545804619, 0.0, 0.0, 0.3721354350358947, 0.020164712785984047, 0.0, 0.0, 0.0, 0.0, 0.1088564167894987, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9595213220321046, 0.0, 0.026588936071193094, 0.0, 0.0, 0.18249673153915044, 0.041373682209080435, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04976306812868327, 0.2056369238513726, 0.0, 0.0, 0.341205976763526, 0.0, 0.0, 0.0, 0.0, 0.5785815925839551, 0.0, 0.0, 0.0, 0.5989984098523007, 0.041848978991102986, 0.0, 0.7058966144833084, 0.0, 0.1357909427918936, 0.0, 0.0, 0.0, 0.6943234317201388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03329077451447904, 0.0, 0.16959332194846893, 0.03825181104342904, 0.0, 0.030570483496490792, 0.0, 0.181963825346749, 0.0, 0.0, 0.0861751567882612, 0.0, 0.23433890396321935, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06468139820825311, 0.4901043774165395, 0.0, 0.1652405132589817, 0.0, 0.0, 0.07483443864111192, 0.0, 0.0, 0.0, 0.2810295005684995, 0.0, 0.3898372849078984, 0.0, 0.27070466717435465, 0.5873234092956581, 0.0, 0.0, 0.8033877947986148, 0.0, 0.0, 0.0, 0.5030084273245645, 0.1643009637310288, 0.0, 0.0, 0.0, 0.052313365367879956, 0.02924539070601191, 0.0, 0.7815339827038686, 0.0, 0.631919493277437, 0.08243985181699306, 0.0, 0.0, 0.0, 0.0, 0.12868680907403285, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.1259698971001804, 0.7198499769348474, 0.0, 0.41807281750787384, 0.0, 0.0, 0.6290848565988848, 0.7773412611170788, 0.0, 0.3270721417747804, 0.0, 0.0, 0.6187710034515789, 0.07069501936159496, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15113911645003905, 0.0, 0.15654877177402662, 1.1322176354521876, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2636197382380641, 0.0, 0.0, 0.34206988627899454, 0.0, 0.0, 0.2168559436204628, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12189174979618164, 0.009400555275465744, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02319896532052816, 0.09586554938115534, 0.0, 0.0, 0.47758214062526055, 0.0, 0.0, 0.0, 0.0, 0.766521270904984, 0.0, 0.0, 0.0, 0.05687724891036996, 0.0, 0.0, 0.0, 0.019988327516632248, 0.0, 0.0, 0.24020596976351885, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5319793134128888, 0.0, 0.0, 0.12310759546793347, 0.28424710350697324, 0.0, 0.9704064926727941, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.595062055789435, 0.0, 0.022922464313533127, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7479520138852049, 0.0, 0.0, 0.0, 0.0, 0.11201726895804533, 0.0, 0.0, 0.5882991104057551, 0.0, 0.0, 0.0, 0.5372591710353254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4185803721513073, 0.0, 0.4160894350708626, 0.35712090084273435, 0.0, 0.0, 0.0, 0.0, 0.3329375067097101, 0.0, 0.0, 0.0, 0.9791513934288851, 0.040171778764664906, 0.0, 0.0, 0.18774405618493867, 0.47311893679528827, 0.2590438343789052, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12077476728428499, 0.0, 0.06327325623124767, 0.0, 0.0, 0.0, 0.0, 0.34849519635188847, 0.0, 0.4382603746311635, 0.0, 0.0, 0.0, 0.09913709085437171, 0.4096661875861404, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4230910500526733, 0.0, 0.0, 0.0, 0.17776900851570368, 0.0, 0.5438917161748563, 0.0, 0.43287084617637955, 0.0, 0.0, 0.0, 0.5349746055023918, 0.0, 0.7894262258085124, 0.0, 0.0, 0.0, 0.416696264214944, 0.1414148713022835, 0.0, 0.1306712640828635, 0.5944339267365731, 0.0, 0.0, 0.0, 0.3098486230376566, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27475814956764166, 0.0, 0.0, 0.0, 0.572874722755641, 0.7993131511508778, 0.0, 0.2979949962228512, 0.14400098705349634, 0.0, 0.0, 0.02684711041673838, 0.0, 0.0575193250192605, 0.13038147684896279, 0.07982177723780243, 0.0, 0.0, 0.22370954598082965, 0.0, 0.0, 0.0, 0.16207849359014098, 0.8780589957563658, 0.0, 0.0, 0.0, 0.03773454641900064, 0.0, 0.190720074864707, 0.03823162707299666, 0.0, 0.027092618673790602, 0.07782668325822914, 0.0, 0.0, 0.025612768291380317, 0.0, 0.1339183762706947, 0.03147511447091019, 0.0, 0.0, 0.22256660522037766, 0.0, 0.050981846070955524, 0.33080849696175413, 0.22670468547648376, 0.0, 0.0, 0.2394131641393997, 0.0, 0.6763225254232694, 0.0, 0.32609931596811353, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02551395955593748, 0.0, 0.19870976845837512, 0.0, 0.8838430389981123, 0.0, 0.8900590234719281, 0.0, 0.1395885727389325, 0.39274638865688727, 0.13258182339863903, 1.0427544725112363, 0.007925765580094073, 0.0, 0.0, 0.9248219821941955, 0.0, 0.38782207933590473, 0.20331266090801786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4620448777897825, 0.5673723076761421, 0.13444042454417618, 0.0, 0.0012927651989113214, 0.0, 0.0, 0.0, 0.3049721916420315, 0.017266202832261764, 0.0, 0.0, 0.07071993264415252, 0.04567425634491729, 0.3943633692304047, 0.0, 0.15861807151929683, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05848946000294637, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0002825960061227963, 0.18362488935764, 0.0, 0.0, 0.0, 0.16115194339742445, 0.5974334511167834, 0.0, 0.04024167944046561, 0.33382381844541353, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6087942383002851, 0.0, 0.0, 0.7807479082612564, 0.3974967659255351, 1.5487027213337248, 0.03765559375444021, 0.17692333788215128, 0.23426356503546714, 0.0, 0.22388851869475412, 0.04007956243736881, 1.0262040210122396, 0.0, 0.7972348331243138, 1.0049259227957363, 0.051433760809377164, 0.0, 0.8283458296766737, 0.0, 0.7561556098507006, 0.0, 0.0, 0.0, 0.24907496608552146, 0.0, 0.5011916402324644, 0.1747189814102487, 0.9899595982235516, 0.6164188940137083, 0.11559029428984438, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.593849645786338, 0.0, 0.0, 0.0, 0.0, 0.13660851844466146, 0.030970403587585463, 0.23157107362581741, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13749939723080143, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7110898100418397, 0.0, 0.0, 0.0, 0.46081314114808425, 0.7109856621285974, 0.2884350146527927, 0.0, 0.0, 0.30337236072169704, 0.06739814120009983, 0.0, 0.7785291912169707, 0.0, 0.0, 0.13287789565404662, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3593823347180517, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4624623396236477, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.024288127378650458, 0.0, 0.793430084070044, 0.0, 0.0, 0.07003161792104487, 0.0, 0.390525043836891, 0.7636039620295462, 0.06950112764284275, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019321154098251664, 0.0, 0.18651557279691772, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05792018405822482, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18265223354453325, 0.12454723256219671, 0.0, 0.0002798455087109209, 0.0, 0.0, 0.11611318457978691, 0.05398921986713746, 0.0, 0.8752290763913787, 0.0, 0.0, 0.0, 0.0, 0.13107895831547542, 0.0, 0.0, 0.45521248179167606, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11685661958627322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44522459151527227, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26435993065610003, 0.021758541234477975, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2146225974372531, 0.0, 0.13433790512658406, 0.030902835047588124, 0.0, 0.0, 0.03139052000724026, 0.0, 0.0, 0.7200671942026683, 0.0, 0.0, 0.05946084260814123, 0.0, 0.14663715828117352, 0.03324398818324252, 0.008023890708802274, 0.05967012120515395, 0.0, 0.0, 0.0, 0.10840406404650259, 0.0, 0.0, 0.0, 0.23002554078955822, 0.0, 0.21539070760796813, 0.0, 0.15809846801096508, 0.0, 0.0, 0.023379160669788793, 0.06919243918501702, 0.0, 0.4184368340983768, 0.0, 0.0, 0.0, 0.025499570825031452, 0.0, 0.054632252014063354, 0.12383722685885369, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08100665304577326, 0.0, 0.0, 0.0, 1.137863121002405, 0.0, 0.0, 0.18114724382910816, 1.0175246627827756, 0.0, 0.8319051265218698, 0.7408406030496757, 0.0, 0.0, 0.4793159619581115, 0.26457362772519605, 0.7690370272987045, 0.02989528102721059, 0.0, 0.0, 0.0, 0.34236772701032764, 0.22777638147070367, 0.20013535639204974, 0.7445351180710278, 0.0, 0.0, 0.32085924041220354, 0.0, 0.0, 0.0, 0.5922078604864867, 0.0, 0.0, 0.18324289767504168, 0.0, 0.0, 0.05247138335835671, 0.48819810625100485, 0.0, 0.4058243472838195, 0.0, 0.0, 0.6944817185701155, 0.21684000174364465, 0.0, 0.12484778900119534, 0.0, 0.5314768166536554, 0.0, 0.0, 0.0, 0.0, 0.11888353831534566, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4539474830982486, 0.0, 0.12931153719488578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.23351697026332235, 0.0, 0.0, 0.0, 0.0, 0.2291429172294868, 0.4258647172142874, 0.0, 0.0, 0.0, 0.22479141295616378, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05853977920447593, 0.0, 0.16715127001769428, 0.0, 0.3712702672746247, 0.13508244363790445, 0.06392604260421969, 0.5912989058272206, 0.4437811402099471, 0.0, 0.0, 0.0, 0.0, 0.005827558703832637, 0.6627845677844773, 0.0, 0.0, 0.0, 0.30904361146056275, 0.6816789334794826, 0.1436649772664439, 0.16334297841077242, 0.0, 0.0, 0.7882286990025497, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7753056808075847, 0.035768380854023674, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44917737188494944, 0.0, 0.18937379890511313, 0.06882274914369534, 0.0, 0.0, 0.0, 0.009287224889287345, 0.06906497794085972, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26624227636214304, 0.0, 0.0, 0.0, 0.1829905316954157, 0.0, 0.06582989974405196, 0.2036305981722081, 0.08008655235603437, 0.0, 0.0, 0.0, 0.0, 0.0, 0.41729810318329397, 0.0, 0.0, 0.0, 0.0, 0.0, 0.037951024806923965, 0.0, 0.0, 0.0, 0.0, 0.41651629143780994, 0.0, 0.2053954771505675, 0.29245802337269494, 0.0368786813523771, 0.0, 0.38440171693921094, 0.0, 1.0326219326945734, 0.0, 0.02604768015780454, 0.9153304998316836, 0.0, 0.0, 0.0, 0.021211537114504155, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3418184639399641, 0.9530187941808128, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5415447555144779, 0.0, 0.16269589476095273, 0.0, 0.2704207942532035, 0.6129742049927741, 0.0, 0.0, 0.0, 0.0, 0.07078757436524862, 0.0, 0.7077105145475581, 0.34262729838304967, 0.5909987644476324, 0.0, 0.11177131716736882, 0.4359653240929594, 0.04723041930008277, 0.45146742793812006, 0.896649501844373, 0.0, 0.0, 0.6373803605539574, 0.5201327056992473, 0.10980024784153514, 0.07242729038979111, 0.0, 0.25075448235999825, 0.0, 0.14797679652158516, 0.0, 0.0, 0.0, 0.0, 0.6939917265420261, 0.9906375819864492, 0.9257686181712707, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37693205342755914, 0.5232740229070877, 0.0, 0.060081052233409524, 0.0, 0.3350366056610552, 0.0, 0.20067269510180097, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5308540215160052, 0.0, 0.0, 0.04969049276705586, 0.4729163126308979, 0.17206519556589087, 0.08142765800071788, 0.0, 0.6342266715653555, 0.28491323267898133, 0.0, 0.0, 0.0, 0.0, 0.3249315382934875, 0.27888197557292793, 0.0, 0.00024008316707892853, 0.0, 0.0, 0.4429941865632019, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08351200806876206, 0.0, 0.0, 0.3644144714136701, 0.0, 0.25850208657414453, 0.3044172676246769, 0.0, 0.0, 0.0, 0.42064905943656483, 0.5410542431685182, 0.0, 0.0, 0.0235250266831074, 0.17227146855360218, 0.0, 0.0, 0.11190852746246406, 0.0, 0.0, 0.0, 0.0, 0.14411942384547258, 0.0, 0.0, 0.4237744107411662, 0.0, 0.2972186074559964, 0.0, 0.5397314242092841, 0.4632402464002124, 0.0, 0.5786606886346829, 0.0, 0.0, 0.47789419623388885, 0.0, 0.0, 0.0, 0.10580588439167306, 0.0, 0.0, 0.7377357792707717, 0.0, 0.10579038780894534, 0.0, 0.0, 0.0, 0.045139981578782816, 0.0, 0.0, 0.11584045845995011, 0.0, 0.0, 0.019771431213384455, 0.36490249309768175, 0.35310751173091487, 1.1149184594112733, 0.0, 0.0, 0.0, 0.5857527772485364, 0.44959707967332574, 0.1008560617277558, 0.018841708015473753, 0.7001531183110316, 0.0, 0.0, 0.0, 0.5946141177445001, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22666010948008636, 0.0, 0.0, 0.0, 0.0, 0.0, 0.014782177343261123, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02695824533437821, 0.0, 0.0, 0.0, 0.016838719448302838, 0.0, 0.0, 0.0, 0.08231997245985787, 0.0, 0.0, 0.0, 0.01058107131899943, 0.0, 0.05814319369896461, 0.0, 0.0, 0.0, 0.0, 0.047348036509572325, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019563192629043182, 0.027295875565384514, 0.0, 0.0, 0.0, 0.0, 0.33629932740438834, 0.0, 0.0, 0.0, 0.32394391802925426, 0.5704070896351352, 0.0, 0.14173474826201982, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6013127745008292, 0.0, 0.7561985490243033, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2959306772073682, 0.2539911401819114, 0.0, 0.0, 0.7300245622804938, 0.0, 0.2367914528076339, 0.0, 0.0, 0.0, 0.33628005236128533, 0.025934644678944505, 0.0, 0.06026134263178236, 0.0, 0.0, 0.03662105153743461, 0.06883834406728133, 0.0, 0.0, 0.21279478779844782, 0.0, 0.0, 0.07129569822964256, 0.0, 0.09738688258412649, 0.06246220065656896, 0.0, 0.059045957391141574, 0.0, 0.006923917652553149, 0.051490108793371445, 0.0, 0.16644468958034975, 0.19015418061029377, 0.10882376279915186, 0.06400227485256132, 0.2644778831991808, 0.0, 0.19849197355887785, 0.0, 0.0010725148648749981, 0.12198011848273568, 0.1548472256356659, 0.0, 0.009305339154304988, 0.0, 0.10589543929012146, 0.0, 0.0, 0.17178211974814458, 0.0, 0.23085925511580369, 0.0, 0.0, 0.0, 0.31374773386794685, 0.0, 0.4234572393895347, 0.0, 0.0, 0.0, 0.045888478821935044, 0.0, 0.0, 0.13665231391596233, 0.0, 0.05546447903889757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15847133453228077, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3148706017686264, 0.2655048691833022, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.28333620483908656, 0.0, 0.0, 0.0, 0.3208604446677971, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25931056270601605, 0.0, 0.0, 0.20842242702467234, 0.0, 0.0, 0.28681902268117093, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2978149918318377, 0.0, 0.0, 0.09574337597144772, 0.0, 0.0, 0.38017827065442816, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03128644702667798, 0.0, 0.0, 0.0]), 42), 42)),) julia> @finch_code begin Ct .= 0 for j = parallel(_) @@ -510,35 +510,36 @@ julia> @finch_code begin end end quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl = ((ex.bodies[1]).bodies[1]).tns.bind.lvl Ct_lvl_2 = Ct_lvl.lvl Ct_lvl_3 = Ct_lvl_2.lvl Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] B_lvl_val = B_lvl.lvl.val B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + result = nothing pos_stop = A_lvl.shape[1] * B_lvl.shape[2] Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Ct_lvl_2_val = (Finch).moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_ptr = (Finch).moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1 = (Finch).moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2 = (Finch).moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + B_lvl_val = (Finch).moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr = (Finch).moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1 = (Finch).moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2 = (Finch).moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + A_lvl_val = (Finch).moveto(A_lvl_val, CPU(Threads.nthreads())) Threads.@threads for i_4 = 1:Threads.nthreads() B_lvl_q = B_lvl_ptr[1] B_lvl_q_stop = B_lvl_ptr[1 + 1] @@ -610,13 +611,13 @@ quote A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] if A_lvl_i_2 < phase_stop_6 A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + Ct_lvl_2_val[Ct_lvl_2_q] += B_lvl_2_val * A_lvl_2_val A_lvl_q_2 += 1 else phase_stop_8 = min(A_lvl_i_2, phase_stop_6) if A_lvl_i_2 == phase_stop_8 A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + Ct_lvl_2_val[Ct_lvl_2_q] += B_lvl_2_val * A_lvl_2_val A_lvl_q_2 += 1 end break @@ -688,13 +689,13 @@ quote A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] if A_lvl_i_4 < phase_stop_16 A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + Ct_lvl_2_val[Ct_lvl_2_q_2] += B_lvl_2_val_3 * A_lvl_2_val_2 A_lvl_q_4 += 1 else phase_stop_18 = min(A_lvl_i_4, phase_stop_16) if A_lvl_i_4 == phase_stop_18 A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + Ct_lvl_2_val[Ct_lvl_2_q_2] += B_lvl_2_val_3 * A_lvl_2_val_2 A_lvl_q_4 += 1 end break @@ -719,10 +720,9 @@ quote end end end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) + resize!(val, A_lvl.shape[1] * B_lvl.shape[2]) + result = (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) + result end julia> @finch begin Ct .= 0 @@ -734,7 +734,7 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25238968158185693, 0.0, 0.0, 0.48865059160643304, 0.11871952163266221, 0.13783085437527975, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1100520583840872, 0.0, 0.6593611321473758, 0.05928345080192752, 0.009174411759749758, 0.0, 0.0, 0.19127876171690858, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07691735887883953, 0.0, 0.05392395392410878, 0.02141387988861775, 0.34710885925020263, 0.0, 0.0, 0.0, 0.0, 0.004888456103411815, 0.23938597192062988, 0.14380896793554465, 0.0, 0.0, 0.11091906743258541, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.42492930113736893, 0.0, 0.0, 0.0, 0.3917786049138451, 0.0, 0.027947398300345625, 0.0, 0.0, 0.0, 0.027990755993474236, 0.23996972136870412, 0.0, 0.0, 0.0, 0.16076348282437408, 0.0, 0.0, 0.0, 0.0, 0.2346717239666177, 0.0, 0.1645197835042719, 0.0, 0.15581124610211206, 0.0, 0.0, 0.0, 0.0, 0.16923528472284902, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07802881298690809, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0008989792695458017, 0.0, 0.0, 0.0, 0.0, 0.06720357557125424, 0.0, 0.0, 0.0, 0.3718711629986387, 0.0, 0.0, 0.3609126159300422, 0.1163460342216259, 0.26803502779771143, 0.5785179690130179, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20913099459980355, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3230898388302748, 0.31857597482541405, 0.458635468333174, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7731954314831251, 0.7216673432976093, 0.0, 0.7303507448180484, 0.14951424728459475, 0.7849205313632122, 0.0, 0.61487751501265, 0.0, 0.0, 0.25756111513158075, 0.0, 0.4611561614453371, 0.11767850077853764, 0.8141145056659213, 0.17774815965387922, 0.0, 0.0, 0.6559733835287642, 0.36761704346577023, 0.0, 0.0, 0.0, 0.7451998098255509, 0.033169973232688346, 0.411513621864204, 0.20930644094410764, 0.0, 0.0, 0.0, 0.10412334822136202, 0.6428221612529075, 0.2944149731643712, 0.0, 0.01883057275583864, 0.0, 0.05108593913912473, 0.0, 0.0, 0.521025535425184, 0.0008200368898190739, 0.0, 1.1919622969351262, 0.6934669965376988, 0.46942192138741023, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37125241315091917, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29594902098744047, 0.0, 0.0, 0.0, 0.5073161019921272, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.36145064005412786, 0.0, 0.054781056420259586, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6055780045451759, 0.09162757378665623, 0.04766798091106047, 0.0, 0.46059427954757914, 0.1119031338013209, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37567607243684537, 0.6215033212682567, 0.6577405362916645, 0.03204652922702584, 0.0, 0.0650525320202852, 0.18029632002719695, 0.0, 0.0, 0.0, 0.0, 0.008472932483726157, 0.0, 0.0, 0.0, 0.0, 0.13094335555018422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16141065848651698, 0.0, 0.051110856273358346, 0.0, 0.020946973304893955, 0.06226614898669832, 0.0, 0.2444646619775439, 0.0, 0.0, 0.0, 0.0, 0.04963632606956389, 0.0, 0.0, 0.0, 0.08508663882314382, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1263166966867768, 0.0, 0.15643691198571966, 0.0, 0.0, 0.0, 0.15262026274680354, 0.0, 0.526388198493186, 0.0, 0.0, 0.033474977962917256, 0.060622203675208805, 0.0, 0.43377644245905544, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3151002104915899, 0.0, 0.09477312339277622, 0.0, 0.0, 0.0, 0.152252080697694, 0.0, 0.0, 0.0204339991404229, 0.1698000966652489, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22850913265749315, 0.0, 0.7903794435818682, 0.5335588868613267, 0.0, 0.0, 0.33064520351324683, 0.11423967014312472, 0.532326845734251, 0.0, 0.0, 0.0, 0.0, 0.5700696949494688, 0.5896247750753707, 0.0, 0.4280369290594203, 0.0, 0.27339018574089047, 0.25517063473696217, 0.0, 0.4053021670425236, 0.0, 0.7145118270418906, 0.18406779329511921, 0.5332101577384002, 0.15679597786898153, 0.0, 0.02405447430944597, 0.5068714011553328, 0.2632866105026604, 0.0, 0.0, 0.0, 0.0, 0.0, 0.026822919064352108, 0.0, 0.09441824561660622, 0.15069396874531527, 0.24064671368655893, 0.0, 0.06394357060327457, 0.3982245622181067, 0.22117139549869444, 0.14930545644387866, 0.0, 0.2667835225346214, 0.4473684178329899, 0.0, 0.14896069513005675, 0.0, 0.41433289250349636, 0.0, 0.5041716274275465, 0.26176138019545275, 0.5757006867537102, 0.08966813962959974, 0.11977731163657437, 0.0, 0.0, 0.29331748913539113, 0.14887247084155056, 0.1452951955564375, 0.0, 0.0, 0.0, 0.0, 0.34161907033931543, 0.05898137093682045, 0.05240866036729835, 0.0, 0.0, 0.0, 0.5188204085313443, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5773724259871397, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22601349058504813, 0.0, 0.3467947164134737, 1.502272260353748, 0.19536436403308852, 0.0, 0.0, 0.0, 0.0, 0.4899706257461605, 0.20445136303854802, 0.7748906467295266, 0.0, 0.0, 0.15253741518885644, 0.0, 0.12918615799515507, 0.0, 0.0, 0.649394095142608, 1.40604728101928, 0.0, 0.5734783753787226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8762605287663663, 0.8124102702299425, 0.0, 0.0, 0.6752965428315182, 0.25420065076928294, 0.2878352998155691, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8742900027056961, 0.0, 0.007209075676415797, 0.028458058565007462, 0.0, 0.0, 0.002645728789765276, 0.0, 0.0, 0.0, 0.669321167131686, 0.0, 0.0, 0.3215833521867582, 0.002002885293525303, 0.5455785228014223, 0.5839672123490091, 0.1695566125503257, 0.0, 0.0, 0.0, 0.0, 0.3711983399532414, 0.0, 0.0, 0.037869811310371364, 0.0, 0.0, 0.0, 0.3906765181627519, 0.0, 0.0, 0.0, 0.004333175863679718, 0.0, 0.0, 0.0, 0.0029029347517778824, 0.43381543679330525, 0.0, 0.0, 0.0, 0.0, 0.3545426084781949, 0.0, 0.3770558352493434, 0.6375411486503958, 0.0, 0.0, 0.0, 0.23985359098491452, 0.021961946298743228, 0.0, 0.3910697032182053, 0.0, 0.6932074965542865, 0.0, 0.0, 0.10364106821683754, 0.0, 0.798416207733151, 0.5329842919228587, 0.0, 0.4844692491628223, 0.0, 0.0, 0.0, 0.0, 0.09106971306440546, 0.0, 0.0, 0.0996076819499136, 0.0, 0.0, 0.1638248686693664, 0.0, 0.3325546563665125, 0.0, 0.0, 0.0, 0.06881525170797138, 0.0, 0.44073566130025815, 0.0, 0.4019788844385439, 0.0, 0.0, 0.6714215423158676, 0.3399125937167764, 0.3046141011370791, 0.0, 0.0, 0.0473355681300066, 0.3630070132608522, 0.0, 0.0800754636262803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2369140918241696, 0.0, 0.0, 0.35909981102365546, 0.2433693452274136, 0.6477566576645207, 0.0, 0.0, 0.0, 0.0, 0.4005702988980329, 0.6327139875815745, 0.45739813367595, 0.2306117264369203, 0.1673891610155256, 0.0, 0.3233168523165315, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04211122573483531, 0.0, 0.06803593591564691, 0.5741938845793657, 0.0476975123297982, 0.5504819156825551, 0.044516401141561746, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13524675835101255, 0.0, 0.22945132617429284, 0.0, 0.0, 0.0, 0.0, 0.1577714195074665, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2785368262709604, 0.12576967984327264, 0.0, 0.0, 0.0, 0.21559450852042064, 0.04903058086742513, 0.0, 0.1695895598298771, 0.11448427397866526, 0.0, 0.0, 0.023071609626772224, 0.0, 0.11421991827694536, 0.0, 0.0, 0.0, 0.007379588146467978, 0.07866376283476462, 0.3892472589606234, 0.0, 0.09184271552047321, 0.0, 0.25448001970252454, 0.2286582495545744, 0.02328034708296836, 0.0, 0.0, 0.0, 0.0, 0.3270923296219218, 0.0, 0.0, 0.0, 0.02043338740984974, 0.0, 0.0, 0.37277616481672965, 0.0, 0.0, 0.0, 0.0044846057268865735, 0.0, 0.3249615768942753, 0.0, 0.0, 0.19094547447052443, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08406342406417443, 0.0, 0.033182079075965945, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6500195484438399, 0.0, 0.0, 0.0, 0.0, 0.5537781763556555, 0.02656015063015655, 1.1909226087779956, 0.06852425737111054, 0.0, 1.3426353595976268, 0.6057701268300226, 0.9302934294779756, 0.0, 0.02223254227484718, 0.9934644128441693, 0.0, 0.06172390220433867, 0.20273446118005728, 0.5149938580802573, 0.1300590771577626, 0.2385875538652477, 0.0, 0.595480643743492, 0.0, 0.0, 0.0, 0.24275727828178406, 0.0, 0.7073132892445582, 0.0, 0.5182899096571696, 0.0, 0.363354145475898, 1.046444738015761, 0.8990939341913878, 0.5284345996323894, 0.0009271750893556132, 0.0, 0.0786791826827641, 0.5567513178048157, 0.0, 0.11672601563414542, 0.0, 0.0, 0.0, 0.0, 0.513610216882899, 0.0, 0.3599562947175533, 0.012305112294495107, 0.0, 0.3547644724719033, 0.0, 0.31743838097476296, 0.0, 0.0, 0.0744235447925737, 0.0, 0.0, 0.3186229810095584, 0.0, 0.7632822460090717, 0.3112891249755775, 0.0, 1.2592130951288079, 0.4142666686935799, 0.0, 0.0, 0.0834856922205997, 0.0, 0.5673263343800874, 0.0, 0.0, 0.0, 0.011109757680217765, 0.7473278912032746, 0.4577974378546139, 0.07323000489837116, 0.33380163101303967, 0.0, 0.014128663560806082, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19621458519667637, 0.0, 0.0, 0.0, 0.0, 0.4083399062549612, 0.0, 0.3744505994071715, 0.0, 0.5655910339236376, 0.0, 0.0, 0.08962016161963385, 0.0, 0.0, 0.0, 0.0, 0.3660241210222327, 0.0, 0.42450374338695224, 0.6660088440351456, 0.0, 0.0, 0.28456417514777416, 0.0, 0.6631091941560893, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.002609340728317194, 0.0, 0.0, 0.0, 0.0, 0.1290910408202515, 0.0, 0.12880600190077574, 0.0, 0.21852433519062017, 0.14617196989407044, 0.04712090478664361, 0.17786735669510226, 0.013608617966411374, 0.0, 0.1599219758144718, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13118766387513575, 0.18575036424480185, 0.0, 0.0, 0.0, 0.0, 0.24739057674609932, 0.08098740885007556, 0.0, 0.0, 0.11169555771003165, 0.0061692969950391426, 0.0, 0.0, 0.0, 0.1300402212804686, 0.0, 0.22061823582759926, 0.32468517510166695, 0.17899843511210062, 0.0, 0.0, 0.0, 0.0, 0.3555268023407697, 0.0, 0.0, 0.0, 0.5637648459713849, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.41259886956253183, 0.0, 0.0, 0.0, 0.0, 1.0217866044035127, 0.0, 0.0, 0.0, 0.09699076097844603, 0.49177999120325233, 0.617482417183965, 0.9254348782417843, 0.19189797684210885, 0.37564958516196006, 0.0, 0.6028533281724416, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4525887449543689, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.3536752652948492, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5159325071456758, 0.45703260113959776, 0.11783337867793497, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.014395933646557283, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5291071006274988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4362705134404812, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06167194341482688, 0.0, 0.26507468559563424, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18765355736657707, 0.0, 1.0014115383719757, 0.10542483708166006, 0.22040848700903187, 0.0, 0.3600323742449293, 0.06543742592421764, 0.0, 0.06637441639531827, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3967141864154841, 0.0, 0.18259679072826512, 0.0, 0.2818810986099949, 0.0, 0.0, 0.0, 0.04462260901941838, 0.650460148621926, 0.9472330785275007, 0.0, 0.0, 0.0, 0.0, 0.20815281221075516, 0.19618764447572262, 0.06473525648539784, 0.0, 0.0, 0.0, 0.1542243249790465, 0.13224172712193835, 0.0, 0.007908832517684252, 0.0, 0.051353982240120374, 0.0032977751233809844, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27800255996089945, 0.0, 0.0, 0.1281258773488851, 0.0, 0.0, 0.0, 0.31683019969084447, 0.0, 0.0, 0.0, 0.19099043815219882, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2169883137756601, 0.0, 0.7505306274250138, 0.5066582758142599, 0.0, 0.07143979002259558, 0.10210504506442938, 0.15444313156667316, 0.5054883509033501, 0.0, 0.0, 0.0, 0.0028518817212982773, 0.3481320627001662, 0.559897472000501, 0.0, 0.40645645270348807, 0.0, 0.36960222637651485, 0.34497081323202616, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0330129037169125, 0.05220506486278423, 0.053654185080025577, 0.0, 0.0, 0.1851124085000456, 0.04497376440934621, 0.35304695602824443, 0.0, 0.0, 0.343295765136816, 0.2793332554556384, 0.0, 0.0, 0.040358875497600165, 0.24978160129073035, 0.0, 0.0, 0.0, 0.0, 0.07246092173943684, 0.0, 0.16628600115413392, 0.0, 0.0, 0.0, 0.06634041958053304, 0.0, 0.0, 0.0, 0.008112084482454424, 0.0, 0.0, 0.3510991071496956, 0.30792356595023396, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24591462609017128, 0.0, 0.0, 0.0, 0.0, 0.1723485353456609, 0.17746213232343597, 0.26032482377035826, 0.0, 0.0, 0.09642188463361992, 0.0, 0.0, 0.9312549994812083, 0.0, 0.4355669936335271, 0.22986161845318145, 0.0, 1.1016016643957898, 0.5367168823744637, 0.0, 0.0, 0.1081626494181155, 0.0, 0.5354775491181646, 0.0, 0.0, 0.7066771289166013, 0.005913227901483509, 0.36878575613264597, 0.5931146099182986, 0.0, 0.43177137005853594, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2792172801438884, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18771394461865235, 0.0, 0.3810480475576988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04963057208911237, 0.0, 0.0, 0.0, 0.014028126739435154, 0.6487755206193258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019308069898724092, 0.0, 0.0, 0.15473333790095384, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20078144855224883, 0.04664059814698181, 0.0, 0.0, 0.02360446678134394, 0.0, 0.0, 0.06383755139363034, 0.0, 0.1295864000345023, 0.0, 0.0, 0.0972547510814237, 0.0, 0.07205581060374358, 0.016878310254842765, 0.0, 0.0, 0.0, 0.0, 0.2206348639926782, 0.0, 0.0, 0.2053453449704589, 0.18009351088331146, 0.17243879836126652, 0.16094695393647487, 0.0, 0.0, 0.0026102124382687284, 0.009478472183394092, 0.22228584913081856, 0.0, 0.0, 0.22567472183496304, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.002853715730108796, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0005790797752150057, 0.4809080576930432, 0.0, 0.0, 0.0, 0.32217587215618376, 0.0018177803358381927, 0.0, 0.0, 0.0, 0.0003287432209283418, 0.0, 0.0008918558343658391, 0.0, 0.0, 0.009096038390466929, 0.0, 0.0, 0.0, 0.00873033402576318, 0.007007183394127084, 0.45496728899530875, 0.0, 0.1316351307673038, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09338135584056179, 0.18382194877540864, 0.0, 0.563495172825665, 0.0, 0.0, 0.0, 0.05639497562938005, 0.14653622131196892, 0.0, 0.0, 0.0, 0.251192534270281, 0.1344408525103349, 0.0, 0.4650111134116464, 0.31391354376028213, 0.0, 0.0, 0.06326188293375198, 0.0, 0.31318868581904563, 0.0, 0.0763329064988246, 0.0, 0.0, 0.2156944329452718, 0.3468992967609863, 0.0, 0.2518308523576955, 0.0, 0.17896869808051252, 0.05403813425807818, 0.027124296544448725, 0.0, 0.0, 0.0, 0.0, 0.11640144853391314, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09109340489796702, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1194057971602891, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6552661573805515, 0.0, 0.0, 0.0, 0.21450271688804268, 0.0, 0.0, 0.902854749674862, 0.06907734840039648, 0.0, 0.811763991573728, 0.24446155688431725, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0551218990786032, 0.0, 0.0, 0.6659086165622266, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4110921087644639, 0.0, 0.0, 0.07931423881912922, 0.0, 0.0, 0.37316154887557274, 0.11430607897800385, 0.4150800042560803, 0.0, 0.10099097676635159, 0.6592915699634367, 0.0, 0.25936644093477396, 0.07666208914620723, 0.0, 0.0, 0.7807360976520861, 0.0, 0.0, 0.04275453625658718, 0.1985413718724771, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13633482744457018, 0.0, 0.2252743029271589, 0.0, 0.0, 0.0, 0.5464410650922171, 0.11366230227156136, 0.6018718955402885, 0.0, 0.014396279790867243, 0.0, 0.03905603312028952, 0.8092451213661034, 0.0, 0.39833251401456404, 0.0, 0.12251229365728535, 0.27200847035734843, 0.25388100105648176, 0.30685765140009125, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07517201195249319, 0.0, 0.0, 0.0, 0.0, 0.3595498458067731, 0.0, 0.0, 0.0, 0.05519776563775433, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13158680513977092, 0.0, 0.45513938379424074, 0.3072494672729318, 0.0, 0.0, 0.061918895238623206, 0.0, 0.306539997354477, 0.0, 0.0, 0.0, 0.0, 0.21111545179707192, 1.113727824196147, 0.0, 0.24648473048642042, 0.0, 0.0, 0.0, 0.6244696783059631, 0.0, 0.0, 0.010619491746539882, 0.0, 0.0, 0.057745206745770994, 0.0, 0.008858840711593166, 0.0075334185627281185, 0.1972006876834336, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15720126897663422, 0.2881788570254271, 0.05549794388099826, 0.0, 0.43880673821983995, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006158057243750719, 0.0, 0.0, 0.05862006643173159, 0.15125593941090254, 0.03302320207312045, 0.0, 0.0, 0.19199421271725345, 0.004359455697024407, 0.02909842903488052, 0.4051738652139157, 0.0, 0.0, 0.0, 0.0, 0.661857462083124, 0.27266071825745297, 0.09855620143563353, 0.03009452021788303, 0.0, 0.0, 0.36386547477639486, 0.0, 0.3154569959145931, 0.0, 0.12777365741134986, 0.0, 0.2874935496978787, 0.0, 0.0, 0.021877890033203812, 0.1316957530661763, 0.0, 1.0462327541742331, 0.24642978428043782, 0.0, 1.292534939963643e-5, 0.04966212026978902, 0.16767073337455046, 0.24586075312633993, 0.7749426824526595, 0.2192927197338787, 0.0, 0.15373812475086615, 0.1693253879539043, 1.1992945978003244, 0.0, 0.19769335810835964, 0.0, 0.2843031573913307, 0.2653563328642114, 0.6319651047837591, 0.0, 0.0, 0.2886502960323224, 0.2007500567698334, 0.0, 0.0, 0.0, 0.0, 0.4490517136878312, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.43431608561880214, 0.0, 0.0, 0.0, 0.29096240214176294, 0.0, 0.0, 0.24728201213730056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.199315833820732, 0.40813133046287003, 0.25266186539111524, 0.0908889085249469, 0.0, 0.0, 0.45688115062815576, 0.11100101499363633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02264115832549351, 0.6164930072930471, 0.0, 0.0, 0.44347420874850846, 0.0, 0.17884284240125642, 0.0, 0.2888836731929794, 0.21018531617189648, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3429810739029393, 0.02002166425453684, 0.021961075245274804, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.557136258905774, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.36191890674012556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12978916081088554, 0.0, 0.33079766328323545, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20464300021869425, 0.0, 0.0, 0.0, 0.0, 0.5063973085557268, 0.26737229244864336, 0.08619179411886842, 0.0, 0.0, 0.0, 0.49896059675156373, 0.0, 0.9000423796847855, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6355437645077721, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3962962286854009, 0.0, 0.0, 0.33976760898340913, 0.0, 0.0, 0.478819001240275, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.2504314291953376, 0.0, 0.0, 0.9648065476989627, 0.2835978542736629, 0.13211849643271117, 0.2796391765298554, 0.22540993882752317, 0.5512218518807817, 0.5478145335437775, 0.0, 0.2291959647754706, 0.23520231615614767, 0.03296826745685447, 0.18421763750874248, 0.6035878434468992, 0.7441004608135994, 0.2535097758200323, 0.20236453274735783, 0.09228241774990334, 0.13384560784694935, 0.5269755678736615, 0.03880627317810495, 0.17704264007357723, 0.0, 0.2632287465084173, 0.0, 0.02720231717357045, 0.5246531850072871, 0.0, 0.0, 0.3360269038793386, 0.0, 0.22538882742471622, 0.22621665568148489, 0.0, 0.09095677592426996, 0.0, 0.2343687318872728, 0.0, 0.00044179348092010485, 0.07281055209847118, 0.6821285312867097, 0.0, 0.0, 0.0, 0.8944403740767686, 0.11973372388784431, 0.2613237068921269, 0.5923534538840982, 0.0, 0.0, 0.0, 0.8426453838331012, 0.0, 0.0, 1.0769929937540788, 0.43300907588983417, 0.0, 0.6905133736710757, 0.0, 0.0, 0.0, 0.07271653050953786, 0.8664857754450395, 0.08570530865158534, 0.0, 0.7169860381548754, 0.20498067747201715, 0.0, 0.23050103487101342, 0.0, 0.0, 0.9152746488430813, 0.14299878494120105, 0.44815460009097313, 0.0, 0.0, 0.0, 0.23162241551000032, 1.0326337985335274, 1.0530846396126474, 0.22109306040172927, 0.0, 0.0, 0.0, 1.0289491599002607, 0.008076930682810486, 0.037079469071792215, 0.0, 0.03308196940629956, 0.07165705922647192, 0.18447863887953236, 0.0, 0.24885144181470292, 0.0, 0.0, 0.0, 0.7193963651558962, 0.0, 0.6007574484421223, 0.0, 0.11361690641306497, 0.0, 0.0, 0.0, 0.0, 0.5189539173895105, 0.027360695267410504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.769945776489901, 0.00013219515459577855, 0.0, 0.0, 0.0, 0.0, 0.21518747264967641, 0.0, 0.0, 0.0, 0.10980938651098104, 0.07347552139071808, 0.0, 0.3613462418752601, 0.04465135919773286, 0.027102240057490925, 0.0, 0.0, 0.2594566815123038, 0.417973871558788, 0.02337304044012675, 0.5498222432776159, 0.011558313103301096, 0.13519961718643905, 0.0830809338177889, 0.0, 0.0, 0.0, 0.17989871031119878, 0.05233157238393502, 0.0, 0.051508809526025434, 0.225133841185459, 0.18950167625902217, 0.0, 0.0, 0.0, 0.20173577654712102, 0.7662693488070871, 0.0, 0.33259178463685746, 0.13865467767460202, 0.0, 0.8944580603877651, 0.0, 0.060682785060590494, 0.06051599339484606, 0.0, 0.0, 0.0, 0.12305720211410776, 0.10081888448105404, 0.0, 0.0, 0.2522377522294325, 0.0, 0.12103967793114603, 0.06077105223878225, 0.0, 0.0, 0.5586258592154407, 0.0, 0.0, 0.0, 0.2984848816909581, 0.029564782247173068, 0.6276543733906952, 0.0, 0.07353625635562432, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08001934416956356, 0.13808411155288577, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0013608908425346389, 0.15477792583676012, 0.8924302032481646, 0.0, 0.13515079773758784, 0.0, 0.059793517595463114, 0.0, 0.04933055693313389, 0.0, 0.0, 0.3342781850907459, 0.02578025634698341, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1229501707927792, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287208489034296, 0.0, 0.0, 0.28149278769379354, 0.0, 0.0, 0.0, 0.031923890851782225, 0.23740383631799186, 0.0, 0.0, 0.0, 0.0, 0.06362127081034188, 0.2629034525588847, 0.0, 0.9151807425831917, 0.0, 0.0, 0.0, 0.6693739198309284, 0.0, 0.0, 0.2061930933620024, 0.27528937724536684, 0.0, 0.0, 0.0, 0.0, 0.2675780483794807, 0.02063619759744684, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5460074055587408, 0.0, 0.6541555536266587, 0.0, 0.0, 0.07150154126300666, 0.0, 0.15048122306270975, 0.034115472912426725, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.050926612139623545, 0.21044506008920905, 0.0, 0.0, 0.4253961501964202, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5242476712268254, 0.0, 0.0, 0.6721198397890595, 0.02913210340779019, 0.0, 0.20059561631676462, 0.0, 0.29433701033990906, 0.0, 0.0, 0.0, 0.12559144077146528, 0.0, 0.0, 0.32229898127496104, 0.0, 0.0, 0.05500938293182685, 0.1114468235961369, 0.09601244908001759, 0.255231140185047, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05242264559033129, 0.07189305704474794, 0.29708512061039594, 0.0, 0.0, 0.16167981650220184, 0.0, 0.0, 0.42894283906704944, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24120550186102305, 0.002462183433889286, 0.1185465354728046, 0.0, 0.0, 0.20924909285728116, 0.0, 0.2383879501918044, 0.0, 0.08928505124693381, 0.0, 0.0, 0.2291277246538886, 0.0, 0.0, 0.039107088380868994, 0.03339412468553525, 0.0, 0.17867986571670036, 0.0, 0.15885581639487184, 0.0, 0.4770109811329409, 0.46521958209705216, 0.08213268605220507, 0.8570033319080816, 0.5762497735248863, 0.025109002675938377, 0.0, 0.0, 0.0, 0.006062678222071191, 0.6895253688974624, 0.0, 0.0, 0.14425623656373723, 0.0, 0.26058653129843573, 0.2499129405223175, 0.5556369963578781, 0.0, 0.0, 0.14846473797228377, 1.311439497677356, 0.0, 0.0, 0.0, 0.14844299347189643, 0.0, 0.06204384333300274, 0.5085214657536261, 0.06333953518463412, 0.0, 0.4087271917522072, 0.56471815720299, 0.0, 0.7613475113276124, 0.31092441757595435, 0.25657570652463557, 0.0, 0.6284352010004853, 0.0, 0.44245087677575873, 0.0, 0.5840306487685422, 0.886297089335757, 0.0, 0.2141960416332438, 0.0, 0.0, 0.7455493113099605, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9841442926021067, 0.155496454991287, 0.0, 0.0, 0.07678252545804619, 0.0, 0.0, 0.3721354350358947, 0.020164712785984047, 0.0, 0.0, 0.0, 0.0, 0.1088564167894987, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9595213220321046, 0.0, 0.026588936071193094, 0.0, 0.0, 0.18249673153915044, 0.041373682209080435, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04976306812868327, 0.2056369238513726, 0.0, 0.0, 0.341205976763526, 0.0, 0.0, 0.0, 0.0, 0.5785815925839551, 0.0, 0.0, 0.0, 0.5989984098523007, 0.041848978991102986, 0.0, 0.7058966144833084, 0.0, 0.1357909427918936, 0.0, 0.0, 0.0, 0.6943234317201388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03329077451447904, 0.0, 0.16959332194846893, 0.03825181104342904, 0.0, 0.030570483496490792, 0.0, 0.181963825346749, 0.0, 0.0, 0.0861751567882612, 0.0, 0.23433890396321935, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06468139820825311, 0.4901043774165395, 0.0, 0.1652405132589817, 0.0, 0.0, 0.07483443864111192, 0.0, 0.0, 0.0, 0.2810295005684995, 0.0, 0.3898372849078984, 0.0, 0.27070466717435465, 0.5873234092956581, 0.0, 0.0, 0.8033877947986148, 0.0, 0.0, 0.0, 0.5030084273245645, 0.1643009637310288, 0.0, 0.0, 0.0, 0.052313365367879956, 0.02924539070601191, 0.0, 0.7815339827038686, 0.0, 0.631919493277437, 0.08243985181699306, 0.0, 0.0, 0.0, 0.0, 0.12868680907403285, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.1259698971001804, 0.7198499769348474, 0.0, 0.41807281750787384, 0.0, 0.0, 0.6290848565988848, 0.7773412611170788, 0.0, 0.3270721417747804, 0.0, 0.0, 0.6187710034515789, 0.07069501936159496, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15113911645003905, 0.0, 0.15654877177402662, 1.1322176354521876, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2636197382380641, 0.0, 0.0, 0.34206988627899454, 0.0, 0.0, 0.2168559436204628, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12189174979618164, 0.009400555275465744, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02319896532052816, 0.09586554938115534, 0.0, 0.0, 0.47758214062526055, 0.0, 0.0, 0.0, 0.0, 0.766521270904984, 0.0, 0.0, 0.0, 0.05687724891036996, 0.0, 0.0, 0.0, 0.019988327516632248, 0.0, 0.0, 0.24020596976351885, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5319793134128888, 0.0, 0.0, 0.12310759546793347, 0.28424710350697324, 0.0, 0.9704064926727941, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.595062055789435, 0.0, 0.022922464313533127, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7479520138852049, 0.0, 0.0, 0.0, 0.0, 0.11201726895804533, 0.0, 0.0, 0.5882991104057551, 0.0, 0.0, 0.0, 0.5372591710353254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4185803721513073, 0.0, 0.4160894350708626, 0.35712090084273435, 0.0, 0.0, 0.0, 0.0, 0.3329375067097101, 0.0, 0.0, 0.0, 0.9791513934288851, 0.040171778764664906, 0.0, 0.0, 0.18774405618493867, 0.47311893679528827, 0.2590438343789052, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12077476728428499, 0.0, 0.06327325623124767, 0.0, 0.0, 0.0, 0.0, 0.34849519635188847, 0.0, 0.4382603746311635, 0.0, 0.0, 0.0, 0.09913709085437171, 0.4096661875861404, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4230910500526733, 0.0, 0.0, 0.0, 0.17776900851570368, 0.0, 0.5438917161748563, 0.0, 0.43287084617637955, 0.0, 0.0, 0.0, 0.5349746055023918, 0.0, 0.7894262258085124, 0.0, 0.0, 0.0, 0.416696264214944, 0.1414148713022835, 0.0, 0.1306712640828635, 0.5944339267365731, 0.0, 0.0, 0.0, 0.3098486230376566, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27475814956764166, 0.0, 0.0, 0.0, 0.572874722755641, 0.7993131511508778, 0.0, 0.2979949962228512, 0.14400098705349634, 0.0, 0.0, 0.02684711041673838, 0.0, 0.0575193250192605, 0.13038147684896279, 0.07982177723780243, 0.0, 0.0, 0.22370954598082965, 0.0, 0.0, 0.0, 0.16207849359014098, 0.8780589957563658, 0.0, 0.0, 0.0, 0.03773454641900064, 0.0, 0.190720074864707, 0.03823162707299666, 0.0, 0.027092618673790602, 0.07782668325822914, 0.0, 0.0, 0.025612768291380317, 0.0, 0.1339183762706947, 0.03147511447091019, 0.0, 0.0, 0.22256660522037766, 0.0, 0.050981846070955524, 0.33080849696175413, 0.22670468547648376, 0.0, 0.0, 0.2394131641393997, 0.0, 0.6763225254232694, 0.0, 0.32609931596811353, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02551395955593748, 0.0, 0.19870976845837512, 0.0, 0.8838430389981123, 0.0, 0.8900590234719281, 0.0, 0.1395885727389325, 0.39274638865688727, 0.13258182339863903, 1.0427544725112363, 0.007925765580094073, 0.0, 0.0, 0.9248219821941955, 0.0, 0.38782207933590473, 0.20331266090801786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4620448777897825, 0.5673723076761421, 0.13444042454417618, 0.0, 0.0012927651989113214, 0.0, 0.0, 0.0, 0.3049721916420315, 0.017266202832261764, 0.0, 0.0, 0.07071993264415252, 0.04567425634491729, 0.3943633692304047, 0.0, 0.15861807151929683, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05848946000294637, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0002825960061227963, 0.18362488935764, 0.0, 0.0, 0.0, 0.16115194339742445, 0.5974334511167834, 0.0, 0.04024167944046561, 0.33382381844541353, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6087942383002851, 0.0, 0.0, 0.7807479082612564, 0.3974967659255351, 1.5487027213337248, 0.03765559375444021, 0.17692333788215128, 0.23426356503546714, 0.0, 0.22388851869475412, 0.04007956243736881, 1.0262040210122396, 0.0, 0.7972348331243138, 1.0049259227957363, 0.051433760809377164, 0.0, 0.8283458296766737, 0.0, 0.7561556098507006, 0.0, 0.0, 0.0, 0.24907496608552146, 0.0, 0.5011916402324644, 0.1747189814102487, 0.9899595982235516, 0.6164188940137083, 0.11559029428984438, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.593849645786338, 0.0, 0.0, 0.0, 0.0, 0.13660851844466146, 0.030970403587585463, 0.23157107362581741, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13749939723080143, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7110898100418397, 0.0, 0.0, 0.0, 0.46081314114808425, 0.7109856621285974, 0.2884350146527927, 0.0, 0.0, 0.30337236072169704, 0.06739814120009983, 0.0, 0.7785291912169707, 0.0, 0.0, 0.13287789565404662, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3593823347180517, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4624623396236477, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.024288127378650458, 0.0, 0.793430084070044, 0.0, 0.0, 0.07003161792104487, 0.0, 0.390525043836891, 0.7636039620295462, 0.06950112764284275, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019321154098251664, 0.0, 0.18651557279691772, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05792018405822482, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18265223354453325, 0.12454723256219671, 0.0, 0.0002798455087109209, 0.0, 0.0, 0.11611318457978691, 0.05398921986713746, 0.0, 0.8752290763913787, 0.0, 0.0, 0.0, 0.0, 0.13107895831547542, 0.0, 0.0, 0.45521248179167606, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11685661958627322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44522459151527227, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26435993065610003, 0.021758541234477975, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2146225974372531, 0.0, 0.13433790512658406, 0.030902835047588124, 0.0, 0.0, 0.03139052000724026, 0.0, 0.0, 0.7200671942026683, 0.0, 0.0, 0.05946084260814123, 0.0, 0.14663715828117352, 0.03324398818324252, 0.008023890708802274, 0.05967012120515395, 0.0, 0.0, 0.0, 0.10840406404650259, 0.0, 0.0, 0.0, 0.23002554078955822, 0.0, 0.21539070760796813, 0.0, 0.15809846801096508, 0.0, 0.0, 0.023379160669788793, 0.06919243918501702, 0.0, 0.4184368340983768, 0.0, 0.0, 0.0, 0.025499570825031452, 0.0, 0.054632252014063354, 0.12383722685885369, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08100665304577326, 0.0, 0.0, 0.0, 1.137863121002405, 0.0, 0.0, 0.18114724382910816, 1.0175246627827756, 0.0, 0.8319051265218698, 0.7408406030496757, 0.0, 0.0, 0.4793159619581115, 0.26457362772519605, 0.7690370272987045, 0.02989528102721059, 0.0, 0.0, 0.0, 0.34236772701032764, 0.22777638147070367, 0.20013535639204974, 0.7445351180710278, 0.0, 0.0, 0.32085924041220354, 0.0, 0.0, 0.0, 0.5922078604864867, 0.0, 0.0, 0.18324289767504168, 0.0, 0.0, 0.05247138335835671, 0.48819810625100485, 0.0, 0.4058243472838195, 0.0, 0.0, 0.6944817185701155, 0.21684000174364465, 0.0, 0.12484778900119534, 0.0, 0.5314768166536554, 0.0, 0.0, 0.0, 0.0, 0.11888353831534566, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4539474830982486, 0.0, 0.12931153719488578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.23351697026332235, 0.0, 0.0, 0.0, 0.0, 0.2291429172294868, 0.4258647172142874, 0.0, 0.0, 0.0, 0.22479141295616378, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05853977920447593, 0.0, 0.16715127001769428, 0.0, 0.3712702672746247, 0.13508244363790445, 0.06392604260421969, 0.5912989058272206, 0.4437811402099471, 0.0, 0.0, 0.0, 0.0, 0.005827558703832637, 0.6627845677844773, 0.0, 0.0, 0.0, 0.30904361146056275, 0.6816789334794826, 0.1436649772664439, 0.16334297841077242, 0.0, 0.0, 0.7882286990025497, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7753056808075847, 0.035768380854023674, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44917737188494944, 0.0, 0.18937379890511313, 0.06882274914369534, 0.0, 0.0, 0.0, 0.009287224889287345, 0.06906497794085972, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26624227636214304, 0.0, 0.0, 0.0, 0.1829905316954157, 0.0, 0.06582989974405196, 0.2036305981722081, 0.08008655235603437, 0.0, 0.0, 0.0, 0.0, 0.0, 0.41729810318329397, 0.0, 0.0, 0.0, 0.0, 0.0, 0.037951024806923965, 0.0, 0.0, 0.0, 0.0, 0.41651629143780994, 0.0, 0.2053954771505675, 0.29245802337269494, 0.0368786813523771, 0.0, 0.38440171693921094, 0.0, 1.0326219326945734, 0.0, 0.02604768015780454, 0.9153304998316836, 0.0, 0.0, 0.0, 0.021211537114504155, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3418184639399641, 0.9530187941808128, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5415447555144779, 0.0, 0.16269589476095273, 0.0, 0.2704207942532035, 0.6129742049927741, 0.0, 0.0, 0.0, 0.0, 0.07078757436524862, 0.0, 0.7077105145475581, 0.34262729838304967, 0.5909987644476324, 0.0, 0.11177131716736882, 0.4359653240929594, 0.04723041930008277, 0.45146742793812006, 0.896649501844373, 0.0, 0.0, 0.6373803605539574, 0.5201327056992473, 0.10980024784153514, 0.07242729038979111, 0.0, 0.25075448235999825, 0.0, 0.14797679652158516, 0.0, 0.0, 0.0, 0.0, 0.6939917265420261, 0.9906375819864492, 0.9257686181712707, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37693205342755914, 0.5232740229070877, 0.0, 0.060081052233409524, 0.0, 0.3350366056610552, 0.0, 0.20067269510180097, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5308540215160052, 0.0, 0.0, 0.04969049276705586, 0.4729163126308979, 0.17206519556589087, 0.08142765800071788, 0.0, 0.6342266715653555, 0.28491323267898133, 0.0, 0.0, 0.0, 0.0, 0.3249315382934875, 0.27888197557292793, 0.0, 0.00024008316707892853, 0.0, 0.0, 0.4429941865632019, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08351200806876206, 0.0, 0.0, 0.3644144714136701, 0.0, 0.25850208657414453, 0.3044172676246769, 0.0, 0.0, 0.0, 0.42064905943656483, 0.5410542431685182, 0.0, 0.0, 0.0235250266831074, 0.17227146855360218, 0.0, 0.0, 0.11190852746246406, 0.0, 0.0, 0.0, 0.0, 0.14411942384547258, 0.0, 0.0, 0.4237744107411662, 0.0, 0.2972186074559964, 0.0, 0.5397314242092841, 0.4632402464002124, 0.0, 0.5786606886346829, 0.0, 0.0, 0.47789419623388885, 0.0, 0.0, 0.0, 0.10580588439167306, 0.0, 0.0, 0.7377357792707717, 0.0, 0.10579038780894534, 0.0, 0.0, 0.0, 0.045139981578782816, 0.0, 0.0, 0.11584045845995011, 0.0, 0.0, 0.019771431213384455, 0.36490249309768175, 0.35310751173091487, 1.1149184594112733, 0.0, 0.0, 0.0, 0.5857527772485364, 0.44959707967332574, 0.1008560617277558, 0.018841708015473753, 0.7001531183110316, 0.0, 0.0, 0.0, 0.5946141177445001, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22666010948008636, 0.0, 0.0, 0.0, 0.0, 0.0, 0.014782177343261123, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02695824533437821, 0.0, 0.0, 0.0, 0.016838719448302838, 0.0, 0.0, 0.0, 0.08231997245985787, 0.0, 0.0, 0.0, 0.01058107131899943, 0.0, 0.05814319369896461, 0.0, 0.0, 0.0, 0.0, 0.047348036509572325, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019563192629043182, 0.027295875565384514, 0.0, 0.0, 0.0, 0.0, 0.33629932740438834, 0.0, 0.0, 0.0, 0.32394391802925426, 0.5704070896351352, 0.0, 0.14173474826201982, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6013127745008292, 0.0, 0.7561985490243033, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2959306772073682, 0.2539911401819114, 0.0, 0.0, 0.7300245622804938, 0.0, 0.2367914528076339, 0.0, 0.0, 0.0, 0.33628005236128533, 0.025934644678944505, 0.0, 0.06026134263178236, 0.0, 0.0, 0.03662105153743461, 0.06883834406728133, 0.0, 0.0, 0.21279478779844782, 0.0, 0.0, 0.07129569822964256, 0.0, 0.09738688258412649, 0.06246220065656896, 0.0, 0.059045957391141574, 0.0, 0.006923917652553149, 0.051490108793371445, 0.0, 0.16644468958034975, 0.19015418061029377, 0.10882376279915186, 0.06400227485256132, 0.2644778831991808, 0.0, 0.19849197355887785, 0.0, 0.0010725148648749981, 0.12198011848273568, 0.1548472256356659, 0.0, 0.009305339154304988, 0.0, 0.10589543929012146, 0.0, 0.0, 0.17178211974814458, 0.0, 0.23085925511580369, 0.0, 0.0, 0.0, 0.31374773386794685, 0.0, 0.4234572393895347, 0.0, 0.0, 0.0, 0.045888478821935044, 0.0, 0.0, 0.13665231391596233, 0.0, 0.05546447903889757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15847133453228077, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3148706017686264, 0.2655048691833022, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.28333620483908656, 0.0, 0.0, 0.0, 0.3208604446677971, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25931056270601605, 0.0, 0.0, 0.20842242702467234, 0.0, 0.0, 0.28681902268117093, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2978149918318377, 0.0, 0.0, 0.09574337597144772, 0.0, 0.0, 0.38017827065442816, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03128644702667798, 0.0, 0.0, 0.0]), 42), 42)),) julia> @finch_code begin Ct .= 0 for j = _ @@ -746,22 +746,23 @@ julia> @finch_code begin end end quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl = ((ex.bodies[1]).bodies[1]).tns.bind.lvl Ct_lvl_2 = Ct_lvl.lvl Ct_lvl_3 = Ct_lvl_2.lvl Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] B_lvl_val = B_lvl.lvl.val B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + result = nothing pos_stop = A_lvl.shape[1] * B_lvl.shape[2] Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) @@ -786,20 +787,20 @@ quote if B_lvl_i < phase_stop Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + Ct_lvl_2_val = (Finch).moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) B_lvl_tbl1_2 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl1 = (Finch).moveto(B_lvl_tbl1, CPU(Threads.nthreads())) B_lvl_tbl2_2 = B_lvl_tbl2 val_2 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + B_lvl_val = (Finch).moveto(B_lvl_val, CPU(Threads.nthreads())) A_lvl_ptr_2 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_ptr = (Finch).moveto(A_lvl_ptr, CPU(Threads.nthreads())) A_lvl_tbl1_2 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl1 = (Finch).moveto(A_lvl_tbl1, CPU(Threads.nthreads())) A_lvl_tbl2_2 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + A_lvl_tbl2 = (Finch).moveto(A_lvl_tbl2, CPU(Threads.nthreads())) val_3 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + A_lvl_val = (Finch).moveto(A_lvl_val, CPU(Threads.nthreads())) Threads.@threads for i_9 = 1:Threads.nthreads() phase_start_6 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_9), Threads.nthreads())) phase_stop_7 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_9, Threads.nthreads())) @@ -853,13 +854,13 @@ quote A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] if A_lvl_i_2 < phase_stop_10 A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + Ct_lvl_2_val[Ct_lvl_2_q] += B_lvl_2_val * A_lvl_2_val A_lvl_q_2 += 1 else phase_stop_12 = min(A_lvl_i_2, phase_stop_10) if A_lvl_i_2 == phase_stop_12 A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + Ct_lvl_2_val[Ct_lvl_2_q] += B_lvl_2_val * A_lvl_2_val A_lvl_q_2 += 1 end break @@ -893,20 +894,20 @@ quote if B_lvl_i == phase_stop_18 Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_18 val_4 = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + Ct_lvl_2_val = (Finch).moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) B_lvl_tbl1_3 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl1 = (Finch).moveto(B_lvl_tbl1, CPU(Threads.nthreads())) B_lvl_tbl2_3 = B_lvl_tbl2 val_5 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + B_lvl_val = (Finch).moveto(B_lvl_val, CPU(Threads.nthreads())) A_lvl_ptr_3 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_ptr = (Finch).moveto(A_lvl_ptr, CPU(Threads.nthreads())) A_lvl_tbl1_3 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl1 = (Finch).moveto(A_lvl_tbl1, CPU(Threads.nthreads())) A_lvl_tbl2_3 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + A_lvl_tbl2 = (Finch).moveto(A_lvl_tbl2, CPU(Threads.nthreads())) val_6 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + A_lvl_val = (Finch).moveto(A_lvl_val, CPU(Threads.nthreads())) Threads.@threads for i_19 = 1:Threads.nthreads() phase_start_21 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_19), Threads.nthreads())) phase_stop_23 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_19, Threads.nthreads())) @@ -960,13 +961,13 @@ quote A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] if A_lvl_i_4 < phase_stop_26 A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + Ct_lvl_2_val[Ct_lvl_2_q_2] += B_lvl_2_val_3 * A_lvl_2_val_2 A_lvl_q_4 += 1 else phase_stop_28 = min(A_lvl_i_4, phase_stop_26) if A_lvl_i_4 == phase_stop_28 A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + Ct_lvl_2_val[Ct_lvl_2_q_2] += B_lvl_2_val_3 * A_lvl_2_val_2 A_lvl_q_4 += 1 end break @@ -1000,10 +1001,9 @@ quote end end end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(Ct_lvl_2_val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) + resize!(Ct_lvl_2_val, A_lvl.shape[1] * B_lvl.shape[2]) + result = (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) + result end julia> @finch begin Ct .= 0 @@ -1015,7 +1015,7 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25238968158185693, 0.0, 0.0, 0.48865059160643304, 0.11871952163266221, 0.13783085437527975, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1100520583840872, 0.0, 0.6593611321473758, 0.05928345080192752, 0.009174411759749758, 0.0, 0.0, 0.19127876171690858, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07691735887883953, 0.0, 0.05392395392410878, 0.02141387988861775, 0.34710885925020263, 0.0, 0.0, 0.0, 0.0, 0.004888456103411815, 0.23938597192062988, 0.14380896793554465, 0.0, 0.0, 0.11091906743258541, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.42492930113736893, 0.0, 0.0, 0.0, 0.3917786049138451, 0.0, 0.027947398300345625, 0.0, 0.0, 0.0, 0.027990755993474236, 0.23996972136870412, 0.0, 0.0, 0.0, 0.16076348282437408, 0.0, 0.0, 0.0, 0.0, 0.2346717239666177, 0.0, 0.1645197835042719, 0.0, 0.15581124610211206, 0.0, 0.0, 0.0, 0.0, 0.16923528472284902, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07802881298690809, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0008989792695458017, 0.0, 0.0, 0.0, 0.0, 0.06720357557125424, 0.0, 0.0, 0.0, 0.3718711629986387, 0.0, 0.0, 0.3609126159300422, 0.1163460342216259, 0.26803502779771143, 0.5785179690130179, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20913099459980355, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3230898388302748, 0.31857597482541405, 0.458635468333174, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7731954314831251, 0.7216673432976093, 0.0, 0.7303507448180484, 0.14951424728459475, 0.7849205313632122, 0.0, 0.61487751501265, 0.0, 0.0, 0.25756111513158075, 0.0, 0.4611561614453371, 0.11767850077853764, 0.8141145056659213, 0.17774815965387922, 0.0, 0.0, 0.6559733835287642, 0.36761704346577023, 0.0, 0.0, 0.0, 0.7451998098255509, 0.033169973232688346, 0.411513621864204, 0.20930644094410764, 0.0, 0.0, 0.0, 0.10412334822136202, 0.6428221612529075, 0.2944149731643712, 0.0, 0.01883057275583864, 0.0, 0.05108593913912473, 0.0, 0.0, 0.521025535425184, 0.0008200368898190739, 0.0, 1.1919622969351262, 0.6934669965376988, 0.46942192138741023, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37125241315091917, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29594902098744047, 0.0, 0.0, 0.0, 0.5073161019921272, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.36145064005412786, 0.0, 0.054781056420259586, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6055780045451759, 0.09162757378665623, 0.04766798091106047, 0.0, 0.46059427954757914, 0.1119031338013209, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37567607243684537, 0.6215033212682567, 0.6577405362916645, 0.03204652922702584, 0.0, 0.0650525320202852, 0.18029632002719695, 0.0, 0.0, 0.0, 0.0, 0.008472932483726157, 0.0, 0.0, 0.0, 0.0, 0.13094335555018422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16141065848651698, 0.0, 0.051110856273358346, 0.0, 0.020946973304893955, 0.06226614898669832, 0.0, 0.2444646619775439, 0.0, 0.0, 0.0, 0.0, 0.04963632606956389, 0.0, 0.0, 0.0, 0.08508663882314382, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1263166966867768, 0.0, 0.15643691198571966, 0.0, 0.0, 0.0, 0.15262026274680354, 0.0, 0.526388198493186, 0.0, 0.0, 0.033474977962917256, 0.060622203675208805, 0.0, 0.43377644245905544, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3151002104915899, 0.0, 0.09477312339277622, 0.0, 0.0, 0.0, 0.152252080697694, 0.0, 0.0, 0.0204339991404229, 0.1698000966652489, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22850913265749315, 0.0, 0.7903794435818682, 0.5335588868613267, 0.0, 0.0, 0.33064520351324683, 0.11423967014312472, 0.532326845734251, 0.0, 0.0, 0.0, 0.0, 0.5700696949494688, 0.5896247750753707, 0.0, 0.4280369290594203, 0.0, 0.27339018574089047, 0.25517063473696217, 0.0, 0.4053021670425236, 0.0, 0.7145118270418906, 0.18406779329511921, 0.5332101577384002, 0.15679597786898153, 0.0, 0.02405447430944597, 0.5068714011553328, 0.2632866105026604, 0.0, 0.0, 0.0, 0.0, 0.0, 0.026822919064352108, 0.0, 0.09441824561660622, 0.15069396874531527, 0.24064671368655893, 0.0, 0.06394357060327457, 0.3982245622181067, 0.22117139549869444, 0.14930545644387866, 0.0, 0.2667835225346214, 0.4473684178329899, 0.0, 0.14896069513005675, 0.0, 0.41433289250349636, 0.0, 0.5041716274275465, 0.26176138019545275, 0.5757006867537102, 0.08966813962959974, 0.11977731163657437, 0.0, 0.0, 0.29331748913539113, 0.14887247084155056, 0.1452951955564375, 0.0, 0.0, 0.0, 0.0, 0.34161907033931543, 0.05898137093682045, 0.05240866036729835, 0.0, 0.0, 0.0, 0.5188204085313443, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5773724259871397, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22601349058504813, 0.0, 0.3467947164134737, 1.502272260353748, 0.19536436403308852, 0.0, 0.0, 0.0, 0.0, 0.4899706257461605, 0.20445136303854802, 0.7748906467295266, 0.0, 0.0, 0.15253741518885644, 0.0, 0.12918615799515507, 0.0, 0.0, 0.649394095142608, 1.40604728101928, 0.0, 0.5734783753787226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8762605287663663, 0.8124102702299425, 0.0, 0.0, 0.6752965428315182, 0.25420065076928294, 0.2878352998155691, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8742900027056961, 0.0, 0.007209075676415797, 0.028458058565007462, 0.0, 0.0, 0.002645728789765276, 0.0, 0.0, 0.0, 0.669321167131686, 0.0, 0.0, 0.3215833521867582, 0.002002885293525303, 0.5455785228014223, 0.5839672123490091, 0.1695566125503257, 0.0, 0.0, 0.0, 0.0, 0.3711983399532414, 0.0, 0.0, 0.037869811310371364, 0.0, 0.0, 0.0, 0.3906765181627519, 0.0, 0.0, 0.0, 0.004333175863679718, 0.0, 0.0, 0.0, 0.0029029347517778824, 0.43381543679330525, 0.0, 0.0, 0.0, 0.0, 0.3545426084781949, 0.0, 0.3770558352493434, 0.6375411486503958, 0.0, 0.0, 0.0, 0.23985359098491452, 0.021961946298743228, 0.0, 0.3910697032182053, 0.0, 0.6932074965542865, 0.0, 0.0, 0.10364106821683754, 0.0, 0.798416207733151, 0.5329842919228587, 0.0, 0.4844692491628223, 0.0, 0.0, 0.0, 0.0, 0.09106971306440546, 0.0, 0.0, 0.0996076819499136, 0.0, 0.0, 0.1638248686693664, 0.0, 0.3325546563665125, 0.0, 0.0, 0.0, 0.06881525170797138, 0.0, 0.44073566130025815, 0.0, 0.4019788844385439, 0.0, 0.0, 0.6714215423158676, 0.3399125937167764, 0.3046141011370791, 0.0, 0.0, 0.0473355681300066, 0.3630070132608522, 0.0, 0.0800754636262803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2369140918241696, 0.0, 0.0, 0.35909981102365546, 0.2433693452274136, 0.6477566576645207, 0.0, 0.0, 0.0, 0.0, 0.4005702988980329, 0.6327139875815745, 0.45739813367595, 0.2306117264369203, 0.1673891610155256, 0.0, 0.3233168523165315, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04211122573483531, 0.0, 0.06803593591564691, 0.5741938845793657, 0.0476975123297982, 0.5504819156825551, 0.044516401141561746, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13524675835101255, 0.0, 0.22945132617429284, 0.0, 0.0, 0.0, 0.0, 0.1577714195074665, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2785368262709604, 0.12576967984327264, 0.0, 0.0, 0.0, 0.21559450852042064, 0.04903058086742513, 0.0, 0.1695895598298771, 0.11448427397866526, 0.0, 0.0, 0.023071609626772224, 0.0, 0.11421991827694536, 0.0, 0.0, 0.0, 0.007379588146467978, 0.07866376283476462, 0.3892472589606234, 0.0, 0.09184271552047321, 0.0, 0.25448001970252454, 0.2286582495545744, 0.02328034708296836, 0.0, 0.0, 0.0, 0.0, 0.3270923296219218, 0.0, 0.0, 0.0, 0.02043338740984974, 0.0, 0.0, 0.37277616481672965, 0.0, 0.0, 0.0, 0.0044846057268865735, 0.0, 0.3249615768942753, 0.0, 0.0, 0.19094547447052443, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08406342406417443, 0.0, 0.033182079075965945, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6500195484438399, 0.0, 0.0, 0.0, 0.0, 0.5537781763556555, 0.02656015063015655, 1.1909226087779956, 0.06852425737111054, 0.0, 1.3426353595976268, 0.6057701268300226, 0.9302934294779756, 0.0, 0.02223254227484718, 0.9934644128441693, 0.0, 0.06172390220433867, 0.20273446118005728, 0.5149938580802573, 0.1300590771577626, 0.2385875538652477, 0.0, 0.595480643743492, 0.0, 0.0, 0.0, 0.24275727828178406, 0.0, 0.7073132892445582, 0.0, 0.5182899096571696, 0.0, 0.363354145475898, 1.046444738015761, 0.8990939341913878, 0.5284345996323894, 0.0009271750893556132, 0.0, 0.0786791826827641, 0.5567513178048157, 0.0, 0.11672601563414542, 0.0, 0.0, 0.0, 0.0, 0.513610216882899, 0.0, 0.3599562947175533, 0.012305112294495107, 0.0, 0.3547644724719033, 0.0, 0.31743838097476296, 0.0, 0.0, 0.0744235447925737, 0.0, 0.0, 0.3186229810095584, 0.0, 0.7632822460090717, 0.3112891249755775, 0.0, 1.2592130951288079, 0.4142666686935799, 0.0, 0.0, 0.0834856922205997, 0.0, 0.5673263343800874, 0.0, 0.0, 0.0, 0.011109757680217765, 0.7473278912032746, 0.4577974378546139, 0.07323000489837116, 0.33380163101303967, 0.0, 0.014128663560806082, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19621458519667637, 0.0, 0.0, 0.0, 0.0, 0.4083399062549612, 0.0, 0.3744505994071715, 0.0, 0.5655910339236376, 0.0, 0.0, 0.08962016161963385, 0.0, 0.0, 0.0, 0.0, 0.3660241210222327, 0.0, 0.42450374338695224, 0.6660088440351456, 0.0, 0.0, 0.28456417514777416, 0.0, 0.6631091941560893, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.002609340728317194, 0.0, 0.0, 0.0, 0.0, 0.1290910408202515, 0.0, 0.12880600190077574, 0.0, 0.21852433519062017, 0.14617196989407044, 0.04712090478664361, 0.17786735669510226, 0.013608617966411374, 0.0, 0.1599219758144718, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13118766387513575, 0.18575036424480185, 0.0, 0.0, 0.0, 0.0, 0.24739057674609932, 0.08098740885007556, 0.0, 0.0, 0.11169555771003165, 0.0061692969950391426, 0.0, 0.0, 0.0, 0.1300402212804686, 0.0, 0.22061823582759926, 0.32468517510166695, 0.17899843511210062, 0.0, 0.0, 0.0, 0.0, 0.3555268023407697, 0.0, 0.0, 0.0, 0.5637648459713849, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.41259886956253183, 0.0, 0.0, 0.0, 0.0, 1.0217866044035127, 0.0, 0.0, 0.0, 0.09699076097844603, 0.49177999120325233, 0.617482417183965, 0.9254348782417843, 0.19189797684210885, 0.37564958516196006, 0.0, 0.6028533281724416, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4525887449543689, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.3536752652948492, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5159325071456758, 0.45703260113959776, 0.11783337867793497, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.014395933646557283, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5291071006274988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4362705134404812, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06167194341482688, 0.0, 0.26507468559563424, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18765355736657707, 0.0, 1.0014115383719757, 0.10542483708166006, 0.22040848700903187, 0.0, 0.3600323742449293, 0.06543742592421764, 0.0, 0.06637441639531827, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3967141864154841, 0.0, 0.18259679072826512, 0.0, 0.2818810986099949, 0.0, 0.0, 0.0, 0.04462260901941838, 0.650460148621926, 0.9472330785275007, 0.0, 0.0, 0.0, 0.0, 0.20815281221075516, 0.19618764447572262, 0.06473525648539784, 0.0, 0.0, 0.0, 0.1542243249790465, 0.13224172712193835, 0.0, 0.007908832517684252, 0.0, 0.051353982240120374, 0.0032977751233809844, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27800255996089945, 0.0, 0.0, 0.1281258773488851, 0.0, 0.0, 0.0, 0.31683019969084447, 0.0, 0.0, 0.0, 0.19099043815219882, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2169883137756601, 0.0, 0.7505306274250138, 0.5066582758142599, 0.0, 0.07143979002259558, 0.10210504506442938, 0.15444313156667316, 0.5054883509033501, 0.0, 0.0, 0.0, 0.0028518817212982773, 0.3481320627001662, 0.559897472000501, 0.0, 0.40645645270348807, 0.0, 0.36960222637651485, 0.34497081323202616, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0330129037169125, 0.05220506486278423, 0.053654185080025577, 0.0, 0.0, 0.1851124085000456, 0.04497376440934621, 0.35304695602824443, 0.0, 0.0, 0.343295765136816, 0.2793332554556384, 0.0, 0.0, 0.040358875497600165, 0.24978160129073035, 0.0, 0.0, 0.0, 0.0, 0.07246092173943684, 0.0, 0.16628600115413392, 0.0, 0.0, 0.0, 0.06634041958053304, 0.0, 0.0, 0.0, 0.008112084482454424, 0.0, 0.0, 0.3510991071496956, 0.30792356595023396, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24591462609017128, 0.0, 0.0, 0.0, 0.0, 0.1723485353456609, 0.17746213232343597, 0.26032482377035826, 0.0, 0.0, 0.09642188463361992, 0.0, 0.0, 0.9312549994812083, 0.0, 0.4355669936335271, 0.22986161845318145, 0.0, 1.1016016643957898, 0.5367168823744637, 0.0, 0.0, 0.1081626494181155, 0.0, 0.5354775491181646, 0.0, 0.0, 0.7066771289166013, 0.005913227901483509, 0.36878575613264597, 0.5931146099182986, 0.0, 0.43177137005853594, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2792172801438884, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18771394461865235, 0.0, 0.3810480475576988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04963057208911237, 0.0, 0.0, 0.0, 0.014028126739435154, 0.6487755206193258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019308069898724092, 0.0, 0.0, 0.15473333790095384, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20078144855224883, 0.04664059814698181, 0.0, 0.0, 0.02360446678134394, 0.0, 0.0, 0.06383755139363034, 0.0, 0.1295864000345023, 0.0, 0.0, 0.0972547510814237, 0.0, 0.07205581060374358, 0.016878310254842765, 0.0, 0.0, 0.0, 0.0, 0.2206348639926782, 0.0, 0.0, 0.2053453449704589, 0.18009351088331146, 0.17243879836126652, 0.16094695393647487, 0.0, 0.0, 0.0026102124382687284, 0.009478472183394092, 0.22228584913081856, 0.0, 0.0, 0.22567472183496304, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.002853715730108796, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0005790797752150057, 0.4809080576930432, 0.0, 0.0, 0.0, 0.32217587215618376, 0.0018177803358381927, 0.0, 0.0, 0.0, 0.0003287432209283418, 0.0, 0.0008918558343658391, 0.0, 0.0, 0.009096038390466929, 0.0, 0.0, 0.0, 0.00873033402576318, 0.007007183394127084, 0.45496728899530875, 0.0, 0.1316351307673038, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09338135584056179, 0.18382194877540864, 0.0, 0.563495172825665, 0.0, 0.0, 0.0, 0.05639497562938005, 0.14653622131196892, 0.0, 0.0, 0.0, 0.251192534270281, 0.1344408525103349, 0.0, 0.4650111134116464, 0.31391354376028213, 0.0, 0.0, 0.06326188293375198, 0.0, 0.31318868581904563, 0.0, 0.0763329064988246, 0.0, 0.0, 0.2156944329452718, 0.3468992967609863, 0.0, 0.2518308523576955, 0.0, 0.17896869808051252, 0.05403813425807818, 0.027124296544448725, 0.0, 0.0, 0.0, 0.0, 0.11640144853391314, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09109340489796702, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1194057971602891, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6552661573805515, 0.0, 0.0, 0.0, 0.21450271688804268, 0.0, 0.0, 0.902854749674862, 0.06907734840039648, 0.0, 0.811763991573728, 0.24446155688431725, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0551218990786032, 0.0, 0.0, 0.6659086165622266, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4110921087644639, 0.0, 0.0, 0.07931423881912922, 0.0, 0.0, 0.37316154887557274, 0.11430607897800385, 0.4150800042560803, 0.0, 0.10099097676635159, 0.6592915699634367, 0.0, 0.25936644093477396, 0.07666208914620723, 0.0, 0.0, 0.7807360976520861, 0.0, 0.0, 0.04275453625658718, 0.1985413718724771, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13633482744457018, 0.0, 0.2252743029271589, 0.0, 0.0, 0.0, 0.5464410650922171, 0.11366230227156136, 0.6018718955402885, 0.0, 0.014396279790867243, 0.0, 0.03905603312028952, 0.8092451213661034, 0.0, 0.39833251401456404, 0.0, 0.12251229365728535, 0.27200847035734843, 0.25388100105648176, 0.30685765140009125, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07517201195249319, 0.0, 0.0, 0.0, 0.0, 0.3595498458067731, 0.0, 0.0, 0.0, 0.05519776563775433, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13158680513977092, 0.0, 0.45513938379424074, 0.3072494672729318, 0.0, 0.0, 0.061918895238623206, 0.0, 0.306539997354477, 0.0, 0.0, 0.0, 0.0, 0.21111545179707192, 1.113727824196147, 0.0, 0.24648473048642042, 0.0, 0.0, 0.0, 0.6244696783059631, 0.0, 0.0, 0.010619491746539882, 0.0, 0.0, 0.057745206745770994, 0.0, 0.008858840711593166, 0.0075334185627281185, 0.1972006876834336, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15720126897663422, 0.2881788570254271, 0.05549794388099826, 0.0, 0.43880673821983995, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006158057243750719, 0.0, 0.0, 0.05862006643173159, 0.15125593941090254, 0.03302320207312045, 0.0, 0.0, 0.19199421271725345, 0.004359455697024407, 0.02909842903488052, 0.4051738652139157, 0.0, 0.0, 0.0, 0.0, 0.661857462083124, 0.27266071825745297, 0.09855620143563353, 0.03009452021788303, 0.0, 0.0, 0.36386547477639486, 0.0, 0.3154569959145931, 0.0, 0.12777365741134986, 0.0, 0.2874935496978787, 0.0, 0.0, 0.021877890033203812, 0.1316957530661763, 0.0, 1.0462327541742331, 0.24642978428043782, 0.0, 1.292534939963643e-5, 0.04966212026978902, 0.16767073337455046, 0.24586075312633993, 0.7749426824526595, 0.2192927197338787, 0.0, 0.15373812475086615, 0.1693253879539043, 1.1992945978003244, 0.0, 0.19769335810835964, 0.0, 0.2843031573913307, 0.2653563328642114, 0.6319651047837591, 0.0, 0.0, 0.2886502960323224, 0.2007500567698334, 0.0, 0.0, 0.0, 0.0, 0.4490517136878312, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.43431608561880214, 0.0, 0.0, 0.0, 0.29096240214176294, 0.0, 0.0, 0.24728201213730056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.199315833820732, 0.40813133046287003, 0.25266186539111524, 0.0908889085249469, 0.0, 0.0, 0.45688115062815576, 0.11100101499363633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02264115832549351, 0.6164930072930471, 0.0, 0.0, 0.44347420874850846, 0.0, 0.17884284240125642, 0.0, 0.2888836731929794, 0.21018531617189648, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3429810739029393, 0.02002166425453684, 0.021961075245274804, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.557136258905774, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.36191890674012556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12978916081088554, 0.0, 0.33079766328323545, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20464300021869425, 0.0, 0.0, 0.0, 0.0, 0.5063973085557268, 0.26737229244864336, 0.08619179411886842, 0.0, 0.0, 0.0, 0.49896059675156373, 0.0, 0.9000423796847855, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6355437645077721, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3962962286854009, 0.0, 0.0, 0.33976760898340913, 0.0, 0.0, 0.478819001240275, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.2504314291953376, 0.0, 0.0, 0.9648065476989627, 0.2835978542736629, 0.13211849643271117, 0.2796391765298554, 0.22540993882752317, 0.5512218518807817, 0.5478145335437775, 0.0, 0.2291959647754706, 0.23520231615614767, 0.03296826745685447, 0.18421763750874248, 0.6035878434468992, 0.7441004608135994, 0.2535097758200323, 0.20236453274735783, 0.09228241774990334, 0.13384560784694935, 0.5269755678736615, 0.03880627317810495, 0.17704264007357723, 0.0, 0.2632287465084173, 0.0, 0.02720231717357045, 0.5246531850072871, 0.0, 0.0, 0.3360269038793386, 0.0, 0.22538882742471622, 0.22621665568148489, 0.0, 0.09095677592426996, 0.0, 0.2343687318872728, 0.0, 0.00044179348092010485, 0.07281055209847118, 0.6821285312867097, 0.0, 0.0, 0.0, 0.8944403740767686, 0.11973372388784431, 0.2613237068921269, 0.5923534538840982, 0.0, 0.0, 0.0, 0.8426453838331012, 0.0, 0.0, 1.0769929937540788, 0.43300907588983417, 0.0, 0.6905133736710757, 0.0, 0.0, 0.0, 0.07271653050953786, 0.8664857754450395, 0.08570530865158534, 0.0, 0.7169860381548754, 0.20498067747201715, 0.0, 0.23050103487101342, 0.0, 0.0, 0.9152746488430813, 0.14299878494120105, 0.44815460009097313, 0.0, 0.0, 0.0, 0.23162241551000032, 1.0326337985335274, 1.0530846396126474, 0.22109306040172927, 0.0, 0.0, 0.0, 1.0289491599002607, 0.008076930682810486, 0.037079469071792215, 0.0, 0.03308196940629956, 0.07165705922647192, 0.18447863887953236, 0.0, 0.24885144181470292, 0.0, 0.0, 0.0, 0.7193963651558962, 0.0, 0.6007574484421223, 0.0, 0.11361690641306497, 0.0, 0.0, 0.0, 0.0, 0.5189539173895105, 0.027360695267410504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.769945776489901, 0.00013219515459577855, 0.0, 0.0, 0.0, 0.0, 0.21518747264967641, 0.0, 0.0, 0.0, 0.10980938651098104, 0.07347552139071808, 0.0, 0.3613462418752601, 0.04465135919773286, 0.027102240057490925, 0.0, 0.0, 0.2594566815123038, 0.417973871558788, 0.02337304044012675, 0.5498222432776159, 0.011558313103301096, 0.13519961718643905, 0.0830809338177889, 0.0, 0.0, 0.0, 0.17989871031119878, 0.05233157238393502, 0.0, 0.051508809526025434, 0.225133841185459, 0.18950167625902217, 0.0, 0.0, 0.0, 0.20173577654712102, 0.7662693488070871, 0.0, 0.33259178463685746, 0.13865467767460202, 0.0, 0.8944580603877651, 0.0, 0.060682785060590494, 0.06051599339484606, 0.0, 0.0, 0.0, 0.12305720211410776, 0.10081888448105404, 0.0, 0.0, 0.2522377522294325, 0.0, 0.12103967793114603, 0.06077105223878225, 0.0, 0.0, 0.5586258592154407, 0.0, 0.0, 0.0, 0.2984848816909581, 0.029564782247173068, 0.6276543733906952, 0.0, 0.07353625635562432, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08001934416956356, 0.13808411155288577, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0013608908425346389, 0.15477792583676012, 0.8924302032481646, 0.0, 0.13515079773758784, 0.0, 0.059793517595463114, 0.0, 0.04933055693313389, 0.0, 0.0, 0.3342781850907459, 0.02578025634698341, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1229501707927792, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287208489034296, 0.0, 0.0, 0.28149278769379354, 0.0, 0.0, 0.0, 0.031923890851782225, 0.23740383631799186, 0.0, 0.0, 0.0, 0.0, 0.06362127081034188, 0.2629034525588847, 0.0, 0.9151807425831917, 0.0, 0.0, 0.0, 0.6693739198309284, 0.0, 0.0, 0.2061930933620024, 0.27528937724536684, 0.0, 0.0, 0.0, 0.0, 0.2675780483794807, 0.02063619759744684, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5460074055587408, 0.0, 0.6541555536266587, 0.0, 0.0, 0.07150154126300666, 0.0, 0.15048122306270975, 0.034115472912426725, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.050926612139623545, 0.21044506008920905, 0.0, 0.0, 0.4253961501964202, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5242476712268254, 0.0, 0.0, 0.6721198397890595, 0.02913210340779019, 0.0, 0.20059561631676462, 0.0, 0.29433701033990906, 0.0, 0.0, 0.0, 0.12559144077146528, 0.0, 0.0, 0.32229898127496104, 0.0, 0.0, 0.05500938293182685, 0.1114468235961369, 0.09601244908001759, 0.255231140185047, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05242264559033129, 0.07189305704474794, 0.29708512061039594, 0.0, 0.0, 0.16167981650220184, 0.0, 0.0, 0.42894283906704944, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24120550186102305, 0.002462183433889286, 0.1185465354728046, 0.0, 0.0, 0.20924909285728116, 0.0, 0.2383879501918044, 0.0, 0.08928505124693381, 0.0, 0.0, 0.2291277246538886, 0.0, 0.0, 0.039107088380868994, 0.03339412468553525, 0.0, 0.17867986571670036, 0.0, 0.15885581639487184, 0.0, 0.4770109811329409, 0.46521958209705216, 0.08213268605220507, 0.8570033319080816, 0.5762497735248863, 0.025109002675938377, 0.0, 0.0, 0.0, 0.006062678222071191, 0.6895253688974624, 0.0, 0.0, 0.14425623656373723, 0.0, 0.26058653129843573, 0.2499129405223175, 0.5556369963578781, 0.0, 0.0, 0.14846473797228377, 1.311439497677356, 0.0, 0.0, 0.0, 0.14844299347189643, 0.0, 0.06204384333300274, 0.5085214657536261, 0.06333953518463412, 0.0, 0.4087271917522072, 0.56471815720299, 0.0, 0.7613475113276124, 0.31092441757595435, 0.25657570652463557, 0.0, 0.6284352010004853, 0.0, 0.44245087677575873, 0.0, 0.5840306487685422, 0.886297089335757, 0.0, 0.2141960416332438, 0.0, 0.0, 0.7455493113099605, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9841442926021067, 0.155496454991287, 0.0, 0.0, 0.07678252545804619, 0.0, 0.0, 0.3721354350358947, 0.020164712785984047, 0.0, 0.0, 0.0, 0.0, 0.1088564167894987, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9595213220321046, 0.0, 0.026588936071193094, 0.0, 0.0, 0.18249673153915044, 0.041373682209080435, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04976306812868327, 0.2056369238513726, 0.0, 0.0, 0.341205976763526, 0.0, 0.0, 0.0, 0.0, 0.5785815925839551, 0.0, 0.0, 0.0, 0.5989984098523007, 0.041848978991102986, 0.0, 0.7058966144833084, 0.0, 0.1357909427918936, 0.0, 0.0, 0.0, 0.6943234317201388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03329077451447904, 0.0, 0.16959332194846893, 0.03825181104342904, 0.0, 0.030570483496490792, 0.0, 0.181963825346749, 0.0, 0.0, 0.0861751567882612, 0.0, 0.23433890396321935, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06468139820825311, 0.4901043774165395, 0.0, 0.1652405132589817, 0.0, 0.0, 0.07483443864111192, 0.0, 0.0, 0.0, 0.2810295005684995, 0.0, 0.3898372849078984, 0.0, 0.27070466717435465, 0.5873234092956581, 0.0, 0.0, 0.8033877947986148, 0.0, 0.0, 0.0, 0.5030084273245645, 0.1643009637310288, 0.0, 0.0, 0.0, 0.052313365367879956, 0.02924539070601191, 0.0, 0.7815339827038686, 0.0, 0.631919493277437, 0.08243985181699306, 0.0, 0.0, 0.0, 0.0, 0.12868680907403285, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.1259698971001804, 0.7198499769348474, 0.0, 0.41807281750787384, 0.0, 0.0, 0.6290848565988848, 0.7773412611170788, 0.0, 0.3270721417747804, 0.0, 0.0, 0.6187710034515789, 0.07069501936159496, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15113911645003905, 0.0, 0.15654877177402662, 1.1322176354521876, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2636197382380641, 0.0, 0.0, 0.34206988627899454, 0.0, 0.0, 0.2168559436204628, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12189174979618164, 0.009400555275465744, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02319896532052816, 0.09586554938115534, 0.0, 0.0, 0.47758214062526055, 0.0, 0.0, 0.0, 0.0, 0.766521270904984, 0.0, 0.0, 0.0, 0.05687724891036996, 0.0, 0.0, 0.0, 0.019988327516632248, 0.0, 0.0, 0.24020596976351885, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5319793134128888, 0.0, 0.0, 0.12310759546793347, 0.28424710350697324, 0.0, 0.9704064926727941, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.595062055789435, 0.0, 0.022922464313533127, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7479520138852049, 0.0, 0.0, 0.0, 0.0, 0.11201726895804533, 0.0, 0.0, 0.5882991104057551, 0.0, 0.0, 0.0, 0.5372591710353254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4185803721513073, 0.0, 0.4160894350708626, 0.35712090084273435, 0.0, 0.0, 0.0, 0.0, 0.3329375067097101, 0.0, 0.0, 0.0, 0.9791513934288851, 0.040171778764664906, 0.0, 0.0, 0.18774405618493867, 0.47311893679528827, 0.2590438343789052, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12077476728428499, 0.0, 0.06327325623124767, 0.0, 0.0, 0.0, 0.0, 0.34849519635188847, 0.0, 0.4382603746311635, 0.0, 0.0, 0.0, 0.09913709085437171, 0.4096661875861404, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4230910500526733, 0.0, 0.0, 0.0, 0.17776900851570368, 0.0, 0.5438917161748563, 0.0, 0.43287084617637955, 0.0, 0.0, 0.0, 0.5349746055023918, 0.0, 0.7894262258085124, 0.0, 0.0, 0.0, 0.416696264214944, 0.1414148713022835, 0.0, 0.1306712640828635, 0.5944339267365731, 0.0, 0.0, 0.0, 0.3098486230376566, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27475814956764166, 0.0, 0.0, 0.0, 0.572874722755641, 0.7993131511508778, 0.0, 0.2979949962228512, 0.14400098705349634, 0.0, 0.0, 0.02684711041673838, 0.0, 0.0575193250192605, 0.13038147684896279, 0.07982177723780243, 0.0, 0.0, 0.22370954598082965, 0.0, 0.0, 0.0, 0.16207849359014098, 0.8780589957563658, 0.0, 0.0, 0.0, 0.03773454641900064, 0.0, 0.190720074864707, 0.03823162707299666, 0.0, 0.027092618673790602, 0.07782668325822914, 0.0, 0.0, 0.025612768291380317, 0.0, 0.1339183762706947, 0.03147511447091019, 0.0, 0.0, 0.22256660522037766, 0.0, 0.050981846070955524, 0.33080849696175413, 0.22670468547648376, 0.0, 0.0, 0.2394131641393997, 0.0, 0.6763225254232694, 0.0, 0.32609931596811353, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02551395955593748, 0.0, 0.19870976845837512, 0.0, 0.8838430389981123, 0.0, 0.8900590234719281, 0.0, 0.1395885727389325, 0.39274638865688727, 0.13258182339863903, 1.0427544725112363, 0.007925765580094073, 0.0, 0.0, 0.9248219821941955, 0.0, 0.38782207933590473, 0.20331266090801786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4620448777897825, 0.5673723076761421, 0.13444042454417618, 0.0, 0.0012927651989113214, 0.0, 0.0, 0.0, 0.3049721916420315, 0.017266202832261764, 0.0, 0.0, 0.07071993264415252, 0.04567425634491729, 0.3943633692304047, 0.0, 0.15861807151929683, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05848946000294637, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0002825960061227963, 0.18362488935764, 0.0, 0.0, 0.0, 0.16115194339742445, 0.5974334511167834, 0.0, 0.04024167944046561, 0.33382381844541353, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6087942383002851, 0.0, 0.0, 0.7807479082612564, 0.3974967659255351, 1.5487027213337248, 0.03765559375444021, 0.17692333788215128, 0.23426356503546714, 0.0, 0.22388851869475412, 0.04007956243736881, 1.0262040210122396, 0.0, 0.7972348331243138, 1.0049259227957363, 0.051433760809377164, 0.0, 0.8283458296766737, 0.0, 0.7561556098507006, 0.0, 0.0, 0.0, 0.24907496608552146, 0.0, 0.5011916402324644, 0.1747189814102487, 0.9899595982235516, 0.6164188940137083, 0.11559029428984438, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.593849645786338, 0.0, 0.0, 0.0, 0.0, 0.13660851844466146, 0.030970403587585463, 0.23157107362581741, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13749939723080143, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7110898100418397, 0.0, 0.0, 0.0, 0.46081314114808425, 0.7109856621285974, 0.2884350146527927, 0.0, 0.0, 0.30337236072169704, 0.06739814120009983, 0.0, 0.7785291912169707, 0.0, 0.0, 0.13287789565404662, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3593823347180517, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4624623396236477, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.024288127378650458, 0.0, 0.793430084070044, 0.0, 0.0, 0.07003161792104487, 0.0, 0.390525043836891, 0.7636039620295462, 0.06950112764284275, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019321154098251664, 0.0, 0.18651557279691772, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05792018405822482, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18265223354453325, 0.12454723256219671, 0.0, 0.0002798455087109209, 0.0, 0.0, 0.11611318457978691, 0.05398921986713746, 0.0, 0.8752290763913787, 0.0, 0.0, 0.0, 0.0, 0.13107895831547542, 0.0, 0.0, 0.45521248179167606, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11685661958627322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44522459151527227, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26435993065610003, 0.021758541234477975, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2146225974372531, 0.0, 0.13433790512658406, 0.030902835047588124, 0.0, 0.0, 0.03139052000724026, 0.0, 0.0, 0.7200671942026683, 0.0, 0.0, 0.05946084260814123, 0.0, 0.14663715828117352, 0.03324398818324252, 0.008023890708802274, 0.05967012120515395, 0.0, 0.0, 0.0, 0.10840406404650259, 0.0, 0.0, 0.0, 0.23002554078955822, 0.0, 0.21539070760796813, 0.0, 0.15809846801096508, 0.0, 0.0, 0.023379160669788793, 0.06919243918501702, 0.0, 0.4184368340983768, 0.0, 0.0, 0.0, 0.025499570825031452, 0.0, 0.054632252014063354, 0.12383722685885369, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08100665304577326, 0.0, 0.0, 0.0, 1.137863121002405, 0.0, 0.0, 0.18114724382910816, 1.0175246627827756, 0.0, 0.8319051265218698, 0.7408406030496757, 0.0, 0.0, 0.4793159619581115, 0.26457362772519605, 0.7690370272987045, 0.02989528102721059, 0.0, 0.0, 0.0, 0.34236772701032764, 0.22777638147070367, 0.20013535639204974, 0.7445351180710278, 0.0, 0.0, 0.32085924041220354, 0.0, 0.0, 0.0, 0.5922078604864867, 0.0, 0.0, 0.18324289767504168, 0.0, 0.0, 0.05247138335835671, 0.48819810625100485, 0.0, 0.4058243472838195, 0.0, 0.0, 0.6944817185701155, 0.21684000174364465, 0.0, 0.12484778900119534, 0.0, 0.5314768166536554, 0.0, 0.0, 0.0, 0.0, 0.11888353831534566, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4539474830982486, 0.0, 0.12931153719488578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.23351697026332235, 0.0, 0.0, 0.0, 0.0, 0.2291429172294868, 0.4258647172142874, 0.0, 0.0, 0.0, 0.22479141295616378, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05853977920447593, 0.0, 0.16715127001769428, 0.0, 0.3712702672746247, 0.13508244363790445, 0.06392604260421969, 0.5912989058272206, 0.4437811402099471, 0.0, 0.0, 0.0, 0.0, 0.005827558703832637, 0.6627845677844773, 0.0, 0.0, 0.0, 0.30904361146056275, 0.6816789334794826, 0.1436649772664439, 0.16334297841077242, 0.0, 0.0, 0.7882286990025497, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7753056808075847, 0.035768380854023674, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44917737188494944, 0.0, 0.18937379890511313, 0.06882274914369534, 0.0, 0.0, 0.0, 0.009287224889287345, 0.06906497794085972, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26624227636214304, 0.0, 0.0, 0.0, 0.1829905316954157, 0.0, 0.06582989974405196, 0.2036305981722081, 0.08008655235603437, 0.0, 0.0, 0.0, 0.0, 0.0, 0.41729810318329397, 0.0, 0.0, 0.0, 0.0, 0.0, 0.037951024806923965, 0.0, 0.0, 0.0, 0.0, 0.41651629143780994, 0.0, 0.2053954771505675, 0.29245802337269494, 0.0368786813523771, 0.0, 0.38440171693921094, 0.0, 1.0326219326945734, 0.0, 0.02604768015780454, 0.9153304998316836, 0.0, 0.0, 0.0, 0.021211537114504155, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3418184639399641, 0.9530187941808128, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5415447555144779, 0.0, 0.16269589476095273, 0.0, 0.2704207942532035, 0.6129742049927741, 0.0, 0.0, 0.0, 0.0, 0.07078757436524862, 0.0, 0.7077105145475581, 0.34262729838304967, 0.5909987644476324, 0.0, 0.11177131716736882, 0.4359653240929594, 0.04723041930008277, 0.45146742793812006, 0.896649501844373, 0.0, 0.0, 0.6373803605539574, 0.5201327056992473, 0.10980024784153514, 0.07242729038979111, 0.0, 0.25075448235999825, 0.0, 0.14797679652158516, 0.0, 0.0, 0.0, 0.0, 0.6939917265420261, 0.9906375819864492, 0.9257686181712707, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37693205342755914, 0.5232740229070877, 0.0, 0.060081052233409524, 0.0, 0.3350366056610552, 0.0, 0.20067269510180097, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5308540215160052, 0.0, 0.0, 0.04969049276705586, 0.4729163126308979, 0.17206519556589087, 0.08142765800071788, 0.0, 0.6342266715653555, 0.28491323267898133, 0.0, 0.0, 0.0, 0.0, 0.3249315382934875, 0.27888197557292793, 0.0, 0.00024008316707892853, 0.0, 0.0, 0.4429941865632019, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08351200806876206, 0.0, 0.0, 0.3644144714136701, 0.0, 0.25850208657414453, 0.3044172676246769, 0.0, 0.0, 0.0, 0.42064905943656483, 0.5410542431685182, 0.0, 0.0, 0.0235250266831074, 0.17227146855360218, 0.0, 0.0, 0.11190852746246406, 0.0, 0.0, 0.0, 0.0, 0.14411942384547258, 0.0, 0.0, 0.4237744107411662, 0.0, 0.2972186074559964, 0.0, 0.5397314242092841, 0.4632402464002124, 0.0, 0.5786606886346829, 0.0, 0.0, 0.47789419623388885, 0.0, 0.0, 0.0, 0.10580588439167306, 0.0, 0.0, 0.7377357792707717, 0.0, 0.10579038780894534, 0.0, 0.0, 0.0, 0.045139981578782816, 0.0, 0.0, 0.11584045845995011, 0.0, 0.0, 0.019771431213384455, 0.36490249309768175, 0.35310751173091487, 1.1149184594112733, 0.0, 0.0, 0.0, 0.5857527772485364, 0.44959707967332574, 0.1008560617277558, 0.018841708015473753, 0.7001531183110316, 0.0, 0.0, 0.0, 0.5946141177445001, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22666010948008636, 0.0, 0.0, 0.0, 0.0, 0.0, 0.014782177343261123, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02695824533437821, 0.0, 0.0, 0.0, 0.016838719448302838, 0.0, 0.0, 0.0, 0.08231997245985787, 0.0, 0.0, 0.0, 0.01058107131899943, 0.0, 0.05814319369896461, 0.0, 0.0, 0.0, 0.0, 0.047348036509572325, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019563192629043182, 0.027295875565384514, 0.0, 0.0, 0.0, 0.0, 0.33629932740438834, 0.0, 0.0, 0.0, 0.32394391802925426, 0.5704070896351352, 0.0, 0.14173474826201982, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6013127745008292, 0.0, 0.7561985490243033, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2959306772073682, 0.2539911401819114, 0.0, 0.0, 0.7300245622804938, 0.0, 0.2367914528076339, 0.0, 0.0, 0.0, 0.33628005236128533, 0.025934644678944505, 0.0, 0.06026134263178236, 0.0, 0.0, 0.03662105153743461, 0.06883834406728133, 0.0, 0.0, 0.21279478779844782, 0.0, 0.0, 0.07129569822964256, 0.0, 0.09738688258412649, 0.06246220065656896, 0.0, 0.059045957391141574, 0.0, 0.006923917652553149, 0.051490108793371445, 0.0, 0.16644468958034975, 0.19015418061029377, 0.10882376279915186, 0.06400227485256132, 0.2644778831991808, 0.0, 0.19849197355887785, 0.0, 0.0010725148648749981, 0.12198011848273568, 0.1548472256356659, 0.0, 0.009305339154304988, 0.0, 0.10589543929012146, 0.0, 0.0, 0.17178211974814458, 0.0, 0.23085925511580369, 0.0, 0.0, 0.0, 0.31374773386794685, 0.0, 0.4234572393895347, 0.0, 0.0, 0.0, 0.045888478821935044, 0.0, 0.0, 0.13665231391596233, 0.0, 0.05546447903889757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15847133453228077, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3148706017686264, 0.2655048691833022, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.28333620483908656, 0.0, 0.0, 0.0, 0.3208604446677971, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25931056270601605, 0.0, 0.0, 0.20842242702467234, 0.0, 0.0, 0.28681902268117093, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2978149918318377, 0.0, 0.0, 0.09574337597144772, 0.0, 0.0, 0.38017827065442816, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03128644702667798, 0.0, 0.0, 0.0]), 42), 42)),) julia> @finch_code begin Ct .= 0 for j = parallel(_) @@ -1027,35 +1027,36 @@ julia> @finch_code begin end end quote - Ct_lvl = (ex.bodies[1]).tns.bind.lvl + Ct_lvl = ((ex.bodies[1]).bodies[1]).tns.bind.lvl Ct_lvl_2 = Ct_lvl.lvl Ct_lvl_3 = Ct_lvl_2.lvl Ct_lvl_2_val = Ct_lvl_2.lvl.val - A_lvl = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] + A_lvl = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl + A_lvl_ptr = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr + A_lvl_tbl1 = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] + A_lvl_tbl2 = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] A_lvl_val = A_lvl.lvl.val - B_lvl = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = ((ex.bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] + B_lvl = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl + B_lvl_ptr = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr + B_lvl_tbl1 = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] + B_lvl_tbl2 = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] B_lvl_val = B_lvl.lvl.val B_lvl.shape[1] == A_lvl.shape[2] || throw(DimensionMismatch("mismatched dimension limits ($(B_lvl.shape[1]) != $(A_lvl.shape[2]))")) @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" + result = nothing pos_stop = A_lvl.shape[1] * B_lvl.shape[2] Finch.resize_if_smaller!(Ct_lvl_2_val, pos_stop) Finch.fill_range!(Ct_lvl_2_val, 0.0, 1, pos_stop) val = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) - B_lvl_ptr = moveto(B_lvl_ptr, CPU(Threads.nthreads())) - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2 = moveto(B_lvl_tbl2, CPU(Threads.nthreads())) - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + Ct_lvl_2_val = (Finch).moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + B_lvl_ptr = (Finch).moveto(B_lvl_ptr, CPU(Threads.nthreads())) + B_lvl_tbl1 = (Finch).moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl2 = (Finch).moveto(B_lvl_tbl2, CPU(Threads.nthreads())) + B_lvl_val = (Finch).moveto(B_lvl_val, CPU(Threads.nthreads())) + A_lvl_ptr = (Finch).moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_tbl1 = (Finch).moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl2 = (Finch).moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + A_lvl_val = (Finch).moveto(A_lvl_val, CPU(Threads.nthreads())) Threads.@threads for i_4 = 1:Threads.nthreads() B_lvl_q = B_lvl_ptr[1] B_lvl_q_stop = B_lvl_ptr[1 + 1] @@ -1079,21 +1080,21 @@ quote if B_lvl_i < phase_stop_2 Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i val_4 = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + Ct_lvl_2_val = (Finch).moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) A_lvl_ptr_3 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_ptr = (Finch).moveto(A_lvl_ptr, CPU(Threads.nthreads())) A_lvl_tbl1_3 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl1 = (Finch).moveto(A_lvl_tbl1, CPU(Threads.nthreads())) A_lvl_tbl2_3 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + A_lvl_tbl2 = (Finch).moveto(A_lvl_tbl2, CPU(Threads.nthreads())) val_5 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + A_lvl_val = (Finch).moveto(A_lvl_val, CPU(Threads.nthreads())) B_lvl_ptr_3 = B_lvl_ptr B_lvl_tbl1_3 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl1 = (Finch).moveto(B_lvl_tbl1, CPU(Threads.nthreads())) B_lvl_tbl2_3 = B_lvl_tbl2 val_6 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + B_lvl_val = (Finch).moveto(B_lvl_val, CPU(Threads.nthreads())) Threads.@threads for i_10 = 1:Threads.nthreads() phase_start_7 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_10), Threads.nthreads())) phase_stop_8 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_10, Threads.nthreads())) @@ -1147,13 +1148,13 @@ quote A_lvl_i_2 = A_lvl_tbl1[A_lvl_q_2] if A_lvl_i_2 < phase_stop_11 A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + Ct_lvl_2_val[Ct_lvl_2_q] += B_lvl_2_val * A_lvl_2_val A_lvl_q_2 += 1 else phase_stop_13 = min(A_lvl_i_2, phase_stop_11) if A_lvl_i_2 == phase_stop_13 A_lvl_2_val = A_lvl_val[A_lvl_q_2] - Ct_lvl_2_val[Ct_lvl_2_q] = Ct_lvl_2_val[Ct_lvl_2_q] + B_lvl_2_val * A_lvl_2_val + Ct_lvl_2_val[Ct_lvl_2_q] += B_lvl_2_val * A_lvl_2_val A_lvl_q_2 += 1 end break @@ -1188,21 +1189,21 @@ quote if B_lvl_i == phase_stop_19 Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_19 val_7 = Ct_lvl_2_val - Ct_lvl_2_val = moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) + Ct_lvl_2_val = (Finch).moveto(Ct_lvl_2_val, CPU(Threads.nthreads())) A_lvl_ptr_4 = A_lvl_ptr - A_lvl_ptr = moveto(A_lvl_ptr, CPU(Threads.nthreads())) + A_lvl_ptr = (Finch).moveto(A_lvl_ptr, CPU(Threads.nthreads())) A_lvl_tbl1_4 = A_lvl_tbl1 - A_lvl_tbl1 = moveto(A_lvl_tbl1, CPU(Threads.nthreads())) + A_lvl_tbl1 = (Finch).moveto(A_lvl_tbl1, CPU(Threads.nthreads())) A_lvl_tbl2_4 = A_lvl_tbl2 - A_lvl_tbl2 = moveto(A_lvl_tbl2, CPU(Threads.nthreads())) + A_lvl_tbl2 = (Finch).moveto(A_lvl_tbl2, CPU(Threads.nthreads())) val_8 = A_lvl_val - A_lvl_val = moveto(A_lvl_val, CPU(Threads.nthreads())) + A_lvl_val = (Finch).moveto(A_lvl_val, CPU(Threads.nthreads())) B_lvl_ptr_4 = B_lvl_ptr B_lvl_tbl1_4 = B_lvl_tbl1 - B_lvl_tbl1 = moveto(B_lvl_tbl1, CPU(Threads.nthreads())) + B_lvl_tbl1 = (Finch).moveto(B_lvl_tbl1, CPU(Threads.nthreads())) B_lvl_tbl2_4 = B_lvl_tbl2 val_9 = B_lvl_val - B_lvl_val = moveto(B_lvl_val, CPU(Threads.nthreads())) + B_lvl_val = (Finch).moveto(B_lvl_val, CPU(Threads.nthreads())) Threads.@threads for i_20 = 1:Threads.nthreads() phase_start_22 = max(1, 1 + fld(A_lvl.shape[1] * (-1 + i_20), Threads.nthreads())) phase_stop_24 = min(A_lvl.shape[1], fld(A_lvl.shape[1] * i_20, Threads.nthreads())) @@ -1256,13 +1257,13 @@ quote A_lvl_i_4 = A_lvl_tbl1[A_lvl_q_4] if A_lvl_i_4 < phase_stop_27 A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + Ct_lvl_2_val[Ct_lvl_2_q_2] += B_lvl_2_val_3 * A_lvl_2_val_2 A_lvl_q_4 += 1 else phase_stop_29 = min(A_lvl_i_4, phase_stop_27) if A_lvl_i_4 == phase_stop_29 A_lvl_2_val_2 = A_lvl_val[A_lvl_q_4] - Ct_lvl_2_val[Ct_lvl_2_q_2] = Ct_lvl_2_val[Ct_lvl_2_q_2] + B_lvl_2_val_3 * A_lvl_2_val_2 + Ct_lvl_2_val[Ct_lvl_2_q_2] += B_lvl_2_val_3 * A_lvl_2_val_2 A_lvl_q_4 += 1 end break @@ -1298,10 +1299,9 @@ quote end end end - qos = 1 * B_lvl.shape[2] - qos_2 = qos * A_lvl.shape[1] - resize!(val, qos_2) - (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) + resize!(val, A_lvl.shape[1] * B_lvl.shape[2]) + result = (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}(Ct_lvl_3, A_lvl.shape[1]), B_lvl.shape[2])),) + result end julia> @finch begin Ct .= 0 @@ -1313,5 +1313,5 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25238968158185693, 0.0, 0.0, 0.48865059160643304, 0.11871952163266221, 0.13783085437527975, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1100520583840872, 0.0, 0.6593611321473758, 0.05928345080192752, 0.009174411759749758, 0.0, 0.0, 0.19127876171690858, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07691735887883953, 0.0, 0.05392395392410878, 0.02141387988861775, 0.34710885925020263, 0.0, 0.0, 0.0, 0.0, 0.004888456103411815, 0.23938597192062988, 0.14380896793554465, 0.0, 0.0, 0.11091906743258541, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.42492930113736893, 0.0, 0.0, 0.0, 0.3917786049138451, 0.0, 0.027947398300345625, 0.0, 0.0, 0.0, 0.027990755993474236, 0.23996972136870412, 0.0, 0.0, 0.0, 0.16076348282437408, 0.0, 0.0, 0.0, 0.0, 0.2346717239666177, 0.0, 0.1645197835042719, 0.0, 0.15581124610211206, 0.0, 0.0, 0.0, 0.0, 0.16923528472284902, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07802881298690809, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0008989792695458017, 0.0, 0.0, 0.0, 0.0, 0.06720357557125424, 0.0, 0.0, 0.0, 0.3718711629986387, 0.0, 0.0, 0.3609126159300422, 0.1163460342216259, 0.26803502779771143, 0.5785179690130179, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20913099459980355, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3230898388302748, 0.31857597482541405, 0.458635468333174, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7731954314831251, 0.7216673432976093, 0.0, 0.7303507448180484, 0.14951424728459475, 0.7849205313632122, 0.0, 0.61487751501265, 0.0, 0.0, 0.25756111513158075, 0.0, 0.4611561614453371, 0.11767850077853764, 0.8141145056659213, 0.17774815965387922, 0.0, 0.0, 0.6559733835287642, 0.36761704346577023, 0.0, 0.0, 0.0, 0.7451998098255509, 0.033169973232688346, 0.411513621864204, 0.20930644094410764, 0.0, 0.0, 0.0, 0.10412334822136202, 0.6428221612529075, 0.2944149731643712, 0.0, 0.01883057275583864, 0.0, 0.05108593913912473, 0.0, 0.0, 0.521025535425184, 0.0008200368898190739, 0.0, 1.1919622969351262, 0.6934669965376988, 0.46942192138741023, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37125241315091917, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29594902098744047, 0.0, 0.0, 0.0, 0.5073161019921272, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.36145064005412786, 0.0, 0.054781056420259586, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6055780045451759, 0.09162757378665623, 0.04766798091106047, 0.0, 0.46059427954757914, 0.1119031338013209, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37567607243684537, 0.6215033212682567, 0.6577405362916645, 0.03204652922702584, 0.0, 0.0650525320202852, 0.18029632002719695, 0.0, 0.0, 0.0, 0.0, 0.008472932483726157, 0.0, 0.0, 0.0, 0.0, 0.13094335555018422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16141065848651698, 0.0, 0.051110856273358346, 0.0, 0.020946973304893955, 0.06226614898669832, 0.0, 0.2444646619775439, 0.0, 0.0, 0.0, 0.0, 0.04963632606956389, 0.0, 0.0, 0.0, 0.08508663882314382, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1263166966867768, 0.0, 0.15643691198571966, 0.0, 0.0, 0.0, 0.15262026274680354, 0.0, 0.526388198493186, 0.0, 0.0, 0.033474977962917256, 0.060622203675208805, 0.0, 0.43377644245905544, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3151002104915899, 0.0, 0.09477312339277622, 0.0, 0.0, 0.0, 0.152252080697694, 0.0, 0.0, 0.0204339991404229, 0.1698000966652489, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22850913265749315, 0.0, 0.7903794435818682, 0.5335588868613267, 0.0, 0.0, 0.33064520351324683, 0.11423967014312472, 0.532326845734251, 0.0, 0.0, 0.0, 0.0, 0.5700696949494688, 0.5896247750753707, 0.0, 0.4280369290594203, 0.0, 0.27339018574089047, 0.25517063473696217, 0.0, 0.4053021670425236, 0.0, 0.7145118270418906, 0.18406779329511921, 0.5332101577384002, 0.15679597786898153, 0.0, 0.02405447430944597, 0.5068714011553328, 0.2632866105026604, 0.0, 0.0, 0.0, 0.0, 0.0, 0.026822919064352108, 0.0, 0.09441824561660622, 0.15069396874531527, 0.24064671368655893, 0.0, 0.06394357060327457, 0.3982245622181067, 0.22117139549869444, 0.14930545644387866, 0.0, 0.2667835225346214, 0.4473684178329899, 0.0, 0.14896069513005675, 0.0, 0.41433289250349636, 0.0, 0.5041716274275465, 0.26176138019545275, 0.5757006867537102, 0.08966813962959974, 0.11977731163657437, 0.0, 0.0, 0.29331748913539113, 0.14887247084155056, 0.1452951955564375, 0.0, 0.0, 0.0, 0.0, 0.34161907033931543, 0.05898137093682045, 0.05240866036729835, 0.0, 0.0, 0.0, 0.5188204085313443, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5773724259871397, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22601349058504813, 0.0, 0.3467947164134737, 1.502272260353748, 0.19536436403308852, 0.0, 0.0, 0.0, 0.0, 0.4899706257461605, 0.20445136303854802, 0.7748906467295266, 0.0, 0.0, 0.15253741518885644, 0.0, 0.12918615799515507, 0.0, 0.0, 0.649394095142608, 1.40604728101928, 0.0, 0.5734783753787226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8762605287663663, 0.8124102702299425, 0.0, 0.0, 0.6752965428315182, 0.25420065076928294, 0.2878352998155691, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8742900027056961, 0.0, 0.007209075676415797, 0.028458058565007462, 0.0, 0.0, 0.002645728789765276, 0.0, 0.0, 0.0, 0.669321167131686, 0.0, 0.0, 0.3215833521867582, 0.002002885293525303, 0.5455785228014223, 0.5839672123490091, 0.1695566125503257, 0.0, 0.0, 0.0, 0.0, 0.3711983399532414, 0.0, 0.0, 0.037869811310371364, 0.0, 0.0, 0.0, 0.3906765181627519, 0.0, 0.0, 0.0, 0.004333175863679718, 0.0, 0.0, 0.0, 0.0029029347517778824, 0.43381543679330525, 0.0, 0.0, 0.0, 0.0, 0.3545426084781949, 0.0, 0.3770558352493434, 0.6375411486503958, 0.0, 0.0, 0.0, 0.23985359098491452, 0.021961946298743228, 0.0, 0.3910697032182053, 0.0, 0.6932074965542865, 0.0, 0.0, 0.10364106821683754, 0.0, 0.798416207733151, 0.5329842919228587, 0.0, 0.4844692491628223, 0.0, 0.0, 0.0, 0.0, 0.09106971306440546, 0.0, 0.0, 0.0996076819499136, 0.0, 0.0, 0.1638248686693664, 0.0, 0.3325546563665125, 0.0, 0.0, 0.0, 0.06881525170797138, 0.0, 0.44073566130025815, 0.0, 0.4019788844385439, 0.0, 0.0, 0.6714215423158676, 0.3399125937167764, 0.3046141011370791, 0.0, 0.0, 0.0473355681300066, 0.3630070132608522, 0.0, 0.0800754636262803, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2369140918241696, 0.0, 0.0, 0.35909981102365546, 0.2433693452274136, 0.6477566576645207, 0.0, 0.0, 0.0, 0.0, 0.4005702988980329, 0.6327139875815745, 0.45739813367595, 0.2306117264369203, 0.1673891610155256, 0.0, 0.3233168523165315, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04211122573483531, 0.0, 0.06803593591564691, 0.5741938845793657, 0.0476975123297982, 0.5504819156825551, 0.044516401141561746, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13524675835101255, 0.0, 0.22945132617429284, 0.0, 0.0, 0.0, 0.0, 0.1577714195074665, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2785368262709604, 0.12576967984327264, 0.0, 0.0, 0.0, 0.21559450852042064, 0.04903058086742513, 0.0, 0.1695895598298771, 0.11448427397866526, 0.0, 0.0, 0.023071609626772224, 0.0, 0.11421991827694536, 0.0, 0.0, 0.0, 0.007379588146467978, 0.07866376283476462, 0.3892472589606234, 0.0, 0.09184271552047321, 0.0, 0.25448001970252454, 0.2286582495545744, 0.02328034708296836, 0.0, 0.0, 0.0, 0.0, 0.3270923296219218, 0.0, 0.0, 0.0, 0.02043338740984974, 0.0, 0.0, 0.37277616481672965, 0.0, 0.0, 0.0, 0.0044846057268865735, 0.0, 0.3249615768942753, 0.0, 0.0, 0.19094547447052443, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08406342406417443, 0.0, 0.033182079075965945, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6500195484438399, 0.0, 0.0, 0.0, 0.0, 0.5537781763556555, 0.02656015063015655, 1.1909226087779956, 0.06852425737111054, 0.0, 1.3426353595976268, 0.6057701268300226, 0.9302934294779756, 0.0, 0.02223254227484718, 0.9934644128441693, 0.0, 0.06172390220433867, 0.20273446118005728, 0.5149938580802573, 0.1300590771577626, 0.2385875538652477, 0.0, 0.595480643743492, 0.0, 0.0, 0.0, 0.24275727828178406, 0.0, 0.7073132892445582, 0.0, 0.5182899096571696, 0.0, 0.363354145475898, 1.046444738015761, 0.8990939341913878, 0.5284345996323894, 0.0009271750893556132, 0.0, 0.0786791826827641, 0.5567513178048157, 0.0, 0.11672601563414542, 0.0, 0.0, 0.0, 0.0, 0.513610216882899, 0.0, 0.3599562947175533, 0.012305112294495107, 0.0, 0.3547644724719033, 0.0, 0.31743838097476296, 0.0, 0.0, 0.0744235447925737, 0.0, 0.0, 0.3186229810095584, 0.0, 0.7632822460090717, 0.3112891249755775, 0.0, 1.2592130951288079, 0.4142666686935799, 0.0, 0.0, 0.0834856922205997, 0.0, 0.5673263343800874, 0.0, 0.0, 0.0, 0.011109757680217765, 0.7473278912032746, 0.4577974378546139, 0.07323000489837116, 0.33380163101303967, 0.0, 0.014128663560806082, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19621458519667637, 0.0, 0.0, 0.0, 0.0, 0.4083399062549612, 0.0, 0.3744505994071715, 0.0, 0.5655910339236376, 0.0, 0.0, 0.08962016161963385, 0.0, 0.0, 0.0, 0.0, 0.3660241210222327, 0.0, 0.42450374338695224, 0.6660088440351456, 0.0, 0.0, 0.28456417514777416, 0.0, 0.6631091941560893, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.002609340728317194, 0.0, 0.0, 0.0, 0.0, 0.1290910408202515, 0.0, 0.12880600190077574, 0.0, 0.21852433519062017, 0.14617196989407044, 0.04712090478664361, 0.17786735669510226, 0.013608617966411374, 0.0, 0.1599219758144718, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13118766387513575, 0.18575036424480185, 0.0, 0.0, 0.0, 0.0, 0.24739057674609932, 0.08098740885007556, 0.0, 0.0, 0.11169555771003165, 0.0061692969950391426, 0.0, 0.0, 0.0, 0.1300402212804686, 0.0, 0.22061823582759926, 0.32468517510166695, 0.17899843511210062, 0.0, 0.0, 0.0, 0.0, 0.3555268023407697, 0.0, 0.0, 0.0, 0.5637648459713849, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.41259886956253183, 0.0, 0.0, 0.0, 0.0, 1.0217866044035127, 0.0, 0.0, 0.0, 0.09699076097844603, 0.49177999120325233, 0.617482417183965, 0.9254348782417843, 0.19189797684210885, 0.37564958516196006, 0.0, 0.6028533281724416, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4525887449543689, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.3536752652948492, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5159325071456758, 0.45703260113959776, 0.11783337867793497, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.014395933646557283, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5291071006274988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4362705134404812, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06167194341482688, 0.0, 0.26507468559563424, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18765355736657707, 0.0, 1.0014115383719757, 0.10542483708166006, 0.22040848700903187, 0.0, 0.3600323742449293, 0.06543742592421764, 0.0, 0.06637441639531827, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3967141864154841, 0.0, 0.18259679072826512, 0.0, 0.2818810986099949, 0.0, 0.0, 0.0, 0.04462260901941838, 0.650460148621926, 0.9472330785275007, 0.0, 0.0, 0.0, 0.0, 0.20815281221075516, 0.19618764447572262, 0.06473525648539784, 0.0, 0.0, 0.0, 0.1542243249790465, 0.13224172712193835, 0.0, 0.007908832517684252, 0.0, 0.051353982240120374, 0.0032977751233809844, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27800255996089945, 0.0, 0.0, 0.1281258773488851, 0.0, 0.0, 0.0, 0.31683019969084447, 0.0, 0.0, 0.0, 0.19099043815219882, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2169883137756601, 0.0, 0.7505306274250138, 0.5066582758142599, 0.0, 0.07143979002259558, 0.10210504506442938, 0.15444313156667316, 0.5054883509033501, 0.0, 0.0, 0.0, 0.0028518817212982773, 0.3481320627001662, 0.559897472000501, 0.0, 0.40645645270348807, 0.0, 0.36960222637651485, 0.34497081323202616, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0330129037169125, 0.05220506486278423, 0.053654185080025577, 0.0, 0.0, 0.1851124085000456, 0.04497376440934621, 0.35304695602824443, 0.0, 0.0, 0.343295765136816, 0.2793332554556384, 0.0, 0.0, 0.040358875497600165, 0.24978160129073035, 0.0, 0.0, 0.0, 0.0, 0.07246092173943684, 0.0, 0.16628600115413392, 0.0, 0.0, 0.0, 0.06634041958053304, 0.0, 0.0, 0.0, 0.008112084482454424, 0.0, 0.0, 0.3510991071496956, 0.30792356595023396, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24591462609017128, 0.0, 0.0, 0.0, 0.0, 0.1723485353456609, 0.17746213232343597, 0.26032482377035826, 0.0, 0.0, 0.09642188463361992, 0.0, 0.0, 0.9312549994812083, 0.0, 0.4355669936335271, 0.22986161845318145, 0.0, 1.1016016643957898, 0.5367168823744637, 0.0, 0.0, 0.1081626494181155, 0.0, 0.5354775491181646, 0.0, 0.0, 0.7066771289166013, 0.005913227901483509, 0.36878575613264597, 0.5931146099182986, 0.0, 0.43177137005853594, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2792172801438884, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18771394461865235, 0.0, 0.3810480475576988, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04963057208911237, 0.0, 0.0, 0.0, 0.014028126739435154, 0.6487755206193258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019308069898724092, 0.0, 0.0, 0.15473333790095384, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20078144855224883, 0.04664059814698181, 0.0, 0.0, 0.02360446678134394, 0.0, 0.0, 0.06383755139363034, 0.0, 0.1295864000345023, 0.0, 0.0, 0.0972547510814237, 0.0, 0.07205581060374358, 0.016878310254842765, 0.0, 0.0, 0.0, 0.0, 0.2206348639926782, 0.0, 0.0, 0.2053453449704589, 0.18009351088331146, 0.17243879836126652, 0.16094695393647487, 0.0, 0.0, 0.0026102124382687284, 0.009478472183394092, 0.22228584913081856, 0.0, 0.0, 0.22567472183496304, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.002853715730108796, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0005790797752150057, 0.4809080576930432, 0.0, 0.0, 0.0, 0.32217587215618376, 0.0018177803358381927, 0.0, 0.0, 0.0, 0.0003287432209283418, 0.0, 0.0008918558343658391, 0.0, 0.0, 0.009096038390466929, 0.0, 0.0, 0.0, 0.00873033402576318, 0.007007183394127084, 0.45496728899530875, 0.0, 0.1316351307673038, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09338135584056179, 0.18382194877540864, 0.0, 0.563495172825665, 0.0, 0.0, 0.0, 0.05639497562938005, 0.14653622131196892, 0.0, 0.0, 0.0, 0.251192534270281, 0.1344408525103349, 0.0, 0.4650111134116464, 0.31391354376028213, 0.0, 0.0, 0.06326188293375198, 0.0, 0.31318868581904563, 0.0, 0.0763329064988246, 0.0, 0.0, 0.2156944329452718, 0.3468992967609863, 0.0, 0.2518308523576955, 0.0, 0.17896869808051252, 0.05403813425807818, 0.027124296544448725, 0.0, 0.0, 0.0, 0.0, 0.11640144853391314, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09109340489796702, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1194057971602891, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6552661573805515, 0.0, 0.0, 0.0, 0.21450271688804268, 0.0, 0.0, 0.902854749674862, 0.06907734840039648, 0.0, 0.811763991573728, 0.24446155688431725, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0551218990786032, 0.0, 0.0, 0.6659086165622266, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4110921087644639, 0.0, 0.0, 0.07931423881912922, 0.0, 0.0, 0.37316154887557274, 0.11430607897800385, 0.4150800042560803, 0.0, 0.10099097676635159, 0.6592915699634367, 0.0, 0.25936644093477396, 0.07666208914620723, 0.0, 0.0, 0.7807360976520861, 0.0, 0.0, 0.04275453625658718, 0.1985413718724771, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13633482744457018, 0.0, 0.2252743029271589, 0.0, 0.0, 0.0, 0.5464410650922171, 0.11366230227156136, 0.6018718955402885, 0.0, 0.014396279790867243, 0.0, 0.03905603312028952, 0.8092451213661034, 0.0, 0.39833251401456404, 0.0, 0.12251229365728535, 0.27200847035734843, 0.25388100105648176, 0.30685765140009125, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07517201195249319, 0.0, 0.0, 0.0, 0.0, 0.3595498458067731, 0.0, 0.0, 0.0, 0.05519776563775433, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13158680513977092, 0.0, 0.45513938379424074, 0.3072494672729318, 0.0, 0.0, 0.061918895238623206, 0.0, 0.306539997354477, 0.0, 0.0, 0.0, 0.0, 0.21111545179707192, 1.113727824196147, 0.0, 0.24648473048642042, 0.0, 0.0, 0.0, 0.6244696783059631, 0.0, 0.0, 0.010619491746539882, 0.0, 0.0, 0.057745206745770994, 0.0, 0.008858840711593166, 0.0075334185627281185, 0.1972006876834336, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15720126897663422, 0.2881788570254271, 0.05549794388099826, 0.0, 0.43880673821983995, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006158057243750719, 0.0, 0.0, 0.05862006643173159, 0.15125593941090254, 0.03302320207312045, 0.0, 0.0, 0.19199421271725345, 0.004359455697024407, 0.02909842903488052, 0.4051738652139157, 0.0, 0.0, 0.0, 0.0, 0.661857462083124, 0.27266071825745297, 0.09855620143563353, 0.03009452021788303, 0.0, 0.0, 0.36386547477639486, 0.0, 0.3154569959145931, 0.0, 0.12777365741134986, 0.0, 0.2874935496978787, 0.0, 0.0, 0.021877890033203812, 0.1316957530661763, 0.0, 1.0462327541742331, 0.24642978428043782, 0.0, 1.292534939963643e-5, 0.04966212026978902, 0.16767073337455046, 0.24586075312633993, 0.7749426824526595, 0.2192927197338787, 0.0, 0.15373812475086615, 0.1693253879539043, 1.1992945978003244, 0.0, 0.19769335810835964, 0.0, 0.2843031573913307, 0.2653563328642114, 0.6319651047837591, 0.0, 0.0, 0.2886502960323224, 0.2007500567698334, 0.0, 0.0, 0.0, 0.0, 0.4490517136878312, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.43431608561880214, 0.0, 0.0, 0.0, 0.29096240214176294, 0.0, 0.0, 0.24728201213730056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.199315833820732, 0.40813133046287003, 0.25266186539111524, 0.0908889085249469, 0.0, 0.0, 0.45688115062815576, 0.11100101499363633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02264115832549351, 0.6164930072930471, 0.0, 0.0, 0.44347420874850846, 0.0, 0.17884284240125642, 0.0, 0.2888836731929794, 0.21018531617189648, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3429810739029393, 0.02002166425453684, 0.021961075245274804, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.557136258905774, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.36191890674012556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12978916081088554, 0.0, 0.33079766328323545, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20464300021869425, 0.0, 0.0, 0.0, 0.0, 0.5063973085557268, 0.26737229244864336, 0.08619179411886842, 0.0, 0.0, 0.0, 0.49896059675156373, 0.0, 0.9000423796847855, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6355437645077721, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3962962286854009, 0.0, 0.0, 0.33976760898340913, 0.0, 0.0, 0.478819001240275, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.2504314291953376, 0.0, 0.0, 0.9648065476989627, 0.2835978542736629, 0.13211849643271117, 0.2796391765298554, 0.22540993882752317, 0.5512218518807817, 0.5478145335437775, 0.0, 0.2291959647754706, 0.23520231615614767, 0.03296826745685447, 0.18421763750874248, 0.6035878434468992, 0.7441004608135994, 0.2535097758200323, 0.20236453274735783, 0.09228241774990334, 0.13384560784694935, 0.5269755678736615, 0.03880627317810495, 0.17704264007357723, 0.0, 0.2632287465084173, 0.0, 0.02720231717357045, 0.5246531850072871, 0.0, 0.0, 0.3360269038793386, 0.0, 0.22538882742471622, 0.22621665568148489, 0.0, 0.09095677592426996, 0.0, 0.2343687318872728, 0.0, 0.00044179348092010485, 0.07281055209847118, 0.6821285312867097, 0.0, 0.0, 0.0, 0.8944403740767686, 0.11973372388784431, 0.2613237068921269, 0.5923534538840982, 0.0, 0.0, 0.0, 0.8426453838331012, 0.0, 0.0, 1.0769929937540788, 0.43300907588983417, 0.0, 0.6905133736710757, 0.0, 0.0, 0.0, 0.07271653050953786, 0.8664857754450395, 0.08570530865158534, 0.0, 0.7169860381548754, 0.20498067747201715, 0.0, 0.23050103487101342, 0.0, 0.0, 0.9152746488430813, 0.14299878494120105, 0.44815460009097313, 0.0, 0.0, 0.0, 0.23162241551000032, 1.0326337985335274, 1.0530846396126474, 0.22109306040172927, 0.0, 0.0, 0.0, 1.0289491599002607, 0.008076930682810486, 0.037079469071792215, 0.0, 0.03308196940629956, 0.07165705922647192, 0.18447863887953236, 0.0, 0.24885144181470292, 0.0, 0.0, 0.0, 0.7193963651558962, 0.0, 0.6007574484421223, 0.0, 0.11361690641306497, 0.0, 0.0, 0.0, 0.0, 0.5189539173895105, 0.027360695267410504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.769945776489901, 0.00013219515459577855, 0.0, 0.0, 0.0, 0.0, 0.21518747264967641, 0.0, 0.0, 0.0, 0.10980938651098104, 0.07347552139071808, 0.0, 0.3613462418752601, 0.04465135919773286, 0.027102240057490925, 0.0, 0.0, 0.2594566815123038, 0.417973871558788, 0.02337304044012675, 0.5498222432776159, 0.011558313103301096, 0.13519961718643905, 0.0830809338177889, 0.0, 0.0, 0.0, 0.17989871031119878, 0.05233157238393502, 0.0, 0.051508809526025434, 0.225133841185459, 0.18950167625902217, 0.0, 0.0, 0.0, 0.20173577654712102, 0.7662693488070871, 0.0, 0.33259178463685746, 0.13865467767460202, 0.0, 0.8944580603877651, 0.0, 0.060682785060590494, 0.06051599339484606, 0.0, 0.0, 0.0, 0.12305720211410776, 0.10081888448105404, 0.0, 0.0, 0.2522377522294325, 0.0, 0.12103967793114603, 0.06077105223878225, 0.0, 0.0, 0.5586258592154407, 0.0, 0.0, 0.0, 0.2984848816909581, 0.029564782247173068, 0.6276543733906952, 0.0, 0.07353625635562432, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08001934416956356, 0.13808411155288577, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0013608908425346389, 0.15477792583676012, 0.8924302032481646, 0.0, 0.13515079773758784, 0.0, 0.059793517595463114, 0.0, 0.04933055693313389, 0.0, 0.0, 0.3342781850907459, 0.02578025634698341, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1229501707927792, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287208489034296, 0.0, 0.0, 0.28149278769379354, 0.0, 0.0, 0.0, 0.031923890851782225, 0.23740383631799186, 0.0, 0.0, 0.0, 0.0, 0.06362127081034188, 0.2629034525588847, 0.0, 0.9151807425831917, 0.0, 0.0, 0.0, 0.6693739198309284, 0.0, 0.0, 0.2061930933620024, 0.27528937724536684, 0.0, 0.0, 0.0, 0.0, 0.2675780483794807, 0.02063619759744684, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5460074055587408, 0.0, 0.6541555536266587, 0.0, 0.0, 0.07150154126300666, 0.0, 0.15048122306270975, 0.034115472912426725, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.050926612139623545, 0.21044506008920905, 0.0, 0.0, 0.4253961501964202, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5242476712268254, 0.0, 0.0, 0.6721198397890595, 0.02913210340779019, 0.0, 0.20059561631676462, 0.0, 0.29433701033990906, 0.0, 0.0, 0.0, 0.12559144077146528, 0.0, 0.0, 0.32229898127496104, 0.0, 0.0, 0.05500938293182685, 0.1114468235961369, 0.09601244908001759, 0.255231140185047, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05242264559033129, 0.07189305704474794, 0.29708512061039594, 0.0, 0.0, 0.16167981650220184, 0.0, 0.0, 0.42894283906704944, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24120550186102305, 0.002462183433889286, 0.1185465354728046, 0.0, 0.0, 0.20924909285728116, 0.0, 0.2383879501918044, 0.0, 0.08928505124693381, 0.0, 0.0, 0.2291277246538886, 0.0, 0.0, 0.039107088380868994, 0.03339412468553525, 0.0, 0.17867986571670036, 0.0, 0.15885581639487184, 0.0, 0.4770109811329409, 0.46521958209705216, 0.08213268605220507, 0.8570033319080816, 0.5762497735248863, 0.025109002675938377, 0.0, 0.0, 0.0, 0.006062678222071191, 0.6895253688974624, 0.0, 0.0, 0.14425623656373723, 0.0, 0.26058653129843573, 0.2499129405223175, 0.5556369963578781, 0.0, 0.0, 0.14846473797228377, 1.311439497677356, 0.0, 0.0, 0.0, 0.14844299347189643, 0.0, 0.06204384333300274, 0.5085214657536261, 0.06333953518463412, 0.0, 0.4087271917522072, 0.56471815720299, 0.0, 0.7613475113276124, 0.31092441757595435, 0.25657570652463557, 0.0, 0.6284352010004853, 0.0, 0.44245087677575873, 0.0, 0.5840306487685422, 0.886297089335757, 0.0, 0.2141960416332438, 0.0, 0.0, 0.7455493113099605, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9841442926021067, 0.155496454991287, 0.0, 0.0, 0.07678252545804619, 0.0, 0.0, 0.3721354350358947, 0.020164712785984047, 0.0, 0.0, 0.0, 0.0, 0.1088564167894987, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9595213220321046, 0.0, 0.026588936071193094, 0.0, 0.0, 0.18249673153915044, 0.041373682209080435, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04976306812868327, 0.2056369238513726, 0.0, 0.0, 0.341205976763526, 0.0, 0.0, 0.0, 0.0, 0.5785815925839551, 0.0, 0.0, 0.0, 0.5989984098523007, 0.041848978991102986, 0.0, 0.7058966144833084, 0.0, 0.1357909427918936, 0.0, 0.0, 0.0, 0.6943234317201388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03329077451447904, 0.0, 0.16959332194846893, 0.03825181104342904, 0.0, 0.030570483496490792, 0.0, 0.181963825346749, 0.0, 0.0, 0.0861751567882612, 0.0, 0.23433890396321935, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06468139820825311, 0.4901043774165395, 0.0, 0.1652405132589817, 0.0, 0.0, 0.07483443864111192, 0.0, 0.0, 0.0, 0.2810295005684995, 0.0, 0.3898372849078984, 0.0, 0.27070466717435465, 0.5873234092956581, 0.0, 0.0, 0.8033877947986148, 0.0, 0.0, 0.0, 0.5030084273245645, 0.1643009637310288, 0.0, 0.0, 0.0, 0.052313365367879956, 0.02924539070601191, 0.0, 0.7815339827038686, 0.0, 0.631919493277437, 0.08243985181699306, 0.0, 0.0, 0.0, 0.0, 0.12868680907403285, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.1259698971001804, 0.7198499769348474, 0.0, 0.41807281750787384, 0.0, 0.0, 0.6290848565988848, 0.7773412611170788, 0.0, 0.3270721417747804, 0.0, 0.0, 0.6187710034515789, 0.07069501936159496, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15113911645003905, 0.0, 0.15654877177402662, 1.1322176354521876, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2636197382380641, 0.0, 0.0, 0.34206988627899454, 0.0, 0.0, 0.2168559436204628, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12189174979618164, 0.009400555275465744, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02319896532052816, 0.09586554938115534, 0.0, 0.0, 0.47758214062526055, 0.0, 0.0, 0.0, 0.0, 0.766521270904984, 0.0, 0.0, 0.0, 0.05687724891036996, 0.0, 0.0, 0.0, 0.019988327516632248, 0.0, 0.0, 0.24020596976351885, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5319793134128888, 0.0, 0.0, 0.12310759546793347, 0.28424710350697324, 0.0, 0.9704064926727941, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.595062055789435, 0.0, 0.022922464313533127, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7479520138852049, 0.0, 0.0, 0.0, 0.0, 0.11201726895804533, 0.0, 0.0, 0.5882991104057551, 0.0, 0.0, 0.0, 0.5372591710353254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4185803721513073, 0.0, 0.4160894350708626, 0.35712090084273435, 0.0, 0.0, 0.0, 0.0, 0.3329375067097101, 0.0, 0.0, 0.0, 0.9791513934288851, 0.040171778764664906, 0.0, 0.0, 0.18774405618493867, 0.47311893679528827, 0.2590438343789052, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12077476728428499, 0.0, 0.06327325623124767, 0.0, 0.0, 0.0, 0.0, 0.34849519635188847, 0.0, 0.4382603746311635, 0.0, 0.0, 0.0, 0.09913709085437171, 0.4096661875861404, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4230910500526733, 0.0, 0.0, 0.0, 0.17776900851570368, 0.0, 0.5438917161748563, 0.0, 0.43287084617637955, 0.0, 0.0, 0.0, 0.5349746055023918, 0.0, 0.7894262258085124, 0.0, 0.0, 0.0, 0.416696264214944, 0.1414148713022835, 0.0, 0.1306712640828635, 0.5944339267365731, 0.0, 0.0, 0.0, 0.3098486230376566, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27475814956764166, 0.0, 0.0, 0.0, 0.572874722755641, 0.7993131511508778, 0.0, 0.2979949962228512, 0.14400098705349634, 0.0, 0.0, 0.02684711041673838, 0.0, 0.0575193250192605, 0.13038147684896279, 0.07982177723780243, 0.0, 0.0, 0.22370954598082965, 0.0, 0.0, 0.0, 0.16207849359014098, 0.8780589957563658, 0.0, 0.0, 0.0, 0.03773454641900064, 0.0, 0.190720074864707, 0.03823162707299666, 0.0, 0.027092618673790602, 0.07782668325822914, 0.0, 0.0, 0.025612768291380317, 0.0, 0.1339183762706947, 0.03147511447091019, 0.0, 0.0, 0.22256660522037766, 0.0, 0.050981846070955524, 0.33080849696175413, 0.22670468547648376, 0.0, 0.0, 0.2394131641393997, 0.0, 0.6763225254232694, 0.0, 0.32609931596811353, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02551395955593748, 0.0, 0.19870976845837512, 0.0, 0.8838430389981123, 0.0, 0.8900590234719281, 0.0, 0.1395885727389325, 0.39274638865688727, 0.13258182339863903, 1.0427544725112363, 0.007925765580094073, 0.0, 0.0, 0.9248219821941955, 0.0, 0.38782207933590473, 0.20331266090801786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4620448777897825, 0.5673723076761421, 0.13444042454417618, 0.0, 0.0012927651989113214, 0.0, 0.0, 0.0, 0.3049721916420315, 0.017266202832261764, 0.0, 0.0, 0.07071993264415252, 0.04567425634491729, 0.3943633692304047, 0.0, 0.15861807151929683, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05848946000294637, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0002825960061227963, 0.18362488935764, 0.0, 0.0, 0.0, 0.16115194339742445, 0.5974334511167834, 0.0, 0.04024167944046561, 0.33382381844541353, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6087942383002851, 0.0, 0.0, 0.7807479082612564, 0.3974967659255351, 1.5487027213337248, 0.03765559375444021, 0.17692333788215128, 0.23426356503546714, 0.0, 0.22388851869475412, 0.04007956243736881, 1.0262040210122396, 0.0, 0.7972348331243138, 1.0049259227957363, 0.051433760809377164, 0.0, 0.8283458296766737, 0.0, 0.7561556098507006, 0.0, 0.0, 0.0, 0.24907496608552146, 0.0, 0.5011916402324644, 0.1747189814102487, 0.9899595982235516, 0.6164188940137083, 0.11559029428984438, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.593849645786338, 0.0, 0.0, 0.0, 0.0, 0.13660851844466146, 0.030970403587585463, 0.23157107362581741, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13749939723080143, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7110898100418397, 0.0, 0.0, 0.0, 0.46081314114808425, 0.7109856621285974, 0.2884350146527927, 0.0, 0.0, 0.30337236072169704, 0.06739814120009983, 0.0, 0.7785291912169707, 0.0, 0.0, 0.13287789565404662, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3593823347180517, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4624623396236477, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.024288127378650458, 0.0, 0.793430084070044, 0.0, 0.0, 0.07003161792104487, 0.0, 0.390525043836891, 0.7636039620295462, 0.06950112764284275, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019321154098251664, 0.0, 0.18651557279691772, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05792018405822482, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18265223354453325, 0.12454723256219671, 0.0, 0.0002798455087109209, 0.0, 0.0, 0.11611318457978691, 0.05398921986713746, 0.0, 0.8752290763913787, 0.0, 0.0, 0.0, 0.0, 0.13107895831547542, 0.0, 0.0, 0.45521248179167606, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11685661958627322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44522459151527227, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26435993065610003, 0.021758541234477975, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2146225974372531, 0.0, 0.13433790512658406, 0.030902835047588124, 0.0, 0.0, 0.03139052000724026, 0.0, 0.0, 0.7200671942026683, 0.0, 0.0, 0.05946084260814123, 0.0, 0.14663715828117352, 0.03324398818324252, 0.008023890708802274, 0.05967012120515395, 0.0, 0.0, 0.0, 0.10840406404650259, 0.0, 0.0, 0.0, 0.23002554078955822, 0.0, 0.21539070760796813, 0.0, 0.15809846801096508, 0.0, 0.0, 0.023379160669788793, 0.06919243918501702, 0.0, 0.4184368340983768, 0.0, 0.0, 0.0, 0.025499570825031452, 0.0, 0.054632252014063354, 0.12383722685885369, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08100665304577326, 0.0, 0.0, 0.0, 1.137863121002405, 0.0, 0.0, 0.18114724382910816, 1.0175246627827756, 0.0, 0.8319051265218698, 0.7408406030496757, 0.0, 0.0, 0.4793159619581115, 0.26457362772519605, 0.7690370272987045, 0.02989528102721059, 0.0, 0.0, 0.0, 0.34236772701032764, 0.22777638147070367, 0.20013535639204974, 0.7445351180710278, 0.0, 0.0, 0.32085924041220354, 0.0, 0.0, 0.0, 0.5922078604864867, 0.0, 0.0, 0.18324289767504168, 0.0, 0.0, 0.05247138335835671, 0.48819810625100485, 0.0, 0.4058243472838195, 0.0, 0.0, 0.6944817185701155, 0.21684000174364465, 0.0, 0.12484778900119534, 0.0, 0.5314768166536554, 0.0, 0.0, 0.0, 0.0, 0.11888353831534566, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4539474830982486, 0.0, 0.12931153719488578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.23351697026332235, 0.0, 0.0, 0.0, 0.0, 0.2291429172294868, 0.4258647172142874, 0.0, 0.0, 0.0, 0.22479141295616378, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05853977920447593, 0.0, 0.16715127001769428, 0.0, 0.3712702672746247, 0.13508244363790445, 0.06392604260421969, 0.5912989058272206, 0.4437811402099471, 0.0, 0.0, 0.0, 0.0, 0.005827558703832637, 0.6627845677844773, 0.0, 0.0, 0.0, 0.30904361146056275, 0.6816789334794826, 0.1436649772664439, 0.16334297841077242, 0.0, 0.0, 0.7882286990025497, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7753056808075847, 0.035768380854023674, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44917737188494944, 0.0, 0.18937379890511313, 0.06882274914369534, 0.0, 0.0, 0.0, 0.009287224889287345, 0.06906497794085972, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26624227636214304, 0.0, 0.0, 0.0, 0.1829905316954157, 0.0, 0.06582989974405196, 0.2036305981722081, 0.08008655235603437, 0.0, 0.0, 0.0, 0.0, 0.0, 0.41729810318329397, 0.0, 0.0, 0.0, 0.0, 0.0, 0.037951024806923965, 0.0, 0.0, 0.0, 0.0, 0.41651629143780994, 0.0, 0.2053954771505675, 0.29245802337269494, 0.0368786813523771, 0.0, 0.38440171693921094, 0.0, 1.0326219326945734, 0.0, 0.02604768015780454, 0.9153304998316836, 0.0, 0.0, 0.0, 0.021211537114504155, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3418184639399641, 0.9530187941808128, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5415447555144779, 0.0, 0.16269589476095273, 0.0, 0.2704207942532035, 0.6129742049927741, 0.0, 0.0, 0.0, 0.0, 0.07078757436524862, 0.0, 0.7077105145475581, 0.34262729838304967, 0.5909987644476324, 0.0, 0.11177131716736882, 0.4359653240929594, 0.04723041930008277, 0.45146742793812006, 0.896649501844373, 0.0, 0.0, 0.6373803605539574, 0.5201327056992473, 0.10980024784153514, 0.07242729038979111, 0.0, 0.25075448235999825, 0.0, 0.14797679652158516, 0.0, 0.0, 0.0, 0.0, 0.6939917265420261, 0.9906375819864492, 0.9257686181712707, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37693205342755914, 0.5232740229070877, 0.0, 0.060081052233409524, 0.0, 0.3350366056610552, 0.0, 0.20067269510180097, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5308540215160052, 0.0, 0.0, 0.04969049276705586, 0.4729163126308979, 0.17206519556589087, 0.08142765800071788, 0.0, 0.6342266715653555, 0.28491323267898133, 0.0, 0.0, 0.0, 0.0, 0.3249315382934875, 0.27888197557292793, 0.0, 0.00024008316707892853, 0.0, 0.0, 0.4429941865632019, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08351200806876206, 0.0, 0.0, 0.3644144714136701, 0.0, 0.25850208657414453, 0.3044172676246769, 0.0, 0.0, 0.0, 0.42064905943656483, 0.5410542431685182, 0.0, 0.0, 0.0235250266831074, 0.17227146855360218, 0.0, 0.0, 0.11190852746246406, 0.0, 0.0, 0.0, 0.0, 0.14411942384547258, 0.0, 0.0, 0.4237744107411662, 0.0, 0.2972186074559964, 0.0, 0.5397314242092841, 0.4632402464002124, 0.0, 0.5786606886346829, 0.0, 0.0, 0.47789419623388885, 0.0, 0.0, 0.0, 0.10580588439167306, 0.0, 0.0, 0.7377357792707717, 0.0, 0.10579038780894534, 0.0, 0.0, 0.0, 0.045139981578782816, 0.0, 0.0, 0.11584045845995011, 0.0, 0.0, 0.019771431213384455, 0.36490249309768175, 0.35310751173091487, 1.1149184594112733, 0.0, 0.0, 0.0, 0.5857527772485364, 0.44959707967332574, 0.1008560617277558, 0.018841708015473753, 0.7001531183110316, 0.0, 0.0, 0.0, 0.5946141177445001, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22666010948008636, 0.0, 0.0, 0.0, 0.0, 0.0, 0.014782177343261123, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02695824533437821, 0.0, 0.0, 0.0, 0.016838719448302838, 0.0, 0.0, 0.0, 0.08231997245985787, 0.0, 0.0, 0.0, 0.01058107131899943, 0.0, 0.05814319369896461, 0.0, 0.0, 0.0, 0.0, 0.047348036509572325, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019563192629043182, 0.027295875565384514, 0.0, 0.0, 0.0, 0.0, 0.33629932740438834, 0.0, 0.0, 0.0, 0.32394391802925426, 0.5704070896351352, 0.0, 0.14173474826201982, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6013127745008292, 0.0, 0.7561985490243033, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2959306772073682, 0.2539911401819114, 0.0, 0.0, 0.7300245622804938, 0.0, 0.2367914528076339, 0.0, 0.0, 0.0, 0.33628005236128533, 0.025934644678944505, 0.0, 0.06026134263178236, 0.0, 0.0, 0.03662105153743461, 0.06883834406728133, 0.0, 0.0, 0.21279478779844782, 0.0, 0.0, 0.07129569822964256, 0.0, 0.09738688258412649, 0.06246220065656896, 0.0, 0.059045957391141574, 0.0, 0.006923917652553149, 0.051490108793371445, 0.0, 0.16644468958034975, 0.19015418061029377, 0.10882376279915186, 0.06400227485256132, 0.2644778831991808, 0.0, 0.19849197355887785, 0.0, 0.0010725148648749981, 0.12198011848273568, 0.1548472256356659, 0.0, 0.009305339154304988, 0.0, 0.10589543929012146, 0.0, 0.0, 0.17178211974814458, 0.0, 0.23085925511580369, 0.0, 0.0, 0.0, 0.31374773386794685, 0.0, 0.4234572393895347, 0.0, 0.0, 0.0, 0.045888478821935044, 0.0, 0.0, 0.13665231391596233, 0.0, 0.05546447903889757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15847133453228077, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3148706017686264, 0.2655048691833022, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.28333620483908656, 0.0, 0.0, 0.0, 0.3208604446677971, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25931056270601605, 0.0, 0.0, 0.20842242702467234, 0.0, 0.0, 0.28681902268117093, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2978149918318377, 0.0, 0.0, 0.09574337597144772, 0.0, 0.0, 0.38017827065442816, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03128644702667798, 0.0, 0.0, 0.0]), 42), 42)),) From 3fd500c398ce83a5ffe2817b89fc2b3d96b0b5f2 Mon Sep 17 00:00:00 2001 From: Teo Date: Tue, 27 Feb 2024 16:37:12 -0500 Subject: [PATCH 14/41] Delete src/tensors/levels/separationlevel.jl --- src/tensors/levels/separationlevel.jl | 235 -------------------------- 1 file changed, 235 deletions(-) delete mode 100644 src/tensors/levels/separationlevel.jl diff --git a/src/tensors/levels/separationlevel.jl b/src/tensors/levels/separationlevel.jl deleted file mode 100644 index 2883e798f..000000000 --- a/src/tensors/levels/separationlevel.jl +++ /dev/null @@ -1,235 +0,0 @@ -""" - SeparationLevel{Lvl, [Val]}() - -A subfiber of a Separation level is a separate tensor of type `Lvl`, in it's -own memory space. - -Each sublevel is stored in a vector of type `Val` with `eltype(Val) = Lvl`. - -```jldoctest -julia> Tensor(Dense(Separation(Element(0.0))), [1, 2, 3]) -Dense [1:3] -├─[1]: Pointer -> 1.0 -├─[2]: Pointer -> 2.0 -├─[3]: Pointer -> 3.0 -``` -""" -struct SeparationLevel{Val, Lvl} <: AbstractLevel - val::Val - lvl::Lvl -end -const Separation = SeparationLevel - -SeparationLevel(lvl::Lvl) where {Lvl} = SeparationLevel([lvl], lvl) -SeparationLevel{Val, Lvl}(lvl::Lvl) where {Val, Lvl} = SeparationLevel{Val, Lvl}([lvl], lvl) -Base.summary(::Separation{Val, Lvl}) where {Val, Lvl} = "Separation($(Lvl))" - -similar_level(lvl::Separation{Val, Lvl}) where {Val, Lvl} = SeparationLevel{Val, Lvl}(similar_level(lvl.lvl)) - -postype(::Type{<:Separation{Val, Lvl}}) where {Val, Lvl} = postype(Lvl) - -function moveto(lvl::SeparationLevel, device) - lvl_2 = moveto(lvl.lvl, device) - val_2 = moveto(lvl.val, device) - return SeparationLevel(val_2, lvl_2) -end - -pattern!(lvl::SeparationLevel) = SeparationLevel(map(pattern!, lvl.val), pattern!(lvl.lvl)) -redefault!(lvl::SeparationLevel, init) = SeparationLevel(map(lvl_2->redefault!(lvl_2, init), lvl.val), redefault!(lvl.lvl, init)) -Base.resize!(lvl::SeparationLevel, dims...) = SeparationLevel(map(lvl_2->resize!(lvl_2, dims...), lvl.val), resize!(lvl.lvl, dims...)) - - -function Base.show(io::IO, lvl::SeparationLevel{Val, Lvl}) where {Val, Lvl} - print(io, "Separation(") - if get(io, :compact, false) - print(io, "…") - else - show(IOContext(io, :typeinfo=>Val), lvl.val) - print(io, ", ") - show(IOContext(io, :typeinfo=>Val), lvl.lvl) - end - print(io, ")") -end - -function display_fiber(io::IO, mime::MIME"text/plain", fbr::SubFiber{<:SeparationLevel}, depth) - p = fbr.pos - lvl = fbr.lvl - if p > length(lvl.val) - print(io, "Pointer -> undef") - return - end - print(io, "Pointer -> ") - display_fiber(io, mime, SubFiber(fbr.lvl.val[p], 1), depth) -end - -@inline level_ndims(::Type{<:SeparationLevel{Val, Lvl}}) where {Val, Lvl} = level_ndims(Lvl) -@inline level_size(lvl::SeparationLevel{Val, Lvl}) where {Val, Lvl} = level_size(lvl.lvl) -@inline level_axes(lvl::SeparationLevel{Val, Lvl}) where {Val, Lvl} = level_axes(lvl.lvl) -@inline level_eltype(::Type{SeparationLevel{Val, Lvl}}) where {Val, Lvl} = level_eltype(Lvl) -@inline level_default(::Type{<:SeparationLevel{Val, Lvl}}) where {Val, Lvl} = level_default(Lvl) - -(fbr::Tensor{<:SeparationLevel})() = SubFiber(fbr.lvl, 1)() -(fbr::SubFiber{<:SeparationLevel})() = fbr #TODO this is not consistent somehow -function (fbr::SubFiber{<:SeparationLevel})(idxs...) - q = fbr.pos - return Tensor(fbr.lvl.val[q])(idxs...) -end - -countstored_level(lvl::SeparationLevel, pos) = pos - -mutable struct VirtualSeparationLevel <: AbstractVirtualLevel - lvl # stand in for the sublevel for virutal resize, etc. - ex - Tv - Val - Lvl -end - -function virtual_moveto_level(lvl::VirtualSeparationLevel, ctx, arch) - virtual_moveto_level(lvl.lvl, ctx, arch) -end - -postype(lvl:: VirtualSeparationLevel) = postype(lvl.lvl) - -is_level_injective(lvl::VirtualSeparationLevel, ctx) = [is_level_injective(lvl.lvl, ctx)..., true] -is_level_concurrent(lvl::VirtualSeparationLevel, ctx) = [is_level_concurrent(lvl.lvl, ctx)..., true] -is_level_atomic(lvl::VirtualSeparationLevel, ctx) = is_level_atomic(lvl.lvl, ctx) - -function lower(lvl::VirtualSeparationLevel, ctx::AbstractCompiler, ::DefaultStyle) - quote - $SeparationLevel{$(lvl.Val), $(lvl.Lvl)}($(lvl.ex).val, $(ctx(lvl.lvl))) - end -end - -function virtualize(ex, ::Type{SeparationLevel{Val, Lvl}}, ctx, tag=:lvl) where {Val, Lvl} - sym = freshen(ctx, tag) - push!(ctx.preamble, quote - $sym = $ex - end) - lvl_2 = virtualize(:($ex.lvl), Lvl, ctx, sym) - VirtualSeparationLevel(lvl_2, sym, typeof(level_default(Lvl)), Val, Lvl) -end - -Base.summary(lvl::VirtualSeparationLevel) = "Separation($(lvl.Lvl))" - -virtual_level_resize!(lvl::VirtualSeparationLevel, ctx, dims...) = (lvl.lvl = virtual_level_resize!(lvl.lvl, ctx, dims...); lvl) -virtual_level_size(lvl::VirtualSeparationLevel, ctx) = virtual_level_size(lvl.lvl, ctx) -virtual_level_eltype(lvl::VirtualSeparationLevel) = virtual_level_eltype(lvl.lvl) -virtual_level_default(lvl::VirtualSeparationLevel) = virtual_level_default(lvl.lvl) - -function declare_level!(lvl::VirtualSeparationLevel, ctx, pos, init) - #declare_level!(lvl.lvl, ctx_2, literal(1), init) - return lvl -end - -function assemble_level!(lvl::VirtualSeparationLevel, ctx, pos_start, pos_stop) - pos_start = cache!(ctx, :pos_start, simplify(pos_start, ctx)) - pos_stop = cache!(ctx, :pos_stop, simplify(pos_stop, ctx)) - idx = freshen(ctx.code, :idx) - sym = freshen(ctx.code, :pointer_to_lvl) - push!(ctx.code.preamble, quote - Finch.resize_if_smaller!($(lvl.ex).val, $(ctx(pos_stop))) - for $idx in $(ctx(pos_start)):$(ctx(pos_stop)) - $sym = similar_level($(lvl.ex).lvl) - $(contain(ctx) do ctx_2 - lvl_2 = virtualize(sym, lvl.Lvl, ctx_2.code, sym) - lvl_2 = declare_level!(lvl_2, ctx_2, literal(0), literal(virtual_level_default(lvl_2))) - lvl_2 = virtual_level_resize!(lvl_2, ctx_2, virtual_level_size(lvl.lvl, ctx_2)...) - push!(ctx_2.code.preamble, assemble_level!(lvl_2, ctx_2, literal(1), literal(1))) - lvl_2 = freeze_level!(lvl_2, ctx_2, literal(1)) - :($(lvl.ex).val[$idx] = $(ctx_2(lvl_2))) - end) - end - end) - lvl -end - -supports_reassembly(::VirtualSeparationLevel) = true -function reassemble_level!(lvl::VirtualSeparationLevel, ctx, pos_start, pos_stop) - pos_start = cache!(ctx, :pos_start, simplify(pos_start, ctx)) - pos_stop = cache!(ctx, :pos_stop, simplify(pos_stop, ctx)) - idx = freshen(ctx.code, :idx) - push!(ctx.code.preamble, quote - for $idx in $(ctx(pos_start)):$(ctx(pos_stop)) - $(contain(ctx) do ctx_2 - lvl_2 = virtualize(:($(lvl.ex).val[$idx]), lvl.Lvl, ctx_2.code, sym) - declare_level!(lvl_2, ctx_2, literal(1), init) - push!(ctx_2.code.preamble, assemble_level!(lvl_2, ctx, literal(1), literal(1))) - lvl_2 = freeze_level!(lvl_2, ctx, literal(1)) - :($(lvl.ex).val[$idx] = $(ctx_2(lvl_2))) - end) - end - end) - lvl -end - -function freeze_level!(lvl::VirtualSeparationLevel, ctx, pos) - return lvl -end - -function thaw_level!(lvl::VirtualSeparationLevel, ctx::AbstractCompiler, pos) - return lvl -end - -function trim_level!(lvl::VirtualSeparationLevel, ctx::AbstractCompiler, pos) - idx = freshen(ctx.code, :idx) - sym = freshen(ctx.code, :pointer_to_lvl) - - push!(ctx.code.preamble, quote - for $idx in 1:$(ctx(pos)) - $(contain(ctx) do ctx_2 - lvl_2 = virtualize(:($(lvl.ex).val[$idx]), lvl.Lvl, ctx_2.code, sym) - trim_level!(lvl_2, ctx_2, literal(1)) - end) - end - end) - lvl -end - -function instantiate(fbr::VirtualSubFiber{VirtualSeparationLevel}, ctx, mode::Reader, protos) - (lvl, pos) = (fbr.lvl, fbr.pos) - tag = lvl.ex - isnulltest = freshen(ctx.code, tag, :_nulltest) - D = level_default(lvl.Lvl) - sym = freshen(ctx.code, :pointer_to_lvl) - val = freshen(ctx.code, lvl.ex, :_val) - return body = Thunk( - body = (ctx) -> begin - lvl_2 = virtualize(:($(lvl.ex).val[$(ctx(pos))]), lvl.Lvl, ctx.code, sym) - instantiate(VirtualSubFiber(lvl_2, literal(1)), ctx, mode, protos) - end, - ) -end - -function instantiate(fbr::VirtualSubFiber{VirtualSeparationLevel}, ctx, mode::Updater, protos) - (lvl, pos) = (fbr.lvl, fbr.pos) - tag = lvl.ex - sym = freshen(ctx.code, :pointer_to_lvl) - - return body = Thunk( - body = (ctx) -> begin - lvl_2 = virtualize(:($(lvl.ex).val[$(ctx(pos))]), lvl.Lvl, ctx.code, sym) - thaw_level!(lvl_2, ctx, literal(1)) - push!(ctx.code.preamble, assemble_level!(lvl_2, ctx, literal(1), literal(1))) - res = instantiate(VirtualSubFiber(lvl_2, literal(1)), ctx, mode, protos) - freeze_level!(lvl, ctx, literal(1)) - res - end - ) -end -function instantiate(fbr::VirtualHollowSubFiber{VirtualSeparationLevel}, ctx, mode::Updater, protos) - (lvl, pos) = (fbr.lvl, fbr.pos) - tag = lvl.ex - sym = freshen(ctx.code, :pointer_to_lvl) - - return body = Thunk( - body = (ctx) -> begin - lvl_2 = virtualize(:($(lvl.ex).val[$(ctx(pos))]), lvl.Lvl, ctx.code, sym) - thaw_level!(lvl_2, ctx, literal(1)) - push!(ctx.code.preamble, assemble_level!(lvl_2, ctx, literal(1), literal(1))) - res = instantiate(VirtualHollowSubFiber(lvl_2, literal(1), fbr.dirty), ctx, mode, protos) - freeze_level!(lvl, ctx, literal(1)) - res - end - ) -end From 92d48bc75ad379fbda5b4f70c0f037dbddb14ba3 Mon Sep 17 00:00:00 2001 From: teocollin1995 Date: Tue, 27 Feb 2024 17:29:15 -0500 Subject: [PATCH 15/41] synch --- src/architecture.jl | 3 ++- src/execute.jl | 12 ++++++------ src/tensors/levels/separatelevels.jl | 9 +++++---- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/src/architecture.jl b/src/architecture.jl index ae0c4a207..5a7fad375 100644 --- a/src/architecture.jl +++ b/src/architecture.jl @@ -156,5 +156,6 @@ function moveto(vec::Vector, task::CPUThread) end function moveto(vec::CPULocalVector, task::CPUThread) - return vec.data[task.tid] + temp = vec.data[task.tid] + return temp end diff --git a/src/execute.jl b/src/execute.jl index 187513992..d96d3a63d 100644 --- a/src/execute.jl +++ b/src/execute.jl @@ -62,15 +62,15 @@ execute(ex) = execute(ex, NamedTuple()) contain(JuliaContext()) do ctx code = execute_code(:ex, ex; virtualize(:opts, opts, ctx)...) quote - # try + try @inbounds begin $(code |> unblock) end - # catch - # println("Error executing code:") - # println($(QuoteNode(code |> unblock |> pretty |> unquote_literals))) - # rethrow() - #end + catch + println("Error executing code:") + println($(QuoteNode(code |> unblock |> pretty |> unquote_literals))) + rethrow() + end end end end diff --git a/src/tensors/levels/separatelevels.jl b/src/tensors/levels/separatelevels.jl index f41c27f12..e907fe8a2 100644 --- a/src/tensors/levels/separatelevels.jl +++ b/src/tensors/levels/separatelevels.jl @@ -90,8 +90,8 @@ end postype(lvl:: VirtualSeparateLevel) = postype(lvl.lvl) -is_level_injective(::VirtualSeparateLevel, ctx) = [is_level_injective(lvl.lvl, ctx)..., true] -is_level_concurrent(::VirtualSeparateLevel, ctx) = [is_level_concurrent(lvl.lvl, ctx)..., true] +is_level_injective(lvl::VirtualSeparateLevel, ctx) = [is_level_injective(lvl.lvl, ctx)..., true] +is_level_concurrent(lvl::VirtualSeparateLevel, ctx) = [is_level_concurrent(lvl.lvl, ctx)..., true] is_level_atomic(lvl::VirtualSeparateLevel, ctx) = is_level_atomic(lvl.lvl, ctx) function lower(lvl::VirtualSeparateLevel, ctx::AbstractCompiler, ::DefaultStyle) @@ -120,16 +120,17 @@ virtual_level_eltype(lvl::VirtualSeparateLevel) = virtual_level_eltype(lvl.lvl) virtual_level_default(lvl::VirtualSeparateLevel) = virtual_level_default(lvl.lvl) function virtual_moveto_level(lvl::VirtualSeparateLevel, ctx, arch) - virtual_moveto_level(lvl.lvl, ctx, arch) + # Need to move each pointer... pointers = freshen(ctx.code, lvl.val) push!(ctx.code.preamble, quote $pointers = $(lvl.val) - $(lvl.val) = moveto($(lvl.val), $(ctx(arch))) + $(lvl.val) = $moveto($(lvl.val), $(ctx(arch))) end) push!(ctx.code.epilogue, quote $(lvl.val) = $pointers end) + virtual_moveto_level(lvl.lvl, ctx, arch) end From c4be1b8aa54f9f3376a1d5a8fc121f0cc89dc378 Mon Sep 17 00:00:00 2001 From: teocollin1995 Date: Wed, 28 Feb 2024 16:54:42 -0500 Subject: [PATCH 16/41] large update to parallel analysis --- src/tensors/combinators/product.jl | 5 +- src/tensors/combinators/toeplitz.jl | 6 +- src/tensors/levels/abstractlevel.jl | 3 + src/tensors/levels/atomicelementlevels.jl | 179 +++++++++++++++++++++ src/tensors/levels/atomiclevels.jl | 10 +- src/tensors/levels/denselevels.jl | 7 +- src/tensors/levels/elementlevels.jl | 3 +- src/tensors/levels/patternlevels.jl | 4 +- src/tensors/levels/repeatrlelevels.jl | 3 +- src/tensors/levels/separatelevels.jl | 6 +- src/tensors/levels/singlelistlevels.jl | 6 +- src/tensors/levels/singlerlelevels.jl | 7 +- src/tensors/levels/sparsebytemaplevels.jl | 6 +- src/tensors/levels/sparsecoolevels.jl | 7 +- src/tensors/levels/sparsehashlevels.jl | 7 +- src/tensors/levels/sparselevels.jl | 7 +- src/tensors/levels/sparselistlevels.jl | 7 +- src/tensors/levels/sparserlelevels.jl | 7 +- src/tensors/levels/sparsetrianglelevels.jl | 7 +- src/tensors/levels/sparsevbllevels.jl | 8 +- src/tensors/scalars.jl | 8 + src/transforms/concurrent.jl | 60 +++++-- 22 files changed, 333 insertions(+), 30 deletions(-) create mode 100644 src/tensors/levels/atomicelementlevels.jl diff --git a/src/tensors/combinators/product.jl b/src/tensors/combinators/product.jl index afaf395b0..9e159741b 100644 --- a/src/tensors/combinators/product.jl +++ b/src/tensors/combinators/product.jl @@ -25,7 +25,10 @@ function is_concurrent(lvl::VirtualProductArray, ctx) sub = is_concurrent(lvl.body, ctx) return [sub[1:lvl.dim]..., false, sub[lvl.dim + 1:end]...] end -is_atomic(lvl::VirtualProductArray, ctx) = is_atomic(lvl.body, ctx) +function is_atomic(lvl::VirtualProductArray, ctx) + (below, overall) = is_atomic(lvl.body, ctx) + return ([below[1:lvl.dim]..., below[lvl.dim] && below[lvl.dim+1], below[lvl.dim + 1:end]... ], overall) +end Base.show(io::IO, ex::VirtualProductArray) = Base.show(io, MIME"text/plain"(), ex) function Base.show(io::IO, mime::MIME"text/plain", ex::VirtualProductArray) diff --git a/src/tensors/combinators/toeplitz.jl b/src/tensors/combinators/toeplitz.jl index 64874da85..5a9d43f42 100644 --- a/src/tensors/combinators/toeplitz.jl +++ b/src/tensors/combinators/toeplitz.jl @@ -28,7 +28,11 @@ function is_injective(lvl::VirtualToeplitzArray, ctx) sub = is_injective(lvl.body, ctx) return [sub[1:lvl.dim]..., false, sub[lvl.dim + 1:end]...] end -is_atomic(lvl::VirtualToeplitzArray, ctx) = is_atomic(lvl.body, ctx) +function is_atomic(lvl::VirtualToeplitzArray, ctx) + (below, overall) = is_atomic(lvl.body, ctx) + newBelow = [below[1:lvl.dim]..., below[lvl.dim] && below[lvl.dim + 1], below[lvl.dim + 1:end]...] + return (newBelow, overall) +end Base.show(io::IO, ex::VirtualToeplitzArray) = Base.show(io, MIME"text/plain"(), ex) function Base.show(io::IO, mime::MIME"text/plain", ex::VirtualToeplitzArray) diff --git a/src/tensors/levels/abstractlevel.jl b/src/tensors/levels/abstractlevel.jl index 7f40aafcc..cc0a2fee8 100644 --- a/src/tensors/levels/abstractlevel.jl +++ b/src/tensors/levels/abstractlevel.jl @@ -1,6 +1,9 @@ abstract type AbstractLevel end abstract type AbstractVirtualLevel end +virtual_level_ndims(lvl:: AbstractVirtualLevel, ctx) = length(virtual_level_size(lvl, ctx)) + + #is_laminable_updater(lvl::AbstractVirtualLevel, ctx, ::Union{::typeof(defaultread), ::typeof(walk), ::typeof(gallop), ::typeof(follow), typeof(defaultupdate), typeof(laminate), typeof(extrude)}, protos...) = false #is_laminable_updater(lvl::AbstractVirtualLevel, ctx) = false diff --git a/src/tensors/levels/atomicelementlevels.jl b/src/tensors/levels/atomicelementlevels.jl new file mode 100644 index 000000000..0b42c24f7 --- /dev/null +++ b/src/tensors/levels/atomicelementlevels.jl @@ -0,0 +1,179 @@ +""" + AtomicElementLevel{D, [Tv=typeof(D)], [Tp=Int], [Val]}() + +A subfiber of an element level is a scalar of type `Tv`, initialized to `D`. `D` +may optionally be given as the first argument. + +The data is stored in a vector +of type `Val` with `eltype(Val) = Tv`. The type `Ti` is the index type used to +access Val. + +```jldoctest +julia> Tensor(Dense(Element(0.0)), [1, 2, 3]) +Dense [1:3] +├─ [1]: 1.0 +├─ [2]: 2.0 +└─ [3]: 3.0 +``` +""" +struct AtomicElementLevel{D, Tv, Tp, Val, AVal <: AbstractVector} <: AbstractLevel + val::Val + locks::AVal +end +const Element = ElementLevel + +function ElementLevel(d, args...) + isbits(d) || throw(ArgumentError("Finch currently only supports isbits defaults")) + ElementLevel{d}(args...) +end +AtomicElementLevel{D}() where {D} = ElementLevel{D, typeof(D)}() +AtomicElementLevel{D}(val::Val) where {D, Val} = ElementLevel{D, eltype(Val)}(val) +AtomicElementLevel{D, Tv}(args...) where {D, Tv} = ElementLevel{D, Tv, Int}(args...) +AtomicElementLevel{D, Tv, Tp}() where {D, Tv, Tp} = ElementLevel{D, Tv, Tp}(Tv[]) + +AtomicElementLevel{D, Tv, Tp}(val::Val) where {D, Tv, Tp, Val} = ElementLevel{D, Tv, Tp, Val}(val) + +Base.summary(::AtomicElementLevel{D}) where {D} = "AtomicElementLevel($(D))" + +similar_level(::AtomicElementLevel{D, Tv, Tp}) where {D, Tv, Tp} = AtomicElementLevel{D, Tv, Tp}() + +postype(::Type{<:AtomicElementLevel{D, Tv, Tp}}) where {D, Tv, Tp} = Tp + +function moveto(lvl::ElementLevel{D, Tv, Tp}, device) where {D, Tv, Tp} + return ElementLevel{D, Tv, Tp}(moveto(lvl.val, device)) +end + +pattern!(lvl::AtomicElementLevel{D, Tv, Tp}) where {D, Tv, Tp} = + Pattern{Tp}() +redefault!(lvl::AtomicElementLevel{D, Tv, Tp}, init) where {D, Tv, Tp} = +AtomicElementLevel{init, Tv, Tp}(lvl.val) +Base.resize!(lvl::AtomicElementLevel) = lvl + +function Base.show(io::IO, lvl::AtomicElementLevel{D, Tv, Tp, Val}) where {D, Tv, Tp, Val} + print(io, "AtomicElement{") + show(io, D) + print(io, ", $Tv, $Tp}(") + if get(io, :compact, false) + print(io, "…") + else + show(io, lvl.val) + end + print(io, ")") +end + +labelled_show(io::IO, fbr::SubFiber{<:AtomicElementLevel}) = + print(io, fbr.lvl.val[fbr.pos]) + +@inline level_ndims(::Type{<:AtomicElementLevel}) = 0 +@inline level_size(::AtomicElementLevel) = () +@inline level_axes(::AtomicElementLevel) = () +@inline level_eltype(::Type{<:AtomicElementLevel{D, Tv}}) where {D, Tv} = Tv +@inline level_default(::Type{<:AtomicElementLevel{D}}) where {D} = D +data_rep_level(::Type{<:AtomicElementLevel{D, Tv}}) where {D, Tv} = ElementData(D, Tv) + +(fbr::Tensor{<:AtomicElementLevel})() = SubFiber(fbr.lvl, 1)() +function (fbr::SubFiber{<:AtomicElementLevel})() + q = fbr.pos + return fbr.lvl.val[q] +end + +countstored_level(lvl::AtomicElementLevel, pos) = pos + +mutable struct VirtualAtomicElementLevel <: AbstractVirtualLevel + ex + D + Tv + Tp + val +end + +is_level_injective(::VirtualAtomicElementLevel, ctx) = [] +is_level_atomic(lvl::VirtualAtomicElementLevel, ctx) = ([], true) +num_indexable(lvl::VirtualAtomicElementLevel, ctx) = 0 + +lower(lvl::VirtualAtomicElementLevel, ctx::AbstractCompiler, ::DefaultStyle) = lvl.ex + +function virtualize(ex, ::Type{AtomicElementLevel{D, Tv, Tp, Val}}, ctx, tag=:lvl) where {D, Tv, Tp, Val} + sym = freshen(ctx, tag) + val = freshen(ctx, tag, :_val) + push!(ctx.preamble, quote + $sym = $ex + $val = $ex.val + end) + VirtualAtomicElementLevel(sym, D, Tv, Tp, val) +end + +Base.summary(lvl::VirtualAtomicElementLevel) = "AtomicElement($(lvl.D))" + +virtual_level_resize!(lvl::VirtualAtomicElementLevel, ctx) = lvl +virtual_level_size(::VirtualAtomicElementLevel, ctx) = () +virtual_level_ndims(lvl::VirtualAtomicLevel, ctx) = length(virtual_level_size(lvl, ctx)) +virtual_level_eltype(lvl::VirtualAtomicElementLevel) = lvl.Tv +virtual_level_default(lvl::VirtualAtomicElementLevel) = lvl.D + +postype(lvl::VirtualAtomicElementLevel) = lvl.Tp + +function declare_level!(lvl::VirtualAtomicElementLevel, ctx, pos, init) + init == literal(lvl.D) || throw(FinchProtocolError("Cannot initialize Element Levels to non-default values (have $init expected $(lvl.D))")) + lvl +end + +function freeze_level!(lvl::VirtualAtomicElementLevel, ctx::AbstractCompiler, pos) + push!(ctx.code.preamble, quote + resize!($(lvl.val), $(ctx(pos))) + end) + return lvl +end + +thaw_level!(lvl::VirtualAtomicElementLevel, ctx::AbstractCompiler, pos) = lvl + +function assemble_level!(lvl::VirtualAtomicElementLevel, ctx, pos_start, pos_stop) + pos_start = cache!(ctx, :pos_start, simplify(pos_start, ctx)) + pos_stop = cache!(ctx, :pos_stop, simplify(pos_stop, ctx)) + quote + Finch.resize_if_smaller!($(lvl.val), $(ctx(pos_stop))) + Finch.fill_range!($(lvl.val), $(lvl.D), $(ctx(pos_start)), $(ctx(pos_stop))) + end +end + +supports_reassembly(::VirtualAtomicElementLevel) = true +function reassemble_level!(lvl::VirtualAtomicElementLevel, ctx, pos_start, pos_stop) + pos_start = cache!(ctx, :pos_start, simplify(pos_start, ctx)) + pos_stop = cache!(ctx, :pos_stop, simplify(pos_stop, ctx)) + push!(ctx.code.preamble, quote + Finch.fill_range!($(lvl.val), $(lvl.D), $(ctx(pos_start)), $(ctx(pos_stop))) + end) + lvl +end + +function virtual_moveto_level(lvl::VirtualAtomicElementLevel, ctx::AbstractCompiler, arch) + val_2 = freshen(ctx.code, :val) + push!(ctx.code.preamble, quote + $val_2 = $(lvl.val) + $(lvl.val) = $moveto($(lvl.val), $(ctx(arch))) + end) + push!(ctx.code.epilogue, quote + $(lvl.val) = $val_2 + end) +end + +function instantiate(fbr::VirtualSubFiber{VirtualAtomicElementLevel}, ctx, mode::Reader, protos) + (lvl, pos) = (fbr.lvl, fbr.pos) + val = freshen(ctx.code, lvl.ex, :_val) + return Thunk( + preamble = quote + $val = $(lvl.val)[$(ctx(pos))] + end, + body = (ctx) -> VirtualScalar(nothing, lvl.Tv, lvl.D, gensym(), val) + ) +end + +function instantiate(fbr::VirtualSubFiber{VirtualAtomicElementLevel}, ctx, mode::Updater, protos) + (lvl, pos) = (fbr.lvl, fbr.pos) + VirtualScalar(nothing, lvl.Tv, lvl.D, gensym(), :($(lvl.val)[$(ctx(pos))])) +end + +function instantiate(fbr::VirtualHollowSubFiber{VirtualAtomicElementLevel}, ctx, mode::Updater, protos) + (lvl, pos) = (fbr.lvl, fbr.pos) + VirtualSparseScalar(nothing, lvl.Tv, lvl.D, gensym(), :($(lvl.val)[$(ctx(pos))]), fbr.dirty) +end \ No newline at end of file diff --git a/src/tensors/levels/atomiclevels.jl b/src/tensors/levels/atomiclevels.jl index 6376a297e..124f72367 100644 --- a/src/tensors/levels/atomiclevels.jl +++ b/src/tensors/levels/atomiclevels.jl @@ -91,9 +91,14 @@ postype(lvl:: AtomicLevel) = postype(lvl.lvl) postype(lvl:: VirtualAtomicLevel) = postype(lvl.lvl) -is_level_injective(lvl::VirtualAtomicLevel, ctx) = [is_level_injective(lvl.lvl, ctx)..., true] +is_level_injective(lvl::VirtualAtomicLevel, ctx) = [is_level_injective(lvl.lvl, ctx)...] is_level_concurrent(lvl::VirtualAtomicLevel, ctx) = [is_level_concurrent(lvl.lvl, ctx)..., true] -is_level_atomic(lvl::VirtualAtomicLevel, ctx) = true +function is_level_atomic(lvl::VirtualAtomicLevel, ctx) + below = is_level_atomic(lvl.lvl, ctx) + return (below, true) +end +num_indexable(lvl::VirtualAtomicLevel, ctx) = virtual_level_ndims(lvl) - virtual_level_ndims(lvl.lvl) + function lower(lvl::VirtualAtomicLevel, ctx::AbstractCompiler, ::DefaultStyle) quote @@ -116,6 +121,7 @@ end Base.summary(lvl::VirtualAtomicLevel) = "Atomic($(lvl.Lvl))" virtual_level_resize!(lvl::VirtualAtomicLevel, ctx, dims...) = (lvl.lvl = virtual_level_resize!(lvl.lvl, ctx, dims...); lvl) virtual_level_size(lvl::VirtualAtomicLevel, ctx) = virtual_level_size(lvl.lvl, ctx) +virtual_level_ndims(lvl::VirtualAtomicLevel, ctx) = length(virtual_level_size(lvl.lvl, ctx)) virtual_level_size(x, ctx) = error(string("Not defined for", x)) virtual_level_eltype(lvl::VirtualAtomicLevel) = virtual_level_eltype(lvl.lvl) virtual_level_default(lvl::VirtualAtomicLevel) = virtual_level_default(lvl.lvl) diff --git a/src/tensors/levels/denselevels.jl b/src/tensors/levels/denselevels.jl index 0dbf0ea35..12ac8adc0 100644 --- a/src/tensors/levels/denselevels.jl +++ b/src/tensors/levels/denselevels.jl @@ -106,7 +106,12 @@ mutable struct VirtualDenseLevel <: AbstractVirtualLevel end is_level_injective(lvl::VirtualDenseLevel, ctx) = [is_level_injective(lvl.lvl, ctx)..., true] -is_level_atomic(lvl::VirtualDenseLevel, ctx) = is_level_atomic(lvl.lvl, ctx) +function is_level_atomic(lvl::VirtualDenseLevel, ctx) + (data, atomic) = is_level_atomic(lvl.lvl, ctx) + return ([data; [atomic for _ in 1:num_indexable(lvl, ctx)]]) +end +num_indexable(lvl::VirtualAtomicLevel, ctx) = virtual_level_ndims(lvl, ctx) - virtual_level_ndims(lvl.lvl, ctx) + function virtualize(ex, ::Type{DenseLevel{Ti, Lvl}}, ctx, tag=:lvl) where {Ti, Lvl} sym = freshen(ctx, tag) diff --git a/src/tensors/levels/elementlevels.jl b/src/tensors/levels/elementlevels.jl index f2ceb2cad..df5f6e350 100644 --- a/src/tensors/levels/elementlevels.jl +++ b/src/tensors/levels/elementlevels.jl @@ -87,7 +87,8 @@ mutable struct VirtualElementLevel <: AbstractVirtualLevel end is_level_injective(::VirtualElementLevel, ctx) = [] -is_level_atomic(lvl::VirtualElementLevel, ctx) = false +is_level_atomic(lvl::VirtualElementLevel, ctx) = ([], false) +num_indexable(lvl::VirtualElementLevel, ctx) = 0 lower(lvl::VirtualElementLevel, ctx::AbstractCompiler, ::DefaultStyle) = lvl.ex diff --git a/src/tensors/levels/patternlevels.jl b/src/tensors/levels/patternlevels.jl index 9c7519a25..10ab44b38 100644 --- a/src/tensors/levels/patternlevels.jl +++ b/src/tensors/levels/patternlevels.jl @@ -85,7 +85,9 @@ function virtual_moveto_level(lvl::VirtualPatternLevel, ctx::AbstractCompiler, a end is_level_injective(::VirtualPatternLevel, ctx) = [] -is_level_atomic(lvl::VirtualPatternLevel, ctx) = true +is_level_atomic(lvl::VirtualPatternLevel, ctx) = ([], false) +num_indexable(lvl::VirtualElementLevel, ctx) = 0 + lower(lvl::VirtualPatternLevel, ctx::AbstractCompiler, ::DefaultStyle) = :(PatternLevel()) virtualize(ex, ::Type{PatternLevel{Tp}}, ctx) where {Tp} = VirtualPatternLevel(Tp) diff --git a/src/tensors/levels/repeatrlelevels.jl b/src/tensors/levels/repeatrlelevels.jl index 17869c867..2e442b0be 100644 --- a/src/tensors/levels/repeatrlelevels.jl +++ b/src/tensors/levels/repeatrlelevels.jl @@ -135,7 +135,8 @@ mutable struct VirtualRepeatRLELevel <: AbstractVirtualLevel prev_pos end is_level_injective(::VirtualRepeatRLELevel, ctx) = [false] -is_level_atomic(lvl::VirtualRepeatRLELevel, ctx) = false +is_level_atomic(lvl::VirtualRepeatRLELevel, ctx) = ([], false) +num_indexable(lvl::VirtualPatternLevel, ctx) = length(lvl.shape) function virtualize(ex, ::Type{RepeatRLELevel{D, Ti, Tp, Tv, Ptr, Idx, Val}}, ctx, tag=:lvl) where {D, Ti, Tp, Tv, Ptr, Idx, Val} sym = freshen(ctx, tag) diff --git a/src/tensors/levels/separatelevels.jl b/src/tensors/levels/separatelevels.jl index e907fe8a2..db345e380 100644 --- a/src/tensors/levels/separatelevels.jl +++ b/src/tensors/levels/separatelevels.jl @@ -92,7 +92,11 @@ postype(lvl:: VirtualSeparateLevel) = postype(lvl.lvl) is_level_injective(lvl::VirtualSeparateLevel, ctx) = [is_level_injective(lvl.lvl, ctx)..., true] is_level_concurrent(lvl::VirtualSeparateLevel, ctx) = [is_level_concurrent(lvl.lvl, ctx)..., true] -is_level_atomic(lvl::VirtualSeparateLevel, ctx) = is_level_atomic(lvl.lvl, ctx) +num_indexable(lvl::VirtualPatternLevel, ctx) = virtual_level_ndims(lvl, ctx) - virtual_level_ndims(lvl.lvl, ctx) +function is_level_atomic(lvl::VirtualSeparateLevel, ctx) + (below, atomic) = is_level_atomic(lvl.lvl, ctx) + return ([below; [atomic for _ in 1:num_indexable(lvl, ctx)]], atomic) +end function lower(lvl::VirtualSeparateLevel, ctx::AbstractCompiler, ::DefaultStyle) quote diff --git a/src/tensors/levels/singlelistlevels.jl b/src/tensors/levels/singlelistlevels.jl index c98afe14d..1645ab9a0 100644 --- a/src/tensors/levels/singlelistlevels.jl +++ b/src/tensors/levels/singlelistlevels.jl @@ -142,7 +142,11 @@ mutable struct VirtualSingleListLevel <: AbstractVirtualLevel end is_level_injective(lvl::VirtualSingleListLevel, ctx) = [is_level_injective(lvl.lvl, ctx)..., false] -is_level_atomic(lvl::VirtualSingleListLevel, ctx) = false +function is_level_atomic(lvl::VirtualSeparateLevel, ctx) + (below, atomic) = is_level_atomic(lvl.lvl, ctx) + return ([below; [atomic for _ in 1:num_indexable(lvl, ctx)]], atomic) +end +num_indexable(lvl::VirtualSingleListLevel, ctx) = virtual_level_ndims(lvl, ctx) - virtual_level_ndims(lvl.lvl, ctx) function virtualize(ex, ::Type{SingleListLevel{Ti, Ptr, Idx, Lvl}}, ctx, tag=:lvl) where {Ti, Ptr, Idx, Lvl} sym = freshen(ctx, tag) diff --git a/src/tensors/levels/singlerlelevels.jl b/src/tensors/levels/singlerlelevels.jl index 68e0b086c..cfc685ee1 100644 --- a/src/tensors/levels/singlerlelevels.jl +++ b/src/tensors/levels/singlerlelevels.jl @@ -145,7 +145,12 @@ end is_level_injective(lvl::VirtualSingleRLELevel, ctx) = [false, is_level_injective(lvl.lvl, ctx)...] is_level_concurrent(lvl::VirtualSingleRLELevel, ctx) = [false, is_level_concurrent(lvl.lvl, ctx)...] -is_level_atomic(lvl::VirtualSingleRLELevel, ctx) = false +function is_level_atomic(lvl::VirtualSingleRLELevel, ctx) + (below, atomic) = is_level_atomic(lvl.lvl, ctx) + return ([below; [atomic for _ in 1:num_indexable(lvl, ctx)]], atomic) +end +num_indexable(lvl::VirtualSingleRLELevel, ctx) = virtual_level_ndims(lvl, ctx) - virtual_level_ndims(lvl.lvl, ctx) + function virtualize(ex, ::Type{SingleRLELevel{Ti, Ptr, Left, Right, Lvl}}, ctx, tag=:lvl) where {Ti, Ptr, Left, Right, Lvl} diff --git a/src/tensors/levels/sparsebytemaplevels.jl b/src/tensors/levels/sparsebytemaplevels.jl index 5ba7500f2..8984b643a 100644 --- a/src/tensors/levels/sparsebytemaplevels.jl +++ b/src/tensors/levels/sparsebytemaplevels.jl @@ -140,7 +140,11 @@ mutable struct VirtualSparseByteMapLevel <: AbstractVirtualLevel end is_level_injective(lvl::VirtualSparseByteMapLevel, ctx) = [is_level_injective(lvl.lvl, ctx)..., false] -is_level_atomic(lvl::VirtualSparseByteMapLevel, ctx) = false +function is_level_atomic(lvl::VirtualSparseByteMapLevel, ctx) + (below, atomic) = is_level_atomic(lvl.lvl, ctx) + return ([below; [atomic for _ in 1:num_indexable(lvl, ctx)]], atomic) +end +num_indexable(lvl::VirtualSparseByteMapLevel, ctx) = virtual_level_ndims(lvl, ctx) - virtual_level_ndims(lvl.lvl, ctx) function virtualize(ex, ::Type{SparseByteMapLevel{Ti, Ptr, Tbl, Srt, Lvl}}, ctx, tag=:lvl) where {Ti, Ptr, Tbl, Srt, Lvl} sym = freshen(ctx, tag) diff --git a/src/tensors/levels/sparsecoolevels.jl b/src/tensors/levels/sparsecoolevels.jl index a9bd882bc..1608e6f56 100644 --- a/src/tensors/levels/sparsecoolevels.jl +++ b/src/tensors/levels/sparsecoolevels.jl @@ -154,7 +154,12 @@ mutable struct VirtualSparseCOOLevel <: AbstractVirtualLevel end is_level_injective(lvl::VirtualSparseCOOLevel, ctx) = [is_level_injective(lvl.lvl, ctx)..., (true for _ in 1:lvl.N)...] -is_level_atomic(lvl::VirtualSparseCOOLevel, ctx) = false +function is_level_atomic(lvl::VirtualSparseCOOLevel, ctx) + (below, atomic) = is_level_atomic(lvl.lvl, ctx) + return ([below; [atomic for _ in 1:num_indexable(lvl, ctx)]], atomic) +end +num_indexable(lvl::VirtualSparseCOOLevel, ctx) = virtual_level_ndims(lvl, ctx) - virtual_level_ndims(lvl.lvl, ctx) + function virtualize(ex, ::Type{SparseCOOLevel{N, TI, Ptr, Tbl, Lvl}}, ctx, tag=:lvl) where {N, TI, Ptr, Tbl, Lvl} sym = freshen(ctx, tag) diff --git a/src/tensors/levels/sparsehashlevels.jl b/src/tensors/levels/sparsehashlevels.jl index 170775ba9..2a30b35e6 100644 --- a/src/tensors/levels/sparsehashlevels.jl +++ b/src/tensors/levels/sparsehashlevels.jl @@ -170,7 +170,12 @@ mutable struct VirtualSparseHashLevel <: AbstractVirtualLevel end is_level_injective(lvl::VirtualSparseHashLevel, ctx) = [is_level_injective(lvl.lvl, ctx)..., (true for _ in 1:lvl.N)...] -is_level_atomic(lvl::VirtualSparseHashLevel, ctx) = false +function is_level_atomic(lvl::VirtualSparseHashLevel, ctx) + (below, atomic) = is_level_atomic(lvl.lvl, ctx) + return ([below; [atomic for _ in 1:num_indexable(lvl, ctx)]], atomic) +end +num_indexable(lvl::VirtualSparseHashLevel, ctx) = virtual_level_ndims(lvl, ctx) - virtual_level_ndims(lvl.lvl, ctx) + function virtual_moveto_level(lvl::VirtualSparseHashLevel, ctx::AbstractCompiler, arch) ptr_2 = freshen(ctx.code, lvl.ptr) diff --git a/src/tensors/levels/sparselevels.jl b/src/tensors/levels/sparselevels.jl index 38b21a6b0..80d8bd90f 100644 --- a/src/tensors/levels/sparselevels.jl +++ b/src/tensors/levels/sparselevels.jl @@ -251,7 +251,12 @@ mutable struct VirtualSparseLevel <: AbstractVirtualLevel end is_level_injective(lvl::VirtualSparseLevel, ctx) = [is_level_injective(lvl.lvl, ctx)..., false] -is_level_atomic(lvl::VirtualSparseLevel, ctx) = false +function is_level_atomic(lvl::VirtualSparseHashLevel, ctx) + (below, atomic) = is_level_atomic(lvl.lvl, ctx) + return ([below; [atomic for _ in 1:num_indexable(lvl, ctx)]], atomic) +end +num_indexable(lvl::VirtualSparseLevel, ctx) = virtual_level_ndims(lvl, ctx) - virtual_level_ndims(lvl.lvl, ctx) + function virtualize(ex, ::Type{SparseLevel{Ti, Tbl, Lvl}}, ctx, tag=:lvl) where {Ti, Tbl, Lvl} sym = freshen(ctx, tag) diff --git a/src/tensors/levels/sparselistlevels.jl b/src/tensors/levels/sparselistlevels.jl index a195f55c5..92bea37ca 100644 --- a/src/tensors/levels/sparselistlevels.jl +++ b/src/tensors/levels/sparselistlevels.jl @@ -138,7 +138,12 @@ mutable struct VirtualSparseListLevel <: AbstractVirtualLevel end is_level_injective(lvl::VirtualSparseListLevel, ctx) = [is_level_injective(lvl.lvl, ctx)..., false] -is_level_atomic(lvl::VirtualSparseListLevel, ctx) = false +function is_level_atomic(lvl::VirtualSparseListLevel, ctx) + (below, atomic) = is_level_atomic(lvl.lvl, ctx) + return ([below; [atomic for _ in 1:num_indexable(lvl, ctx)]], atomic) +end +num_indexable(lvl::VirtualSparseListLevel, ctx) = virtual_level_ndims(lvl, ctx) - virtual_level_ndims(lvl.lvl, ctx) + function virtualize(ex, ::Type{SparseListLevel{Ti, Ptr, Idx, Lvl}}, ctx, tag=:lvl) where {Ti, Ptr, Idx, Lvl} sym = freshen(ctx, tag) diff --git a/src/tensors/levels/sparserlelevels.jl b/src/tensors/levels/sparserlelevels.jl index 408481106..1e62f0642 100644 --- a/src/tensors/levels/sparserlelevels.jl +++ b/src/tensors/levels/sparserlelevels.jl @@ -135,7 +135,12 @@ end is_level_injective(lvl::VirtualSparseRLELevel, ctx) = [false, is_level_injective(lvl.lvl, ctx)...] is_level_concurrent(lvl::VirtualSparseRLELevel, ctx) = [false, is_level_concurrent(lvl.lvl, ctx)...] -is_level_atomic(lvl::VirtualSparseRLELevel, ctx) = false +function is_level_atomic(lvl::VirtualSparseRLELevel, ctx) + (below, atomic) = is_level_atomic(lvl.lvl, ctx) + return ([below; [atomic for _ in 1:num_indexable(lvl, ctx)]], atomic) +end +num_indexable(lvl::VirtualSparseRLELevel, ctx) = virtual_level_ndims(lvl, ctx) - virtual_level_ndims(lvl.lvl, ctx) + postype(lvl::VirtualSparseRLELevel) = postype(lvl.lvl) diff --git a/src/tensors/levels/sparsetrianglelevels.jl b/src/tensors/levels/sparsetrianglelevels.jl index 1951373de..fa34e94ca 100644 --- a/src/tensors/levels/sparsetrianglelevels.jl +++ b/src/tensors/levels/sparsetrianglelevels.jl @@ -111,7 +111,12 @@ mutable struct VirtualSparseTriangleLevel <: AbstractVirtualLevel end is_level_injective(lvl::VirtualSparseTriangleLevel, ctx) = [is_level_injective(lvl.lvl, ctx)..., (true for _ in 1:lvl.N)...] -is_level_atomic(lvl::VirtualSparseTriangleLevel, ctx) = is_level_atomic(lvl.lvl, ctx) +function is_level_atomic(lvl::VirtualSparseTriangleLevel, ctx) + (below, atomic) = is_level_atomic(lvl.lvl, ctx) + return ([below; [atomic for _ in 1:num_indexable(lvl, ctx)]], atomic) +end +num_indexable(lvl::VirtualSparseTriangleLevel, ctx) = virtual_level_ndims(lvl, ctx) - virtual_level_ndims(lvl.lvl, ctx) + postype(lvl::VirtualSparseTriangleLevel) = postype(lvl.lvl) diff --git a/src/tensors/levels/sparsevbllevels.jl b/src/tensors/levels/sparsevbllevels.jl index 7d51f5051..0ba31741c 100644 --- a/src/tensors/levels/sparsevbllevels.jl +++ b/src/tensors/levels/sparsevbllevels.jl @@ -147,8 +147,12 @@ mutable struct VirtualSparseVBLLevel <: AbstractVirtualLevel end is_level_injective(lvl::VirtualSparseVBLLevel, ctx) = [is_level_injective(lvl.lvl, ctx)..., false] -is_level_atomic(lvl::VirtualSparseVBLLevel, ctx) = false - +function is_level_atomic(lvl::VirtualSparseVBLLevel, ctx) + (below, atomic) = is_level_atomic(lvl.lvl, ctx) + return ([below; [atomic for _ in 1:num_indexable(lvl, ctx)]], atomic) +end +num_indexable(lvl::VirtualSparseVBLLevel, ctx) = virtual_level_ndims(lvl, ctx) - virtual_level_ndims(lvl.lvl, ctx) + postype(lvl::VirtualSparseVBLLevel) = postype(lvl.lvl) diff --git a/src/tensors/scalars.jl b/src/tensors/scalars.jl index e4f42a9f3..eea1a955a 100644 --- a/src/tensors/scalars.jl +++ b/src/tensors/scalars.jl @@ -22,6 +22,8 @@ struct VirtualScalar D name val + preamble = quote end + epilogue = quote end end lower(tns::VirtualScalar, ctx::AbstractCompiler, ::DefaultStyle) = tns.ex @@ -101,6 +103,8 @@ struct VirtualSparseScalar name val dirty + preamble = quote end + epilogue = quote end end lower(tns::VirtualSparseScalar, ctx::AbstractCompiler, ::DefaultStyle) = :($SparseScalar{$(tns.D), $(tns.Tv)}($(tns.val), $(tns.dirty))) @@ -184,6 +188,8 @@ struct VirtualShortCircuitScalar B name val + preamble = quote end + epilogue = quote end end lower(tns::VirtualShortCircuitScalar, ctx::AbstractCompiler, ::DefaultStyle) = :($ShortCircuitScalar{$(tns.D), $(tns.Tv), $(tns.B)}($(tns.val))) @@ -265,6 +271,8 @@ struct VirtualSparseShortCircuitScalar name val dirty + preamble = quote end + epilogue = quote end end lower(tns::VirtualSparseShortCircuitScalar, ctx::AbstractCompiler, ::DefaultStyle) = :($SparseShortCircuitScalar{$(tns.D), $(tns.Tv), $(tns.B)}($(tns.val), $(tns.dirty))) diff --git a/src/transforms/concurrent.jl b/src/transforms/concurrent.jl index 672143b90..046d553b9 100644 --- a/src/transforms/concurrent.jl +++ b/src/transforms/concurrent.jl @@ -15,8 +15,9 @@ function is_injective end """ is_atomic(tns, ctx) -Returns a boolean indicating whether it is safe to update the same element of the -tensor from multiple simultaneous threads. + Returns a tuple (below, overall) where below is a vector, indicating which indicies are safe to write to out of order, + and overall is a boolean that indicates if this is true for the entire tensor. + """ function is_atomic end @@ -43,6 +44,16 @@ function ensure_concurrent(root, ctx) end end + # Get all indicies in the parallel region. + indicies_in_region = [idx] + for node in PostOrderDFS(body) + if @capture root loop(~idxp, ~ext, ~body) + push!(indicies_in_region, idxp) + end + end + + + for (root, agns) in nonlocal_assigns ops = map(agn -> (@capture agn assign(~lhs, ~op, ~rhs); op), agns) if !allequal(ops) @@ -50,17 +61,46 @@ function ensure_concurrent(root, ctx) end accs = map(agn -> (@capture agn assign(~lhs, ~op, ~rhs); lhs), agns) - if !allequal(accs) - throw(FinchConcurrencyError("Nonlocal assignments to $(root) are not all the same access")) - end acc = first(accs) - - if !( - (@capture(acc, access(~tns, ~mode, ~i..., idx)) && is_injective(tns, ctx)[length(i) + 1]) || - isassociative(ctx.algebra, first(ops)) - ) + # The operation must be associative. + if !(isassociative(ctx.algebra, first(ops))) throw(FinchConcurrencyError("Nonlocal assignments to $(root) are not associative")) end + # If the acceses are different, then all acceses must be atomic. + if !allequal(accs) + for acc in accs + (_, overall) = is_atomic(acc.tns, ctx) + if !overall + throw(FinchConcurrencyError("Nonlocal assignments to $(root) are not all the same access so atomics are needed on all acceses!")) + end + end + continue + else + #Since all operations/acceses are the same, a more fine grained analysis takes place: + #Every access must be injective or they must all be atomic. + if (@capture(acc, access(~tns, ~mode, ~i...))) + locations_with_parallel_vars = [] + injectivity = is_injective(tns, ctx) + for loc in 1:length(i) + if i[loc] in indicies_in_region + push!(locations_with_parallel_vars, loc) + end + end + if all(injectivity[locations_with_parallel_vars]) + continue # We pass due to injectivity! + end + (below, overall) = is_atomic(acc.tns, ctx) + if overall || all(below[locations_with_parallel_vars]) + continue # we pass due to atomics! + else + throw(FinchConcurrencyError("Assignment $(acc) requires injectivity or atomics in at least places $(locations_with_parallel_vars), but does not have them, due to injectivity=$(injectivity) and atomics=$(below) ")) + end + + end + end + + + atomicity = (is_atomic(acc.tns, ctx)) injectivity = (@capture(acc, access(~tns, ~mode, ~i..., idx)) ? (is_injective(tns, ctx), [length(i) + 1]) : ([false], [1])) From 7b77a7a4752d69abe3c14895d66c2a2cb2868995 Mon Sep 17 00:00:00 2001 From: teocollin1995 Date: Wed, 28 Feb 2024 16:55:32 -0500 Subject: [PATCH 17/41] eliminate old analysis --- src/transforms/concurrent.jl | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/src/transforms/concurrent.jl b/src/transforms/concurrent.jl index 046d553b9..965f05791 100644 --- a/src/transforms/concurrent.jl +++ b/src/transforms/concurrent.jl @@ -98,22 +98,7 @@ function ensure_concurrent(root, ctx) end end - - - - - atomicity = (is_atomic(acc.tns, ctx)) - injectivity = (@capture(acc, access(~tns, ~mode, ~i..., idx)) ? (is_injective(tns, ctx), [length(i) + 1]) : ([false], [1])) - injectivityAlt = (@capture(acc, access(~tns, ~mode, ~i...)) ? (is_injective(tns, ctx), [length(i)]) : ([false], [1])) - testInjectivity = injectivity[1][injectivity[2]][1] - testInjectivityp = injectivityAlt[1][end][1] - if !( - atomicity || testInjectivity || testInjectivityp - - ) - throw(FinchConcurrencyError("Cannot prove that $(acc) is safe to update from multiple threads due atomicity = $(atomicity) and injectivity = $(injectivity) and erg=$(injectivityAlt)")) - end end - + # we validated everything so we are done! return root end \ No newline at end of file From 248bc25f4d6a6f50ffa610a5f74bdd53e7966a87 Mon Sep 17 00:00:00 2001 From: teocollin1995 Date: Wed, 28 Feb 2024 16:59:51 -0500 Subject: [PATCH 18/41] one more fix --- src/tensors/levels/atomicelementlevels.jl | 2 +- src/tensors/levels/elementlevels.jl | 2 +- src/tensors/levels/patternlevels.jl | 2 +- src/tensors/levels/repeatrlelevels.jl | 2 +- src/transforms/concurrent.jl | 15 ++++++++++++--- 5 files changed, 16 insertions(+), 7 deletions(-) diff --git a/src/tensors/levels/atomicelementlevels.jl b/src/tensors/levels/atomicelementlevels.jl index 0b42c24f7..4027a3a1d 100644 --- a/src/tensors/levels/atomicelementlevels.jl +++ b/src/tensors/levels/atomicelementlevels.jl @@ -88,7 +88,7 @@ mutable struct VirtualAtomicElementLevel <: AbstractVirtualLevel end is_level_injective(::VirtualAtomicElementLevel, ctx) = [] -is_level_atomic(lvl::VirtualAtomicElementLevel, ctx) = ([], true) +is_level_atomic(lvl::VirtualAtomicElementLevel, ctx) = ([true], true) num_indexable(lvl::VirtualAtomicElementLevel, ctx) = 0 lower(lvl::VirtualAtomicElementLevel, ctx::AbstractCompiler, ::DefaultStyle) = lvl.ex diff --git a/src/tensors/levels/elementlevels.jl b/src/tensors/levels/elementlevels.jl index df5f6e350..13cf69adc 100644 --- a/src/tensors/levels/elementlevels.jl +++ b/src/tensors/levels/elementlevels.jl @@ -87,7 +87,7 @@ mutable struct VirtualElementLevel <: AbstractVirtualLevel end is_level_injective(::VirtualElementLevel, ctx) = [] -is_level_atomic(lvl::VirtualElementLevel, ctx) = ([], false) +is_level_atomic(lvl::VirtualElementLevel, ctx) = ([false], false) num_indexable(lvl::VirtualElementLevel, ctx) = 0 lower(lvl::VirtualElementLevel, ctx::AbstractCompiler, ::DefaultStyle) = lvl.ex diff --git a/src/tensors/levels/patternlevels.jl b/src/tensors/levels/patternlevels.jl index 10ab44b38..0c581b581 100644 --- a/src/tensors/levels/patternlevels.jl +++ b/src/tensors/levels/patternlevels.jl @@ -85,7 +85,7 @@ function virtual_moveto_level(lvl::VirtualPatternLevel, ctx::AbstractCompiler, a end is_level_injective(::VirtualPatternLevel, ctx) = [] -is_level_atomic(lvl::VirtualPatternLevel, ctx) = ([], false) +is_level_atomic(lvl::VirtualPatternLevel, ctx) = ([false], false) num_indexable(lvl::VirtualElementLevel, ctx) = 0 diff --git a/src/tensors/levels/repeatrlelevels.jl b/src/tensors/levels/repeatrlelevels.jl index 2e442b0be..73403bc87 100644 --- a/src/tensors/levels/repeatrlelevels.jl +++ b/src/tensors/levels/repeatrlelevels.jl @@ -135,7 +135,7 @@ mutable struct VirtualRepeatRLELevel <: AbstractVirtualLevel prev_pos end is_level_injective(::VirtualRepeatRLELevel, ctx) = [false] -is_level_atomic(lvl::VirtualRepeatRLELevel, ctx) = ([], false) +is_level_atomic(lvl::VirtualRepeatRLELevel, ctx) = ([false], false) num_indexable(lvl::VirtualPatternLevel, ctx) = length(lvl.shape) function virtualize(ex, ::Type{RepeatRLELevel{D, Ti, Tp, Tv, Ptr, Idx, Val}}, ctx, tag=:lvl) where {D, Ti, Tp, Tv, Ptr, Idx, Val} diff --git a/src/transforms/concurrent.jl b/src/transforms/concurrent.jl index 965f05791..8af62e665 100644 --- a/src/transforms/concurrent.jl +++ b/src/transforms/concurrent.jl @@ -83,14 +83,23 @@ function ensure_concurrent(root, ctx) injectivity = is_injective(tns, ctx) for loc in 1:length(i) if i[loc] in indicies_in_region - push!(locations_with_parallel_vars, loc) + push!(locations_with_parallel_vars, loc + 1) end end + if len(locations_with_parallel_vars) == 0 + (below, overall) = is_atomic(acc.tns, ctx) + if !below[0] + throw(FinchConcurrencyError("Assignment $(acc) requires last level atomics!")) + # FIXME: we could do atomic operations here. + end + + end + if all(injectivity[locations_with_parallel_vars]) continue # We pass due to injectivity! end - (below, overall) = is_atomic(acc.tns, ctx) - if overall || all(below[locations_with_parallel_vars]) + (below, _) = is_atomic(acc.tns, ctx) + if all(below[locations_with_parallel_vars]) continue # we pass due to atomics! else throw(FinchConcurrencyError("Assignment $(acc) requires injectivity or atomics in at least places $(locations_with_parallel_vars), but does not have them, due to injectivity=$(injectivity) and atomics=$(below) ")) From 67955157b497acf10bd8a1226e4c82b45f8faa6b Mon Sep 17 00:00:00 2001 From: teocollin1995 Date: Wed, 28 Feb 2024 17:00:38 -0500 Subject: [PATCH 19/41] quick exit --- src/transforms/concurrent.jl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/transforms/concurrent.jl b/src/transforms/concurrent.jl index 8af62e665..b07000929 100644 --- a/src/transforms/concurrent.jl +++ b/src/transforms/concurrent.jl @@ -91,8 +91,9 @@ function ensure_concurrent(root, ctx) if !below[0] throw(FinchConcurrencyError("Assignment $(acc) requires last level atomics!")) # FIXME: we could do atomic operations here. + else + continue end - end if all(injectivity[locations_with_parallel_vars]) From 95375d339d0c80dadbdf3d4ea1dc5406c75ca1ce Mon Sep 17 00:00:00 2001 From: teocollin1995 Date: Wed, 28 Feb 2024 17:02:13 -0500 Subject: [PATCH 20/41] ?? --- src/transforms/concurrent.jl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/transforms/concurrent.jl b/src/transforms/concurrent.jl index b07000929..166bcfcff 100644 --- a/src/transforms/concurrent.jl +++ b/src/transforms/concurrent.jl @@ -69,8 +69,8 @@ function ensure_concurrent(root, ctx) # If the acceses are different, then all acceses must be atomic. if !allequal(accs) for acc in accs - (_, overall) = is_atomic(acc.tns, ctx) - if !overall + (below, overall) = is_atomic(acc.tns, ctx) + if !all(below) throw(FinchConcurrencyError("Nonlocal assignments to $(root) are not all the same access so atomics are needed on all acceses!")) end end From 2d4d4350137f56854bd8bdf9ca2edac8085cc3e7 Mon Sep 17 00:00:00 2001 From: teocollin1995 Date: Thu, 29 Feb 2024 08:23:10 -0500 Subject: [PATCH 21/41] many tiny fixes to compile --- src/tensors/levels/denselevels.jl | 2 +- src/tensors/levels/patternlevels.jl | 2 +- src/tensors/levels/repeatrlelevels.jl | 2 +- src/tensors/levels/separatelevels.jl | 2 +- src/tensors/levels/singlelistlevels.jl | 3 ++- src/tensors/levels/sparselevels.jl | 2 +- src/tensors/scalars.jl | 8 -------- src/transforms/concurrent.jl | 2 +- 8 files changed, 8 insertions(+), 15 deletions(-) diff --git a/src/tensors/levels/denselevels.jl b/src/tensors/levels/denselevels.jl index 12ac8adc0..b5a3711ee 100644 --- a/src/tensors/levels/denselevels.jl +++ b/src/tensors/levels/denselevels.jl @@ -110,7 +110,7 @@ function is_level_atomic(lvl::VirtualDenseLevel, ctx) (data, atomic) = is_level_atomic(lvl.lvl, ctx) return ([data; [atomic for _ in 1:num_indexable(lvl, ctx)]]) end -num_indexable(lvl::VirtualAtomicLevel, ctx) = virtual_level_ndims(lvl, ctx) - virtual_level_ndims(lvl.lvl, ctx) +num_indexable(lvl::VirtualDenseLevel, ctx) = virtual_level_ndims(lvl, ctx) - virtual_level_ndims(lvl.lvl, ctx) function virtualize(ex, ::Type{DenseLevel{Ti, Lvl}}, ctx, tag=:lvl) where {Ti, Lvl} diff --git a/src/tensors/levels/patternlevels.jl b/src/tensors/levels/patternlevels.jl index 0c581b581..0be00cfb3 100644 --- a/src/tensors/levels/patternlevels.jl +++ b/src/tensors/levels/patternlevels.jl @@ -86,7 +86,7 @@ end is_level_injective(::VirtualPatternLevel, ctx) = [] is_level_atomic(lvl::VirtualPatternLevel, ctx) = ([false], false) -num_indexable(lvl::VirtualElementLevel, ctx) = 0 +num_indexable(lvl::VirtualPatternLevel, ctx) = 0 lower(lvl::VirtualPatternLevel, ctx::AbstractCompiler, ::DefaultStyle) = :(PatternLevel()) diff --git a/src/tensors/levels/repeatrlelevels.jl b/src/tensors/levels/repeatrlelevels.jl index 73403bc87..8b036e704 100644 --- a/src/tensors/levels/repeatrlelevels.jl +++ b/src/tensors/levels/repeatrlelevels.jl @@ -136,7 +136,7 @@ mutable struct VirtualRepeatRLELevel <: AbstractVirtualLevel end is_level_injective(::VirtualRepeatRLELevel, ctx) = [false] is_level_atomic(lvl::VirtualRepeatRLELevel, ctx) = ([false], false) -num_indexable(lvl::VirtualPatternLevel, ctx) = length(lvl.shape) +num_indexable(lvl::VirtualRepeatRLELevel, ctx) = length(lvl.shape) function virtualize(ex, ::Type{RepeatRLELevel{D, Ti, Tp, Tv, Ptr, Idx, Val}}, ctx, tag=:lvl) where {D, Ti, Tp, Tv, Ptr, Idx, Val} sym = freshen(ctx, tag) diff --git a/src/tensors/levels/separatelevels.jl b/src/tensors/levels/separatelevels.jl index db345e380..7fb264f48 100644 --- a/src/tensors/levels/separatelevels.jl +++ b/src/tensors/levels/separatelevels.jl @@ -92,7 +92,7 @@ postype(lvl:: VirtualSeparateLevel) = postype(lvl.lvl) is_level_injective(lvl::VirtualSeparateLevel, ctx) = [is_level_injective(lvl.lvl, ctx)..., true] is_level_concurrent(lvl::VirtualSeparateLevel, ctx) = [is_level_concurrent(lvl.lvl, ctx)..., true] -num_indexable(lvl::VirtualPatternLevel, ctx) = virtual_level_ndims(lvl, ctx) - virtual_level_ndims(lvl.lvl, ctx) +num_indexable(lvl::VirtualSeparateLevel, ctx) = virtual_level_ndims(lvl, ctx) - virtual_level_ndims(lvl.lvl, ctx) function is_level_atomic(lvl::VirtualSeparateLevel, ctx) (below, atomic) = is_level_atomic(lvl.lvl, ctx) return ([below; [atomic for _ in 1:num_indexable(lvl, ctx)]], atomic) diff --git a/src/tensors/levels/singlelistlevels.jl b/src/tensors/levels/singlelistlevels.jl index 1645ab9a0..3a5838dc7 100644 --- a/src/tensors/levels/singlelistlevels.jl +++ b/src/tensors/levels/singlelistlevels.jl @@ -142,7 +142,8 @@ mutable struct VirtualSingleListLevel <: AbstractVirtualLevel end is_level_injective(lvl::VirtualSingleListLevel, ctx) = [is_level_injective(lvl.lvl, ctx)..., false] -function is_level_atomic(lvl::VirtualSeparateLevel, ctx) + +function is_level_atomic(lvl::VirtualSingleListLevel, ctx) (below, atomic) = is_level_atomic(lvl.lvl, ctx) return ([below; [atomic for _ in 1:num_indexable(lvl, ctx)]], atomic) end diff --git a/src/tensors/levels/sparselevels.jl b/src/tensors/levels/sparselevels.jl index 80d8bd90f..c8715fefc 100644 --- a/src/tensors/levels/sparselevels.jl +++ b/src/tensors/levels/sparselevels.jl @@ -251,7 +251,7 @@ mutable struct VirtualSparseLevel <: AbstractVirtualLevel end is_level_injective(lvl::VirtualSparseLevel, ctx) = [is_level_injective(lvl.lvl, ctx)..., false] -function is_level_atomic(lvl::VirtualSparseHashLevel, ctx) +function is_level_atomic(lvl::VirtualSparseLevel, ctx) (below, atomic) = is_level_atomic(lvl.lvl, ctx) return ([below; [atomic for _ in 1:num_indexable(lvl, ctx)]], atomic) end diff --git a/src/tensors/scalars.jl b/src/tensors/scalars.jl index eea1a955a..e4f42a9f3 100644 --- a/src/tensors/scalars.jl +++ b/src/tensors/scalars.jl @@ -22,8 +22,6 @@ struct VirtualScalar D name val - preamble = quote end - epilogue = quote end end lower(tns::VirtualScalar, ctx::AbstractCompiler, ::DefaultStyle) = tns.ex @@ -103,8 +101,6 @@ struct VirtualSparseScalar name val dirty - preamble = quote end - epilogue = quote end end lower(tns::VirtualSparseScalar, ctx::AbstractCompiler, ::DefaultStyle) = :($SparseScalar{$(tns.D), $(tns.Tv)}($(tns.val), $(tns.dirty))) @@ -188,8 +184,6 @@ struct VirtualShortCircuitScalar B name val - preamble = quote end - epilogue = quote end end lower(tns::VirtualShortCircuitScalar, ctx::AbstractCompiler, ::DefaultStyle) = :($ShortCircuitScalar{$(tns.D), $(tns.Tv), $(tns.B)}($(tns.val))) @@ -271,8 +265,6 @@ struct VirtualSparseShortCircuitScalar name val dirty - preamble = quote end - epilogue = quote end end lower(tns::VirtualSparseShortCircuitScalar, ctx::AbstractCompiler, ::DefaultStyle) = :($SparseShortCircuitScalar{$(tns.D), $(tns.Tv), $(tns.B)}($(tns.val), $(tns.dirty))) diff --git a/src/transforms/concurrent.jl b/src/transforms/concurrent.jl index 166bcfcff..42f9dd49d 100644 --- a/src/transforms/concurrent.jl +++ b/src/transforms/concurrent.jl @@ -86,7 +86,7 @@ function ensure_concurrent(root, ctx) push!(locations_with_parallel_vars, loc + 1) end end - if len(locations_with_parallel_vars) == 0 + if length(locations_with_parallel_vars) == 0 (below, overall) = is_atomic(acc.tns, ctx) if !below[0] throw(FinchConcurrencyError("Assignment $(acc) requires last level atomics!")) From 405437799d8e60c1fec6f26d9d5760641fb3e723 Mon Sep 17 00:00:00 2001 From: teocollin1995 Date: Thu, 29 Feb 2024 08:39:26 -0500 Subject: [PATCH 22/41] bad dense is_atomic prop --- src/interface/abstractarrays.jl | 3 ++- src/tensors/levels/denselevels.jl | 2 +- src/transforms/concurrent.jl | 12 +++++++++--- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/interface/abstractarrays.jl b/src/interface/abstractarrays.jl index 9c97d6306..e1128ac9f 100644 --- a/src/interface/abstractarrays.jl +++ b/src/interface/abstractarrays.jl @@ -114,4 +114,5 @@ Base.setindex!(arr::AsArray{T, N}, v, i::Vararg{Int, N}) where {T, N} = arr.fbr[ Base.setindex!(arr::AsArray{T, N}, v, i::Vararg{Any, N}) where {T, N} = arr.fbr[i...] = v is_injective(tns::VirtualAbstractArray, ctx) = [true for _ in tns.ndims] -is_atomic(tns::VirtualAbstractArray, ctx) = true \ No newline at end of file +is_atomic(tns::VirtualAbstractArray, ctx) = [false, [false for _ in tns.ndims]...] +# is_atomic(tns::VirtualAbstractArray, ctx) = true \ No newline at end of file diff --git a/src/tensors/levels/denselevels.jl b/src/tensors/levels/denselevels.jl index b5a3711ee..c16b71eb1 100644 --- a/src/tensors/levels/denselevels.jl +++ b/src/tensors/levels/denselevels.jl @@ -108,7 +108,7 @@ end is_level_injective(lvl::VirtualDenseLevel, ctx) = [is_level_injective(lvl.lvl, ctx)..., true] function is_level_atomic(lvl::VirtualDenseLevel, ctx) (data, atomic) = is_level_atomic(lvl.lvl, ctx) - return ([data; [atomic for _ in 1:num_indexable(lvl, ctx)]]) + return ([data; [atomic for _ in 1:num_indexable(lvl, ctx)]], atomic) end num_indexable(lvl::VirtualDenseLevel, ctx) = virtual_level_ndims(lvl, ctx) - virtual_level_ndims(lvl.lvl, ctx) diff --git a/src/transforms/concurrent.jl b/src/transforms/concurrent.jl index 42f9dd49d..f223a7ee9 100644 --- a/src/transforms/concurrent.jl +++ b/src/transforms/concurrent.jl @@ -79,15 +79,21 @@ function ensure_concurrent(root, ctx) #Since all operations/acceses are the same, a more fine grained analysis takes place: #Every access must be injective or they must all be atomic. if (@capture(acc, access(~tns, ~mode, ~i...))) - locations_with_parallel_vars = [] - injectivity = is_injective(tns, ctx) + println("idxs:", i) + locations_with_parallel_vars:: Vector{Int} = [] + injectivity:: Vector{Bool} = is_injective(tns, ctx) + println("injectivity:", injectivity) for loc in 1:length(i) if i[loc] in indicies_in_region push!(locations_with_parallel_vars, loc + 1) end end + println("parvars:", locations_with_parallel_vars) if length(locations_with_parallel_vars) == 0 (below, overall) = is_atomic(acc.tns, ctx) + println("below:", below) + println("overall:", overall) + println("tns:", tns) if !below[0] throw(FinchConcurrencyError("Assignment $(acc) requires last level atomics!")) # FIXME: we could do atomic operations here. @@ -96,7 +102,7 @@ function ensure_concurrent(root, ctx) end end - if all(injectivity[locations_with_parallel_vars]) + if all(injectivity[[x-1 for x in locations_with_parallel_vars]]) continue # We pass due to injectivity! end (below, _) = is_atomic(acc.tns, ctx) From 00e19e8478f9bc18667ac9898a7ef33e4ce99fb7 Mon Sep 17 00:00:00 2001 From: teocollin1995 Date: Thu, 29 Feb 2024 08:39:56 -0500 Subject: [PATCH 23/41] ops --- src/transforms/concurrent.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/transforms/concurrent.jl b/src/transforms/concurrent.jl index f223a7ee9..f62682a2f 100644 --- a/src/transforms/concurrent.jl +++ b/src/transforms/concurrent.jl @@ -94,7 +94,7 @@ function ensure_concurrent(root, ctx) println("below:", below) println("overall:", overall) println("tns:", tns) - if !below[0] + if !below[1] throw(FinchConcurrencyError("Assignment $(acc) requires last level atomics!")) # FIXME: we could do atomic operations here. else From b9b97499f89dc09bf3ce70e3d47b841a90c71c01 Mon Sep 17 00:00:00 2001 From: teocollin1995 Date: Thu, 29 Feb 2024 09:21:52 -0500 Subject: [PATCH 24/41] typo fixes many tests --- src/transforms/concurrent.jl | 9 ++++++--- test/reference64/debug_parallel_spmms_no_atomics.txt | 12 ++++++------ 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/transforms/concurrent.jl b/src/transforms/concurrent.jl index f62682a2f..9c3ba5988 100644 --- a/src/transforms/concurrent.jl +++ b/src/transforms/concurrent.jl @@ -47,8 +47,10 @@ function ensure_concurrent(root, ctx) # Get all indicies in the parallel region. indicies_in_region = [idx] for node in PostOrderDFS(body) - if @capture root loop(~idxp, ~ext, ~body) - push!(indicies_in_region, idxp) + if @capture node loop(~idxp, ~ext, ~body) + if !(idxp in indicies_in_region) + push!(indicies_in_region, idxp) + end end end @@ -80,9 +82,10 @@ function ensure_concurrent(root, ctx) #Every access must be injective or they must all be atomic. if (@capture(acc, access(~tns, ~mode, ~i...))) println("idxs:", i) - locations_with_parallel_vars:: Vector{Int} = [] + locations_with_parallel_vars = [] injectivity:: Vector{Bool} = is_injective(tns, ctx) println("injectivity:", injectivity) + println("region:", indicies_in_region) for loc in 1:length(i) if i[loc] in indicies_in_region push!(locations_with_parallel_vars, loc + 1) diff --git a/test/reference64/debug_parallel_spmms_no_atomics.txt b/test/reference64/debug_parallel_spmms_no_atomics.txt index 9dfc091e1..ec96fb9cd 100644 --- a/test/reference64/debug_parallel_spmms_no_atomics.txt +++ b/test/reference64/debug_parallel_spmms_no_atomics.txt @@ -8,7 +8,7 @@ julia> @finch begin end end end -(CR = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.2504314291953376, 0.0, 0.0, 0.9648065476989627, 0.2835978542736629, 0.13211849643271117, 0.2796391765298554, 0.22540993882752317, 0.5512218518807817, 0.5478145335437775, 0.0, 0.2291959647754706, 0.23520231615614767, 0.03296826745685447, 0.18421763750874248, 0.6035878434468992, 0.7441004608135994, 0.2535097758200323, 0.20236453274735783, 0.09228241774990334, 0.13384560784694935, 0.5269755678736615, 0.03880627317810495, 0.17704264007357723, 0.0, 0.2632287465084173, 0.0, 0.02720231717357045, 0.5246531850072871, 0.0, 0.0, 0.3360269038793386, 0.0, 0.22538882742471622, 0.22621665568148489, 0.0, 0.09095677592426996, 0.0, 0.2343687318872728, 0.0, 0.00044179348092010485, 0.07281055209847118, 0.6821285312867097, 0.0, 0.0, 0.0, 0.8944403740767686, 0.11973372388784431, 0.2613237068921269, 0.5923534538840982, 0.0, 0.0, 0.0, 0.8426453838331012, 0.0, 0.0, 1.0769929937540788, 0.43300907588983417, 0.0, 0.6905133736710757, 0.0, 0.0, 0.0, 0.07271653050953786, 0.8664857754450395, 0.08570530865158534, 0.0, 0.7169860381548754, 0.20498067747201715, 0.0, 0.23050103487101342, 0.0, 0.0, 0.9152746488430813, 0.14299878494120105, 0.44815460009097313, 0.0, 0.0, 0.0, 0.23162241551000032, 1.0326337985335274, 1.0530846396126474, 0.22109306040172927, 0.0, 0.0, 0.0, 1.0289491599002607, 0.008076930682810486, 0.037079469071792215, 0.0, 0.03308196940629956, 0.07165705922647192, 0.18447863887953236, 0.0, 0.24885144181470292, 0.0, 0.0, 0.0, 0.7193963651558962, 0.0, 0.6007574484421223, 0.0, 0.11361690641306497, 0.0, 0.0, 0.0, 0.0, 0.5189539173895105, 0.027360695267410504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.769945776489901, 0.00013219515459577855, 0.0, 0.0, 0.0, 0.0, 0.21518747264967641, 0.0, 0.0, 0.0, 0.10980938651098104, 0.07347552139071808, 0.0, 0.3613462418752601, 0.04465135919773286, 0.027102240057490925, 0.0, 0.0, 0.2594566815123038, 0.417973871558788, 0.02337304044012675, 0.5498222432776159, 0.011558313103301096, 0.13519961718643905, 0.0830809338177889, 0.0, 0.0, 0.0, 0.17989871031119878, 0.05233157238393502, 0.0, 0.051508809526025434, 0.225133841185459, 0.18950167625902217, 0.0, 0.0, 0.0, 0.20173577654712102, 0.7662693488070871, 0.0, 0.33259178463685746, 0.13865467767460202, 0.0, 0.8944580603877651, 0.0, 0.060682785060590494, 0.06051599339484606, 0.0, 0.0, 0.0, 0.12305720211410776, 0.10081888448105404, 0.0, 0.0, 0.2522377522294325, 0.0, 0.12103967793114603, 0.06077105223878225, 0.0, 0.0, 0.5586258592154407, 0.0, 0.0, 0.0, 0.2984848816909581, 0.029564782247173068, 0.6276543733906952, 0.0, 0.07353625635562432, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08001934416956356, 0.13808411155288577, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0013608908425346389, 0.15477792583676012, 0.8924302032481646, 0.0, 0.13515079773758784, 0.0, 0.059793517595463114, 0.0, 0.04933055693313389, 0.0, 0.0, 0.3342781850907459, 0.02578025634698341, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1229501707927792, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287208489034296, 0.0, 0.0, 0.28149278769379354, 0.0, 0.0, 0.0, 0.031923890851782225, 0.23740383631799186, 0.0, 0.0, 0.0, 0.0, 0.06362127081034188, 0.2629034525588847, 0.0, 0.9151807425831917, 0.0, 0.0, 0.0, 0.6693739198309284, 0.0, 0.0, 0.2061930933620024, 0.27528937724536684, 0.0, 0.0, 0.0, 0.0, 0.2675780483794807, 0.02063619759744684, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5460074055587408, 0.0, 0.6541555536266587, 0.0, 0.0, 0.07150154126300666, 0.0, 0.15048122306270975, 0.034115472912426725, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.050926612139623545, 0.21044506008920905, 0.0, 0.0, 0.4253961501964202, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5242476712268254, 0.0, 0.0, 0.6721198397890595, 0.02913210340779019, 0.0, 0.20059561631676462, 0.0, 0.29433701033990906, 0.0, 0.0, 0.0, 0.12559144077146528, 0.0, 0.0, 0.32229898127496104, 0.0, 0.0, 0.05500938293182685, 0.1114468235961369, 0.09601244908001759, 0.255231140185047, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05242264559033129, 0.07189305704474794, 0.29708512061039594, 0.0, 0.0, 0.16167981650220184, 0.0, 0.0, 0.42894283906704944, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24120550186102305, 0.002462183433889286, 0.1185465354728046, 0.0, 0.0, 0.20924909285728116, 0.0, 0.2383879501918044, 0.0, 0.08928505124693381, 0.0, 0.0, 0.2291277246538886, 0.0, 0.0, 0.039107088380868994, 0.03339412468553525, 0.0, 0.17867986571670036, 0.0, 0.15885581639487184, 0.0, 0.4770109811329409, 0.46521958209705216, 0.08213268605220507, 0.8570033319080816, 0.5762497735248863, 0.025109002675938377, 0.0, 0.0, 0.0, 0.006062678222071191, 0.6895253688974624, 0.0, 0.0, 0.14425623656373723, 0.0, 0.26058653129843573, 0.2499129405223175, 0.5556369963578781, 0.0, 0.0, 0.14846473797228377, 1.311439497677356, 0.0, 0.0, 0.0, 0.14844299347189643, 0.0, 0.06204384333300274, 0.5085214657536261, 0.06333953518463412, 0.0, 0.4087271917522072, 0.56471815720299, 0.0, 0.7613475113276124, 0.31092441757595435, 0.25657570652463557, 0.0, 0.6284352010004853, 0.0, 0.44245087677575873, 0.0, 0.5840306487685422, 0.886297089335757, 0.0, 0.2141960416332438, 0.0, 0.0, 0.7455493113099605, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9841442926021067, 0.155496454991287, 0.0, 0.0, 0.07678252545804619, 0.0, 0.0, 0.3721354350358947, 0.020164712785984047, 0.0, 0.0, 0.0, 0.0, 0.1088564167894987, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9595213220321046, 0.0, 0.026588936071193094, 0.0, 0.0, 0.18249673153915044, 0.041373682209080435, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04976306812868327, 0.2056369238513726, 0.0, 0.0, 0.341205976763526, 0.0, 0.0, 0.0, 0.0, 0.5785815925839551, 0.0, 0.0, 0.0, 0.5989984098523007, 0.041848978991102986, 0.0, 0.7058966144833084, 0.0, 0.1357909427918936, 0.0, 0.0, 0.0, 0.6943234317201388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03329077451447904, 0.0, 0.16959332194846893, 0.03825181104342904, 0.0, 0.030570483496490792, 0.0, 0.181963825346749, 0.0, 0.0, 0.0861751567882612, 0.0, 0.23433890396321935, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06468139820825311, 0.4901043774165395, 0.0, 0.1652405132589817, 0.0, 0.0, 0.07483443864111192, 0.0, 0.0, 0.0, 0.2810295005684995, 0.0, 0.3898372849078984, 0.0, 0.27070466717435465, 0.5873234092956581, 0.0, 0.0, 0.8033877947986148, 0.0, 0.0, 0.0, 0.5030084273245645, 0.1643009637310288, 0.0, 0.0, 0.0, 0.052313365367879956, 0.02924539070601191, 0.0, 0.7815339827038686, 0.0, 0.631919493277437, 0.08243985181699306, 0.0, 0.0, 0.0, 0.0, 0.12868680907403285, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.1259698971001804, 0.7198499769348474, 0.0, 0.41807281750787384, 0.0, 0.0, 0.6290848565988848, 0.7773412611170788, 0.0, 0.3270721417747804, 0.0, 0.0, 0.6187710034515789, 0.07069501936159496, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15113911645003905, 0.0, 0.15654877177402662, 1.1322176354521876, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2636197382380641, 0.0, 0.0, 0.34206988627899454, 0.0, 0.0, 0.2168559436204628, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12189174979618164, 0.009400555275465744, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02319896532052816, 0.09586554938115534, 0.0, 0.0, 0.47758214062526055, 0.0, 0.0, 0.0, 0.0, 0.766521270904984, 0.0, 0.0, 0.0, 0.05687724891036996, 0.0, 0.0, 0.0, 0.019988327516632248, 0.0, 0.0, 0.24020596976351885, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5319793134128888, 0.0, 0.0, 0.12310759546793347, 0.28424710350697324, 0.0, 0.9704064926727941, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.595062055789435, 0.0, 0.022922464313533127, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7479520138852049, 0.0, 0.0, 0.0, 0.0, 0.11201726895804533, 0.0, 0.0, 0.5882991104057551, 0.0, 0.0, 0.0, 0.5372591710353254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4185803721513073, 0.0, 0.4160894350708626, 0.35712090084273435, 0.0, 0.0, 0.0, 0.0, 0.3329375067097101, 0.0, 0.0, 0.0, 0.9791513934288851, 0.040171778764664906, 0.0, 0.0, 0.18774405618493867, 0.47311893679528827, 0.2590438343789052, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12077476728428499, 0.0, 0.06327325623124767, 0.0, 0.0, 0.0, 0.0, 0.34849519635188847, 0.0, 0.4382603746311635, 0.0, 0.0, 0.0, 0.09913709085437171, 0.4096661875861404, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4230910500526733, 0.0, 0.0, 0.0, 0.17776900851570368, 0.0, 0.5438917161748563, 0.0, 0.43287084617637955, 0.0, 0.0, 0.0, 0.5349746055023918, 0.0, 0.7894262258085124, 0.0, 0.0, 0.0, 0.416696264214944, 0.1414148713022835, 0.0, 0.1306712640828635, 0.5944339267365731, 0.0, 0.0, 0.0, 0.3098486230376566, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27475814956764166, 0.0, 0.0, 0.0, 0.572874722755641, 0.7993131511508778, 0.0, 0.2979949962228512, 0.14400098705349634, 0.0, 0.0, 0.02684711041673838, 0.0, 0.0575193250192605, 0.13038147684896279, 0.07982177723780243, 0.0, 0.0, 0.22370954598082965, 0.0, 0.0, 0.0, 0.16207849359014098, 0.8780589957563658, 0.0, 0.0, 0.0, 0.03773454641900064, 0.0, 0.190720074864707, 0.03823162707299666, 0.0, 0.027092618673790602, 0.07782668325822914, 0.0, 0.0, 0.025612768291380317, 0.0, 0.1339183762706947, 0.03147511447091019, 0.0, 0.0, 0.22256660522037766, 0.0, 0.050981846070955524, 0.33080849696175413, 0.22670468547648376, 0.0, 0.0, 0.2394131641393997, 0.0, 0.6763225254232694, 0.0, 0.32609931596811353, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02551395955593748, 0.0, 0.19870976845837512, 0.0, 0.8838430389981123, 0.0, 0.8900590234719281, 0.0, 0.1395885727389325, 0.39274638865688727, 0.13258182339863903, 1.0427544725112363, 0.007925765580094073, 0.0, 0.0, 0.9248219821941955, 0.0, 0.38782207933590473, 0.20331266090801786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4620448777897825, 0.5673723076761421, 0.13444042454417618, 0.0, 0.0012927651989113214, 0.0, 0.0, 0.0, 0.3049721916420315, 0.017266202832261764, 0.0, 0.0, 0.07071993264415252, 0.04567425634491729, 0.3943633692304047, 0.0, 0.15861807151929683, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05848946000294637, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0002825960061227963, 0.18362488935764, 0.0, 0.0, 0.0, 0.16115194339742445, 0.5974334511167834, 0.0, 0.04024167944046561, 0.33382381844541353, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6087942383002851, 0.0, 0.0, 0.7807479082612564, 0.3974967659255351, 1.5487027213337248, 0.03765559375444021, 0.17692333788215128, 0.23426356503546714, 0.0, 0.22388851869475412, 0.04007956243736881, 1.0262040210122396, 0.0, 0.7972348331243138, 1.0049259227957363, 0.051433760809377164, 0.0, 0.8283458296766737, 0.0, 0.7561556098507006, 0.0, 0.0, 0.0, 0.24907496608552146, 0.0, 0.5011916402324644, 0.1747189814102487, 0.9899595982235516, 0.6164188940137083, 0.11559029428984438, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.593849645786338, 0.0, 0.0, 0.0, 0.0, 0.13660851844466146, 0.030970403587585463, 0.23157107362581741, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13749939723080143, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7110898100418397, 0.0, 0.0, 0.0, 0.46081314114808425, 0.7109856621285974, 0.2884350146527927, 0.0, 0.0, 0.30337236072169704, 0.06739814120009983, 0.0, 0.7785291912169707, 0.0, 0.0, 0.13287789565404662, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3593823347180517, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4624623396236477, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.024288127378650458, 0.0, 0.793430084070044, 0.0, 0.0, 0.07003161792104487, 0.0, 0.390525043836891, 0.7636039620295462, 0.06950112764284275, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019321154098251664, 0.0, 0.18651557279691772, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05792018405822482, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18265223354453325, 0.12454723256219671, 0.0, 0.0002798455087109209, 0.0, 0.0, 0.11611318457978691, 0.05398921986713746, 0.0, 0.8752290763913787, 0.0, 0.0, 0.0, 0.0, 0.13107895831547542, 0.0, 0.0, 0.45521248179167606, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11685661958627322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44522459151527227, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26435993065610003, 0.021758541234477975, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2146225974372531, 0.0, 0.13433790512658406, 0.030902835047588124, 0.0, 0.0, 0.03139052000724026, 0.0, 0.0, 0.7200671942026683, 0.0, 0.0, 0.05946084260814123, 0.0, 0.14663715828117352, 0.03324398818324252, 0.008023890708802274, 0.05967012120515395, 0.0, 0.0, 0.0, 0.10840406404650259, 0.0, 0.0, 0.0, 0.23002554078955822, 0.0, 0.21539070760796813, 0.0, 0.15809846801096508, 0.0, 0.0, 0.023379160669788793, 0.06919243918501702, 0.0, 0.4184368340983768, 0.0, 0.0, 0.0, 0.025499570825031452, 0.0, 0.054632252014063354, 0.12383722685885369, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08100665304577326, 0.0, 0.0, 0.0, 1.137863121002405, 0.0, 0.0, 0.18114724382910816, 1.0175246627827756, 0.0, 0.8319051265218698, 0.7408406030496757, 0.0, 0.0, 0.4793159619581115, 0.26457362772519605, 0.7690370272987045, 0.02989528102721059, 0.0, 0.0, 0.0, 0.34236772701032764, 0.22777638147070367, 0.20013535639204974, 0.7445351180710278, 0.0, 0.0, 0.32085924041220354, 0.0, 0.0, 0.0, 0.5922078604864867, 0.0, 0.0, 0.18324289767504168, 0.0, 0.0, 0.05247138335835671, 0.48819810625100485, 0.0, 0.4058243472838195, 0.0, 0.0, 0.6944817185701155, 0.21684000174364465, 0.0, 0.12484778900119534, 0.0, 0.5314768166536554, 0.0, 0.0, 0.0, 0.0, 0.11888353831534566, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4539474830982486, 0.0, 0.12931153719488578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.23351697026332235, 0.0, 0.0, 0.0, 0.0, 0.2291429172294868, 0.4258647172142874, 0.0, 0.0, 0.0, 0.22479141295616378, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05853977920447593, 0.0, 0.16715127001769428, 0.0, 0.3712702672746247, 0.13508244363790445, 0.06392604260421969, 0.5912989058272206, 0.4437811402099471, 0.0, 0.0, 0.0, 0.0, 0.005827558703832637, 0.6627845677844773, 0.0, 0.0, 0.0, 0.30904361146056275, 0.6816789334794826, 0.1436649772664439, 0.16334297841077242, 0.0, 0.0, 0.7882286990025497, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7753056808075847, 0.035768380854023674, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44917737188494944, 0.0, 0.18937379890511313, 0.06882274914369534, 0.0, 0.0, 0.0, 0.009287224889287345, 0.06906497794085972, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26624227636214304, 0.0, 0.0, 0.0, 0.1829905316954157, 0.0, 0.06582989974405196, 0.2036305981722081, 0.08008655235603437, 0.0, 0.0, 0.0, 0.0, 0.0, 0.41729810318329397, 0.0, 0.0, 0.0, 0.0, 0.0, 0.037951024806923965, 0.0, 0.0, 0.0, 0.0, 0.41651629143780994, 0.0, 0.2053954771505675, 0.29245802337269494, 0.0368786813523771, 0.0, 0.38440171693921094, 0.0, 1.0326219326945734, 0.0, 0.02604768015780454, 0.9153304998316836, 0.0, 0.0, 0.0, 0.021211537114504155, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3418184639399641, 0.9530187941808128, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5415447555144779, 0.0, 0.16269589476095273, 0.0, 0.2704207942532035, 0.6129742049927741, 0.0, 0.0, 0.0, 0.0, 0.07078757436524862, 0.0, 0.7077105145475581, 0.34262729838304967, 0.5909987644476324, 0.0, 0.11177131716736882, 0.4359653240929594, 0.04723041930008277, 0.45146742793812006, 0.896649501844373, 0.0, 0.0, 0.6373803605539574, 0.5201327056992473, 0.10980024784153514, 0.07242729038979111, 0.0, 0.25075448235999825, 0.0, 0.14797679652158516, 0.0, 0.0, 0.0, 0.0, 0.6939917265420261, 0.9906375819864492, 0.9257686181712707, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37693205342755914, 0.5232740229070877, 0.0, 0.060081052233409524, 0.0, 0.3350366056610552, 0.0, 0.20067269510180097, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5308540215160052, 0.0, 0.0, 0.04969049276705586, 0.4729163126308979, 0.17206519556589087, 0.08142765800071788, 0.0, 0.6342266715653555, 0.28491323267898133, 0.0, 0.0, 0.0, 0.0, 0.3249315382934875, 0.27888197557292793, 0.0, 0.00024008316707892853, 0.0, 0.0, 0.4429941865632019, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08351200806876206, 0.0, 0.0, 0.3644144714136701, 0.0, 0.25850208657414453, 0.3044172676246769, 0.0, 0.0, 0.0, 0.42064905943656483, 0.5410542431685182, 0.0, 0.0, 0.0235250266831074, 0.17227146855360218, 0.0, 0.0, 0.11190852746246406, 0.0, 0.0, 0.0, 0.0, 0.14411942384547258, 0.0, 0.0, 0.4237744107411662, 0.0, 0.2972186074559964, 0.0, 0.5397314242092841, 0.4632402464002124, 0.0, 0.5786606886346829, 0.0, 0.0, 0.47789419623388885, 0.0, 0.0, 0.0, 0.10580588439167306, 0.0, 0.0, 0.7377357792707717, 0.0, 0.10579038780894534, 0.0, 0.0, 0.0, 0.045139981578782816, 0.0, 0.0, 0.11584045845995011, 0.0, 0.0, 0.019771431213384455, 0.36490249309768175, 0.35310751173091487, 1.1149184594112733, 0.0, 0.0, 0.0, 0.5857527772485364, 0.44959707967332574, 0.1008560617277558, 0.018841708015473753, 0.7001531183110316, 0.0, 0.0, 0.0, 0.5946141177445001, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22666010948008636, 0.0, 0.0, 0.0, 0.0, 0.0, 0.014782177343261123, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02695824533437821, 0.0, 0.0, 0.0, 0.016838719448302838, 0.0, 0.0, 0.0, 0.08231997245985787, 0.0, 0.0, 0.0, 0.01058107131899943, 0.0, 0.05814319369896461, 0.0, 0.0, 0.0, 0.0, 0.047348036509572325, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019563192629043182, 0.027295875565384514, 0.0, 0.0, 0.0, 0.0, 0.33629932740438834, 0.0, 0.0, 0.0, 0.32394391802925426, 0.5704070896351352, 0.0, 0.14173474826201982, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6013127745008292, 0.0, 0.7561985490243033, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2959306772073682, 0.2539911401819114, 0.0, 0.0, 0.7300245622804938, 0.0, 0.2367914528076339, 0.0, 0.0, 0.0, 0.33628005236128533, 0.025934644678944505, 0.0, 0.06026134263178236, 0.0, 0.0, 0.03662105153743461, 0.06883834406728133, 0.0, 0.0, 0.21279478779844782, 0.0, 0.0, 0.07129569822964256, 0.0, 0.09738688258412649, 0.06246220065656896, 0.0, 0.059045957391141574, 0.0, 0.006923917652553149, 0.051490108793371445, 0.0, 0.16644468958034975, 0.19015418061029377, 0.10882376279915186, 0.06400227485256132, 0.2644778831991808, 0.0, 0.19849197355887785, 0.0, 0.0010725148648749981, 0.12198011848273568, 0.1548472256356659, 0.0, 0.009305339154304988, 0.0, 0.10589543929012146, 0.0, 0.0, 0.17178211974814458, 0.0, 0.23085925511580369, 0.0, 0.0, 0.0, 0.31374773386794685, 0.0, 0.4234572393895347, 0.0, 0.0, 0.0, 0.045888478821935044, 0.0, 0.0, 0.13665231391596233, 0.0, 0.05546447903889757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15847133453228077, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3148706017686264, 0.2655048691833022, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.28333620483908656, 0.0, 0.0, 0.0, 0.3208604446677971, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25931056270601605, 0.0, 0.0, 0.20842242702467234, 0.0, 0.0, 0.28681902268117093, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2978149918318377, 0.0, 0.0, 0.09574337597144772, 0.0, 0.0, 0.38017827065442816, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03128644702667798, 0.0, 0.0, 0.0]), 42), 42)),) +(CR = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.18463927542167063, 0.16872726618738124, 0.0, 0.0, 0.0, 0.5894648191942263, 0.0, 0.0, 0.4399979683038884, 0.4872396182365841, 0.0, 0.0, 0.0, 0.5232587908717465, 0.0, 0.028458776980687873, 0.0, 0.1912882078151879, 0.5164204427507948, 0.25375520169397275, 0.7988048308846816, 0.548219404354131, 0.0, 0.0, 0.0, 0.08973042123875676, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16269102551813888, 0.0, 0.6368094288799442, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03708423534085979, 0.16845626013473977, 0.6588748971102081, 0.010877416543996312, 0.0, 0.0, 0.0, 0.44123232519423083, 0.0, 0.24002669576156066, 0.0, 0.0, 0.0, 0.21689234576879324, 0.2098895841423717, 0.6161647640351655, 0.4776903273077015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6355594744363152, 0.0, 0.0, 0.08457949502263125, 0.0, 0.0, 0.6901459039432658, 0.0, 0.0, 0.0, 0.057641486402300816, 0.0, 0.0, 0.09549316762404748, 0.09211299074367744, 0.11795836585190977, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0467877508869465, 0.0, 0.0, 0.0, 0.0, 0.04370712736779799, 0.281244207688617, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2030486542718697, 0.0, 0.5182178756464231, 0.0, 0.0, 0.0, 0.057729640414041494, 0.0, 0.0, 0.0, 0.0, 0.19354540299708142, 0.06300918519480127, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1478355026964281, 0.0, 0.0, 0.0, 0.541165159810693, 0.0, 0.0, 0.0, 0.16407931870757664, 0.2057712545151301, 0.32812733654993936, 0.0, 0.24913050204963633, 0.20974603114415158, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5086673274457614, 0.32467254520642835, 0.0, 0.22357645210013752, 0.0, 0.0, 0.0, 0.15908397194054766, 0.0, 0.5866968618616202, 0.21349654033737236, 0.243214867615369, 0.0, 0.0, 0.27374855832219774, 0.0, 0.3075930851551728, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44087523604465795, 0.22505682646241645, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2406824670174747, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4353583318013107, 0.0, 0.0, 0.0, 0.0, 0.42257756079609887, 0.0, 0.16328692344233348, 0.7239663574899861, 0.253917129058883, 0.0, 0.0, 0.0, 0.012941670285380298, 0.005948300091521438, 0.6648934966409066, 1.0229318994166612, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13578338949001834, 0.4197116456419966, 0.0, 0.947053670891027, 0.0, 0.13486088669396906, 0.0, 0.6620124726194103, 0.0, 0.6496849904621673, 0.0, 0.0, 0.7890806801928671, 0.01841465881846702, 0.27914669822772004, 0.0, 0.029516583729604803, 0.0, 0.0, 0.018864268719240455, 0.24394303159635272, 0.0, 0.5741603792214627, 0.3080365664801448, 0.6155081898538994, 0.2367816204152454, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17416434327376132, 0.0, 0.0, 0.0, 0.0, 0.16269692366253372, 0.0, 0.3491221627973697, 0.0, 0.0, 0.0, 0.0, 0.0, 0.896220207410521, 0.13858473312625733, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2148948115594729, 0.1029957040349639, 0.0, 0.10833979410008034, 0.0, 0.0, 0.23454757178184932, 0.0, 0.2155791117194733, 0.0, 0.22311080318652476, 0.0, 0.0, 0.0, 0.0, 0.07959294795619429, 0.0, 0.17163567622890405, 0.07283994445558169, 0.0, 0.0, 0.0, 0.08654379427684032, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16368166253985994, 0.0, 0.17071385720442764, 0.34758616988919516, 0.0, 0.0, 0.0, 0.0, 0.25336804558610515, 0.0, 0.032257457723339725, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2136279714073461, 0.0, 0.24003957209260046, 0.21303254632455026, 0.006511170502708404, 0.383310313899178, 0.0, 0.0, 0.0, 0.1337677376744651, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0646519260588245, 0.0, 0.0, 0.0, 0.31350938881953055, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20384728982176575, 0.0, 0.0, 0.0, 0.0, 0.05670575896106868, 0.0, 0.05964802423259749, 0.0, 0.0, 0.0, 0.4488563568162377, 0.11869016538841153, 0.0, 0.07667734536959822, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.040450967971474544, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09480431131127824, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0016369185703860613, 0.0, 0.0017218526009009176, 0.0, 0.0, 0.0, 0.0, 0.003426215245260554, 0.0, 0.002213436040060287, 0.0, 0.0, 0.0, 0.0, 0.028624781651490867, 0.0, 0.0, 0.0917221717112923, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03948493179664919, 0.0998678691104795, 0.0, 0.0, 0.0, 0.0, 0.0519314302968116, 0.019753641949088564, 0.0, 0.0, 0.08679325173985959, 0.0, 0.0, 0.44412542864463755, 0.0, 0.0, 0.0, 0.25440324223859473, 0.0, 0.06322962025433154, 0.0, 0.10055420420038351, 0.08043066558940987, 0.01930551218305079, 0.019941838639940274, 0.025537187307223392, 0.0, 0.2186623932992767, 0.06407227122111338, 0.0254835950299198, 0.0, 0.0, 0.6628636898477958, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5422666551724673, 0.6870145051652384, 0.0, 0.0, 0.1501651963322761, 0.019574736086580828, 0.0, 0.0, 0.03589870327691644, 0.0, 0.026565876114361182, 0.0, 0.0, 0.029264986204643254, 0.0, 0.0, 0.01893195304872942, 0.046727577005066426, 0.0, 0.0, 0.28025040572174376, 0.0, 0.018913093854322344, 0.0, 0.0, 0.0, 0.04894945277637971, 0.006583695531171352, 0.3875798367774556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3292155284261099, 0.04344067936293723, 0.0653720550702903, 0.0, 0.0, 0.22649528787365272, 0.018049730534704385, 0.14615138313733889, 0.0, 0.0, 0.0, 0.0, 0.20611785399916963, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31511052111518423, 0.0, 0.03672395965581389, 0.0, 0.0, 0.9552411806377301, 0.0, 0.0, 0.0, 0.3512720117094026, 0.0, 0.7814509194588117, 0.9900444949397926, 0.0, 0.2416698136762867, 0.0, 0.15594310090475377, 0.37345396038999507, 0.13378200524387487, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0037871796529251873, 0.0, 0.07132197093797825, 0.0, 0.0, 0.4038639203443338, 0.0, 0.007926901739731977, 0.0, 0.005121012178382578, 0.4483265473520345, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19545324009971515, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.015822792815906598, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2654026801406409, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005338269605792754, 0.3841199941370228, 0.003089715236949895, 0.0, 0.0, 0.0, 0.2702896727602311, 0.0061480462629685435, 0.0, 0.0077716018517988575, 0.0, 0.0, 0.5060334906800565, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5325221835704804, 0.4354711371945976, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4529112439588725, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.42175363431898494, 0.540090698333841, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1429447733494866, 0.0, 0.0, 0.17383910328410926, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7778438721037507, 0.7592283162924894, 0.27027978053916946, 0.9680808201913975, 0.0, 0.0, 0.0, 0.0, 0.23721687040615713, 0.0, 0.0, 0.0, 0.214724244927467, 0.0, 0.6713747276751851, 0.2691029964691732, 0.24957193666978766, 0.04174679102400021, 0.0, 0.0, 0.44623226966778873, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9739425217687773, 0.3878431688435761, 0.0, 0.0, 0.0, 0.0, 0.5905353658253105, 0.0, 0.41099451149099264, 0.46959062394023404, 0.38400872176268547, 0.0, 0.4974135902693747, 0.0, 0.0, 0.0, 0.9154557174508635, 0.2586557560688982, 0.09838729964211103, 0.4023736739495505, 0.0, 0.43229262167712557, 0.25909478937718255, 0.0, 0.0, 0.9527916935554207, 0.3993878193283669, 0.4377172055566821, 0.0, 0.0, 0.02448196261221554, 0.28590941544125414, 0.0, 0.4006023808751287, 0.03918308759508126, 0.0, 0.2882716435062163, 0.0, 0.0110856134215592, 0.37363494354124355, 0.049778285574341975, 0.0, 0.0, 0.9269077110105975, 0.31315811797299237, 0.0, 0.012303674452273154, 0.015429991708474198, 0.0, 0.0, 0.014446013487908171, 0.04123415495113678, 0.03371931705724562, 0.29538913191692134, 0.0, 0.3349006097039049, 0.23542836206424417, 0.23052114963877735, 0.31614042332280545, 0.0, 0.0, 0.11683083227872514, 0.0, 0.0, 0.0006114799040197484, 0.10975727273531571, 0.0, 0.004295508139252644, 0.05107901709661121, 0.0, 0.9334562674798996, 0.0, 0.0, 0.0, 0.0, 0.5880007983611341, 0.06450382436313898, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11800940272957328, 0.0, 0.1899751304440791, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.273744879534597, 0.0, 0.0, 0.2671580962806136, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3492510086210155, 0.0, 0.3080038714015672, 0.0, 0.0, 0.2221605109577772, 0.0, 0.0, 0.0, 0.0, 0.07999688285015112, 0.06742807554519747, 0.08634727349135116, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10258077598728532, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5012203954355052, 0.0, 0.0, 0.0, 0.08111247475296846, 0.0, 0.0, 0.12138201096876389, 0.0, 0.08982551378065248, 0.0, 0.0, 0.12126628140327211, 0.0, 0.0, 0.07844895363581271, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07837080617454226, 0.0, 0.0, 0.0, 0.20283344995989894, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1282379216751728, 0.033796057874619194, 0.0, 0.09653017040380268, 0.0, 0.08822574416521244, 0.01404236183038609, 0.056929725378038414, 0.0, 0.15526439596527059, 0.0, 0.0, 0.0, 0.03781410167223484, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2529010219858623, 0.3238608478009693, 0.0, 0.0, 0.1407409609998849, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.329852425046806, 0.0, 0.0, 0.33341239592531074, 0.45526487856119674, 0.0, 0.33690660829115365, 0.08120142522000469, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08802821410799472, 0.39029129939250945, 0.13688708765693952, 0.0, 0.08496391292272984, 0.0, 0.0, 0.5183827483305287, 0.703065773125918, 0.4814340077714492, 0.0, 0.0, 0.0, 0.12053001147739661, 0.0, 0.07320101959394086, 0.0, 0.0, 0.5105579893076974, 0.6674329003953465, 0.7892434941755087, 0.051355650714931346, 0.4403973256963498, 0.0, 0.01884360978410253, 0.0, 0.0, 0.42539452394686605, 0.1591995319925085, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17375879569486846, 0.0, 0.0, 0.0, 0.0, 0.1721016330265864, 0.0, 0.00044047585032663307, 0.1672932604423309, 0.18102660031449758, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004373654797423859, 0.0, 0.0, 0.08031885873943684, 0.0, 0.0, 0.12088873452345646, 0.0, 0.25447674137867604, 0.0, 0.20210883042048103, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05466434515545004, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005119594240948603, 0.0, 0.2461616206228127, 0.0, 0.0, 0.40062152777610743, 0.0, 0.0, 0.0, 0.4450914546665199, 0.0, 0.0, 0.0, 0.25078704499066257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6437873083636174, 0.0, 0.08986536930257488, 0.05459463157090123, 0.0, 0.0, 0.1617782592438168, 0.0, 0.0, 0.0, 0.0, 0.510293956173341, 0.0, 0.0, 0.0, 0.0, 0.0539939979224501, 0.06022554282071448, 0.0, 0.0, 0.0017903697912685446, 0.10539843894447092, 0.0, 0.007216901945678346, 0.0, 0.0, 0.0, 0.22684974207663636, 1.4564553082728662, 0.182720528082649, 0.06653876275957457, 0.0, 0.6274289004185675, 0.0, 0.5406773490882926, 0.27822503396119075, 0.09306814986560254, 0.29383387946651635, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6230315233142055, 0.9648450369390001, 0.5108864746688708, 0.0, 0.36840186712596623, 0.22805280632725022, 0.3227837297104921, 0.0, 0.0, 1.0240377781477865, 1.591691363735423, 0.0, 0.7314261723085571, 0.0, 0.0, 0.45960855697902075, 0.0, 0.43090812739194506, 0.0, 0.3151566241591431, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3316537279743774, 0.27121053456867833, 0.0, 0.0, 0.0, 0.4001441487163798, 0.5176883689695168, 0.709966180421066, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2820721974309868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03908614977726766, 0.3083419381268706, 0.39485756407874356, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11511559935873378, 0.014949071584157462, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03837527794969671, 0.5550679626138529, 0.0, 0.5726479000113842, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07921974732295421, 0.0, 0.0, 0.0, 0.0, 0.0035899619569867425, 0.0, 0.0, 0.2145099852146676, 0.0, 0.0, 0.0, 0.0, 0.21950879525087302, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09449503481586544, 0.21750142180635595, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32517302304866597, 0.0, 0.0, 0.21035924507266648, 0.0, 0.0, 0.0, 0.0, 0.23713929311152726, 0.21014969427312982, 0.0, 0.0, 0.0, 0.5438936968761621, 0.3401858622480347, 0.0, 0.0, 0.0016527476817863266, 0.0, 0.007935034693483254, 0.0, 0.0, 0.1293317927443745, 0.0, 0.0, 0.0, 0.14368792432790373, 0.0, 0.0, 0.0, 0.0, 0.35799313982296815, 0.29274964408302323, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029011045367568582, 0.0017598612427760815, 0.0, 0.0, 0.052226530139838453, 0.0, 0.0, 0.0, 0.0, 0.16473710872422428, 0.30447392294316244, 0.0, 0.0, 0.0, 0.01743076710707649, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0410977515599671, 0.0, 0.7547303898094697, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.30609022817115544, 0.0, 0.0, 0.0, 0.0, 0.2105854322132866, 0.5327502455990605, 0.13588517657689586, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24025222517683778, 0.0, 0.007535433506713796, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6979826303937671, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07410089446237557, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4744178097104391, 0.0, 0.0, 0.0, 0.0, 0.1876471424480227, 0.28765608703745393, 0.2182401932056186, 0.04951496463333951, 0.0, 0.12909838655126593, 0.0, 0.3498317042975124, 0.0, 0.37087394843503463, 0.47981991008621333, 1.1039610273729945, 0.4455015727565212, 0.05271863458630144, 0.19600051626620313, 0.0, 0.2316343353202091, 0.0, 0.0, 0.0, 0.4641150152741525, 0.15018757716392944, 0.21321672818601478, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21465382837602517, 0.0, 0.0, 0.0, 0.00020573734093944128, 0.0, 0.0, 0.0, 0.16929708918389524, 0.0160994805386141, 0.0, 0.049657622486024976, 0.0, 0.017886560545272906, 0.1659947360027911, 0.0, 0.0, 0.0, 0.0, 0.11420185948155097, 0.0, 0.07369142147184715, 0.0, 0.33489361550116375, 0.46496602729779546, 0.0036113530199273977, 0.044355883980523376, 0.08156217107736623, 0.0, 0.006501263051750628, 0.24089225482763127, 0.0, 0.0, 0.3861226254326548, 0.020506805168434235, 0.0, 0.24677384860885976, 0.0, 0.0, 0.002169816793370778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.041148887129618034, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9769895490432172, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5923828848790257, 0.0, 0.10196835358593148, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.328835975725113, 0.0, 0.0, 0.4036325198584592, 0.0, 0.0, 0.3602983928676083, 0.0, 0.0, 0.9557725494193282, 0.0, 0.43908662544955285, 0.0, 0.0, 0.46995823158461947, 0.0, 0.14454935060909507, 0.0, 0.010668331756011213, 0.6280409324984255, 0.03247332779409237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10592998533424139, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.33399686192793854, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7833052225131492, 0.0, 0.0, 0.0, 0.24187208135853017, 0.0, 0.071730719549714, 0.0, 0.11407352111288803, 0.0, 0.44957678307373006, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5736773783460691, 0.0692607726207939, 0.0, 0.0, 0.4731102083446558, 0.7389531951966185, 0.028778055517643567, 0.22717903301955947, 0.0, 0.1436855444728547, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.49542697237169275, 0.0, 0.3454532351491738, 0.11660950163380673, 0.0, 0.0, 0.0, 0.0, 0.027794605242432064, 0.0, 0.0, 0.0, 0.132905538815286, 0.0, 0.05497259939520882, 0.0, 0.0, 1.2625457513449383, 0.39900789022393385, 0.0, 0.0, 0.0, 0.0, 0.4114559732861708, 0.4741201455820112, 0.0, 0.21077985466978477, 0.0, 0.0, 0.7439578224938339, 0.42232266256074136, 0.4876343844944301, 0.6687496612887465, 0.115118039848854, 0.0, 0.0, 0.0, 0.0, 0.05260063632046659, 0.07759581613885312, 0.028401563276091994, 0.0, 0.056334062495133036, 0.17033944709766455, 0.9153107777932757, 0.0, 0.004924424218813803, 0.057509247607595904, 0.0, 0.7491964746840728, 0.05934710743113981, 0.0, 0.0, 0.0, 0.22238712275143577, 0.4319949206677921, 0.025917686578643146, 0.031803778192995576, 0.0, 0.6741550137516903, 0.009328571558732282, 0.0, 0.0, 0.0, 0.0, 0.5515037103010108, 0.6987172178395075, 0.0, 0.0, 0.0, 0.060174729085221354, 0.0, 0.0, 0.08734749351416564, 0.6636235071641303, 0.09580942583448827, 0.0, 0.0, 0.08996354325075087, 0.04525348827838765, 0.5824434635228624, 0.05819874866882126, 0.12005968761069685, 0.0, 0.0, 0.3313826265510977, 0.0, 0.058140773587614956, 0.6127791119711469, 0.0, 0.0, 0.15047559500471339, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6662085079556846, 0.3400843601648346, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22423528728211575, 0.0, 0.0, 0.0, 0.0, 0.3636963343220375, 0.5756271502974593, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046502182852265775, 0.0, 0.04891501992848654, 0.0, 0.0, 0.0, 0.9407814186149676, 0.09733317875961926, 0.0, 0.11672934297033466, 0.0, 0.6385588104227404, 0.0, 0.022206283976929683, 0.09845615426665595, 0.03496357540242119, 0.0, 0.0, 0.0, 0.0, 0.03380456195194267, 0.18543528221865002, 0.12144811071150914, 0.0, 0.03755694741887004, 0.16907550573428723, 0.0, 0.0, 0.1443808645220955, 0.0, 0.1003230425739974, 0.12879502114342312, 0.0647357901808317, 0.0, 0.5084955858844, 0.08519692951707138, 0.007582866204885641, 0.0, 0.03198292312330168, 0.0, 0.1209623049539008, 0.0, 0.12387820451445683, 0.0, 0.0, 0.043058753609476905, 0.03493082633215086, 0.0, 0.0, 0.043777031505228374, 0.016261326799286477, 0.16693678030096587, 0.0, 0.0]), 42), 42)),) julia> @finch_code begin Ct .= 0 for i = parallel(_) @@ -246,7 +246,7 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.2504314291953376, 0.0, 0.0, 0.9648065476989627, 0.2835978542736629, 0.13211849643271117, 0.2796391765298554, 0.22540993882752317, 0.5512218518807817, 0.5478145335437775, 0.0, 0.2291959647754706, 0.23520231615614767, 0.03296826745685447, 0.18421763750874248, 0.6035878434468992, 0.7441004608135994, 0.2535097758200323, 0.20236453274735783, 0.09228241774990334, 0.13384560784694935, 0.5269755678736615, 0.03880627317810495, 0.17704264007357723, 0.0, 0.2632287465084173, 0.0, 0.02720231717357045, 0.5246531850072871, 0.0, 0.0, 0.3360269038793386, 0.0, 0.22538882742471622, 0.22621665568148489, 0.0, 0.09095677592426996, 0.0, 0.2343687318872728, 0.0, 0.00044179348092010485, 0.07281055209847118, 0.6821285312867097, 0.0, 0.0, 0.0, 0.8944403740767686, 0.11973372388784431, 0.2613237068921269, 0.5923534538840982, 0.0, 0.0, 0.0, 0.8426453838331012, 0.0, 0.0, 1.0769929937540788, 0.43300907588983417, 0.0, 0.6905133736710757, 0.0, 0.0, 0.0, 0.07271653050953786, 0.8664857754450395, 0.08570530865158534, 0.0, 0.7169860381548754, 0.20498067747201715, 0.0, 0.23050103487101342, 0.0, 0.0, 0.9152746488430813, 0.14299878494120105, 0.44815460009097313, 0.0, 0.0, 0.0, 0.23162241551000032, 1.0326337985335274, 1.0530846396126474, 0.22109306040172927, 0.0, 0.0, 0.0, 1.0289491599002607, 0.008076930682810486, 0.037079469071792215, 0.0, 0.03308196940629956, 0.07165705922647192, 0.18447863887953236, 0.0, 0.24885144181470292, 0.0, 0.0, 0.0, 0.7193963651558962, 0.0, 0.6007574484421223, 0.0, 0.11361690641306497, 0.0, 0.0, 0.0, 0.0, 0.5189539173895105, 0.027360695267410504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.769945776489901, 0.00013219515459577855, 0.0, 0.0, 0.0, 0.0, 0.21518747264967641, 0.0, 0.0, 0.0, 0.10980938651098104, 0.07347552139071808, 0.0, 0.3613462418752601, 0.04465135919773286, 0.027102240057490925, 0.0, 0.0, 0.2594566815123038, 0.417973871558788, 0.02337304044012675, 0.5498222432776159, 0.011558313103301096, 0.13519961718643905, 0.0830809338177889, 0.0, 0.0, 0.0, 0.17989871031119878, 0.05233157238393502, 0.0, 0.051508809526025434, 0.225133841185459, 0.18950167625902217, 0.0, 0.0, 0.0, 0.20173577654712102, 0.7662693488070871, 0.0, 0.33259178463685746, 0.13865467767460202, 0.0, 0.8944580603877651, 0.0, 0.060682785060590494, 0.06051599339484606, 0.0, 0.0, 0.0, 0.12305720211410776, 0.10081888448105404, 0.0, 0.0, 0.2522377522294325, 0.0, 0.12103967793114603, 0.06077105223878225, 0.0, 0.0, 0.5586258592154407, 0.0, 0.0, 0.0, 0.2984848816909581, 0.029564782247173068, 0.6276543733906952, 0.0, 0.07353625635562432, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08001934416956356, 0.13808411155288577, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0013608908425346389, 0.15477792583676012, 0.8924302032481646, 0.0, 0.13515079773758784, 0.0, 0.059793517595463114, 0.0, 0.04933055693313389, 0.0, 0.0, 0.3342781850907459, 0.02578025634698341, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1229501707927792, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287208489034296, 0.0, 0.0, 0.28149278769379354, 0.0, 0.0, 0.0, 0.031923890851782225, 0.23740383631799186, 0.0, 0.0, 0.0, 0.0, 0.06362127081034188, 0.2629034525588847, 0.0, 0.9151807425831917, 0.0, 0.0, 0.0, 0.6693739198309284, 0.0, 0.0, 0.2061930933620024, 0.27528937724536684, 0.0, 0.0, 0.0, 0.0, 0.2675780483794807, 0.02063619759744684, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5460074055587408, 0.0, 0.6541555536266587, 0.0, 0.0, 0.07150154126300666, 0.0, 0.15048122306270975, 0.034115472912426725, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.050926612139623545, 0.21044506008920905, 0.0, 0.0, 0.4253961501964202, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5242476712268254, 0.0, 0.0, 0.6721198397890595, 0.02913210340779019, 0.0, 0.20059561631676462, 0.0, 0.29433701033990906, 0.0, 0.0, 0.0, 0.12559144077146528, 0.0, 0.0, 0.32229898127496104, 0.0, 0.0, 0.05500938293182685, 0.1114468235961369, 0.09601244908001759, 0.255231140185047, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05242264559033129, 0.07189305704474794, 0.29708512061039594, 0.0, 0.0, 0.16167981650220184, 0.0, 0.0, 0.42894283906704944, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24120550186102305, 0.002462183433889286, 0.1185465354728046, 0.0, 0.0, 0.20924909285728116, 0.0, 0.2383879501918044, 0.0, 0.08928505124693381, 0.0, 0.0, 0.2291277246538886, 0.0, 0.0, 0.039107088380868994, 0.03339412468553525, 0.0, 0.17867986571670036, 0.0, 0.15885581639487184, 0.0, 0.4770109811329409, 0.46521958209705216, 0.08213268605220507, 0.8570033319080816, 0.5762497735248863, 0.025109002675938377, 0.0, 0.0, 0.0, 0.006062678222071191, 0.6895253688974624, 0.0, 0.0, 0.14425623656373723, 0.0, 0.26058653129843573, 0.2499129405223175, 0.5556369963578781, 0.0, 0.0, 0.14846473797228377, 1.311439497677356, 0.0, 0.0, 0.0, 0.14844299347189643, 0.0, 0.06204384333300274, 0.5085214657536261, 0.06333953518463412, 0.0, 0.4087271917522072, 0.56471815720299, 0.0, 0.7613475113276124, 0.31092441757595435, 0.25657570652463557, 0.0, 0.6284352010004853, 0.0, 0.44245087677575873, 0.0, 0.5840306487685422, 0.886297089335757, 0.0, 0.2141960416332438, 0.0, 0.0, 0.7455493113099605, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9841442926021067, 0.155496454991287, 0.0, 0.0, 0.07678252545804619, 0.0, 0.0, 0.3721354350358947, 0.020164712785984047, 0.0, 0.0, 0.0, 0.0, 0.1088564167894987, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9595213220321046, 0.0, 0.026588936071193094, 0.0, 0.0, 0.18249673153915044, 0.041373682209080435, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04976306812868327, 0.2056369238513726, 0.0, 0.0, 0.341205976763526, 0.0, 0.0, 0.0, 0.0, 0.5785815925839551, 0.0, 0.0, 0.0, 0.5989984098523007, 0.041848978991102986, 0.0, 0.7058966144833084, 0.0, 0.1357909427918936, 0.0, 0.0, 0.0, 0.6943234317201388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03329077451447904, 0.0, 0.16959332194846893, 0.03825181104342904, 0.0, 0.030570483496490792, 0.0, 0.181963825346749, 0.0, 0.0, 0.0861751567882612, 0.0, 0.23433890396321935, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06468139820825311, 0.4901043774165395, 0.0, 0.1652405132589817, 0.0, 0.0, 0.07483443864111192, 0.0, 0.0, 0.0, 0.2810295005684995, 0.0, 0.3898372849078984, 0.0, 0.27070466717435465, 0.5873234092956581, 0.0, 0.0, 0.8033877947986148, 0.0, 0.0, 0.0, 0.5030084273245645, 0.1643009637310288, 0.0, 0.0, 0.0, 0.052313365367879956, 0.02924539070601191, 0.0, 0.7815339827038686, 0.0, 0.631919493277437, 0.08243985181699306, 0.0, 0.0, 0.0, 0.0, 0.12868680907403285, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.1259698971001804, 0.7198499769348474, 0.0, 0.41807281750787384, 0.0, 0.0, 0.6290848565988848, 0.7773412611170788, 0.0, 0.3270721417747804, 0.0, 0.0, 0.6187710034515789, 0.07069501936159496, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15113911645003905, 0.0, 0.15654877177402662, 1.1322176354521876, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2636197382380641, 0.0, 0.0, 0.34206988627899454, 0.0, 0.0, 0.2168559436204628, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12189174979618164, 0.009400555275465744, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02319896532052816, 0.09586554938115534, 0.0, 0.0, 0.47758214062526055, 0.0, 0.0, 0.0, 0.0, 0.766521270904984, 0.0, 0.0, 0.0, 0.05687724891036996, 0.0, 0.0, 0.0, 0.019988327516632248, 0.0, 0.0, 0.24020596976351885, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5319793134128888, 0.0, 0.0, 0.12310759546793347, 0.28424710350697324, 0.0, 0.9704064926727941, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.595062055789435, 0.0, 0.022922464313533127, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7479520138852049, 0.0, 0.0, 0.0, 0.0, 0.11201726895804533, 0.0, 0.0, 0.5882991104057551, 0.0, 0.0, 0.0, 0.5372591710353254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4185803721513073, 0.0, 0.4160894350708626, 0.35712090084273435, 0.0, 0.0, 0.0, 0.0, 0.3329375067097101, 0.0, 0.0, 0.0, 0.9791513934288851, 0.040171778764664906, 0.0, 0.0, 0.18774405618493867, 0.47311893679528827, 0.2590438343789052, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12077476728428499, 0.0, 0.06327325623124767, 0.0, 0.0, 0.0, 0.0, 0.34849519635188847, 0.0, 0.4382603746311635, 0.0, 0.0, 0.0, 0.09913709085437171, 0.4096661875861404, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4230910500526733, 0.0, 0.0, 0.0, 0.17776900851570368, 0.0, 0.5438917161748563, 0.0, 0.43287084617637955, 0.0, 0.0, 0.0, 0.5349746055023918, 0.0, 0.7894262258085124, 0.0, 0.0, 0.0, 0.416696264214944, 0.1414148713022835, 0.0, 0.1306712640828635, 0.5944339267365731, 0.0, 0.0, 0.0, 0.3098486230376566, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27475814956764166, 0.0, 0.0, 0.0, 0.572874722755641, 0.7993131511508778, 0.0, 0.2979949962228512, 0.14400098705349634, 0.0, 0.0, 0.02684711041673838, 0.0, 0.0575193250192605, 0.13038147684896279, 0.07982177723780243, 0.0, 0.0, 0.22370954598082965, 0.0, 0.0, 0.0, 0.16207849359014098, 0.8780589957563658, 0.0, 0.0, 0.0, 0.03773454641900064, 0.0, 0.190720074864707, 0.03823162707299666, 0.0, 0.027092618673790602, 0.07782668325822914, 0.0, 0.0, 0.025612768291380317, 0.0, 0.1339183762706947, 0.03147511447091019, 0.0, 0.0, 0.22256660522037766, 0.0, 0.050981846070955524, 0.33080849696175413, 0.22670468547648376, 0.0, 0.0, 0.2394131641393997, 0.0, 0.6763225254232694, 0.0, 0.32609931596811353, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02551395955593748, 0.0, 0.19870976845837512, 0.0, 0.8838430389981123, 0.0, 0.8900590234719281, 0.0, 0.1395885727389325, 0.39274638865688727, 0.13258182339863903, 1.0427544725112363, 0.007925765580094073, 0.0, 0.0, 0.9248219821941955, 0.0, 0.38782207933590473, 0.20331266090801786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4620448777897825, 0.5673723076761421, 0.13444042454417618, 0.0, 0.0012927651989113214, 0.0, 0.0, 0.0, 0.3049721916420315, 0.017266202832261764, 0.0, 0.0, 0.07071993264415252, 0.04567425634491729, 0.3943633692304047, 0.0, 0.15861807151929683, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05848946000294637, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0002825960061227963, 0.18362488935764, 0.0, 0.0, 0.0, 0.16115194339742445, 0.5974334511167834, 0.0, 0.04024167944046561, 0.33382381844541353, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6087942383002851, 0.0, 0.0, 0.7807479082612564, 0.3974967659255351, 1.5487027213337248, 0.03765559375444021, 0.17692333788215128, 0.23426356503546714, 0.0, 0.22388851869475412, 0.04007956243736881, 1.0262040210122396, 0.0, 0.7972348331243138, 1.0049259227957363, 0.051433760809377164, 0.0, 0.8283458296766737, 0.0, 0.7561556098507006, 0.0, 0.0, 0.0, 0.24907496608552146, 0.0, 0.5011916402324644, 0.1747189814102487, 0.9899595982235516, 0.6164188940137083, 0.11559029428984438, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.593849645786338, 0.0, 0.0, 0.0, 0.0, 0.13660851844466146, 0.030970403587585463, 0.23157107362581741, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13749939723080143, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7110898100418397, 0.0, 0.0, 0.0, 0.46081314114808425, 0.7109856621285974, 0.2884350146527927, 0.0, 0.0, 0.30337236072169704, 0.06739814120009983, 0.0, 0.7785291912169707, 0.0, 0.0, 0.13287789565404662, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3593823347180517, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4624623396236477, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.024288127378650458, 0.0, 0.793430084070044, 0.0, 0.0, 0.07003161792104487, 0.0, 0.390525043836891, 0.7636039620295462, 0.06950112764284275, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019321154098251664, 0.0, 0.18651557279691772, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05792018405822482, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18265223354453325, 0.12454723256219671, 0.0, 0.0002798455087109209, 0.0, 0.0, 0.11611318457978691, 0.05398921986713746, 0.0, 0.8752290763913787, 0.0, 0.0, 0.0, 0.0, 0.13107895831547542, 0.0, 0.0, 0.45521248179167606, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11685661958627322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44522459151527227, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26435993065610003, 0.021758541234477975, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2146225974372531, 0.0, 0.13433790512658406, 0.030902835047588124, 0.0, 0.0, 0.03139052000724026, 0.0, 0.0, 0.7200671942026683, 0.0, 0.0, 0.05946084260814123, 0.0, 0.14663715828117352, 0.03324398818324252, 0.008023890708802274, 0.05967012120515395, 0.0, 0.0, 0.0, 0.10840406404650259, 0.0, 0.0, 0.0, 0.23002554078955822, 0.0, 0.21539070760796813, 0.0, 0.15809846801096508, 0.0, 0.0, 0.023379160669788793, 0.06919243918501702, 0.0, 0.4184368340983768, 0.0, 0.0, 0.0, 0.025499570825031452, 0.0, 0.054632252014063354, 0.12383722685885369, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08100665304577326, 0.0, 0.0, 0.0, 1.137863121002405, 0.0, 0.0, 0.18114724382910816, 1.0175246627827756, 0.0, 0.8319051265218698, 0.7408406030496757, 0.0, 0.0, 0.4793159619581115, 0.26457362772519605, 0.7690370272987045, 0.02989528102721059, 0.0, 0.0, 0.0, 0.34236772701032764, 0.22777638147070367, 0.20013535639204974, 0.7445351180710278, 0.0, 0.0, 0.32085924041220354, 0.0, 0.0, 0.0, 0.5922078604864867, 0.0, 0.0, 0.18324289767504168, 0.0, 0.0, 0.05247138335835671, 0.48819810625100485, 0.0, 0.4058243472838195, 0.0, 0.0, 0.6944817185701155, 0.21684000174364465, 0.0, 0.12484778900119534, 0.0, 0.5314768166536554, 0.0, 0.0, 0.0, 0.0, 0.11888353831534566, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4539474830982486, 0.0, 0.12931153719488578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.23351697026332235, 0.0, 0.0, 0.0, 0.0, 0.2291429172294868, 0.4258647172142874, 0.0, 0.0, 0.0, 0.22479141295616378, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05853977920447593, 0.0, 0.16715127001769428, 0.0, 0.3712702672746247, 0.13508244363790445, 0.06392604260421969, 0.5912989058272206, 0.4437811402099471, 0.0, 0.0, 0.0, 0.0, 0.005827558703832637, 0.6627845677844773, 0.0, 0.0, 0.0, 0.30904361146056275, 0.6816789334794826, 0.1436649772664439, 0.16334297841077242, 0.0, 0.0, 0.7882286990025497, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7753056808075847, 0.035768380854023674, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44917737188494944, 0.0, 0.18937379890511313, 0.06882274914369534, 0.0, 0.0, 0.0, 0.009287224889287345, 0.06906497794085972, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26624227636214304, 0.0, 0.0, 0.0, 0.1829905316954157, 0.0, 0.06582989974405196, 0.2036305981722081, 0.08008655235603437, 0.0, 0.0, 0.0, 0.0, 0.0, 0.41729810318329397, 0.0, 0.0, 0.0, 0.0, 0.0, 0.037951024806923965, 0.0, 0.0, 0.0, 0.0, 0.41651629143780994, 0.0, 0.2053954771505675, 0.29245802337269494, 0.0368786813523771, 0.0, 0.38440171693921094, 0.0, 1.0326219326945734, 0.0, 0.02604768015780454, 0.9153304998316836, 0.0, 0.0, 0.0, 0.021211537114504155, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3418184639399641, 0.9530187941808128, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5415447555144779, 0.0, 0.16269589476095273, 0.0, 0.2704207942532035, 0.6129742049927741, 0.0, 0.0, 0.0, 0.0, 0.07078757436524862, 0.0, 0.7077105145475581, 0.34262729838304967, 0.5909987644476324, 0.0, 0.11177131716736882, 0.4359653240929594, 0.04723041930008277, 0.45146742793812006, 0.896649501844373, 0.0, 0.0, 0.6373803605539574, 0.5201327056992473, 0.10980024784153514, 0.07242729038979111, 0.0, 0.25075448235999825, 0.0, 0.14797679652158516, 0.0, 0.0, 0.0, 0.0, 0.6939917265420261, 0.9906375819864492, 0.9257686181712707, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37693205342755914, 0.5232740229070877, 0.0, 0.060081052233409524, 0.0, 0.3350366056610552, 0.0, 0.20067269510180097, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5308540215160052, 0.0, 0.0, 0.04969049276705586, 0.4729163126308979, 0.17206519556589087, 0.08142765800071788, 0.0, 0.6342266715653555, 0.28491323267898133, 0.0, 0.0, 0.0, 0.0, 0.3249315382934875, 0.27888197557292793, 0.0, 0.00024008316707892853, 0.0, 0.0, 0.4429941865632019, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08351200806876206, 0.0, 0.0, 0.3644144714136701, 0.0, 0.25850208657414453, 0.3044172676246769, 0.0, 0.0, 0.0, 0.42064905943656483, 0.5410542431685182, 0.0, 0.0, 0.0235250266831074, 0.17227146855360218, 0.0, 0.0, 0.11190852746246406, 0.0, 0.0, 0.0, 0.0, 0.14411942384547258, 0.0, 0.0, 0.4237744107411662, 0.0, 0.2972186074559964, 0.0, 0.5397314242092841, 0.4632402464002124, 0.0, 0.5786606886346829, 0.0, 0.0, 0.47789419623388885, 0.0, 0.0, 0.0, 0.10580588439167306, 0.0, 0.0, 0.7377357792707717, 0.0, 0.10579038780894534, 0.0, 0.0, 0.0, 0.045139981578782816, 0.0, 0.0, 0.11584045845995011, 0.0, 0.0, 0.019771431213384455, 0.36490249309768175, 0.35310751173091487, 1.1149184594112733, 0.0, 0.0, 0.0, 0.5857527772485364, 0.44959707967332574, 0.1008560617277558, 0.018841708015473753, 0.7001531183110316, 0.0, 0.0, 0.0, 0.5946141177445001, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22666010948008636, 0.0, 0.0, 0.0, 0.0, 0.0, 0.014782177343261123, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02695824533437821, 0.0, 0.0, 0.0, 0.016838719448302838, 0.0, 0.0, 0.0, 0.08231997245985787, 0.0, 0.0, 0.0, 0.01058107131899943, 0.0, 0.05814319369896461, 0.0, 0.0, 0.0, 0.0, 0.047348036509572325, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019563192629043182, 0.027295875565384514, 0.0, 0.0, 0.0, 0.0, 0.33629932740438834, 0.0, 0.0, 0.0, 0.32394391802925426, 0.5704070896351352, 0.0, 0.14173474826201982, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6013127745008292, 0.0, 0.7561985490243033, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2959306772073682, 0.2539911401819114, 0.0, 0.0, 0.7300245622804938, 0.0, 0.2367914528076339, 0.0, 0.0, 0.0, 0.33628005236128533, 0.025934644678944505, 0.0, 0.06026134263178236, 0.0, 0.0, 0.03662105153743461, 0.06883834406728133, 0.0, 0.0, 0.21279478779844782, 0.0, 0.0, 0.07129569822964256, 0.0, 0.09738688258412649, 0.06246220065656896, 0.0, 0.059045957391141574, 0.0, 0.006923917652553149, 0.051490108793371445, 0.0, 0.16644468958034975, 0.19015418061029377, 0.10882376279915186, 0.06400227485256132, 0.2644778831991808, 0.0, 0.19849197355887785, 0.0, 0.0010725148648749981, 0.12198011848273568, 0.1548472256356659, 0.0, 0.009305339154304988, 0.0, 0.10589543929012146, 0.0, 0.0, 0.17178211974814458, 0.0, 0.23085925511580369, 0.0, 0.0, 0.0, 0.31374773386794685, 0.0, 0.4234572393895347, 0.0, 0.0, 0.0, 0.045888478821935044, 0.0, 0.0, 0.13665231391596233, 0.0, 0.05546447903889757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15847133453228077, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3148706017686264, 0.2655048691833022, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.28333620483908656, 0.0, 0.0, 0.0, 0.3208604446677971, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25931056270601605, 0.0, 0.0, 0.20842242702467234, 0.0, 0.0, 0.28681902268117093, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2978149918318377, 0.0, 0.0, 0.09574337597144772, 0.0, 0.0, 0.38017827065442816, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03128644702667798, 0.0, 0.0, 0.0]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.18463927542167063, 0.16872726618738124, 0.0, 0.0, 0.0, 0.5894648191942263, 0.0, 0.0, 0.4399979683038884, 0.4872396182365841, 0.0, 0.0, 0.0, 0.5232587908717465, 0.0, 0.028458776980687873, 0.0, 0.1912882078151879, 0.5164204427507948, 0.25375520169397275, 0.7988048308846816, 0.548219404354131, 0.0, 0.0, 0.0, 0.08973042123875676, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16269102551813888, 0.0, 0.6368094288799442, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03708423534085979, 0.16845626013473977, 0.6588748971102081, 0.010877416543996312, 0.0, 0.0, 0.0, 0.44123232519423083, 0.0, 0.24002669576156066, 0.0, 0.0, 0.0, 0.21689234576879324, 0.2098895841423717, 0.6161647640351655, 0.4776903273077015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6355594744363152, 0.0, 0.0, 0.08457949502263125, 0.0, 0.0, 0.6901459039432658, 0.0, 0.0, 0.0, 0.057641486402300816, 0.0, 0.0, 0.09549316762404748, 0.09211299074367744, 0.11795836585190977, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0467877508869465, 0.0, 0.0, 0.0, 0.0, 0.04370712736779799, 0.281244207688617, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2030486542718697, 0.0, 0.5182178756464231, 0.0, 0.0, 0.0, 0.057729640414041494, 0.0, 0.0, 0.0, 0.0, 0.19354540299708142, 0.06300918519480127, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1478355026964281, 0.0, 0.0, 0.0, 0.541165159810693, 0.0, 0.0, 0.0, 0.16407931870757664, 0.2057712545151301, 0.32812733654993936, 0.0, 0.24913050204963633, 0.20974603114415158, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5086673274457614, 0.32467254520642835, 0.0, 0.22357645210013752, 0.0, 0.0, 0.0, 0.15908397194054766, 0.0, 0.5866968618616202, 0.21349654033737236, 0.243214867615369, 0.0, 0.0, 0.27374855832219774, 0.0, 0.3075930851551728, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44087523604465795, 0.22505682646241645, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2406824670174747, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4353583318013107, 0.0, 0.0, 0.0, 0.0, 0.42257756079609887, 0.0, 0.16328692344233348, 0.7239663574899861, 0.253917129058883, 0.0, 0.0, 0.0, 0.012941670285380298, 0.005948300091521438, 0.6648934966409066, 1.0229318994166612, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13578338949001834, 0.4197116456419966, 0.0, 0.947053670891027, 0.0, 0.13486088669396906, 0.0, 0.6620124726194103, 0.0, 0.6496849904621673, 0.0, 0.0, 0.7890806801928671, 0.01841465881846702, 0.27914669822772004, 0.0, 0.029516583729604803, 0.0, 0.0, 0.018864268719240455, 0.24394303159635272, 0.0, 0.5741603792214627, 0.3080365664801448, 0.6155081898538994, 0.2367816204152454, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17416434327376132, 0.0, 0.0, 0.0, 0.0, 0.16269692366253372, 0.0, 0.3491221627973697, 0.0, 0.0, 0.0, 0.0, 0.0, 0.896220207410521, 0.13858473312625733, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2148948115594729, 0.1029957040349639, 0.0, 0.10833979410008034, 0.0, 0.0, 0.23454757178184932, 0.0, 0.2155791117194733, 0.0, 0.22311080318652476, 0.0, 0.0, 0.0, 0.0, 0.07959294795619429, 0.0, 0.17163567622890405, 0.07283994445558169, 0.0, 0.0, 0.0, 0.08654379427684032, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16368166253985994, 0.0, 0.17071385720442764, 0.34758616988919516, 0.0, 0.0, 0.0, 0.0, 0.25336804558610515, 0.0, 0.032257457723339725, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2136279714073461, 0.0, 0.24003957209260046, 0.21303254632455026, 0.006511170502708404, 0.383310313899178, 0.0, 0.0, 0.0, 0.1337677376744651, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0646519260588245, 0.0, 0.0, 0.0, 0.31350938881953055, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20384728982176575, 0.0, 0.0, 0.0, 0.0, 0.05670575896106868, 0.0, 0.05964802423259749, 0.0, 0.0, 0.0, 0.4488563568162377, 0.11869016538841153, 0.0, 0.07667734536959822, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.040450967971474544, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09480431131127824, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0016369185703860613, 0.0, 0.0017218526009009176, 0.0, 0.0, 0.0, 0.0, 0.003426215245260554, 0.0, 0.002213436040060287, 0.0, 0.0, 0.0, 0.0, 0.028624781651490867, 0.0, 0.0, 0.0917221717112923, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03948493179664919, 0.0998678691104795, 0.0, 0.0, 0.0, 0.0, 0.0519314302968116, 0.019753641949088564, 0.0, 0.0, 0.08679325173985959, 0.0, 0.0, 0.44412542864463755, 0.0, 0.0, 0.0, 0.25440324223859473, 0.0, 0.06322962025433154, 0.0, 0.10055420420038351, 0.08043066558940987, 0.01930551218305079, 0.019941838639940274, 0.025537187307223392, 0.0, 0.2186623932992767, 0.06407227122111338, 0.0254835950299198, 0.0, 0.0, 0.6628636898477958, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5422666551724673, 0.6870145051652384, 0.0, 0.0, 0.1501651963322761, 0.019574736086580828, 0.0, 0.0, 0.03589870327691644, 0.0, 0.026565876114361182, 0.0, 0.0, 0.029264986204643254, 0.0, 0.0, 0.01893195304872942, 0.046727577005066426, 0.0, 0.0, 0.28025040572174376, 0.0, 0.018913093854322344, 0.0, 0.0, 0.0, 0.04894945277637971, 0.006583695531171352, 0.3875798367774556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3292155284261099, 0.04344067936293723, 0.0653720550702903, 0.0, 0.0, 0.22649528787365272, 0.018049730534704385, 0.14615138313733889, 0.0, 0.0, 0.0, 0.0, 0.20611785399916963, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31511052111518423, 0.0, 0.03672395965581389, 0.0, 0.0, 0.9552411806377301, 0.0, 0.0, 0.0, 0.3512720117094026, 0.0, 0.7814509194588117, 0.9900444949397926, 0.0, 0.2416698136762867, 0.0, 0.15594310090475377, 0.37345396038999507, 0.13378200524387487, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0037871796529251873, 0.0, 0.07132197093797825, 0.0, 0.0, 0.4038639203443338, 0.0, 0.007926901739731977, 0.0, 0.005121012178382578, 0.4483265473520345, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19545324009971515, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.015822792815906598, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2654026801406409, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005338269605792754, 0.3841199941370228, 0.003089715236949895, 0.0, 0.0, 0.0, 0.2702896727602311, 0.0061480462629685435, 0.0, 0.0077716018517988575, 0.0, 0.0, 0.5060334906800565, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5325221835704804, 0.4354711371945976, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4529112439588725, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.42175363431898494, 0.540090698333841, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1429447733494866, 0.0, 0.0, 0.17383910328410926, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7778438721037507, 0.7592283162924894, 0.27027978053916946, 0.9680808201913975, 0.0, 0.0, 0.0, 0.0, 0.23721687040615713, 0.0, 0.0, 0.0, 0.214724244927467, 0.0, 0.6713747276751851, 0.2691029964691732, 0.24957193666978766, 0.04174679102400021, 0.0, 0.0, 0.44623226966778873, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9739425217687773, 0.3878431688435761, 0.0, 0.0, 0.0, 0.0, 0.5905353658253105, 0.0, 0.41099451149099264, 0.46959062394023404, 0.38400872176268547, 0.0, 0.4974135902693747, 0.0, 0.0, 0.0, 0.9154557174508635, 0.2586557560688982, 0.09838729964211103, 0.4023736739495505, 0.0, 0.43229262167712557, 0.25909478937718255, 0.0, 0.0, 0.9527916935554207, 0.3993878193283669, 0.4377172055566821, 0.0, 0.0, 0.02448196261221554, 0.28590941544125414, 0.0, 0.4006023808751287, 0.03918308759508126, 0.0, 0.2882716435062163, 0.0, 0.0110856134215592, 0.37363494354124355, 0.049778285574341975, 0.0, 0.0, 0.9269077110105975, 0.31315811797299237, 0.0, 0.012303674452273154, 0.015429991708474198, 0.0, 0.0, 0.014446013487908171, 0.04123415495113678, 0.03371931705724562, 0.29538913191692134, 0.0, 0.3349006097039049, 0.23542836206424417, 0.23052114963877735, 0.31614042332280545, 0.0, 0.0, 0.11683083227872514, 0.0, 0.0, 0.0006114799040197484, 0.10975727273531571, 0.0, 0.004295508139252644, 0.05107901709661121, 0.0, 0.9334562674798996, 0.0, 0.0, 0.0, 0.0, 0.5880007983611341, 0.06450382436313898, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11800940272957328, 0.0, 0.1899751304440791, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.273744879534597, 0.0, 0.0, 0.2671580962806136, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3492510086210155, 0.0, 0.3080038714015672, 0.0, 0.0, 0.2221605109577772, 0.0, 0.0, 0.0, 0.0, 0.07999688285015112, 0.06742807554519747, 0.08634727349135116, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10258077598728532, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5012203954355052, 0.0, 0.0, 0.0, 0.08111247475296846, 0.0, 0.0, 0.12138201096876389, 0.0, 0.08982551378065248, 0.0, 0.0, 0.12126628140327211, 0.0, 0.0, 0.07844895363581271, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07837080617454226, 0.0, 0.0, 0.0, 0.20283344995989894, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1282379216751728, 0.033796057874619194, 0.0, 0.09653017040380268, 0.0, 0.08822574416521244, 0.01404236183038609, 0.056929725378038414, 0.0, 0.15526439596527059, 0.0, 0.0, 0.0, 0.03781410167223484, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2529010219858623, 0.3238608478009693, 0.0, 0.0, 0.1407409609998849, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.329852425046806, 0.0, 0.0, 0.33341239592531074, 0.45526487856119674, 0.0, 0.33690660829115365, 0.08120142522000469, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08802821410799472, 0.39029129939250945, 0.13688708765693952, 0.0, 0.08496391292272984, 0.0, 0.0, 0.5183827483305287, 0.703065773125918, 0.4814340077714492, 0.0, 0.0, 0.0, 0.12053001147739661, 0.0, 0.07320101959394086, 0.0, 0.0, 0.5105579893076974, 0.6674329003953465, 0.7892434941755087, 0.051355650714931346, 0.4403973256963498, 0.0, 0.01884360978410253, 0.0, 0.0, 0.42539452394686605, 0.1591995319925085, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17375879569486846, 0.0, 0.0, 0.0, 0.0, 0.1721016330265864, 0.0, 0.00044047585032663307, 0.1672932604423309, 0.18102660031449758, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004373654797423859, 0.0, 0.0, 0.08031885873943684, 0.0, 0.0, 0.12088873452345646, 0.0, 0.25447674137867604, 0.0, 0.20210883042048103, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05466434515545004, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005119594240948603, 0.0, 0.2461616206228127, 0.0, 0.0, 0.40062152777610743, 0.0, 0.0, 0.0, 0.4450914546665199, 0.0, 0.0, 0.0, 0.25078704499066257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6437873083636174, 0.0, 0.08986536930257488, 0.05459463157090123, 0.0, 0.0, 0.1617782592438168, 0.0, 0.0, 0.0, 0.0, 0.510293956173341, 0.0, 0.0, 0.0, 0.0, 0.0539939979224501, 0.06022554282071448, 0.0, 0.0, 0.0017903697912685446, 0.10539843894447092, 0.0, 0.007216901945678346, 0.0, 0.0, 0.0, 0.22684974207663636, 1.4564553082728662, 0.182720528082649, 0.06653876275957457, 0.0, 0.6274289004185675, 0.0, 0.5406773490882926, 0.27822503396119075, 0.09306814986560254, 0.29383387946651635, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6230315233142055, 0.9648450369390001, 0.5108864746688708, 0.0, 0.36840186712596623, 0.22805280632725022, 0.3227837297104921, 0.0, 0.0, 1.0240377781477865, 1.591691363735423, 0.0, 0.7314261723085571, 0.0, 0.0, 0.45960855697902075, 0.0, 0.43090812739194506, 0.0, 0.3151566241591431, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3316537279743774, 0.27121053456867833, 0.0, 0.0, 0.0, 0.4001441487163798, 0.5176883689695168, 0.709966180421066, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2820721974309868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03908614977726766, 0.3083419381268706, 0.39485756407874356, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11511559935873378, 0.014949071584157462, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03837527794969671, 0.5550679626138529, 0.0, 0.5726479000113842, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07921974732295421, 0.0, 0.0, 0.0, 0.0, 0.0035899619569867425, 0.0, 0.0, 0.2145099852146676, 0.0, 0.0, 0.0, 0.0, 0.21950879525087302, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09449503481586544, 0.21750142180635595, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32517302304866597, 0.0, 0.0, 0.21035924507266648, 0.0, 0.0, 0.0, 0.0, 0.23713929311152726, 0.21014969427312982, 0.0, 0.0, 0.0, 0.5438936968761621, 0.3401858622480347, 0.0, 0.0, 0.0016527476817863266, 0.0, 0.007935034693483254, 0.0, 0.0, 0.1293317927443745, 0.0, 0.0, 0.0, 0.14368792432790373, 0.0, 0.0, 0.0, 0.0, 0.35799313982296815, 0.29274964408302323, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029011045367568582, 0.0017598612427760815, 0.0, 0.0, 0.052226530139838453, 0.0, 0.0, 0.0, 0.0, 0.16473710872422428, 0.30447392294316244, 0.0, 0.0, 0.0, 0.01743076710707649, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0410977515599671, 0.0, 0.7547303898094697, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.30609022817115544, 0.0, 0.0, 0.0, 0.0, 0.2105854322132866, 0.5327502455990605, 0.13588517657689586, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24025222517683778, 0.0, 0.007535433506713796, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6979826303937671, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07410089446237557, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4744178097104391, 0.0, 0.0, 0.0, 0.0, 0.1876471424480227, 0.28765608703745393, 0.2182401932056186, 0.04951496463333951, 0.0, 0.12909838655126593, 0.0, 0.3498317042975124, 0.0, 0.37087394843503463, 0.47981991008621333, 1.1039610273729945, 0.4455015727565212, 0.05271863458630144, 0.19600051626620313, 0.0, 0.2316343353202091, 0.0, 0.0, 0.0, 0.4641150152741525, 0.15018757716392944, 0.21321672818601478, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21465382837602517, 0.0, 0.0, 0.0, 0.00020573734093944128, 0.0, 0.0, 0.0, 0.16929708918389524, 0.0160994805386141, 0.0, 0.049657622486024976, 0.0, 0.017886560545272906, 0.1659947360027911, 0.0, 0.0, 0.0, 0.0, 0.11420185948155097, 0.0, 0.07369142147184715, 0.0, 0.33489361550116375, 0.46496602729779546, 0.0036113530199273977, 0.044355883980523376, 0.08156217107736623, 0.0, 0.006501263051750628, 0.24089225482763127, 0.0, 0.0, 0.3861226254326548, 0.020506805168434235, 0.0, 0.24677384860885976, 0.0, 0.0, 0.002169816793370778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.041148887129618034, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9769895490432172, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5923828848790257, 0.0, 0.10196835358593148, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.328835975725113, 0.0, 0.0, 0.4036325198584592, 0.0, 0.0, 0.3602983928676083, 0.0, 0.0, 0.9557725494193282, 0.0, 0.43908662544955285, 0.0, 0.0, 0.46995823158461947, 0.0, 0.14454935060909507, 0.0, 0.010668331756011213, 0.6280409324984255, 0.03247332779409237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10592998533424139, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.33399686192793854, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7833052225131492, 0.0, 0.0, 0.0, 0.24187208135853017, 0.0, 0.071730719549714, 0.0, 0.11407352111288803, 0.0, 0.44957678307373006, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5736773783460691, 0.0692607726207939, 0.0, 0.0, 0.4731102083446558, 0.7389531951966185, 0.028778055517643567, 0.22717903301955947, 0.0, 0.1436855444728547, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.49542697237169275, 0.0, 0.3454532351491738, 0.11660950163380673, 0.0, 0.0, 0.0, 0.0, 0.027794605242432064, 0.0, 0.0, 0.0, 0.132905538815286, 0.0, 0.05497259939520882, 0.0, 0.0, 1.2625457513449383, 0.39900789022393385, 0.0, 0.0, 0.0, 0.0, 0.4114559732861708, 0.4741201455820112, 0.0, 0.21077985466978477, 0.0, 0.0, 0.7439578224938339, 0.42232266256074136, 0.4876343844944301, 0.6687496612887465, 0.115118039848854, 0.0, 0.0, 0.0, 0.0, 0.05260063632046659, 0.07759581613885312, 0.028401563276091994, 0.0, 0.056334062495133036, 0.17033944709766455, 0.9153107777932757, 0.0, 0.004924424218813803, 0.057509247607595904, 0.0, 0.7491964746840728, 0.05934710743113981, 0.0, 0.0, 0.0, 0.22238712275143577, 0.4319949206677921, 0.025917686578643146, 0.031803778192995576, 0.0, 0.6741550137516903, 0.009328571558732282, 0.0, 0.0, 0.0, 0.0, 0.5515037103010108, 0.6987172178395075, 0.0, 0.0, 0.0, 0.060174729085221354, 0.0, 0.0, 0.08734749351416564, 0.6636235071641303, 0.09580942583448827, 0.0, 0.0, 0.08996354325075087, 0.04525348827838765, 0.5824434635228624, 0.05819874866882126, 0.12005968761069685, 0.0, 0.0, 0.3313826265510977, 0.0, 0.058140773587614956, 0.6127791119711469, 0.0, 0.0, 0.15047559500471339, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6662085079556846, 0.3400843601648346, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22423528728211575, 0.0, 0.0, 0.0, 0.0, 0.3636963343220375, 0.5756271502974593, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046502182852265775, 0.0, 0.04891501992848654, 0.0, 0.0, 0.0, 0.9407814186149676, 0.09733317875961926, 0.0, 0.11672934297033466, 0.0, 0.6385588104227404, 0.0, 0.022206283976929683, 0.09845615426665595, 0.03496357540242119, 0.0, 0.0, 0.0, 0.0, 0.03380456195194267, 0.18543528221865002, 0.12144811071150914, 0.0, 0.03755694741887004, 0.16907550573428723, 0.0, 0.0, 0.1443808645220955, 0.0, 0.1003230425739974, 0.12879502114342312, 0.0647357901808317, 0.0, 0.5084955858844, 0.08519692951707138, 0.007582866204885641, 0.0, 0.03198292312330168, 0.0, 0.1209623049539008, 0.0, 0.12387820451445683, 0.0, 0.0, 0.043058753609476905, 0.03493082633215086, 0.0, 0.0, 0.043777031505228374, 0.016261326799286477, 0.16693678030096587, 0.0, 0.0]), 42), 42)),) julia> @finch_code begin Ct .= 0 for i = _ @@ -498,7 +498,7 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.2504314291953376, 0.0, 0.0, 0.9648065476989627, 0.2835978542736629, 0.13211849643271117, 0.2796391765298554, 0.22540993882752317, 0.5512218518807817, 0.5478145335437775, 0.0, 0.2291959647754706, 0.23520231615614767, 0.03296826745685447, 0.18421763750874248, 0.6035878434468992, 0.7441004608135994, 0.2535097758200323, 0.20236453274735783, 0.09228241774990334, 0.13384560784694935, 0.5269755678736615, 0.03880627317810495, 0.17704264007357723, 0.0, 0.2632287465084173, 0.0, 0.02720231717357045, 0.5246531850072871, 0.0, 0.0, 0.3360269038793386, 0.0, 0.22538882742471622, 0.22621665568148489, 0.0, 0.09095677592426996, 0.0, 0.2343687318872728, 0.0, 0.00044179348092010485, 0.07281055209847118, 0.6821285312867097, 0.0, 0.0, 0.0, 0.8944403740767686, 0.11973372388784431, 0.2613237068921269, 0.5923534538840982, 0.0, 0.0, 0.0, 0.8426453838331012, 0.0, 0.0, 1.0769929937540788, 0.43300907588983417, 0.0, 0.6905133736710757, 0.0, 0.0, 0.0, 0.07271653050953786, 0.8664857754450395, 0.08570530865158534, 0.0, 0.7169860381548754, 0.20498067747201715, 0.0, 0.23050103487101342, 0.0, 0.0, 0.9152746488430813, 0.14299878494120105, 0.44815460009097313, 0.0, 0.0, 0.0, 0.23162241551000032, 1.0326337985335274, 1.0530846396126474, 0.22109306040172927, 0.0, 0.0, 0.0, 1.0289491599002607, 0.008076930682810486, 0.037079469071792215, 0.0, 0.03308196940629956, 0.07165705922647192, 0.18447863887953236, 0.0, 0.24885144181470292, 0.0, 0.0, 0.0, 0.7193963651558962, 0.0, 0.6007574484421223, 0.0, 0.11361690641306497, 0.0, 0.0, 0.0, 0.0, 0.5189539173895105, 0.027360695267410504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.769945776489901, 0.00013219515459577855, 0.0, 0.0, 0.0, 0.0, 0.21518747264967641, 0.0, 0.0, 0.0, 0.10980938651098104, 0.07347552139071808, 0.0, 0.3613462418752601, 0.04465135919773286, 0.027102240057490925, 0.0, 0.0, 0.2594566815123038, 0.417973871558788, 0.02337304044012675, 0.5498222432776159, 0.011558313103301096, 0.13519961718643905, 0.0830809338177889, 0.0, 0.0, 0.0, 0.17989871031119878, 0.05233157238393502, 0.0, 0.051508809526025434, 0.225133841185459, 0.18950167625902217, 0.0, 0.0, 0.0, 0.20173577654712102, 0.7662693488070871, 0.0, 0.33259178463685746, 0.13865467767460202, 0.0, 0.8944580603877651, 0.0, 0.060682785060590494, 0.06051599339484606, 0.0, 0.0, 0.0, 0.12305720211410776, 0.10081888448105404, 0.0, 0.0, 0.2522377522294325, 0.0, 0.12103967793114603, 0.06077105223878225, 0.0, 0.0, 0.5586258592154407, 0.0, 0.0, 0.0, 0.2984848816909581, 0.029564782247173068, 0.6276543733906952, 0.0, 0.07353625635562432, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08001934416956356, 0.13808411155288577, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0013608908425346389, 0.15477792583676012, 0.8924302032481646, 0.0, 0.13515079773758784, 0.0, 0.059793517595463114, 0.0, 0.04933055693313389, 0.0, 0.0, 0.3342781850907459, 0.02578025634698341, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1229501707927792, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287208489034296, 0.0, 0.0, 0.28149278769379354, 0.0, 0.0, 0.0, 0.031923890851782225, 0.23740383631799186, 0.0, 0.0, 0.0, 0.0, 0.06362127081034188, 0.2629034525588847, 0.0, 0.9151807425831917, 0.0, 0.0, 0.0, 0.6693739198309284, 0.0, 0.0, 0.2061930933620024, 0.27528937724536684, 0.0, 0.0, 0.0, 0.0, 0.2675780483794807, 0.02063619759744684, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5460074055587408, 0.0, 0.6541555536266587, 0.0, 0.0, 0.07150154126300666, 0.0, 0.15048122306270975, 0.034115472912426725, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.050926612139623545, 0.21044506008920905, 0.0, 0.0, 0.4253961501964202, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5242476712268254, 0.0, 0.0, 0.6721198397890595, 0.02913210340779019, 0.0, 0.20059561631676462, 0.0, 0.29433701033990906, 0.0, 0.0, 0.0, 0.12559144077146528, 0.0, 0.0, 0.32229898127496104, 0.0, 0.0, 0.05500938293182685, 0.1114468235961369, 0.09601244908001759, 0.255231140185047, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05242264559033129, 0.07189305704474794, 0.29708512061039594, 0.0, 0.0, 0.16167981650220184, 0.0, 0.0, 0.42894283906704944, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24120550186102305, 0.002462183433889286, 0.1185465354728046, 0.0, 0.0, 0.20924909285728116, 0.0, 0.2383879501918044, 0.0, 0.08928505124693381, 0.0, 0.0, 0.2291277246538886, 0.0, 0.0, 0.039107088380868994, 0.03339412468553525, 0.0, 0.17867986571670036, 0.0, 0.15885581639487184, 0.0, 0.4770109811329409, 0.46521958209705216, 0.08213268605220507, 0.8570033319080816, 0.5762497735248863, 0.025109002675938377, 0.0, 0.0, 0.0, 0.006062678222071191, 0.6895253688974624, 0.0, 0.0, 0.14425623656373723, 0.0, 0.26058653129843573, 0.2499129405223175, 0.5556369963578781, 0.0, 0.0, 0.14846473797228377, 1.311439497677356, 0.0, 0.0, 0.0, 0.14844299347189643, 0.0, 0.06204384333300274, 0.5085214657536261, 0.06333953518463412, 0.0, 0.4087271917522072, 0.56471815720299, 0.0, 0.7613475113276124, 0.31092441757595435, 0.25657570652463557, 0.0, 0.6284352010004853, 0.0, 0.44245087677575873, 0.0, 0.5840306487685422, 0.886297089335757, 0.0, 0.2141960416332438, 0.0, 0.0, 0.7455493113099605, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9841442926021067, 0.155496454991287, 0.0, 0.0, 0.07678252545804619, 0.0, 0.0, 0.3721354350358947, 0.020164712785984047, 0.0, 0.0, 0.0, 0.0, 0.1088564167894987, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9595213220321046, 0.0, 0.026588936071193094, 0.0, 0.0, 0.18249673153915044, 0.041373682209080435, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04976306812868327, 0.2056369238513726, 0.0, 0.0, 0.341205976763526, 0.0, 0.0, 0.0, 0.0, 0.5785815925839551, 0.0, 0.0, 0.0, 0.5989984098523007, 0.041848978991102986, 0.0, 0.7058966144833084, 0.0, 0.1357909427918936, 0.0, 0.0, 0.0, 0.6943234317201388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03329077451447904, 0.0, 0.16959332194846893, 0.03825181104342904, 0.0, 0.030570483496490792, 0.0, 0.181963825346749, 0.0, 0.0, 0.0861751567882612, 0.0, 0.23433890396321935, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06468139820825311, 0.4901043774165395, 0.0, 0.1652405132589817, 0.0, 0.0, 0.07483443864111192, 0.0, 0.0, 0.0, 0.2810295005684995, 0.0, 0.3898372849078984, 0.0, 0.27070466717435465, 0.5873234092956581, 0.0, 0.0, 0.8033877947986148, 0.0, 0.0, 0.0, 0.5030084273245645, 0.1643009637310288, 0.0, 0.0, 0.0, 0.052313365367879956, 0.02924539070601191, 0.0, 0.7815339827038686, 0.0, 0.631919493277437, 0.08243985181699306, 0.0, 0.0, 0.0, 0.0, 0.12868680907403285, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.1259698971001804, 0.7198499769348474, 0.0, 0.41807281750787384, 0.0, 0.0, 0.6290848565988848, 0.7773412611170788, 0.0, 0.3270721417747804, 0.0, 0.0, 0.6187710034515789, 0.07069501936159496, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15113911645003905, 0.0, 0.15654877177402662, 1.1322176354521876, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2636197382380641, 0.0, 0.0, 0.34206988627899454, 0.0, 0.0, 0.2168559436204628, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12189174979618164, 0.009400555275465744, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02319896532052816, 0.09586554938115534, 0.0, 0.0, 0.47758214062526055, 0.0, 0.0, 0.0, 0.0, 0.766521270904984, 0.0, 0.0, 0.0, 0.05687724891036996, 0.0, 0.0, 0.0, 0.019988327516632248, 0.0, 0.0, 0.24020596976351885, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5319793134128888, 0.0, 0.0, 0.12310759546793347, 0.28424710350697324, 0.0, 0.9704064926727941, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.595062055789435, 0.0, 0.022922464313533127, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7479520138852049, 0.0, 0.0, 0.0, 0.0, 0.11201726895804533, 0.0, 0.0, 0.5882991104057551, 0.0, 0.0, 0.0, 0.5372591710353254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4185803721513073, 0.0, 0.4160894350708626, 0.35712090084273435, 0.0, 0.0, 0.0, 0.0, 0.3329375067097101, 0.0, 0.0, 0.0, 0.9791513934288851, 0.040171778764664906, 0.0, 0.0, 0.18774405618493867, 0.47311893679528827, 0.2590438343789052, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12077476728428499, 0.0, 0.06327325623124767, 0.0, 0.0, 0.0, 0.0, 0.34849519635188847, 0.0, 0.4382603746311635, 0.0, 0.0, 0.0, 0.09913709085437171, 0.4096661875861404, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4230910500526733, 0.0, 0.0, 0.0, 0.17776900851570368, 0.0, 0.5438917161748563, 0.0, 0.43287084617637955, 0.0, 0.0, 0.0, 0.5349746055023918, 0.0, 0.7894262258085124, 0.0, 0.0, 0.0, 0.416696264214944, 0.1414148713022835, 0.0, 0.1306712640828635, 0.5944339267365731, 0.0, 0.0, 0.0, 0.3098486230376566, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27475814956764166, 0.0, 0.0, 0.0, 0.572874722755641, 0.7993131511508778, 0.0, 0.2979949962228512, 0.14400098705349634, 0.0, 0.0, 0.02684711041673838, 0.0, 0.0575193250192605, 0.13038147684896279, 0.07982177723780243, 0.0, 0.0, 0.22370954598082965, 0.0, 0.0, 0.0, 0.16207849359014098, 0.8780589957563658, 0.0, 0.0, 0.0, 0.03773454641900064, 0.0, 0.190720074864707, 0.03823162707299666, 0.0, 0.027092618673790602, 0.07782668325822914, 0.0, 0.0, 0.025612768291380317, 0.0, 0.1339183762706947, 0.03147511447091019, 0.0, 0.0, 0.22256660522037766, 0.0, 0.050981846070955524, 0.33080849696175413, 0.22670468547648376, 0.0, 0.0, 0.2394131641393997, 0.0, 0.6763225254232694, 0.0, 0.32609931596811353, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02551395955593748, 0.0, 0.19870976845837512, 0.0, 0.8838430389981123, 0.0, 0.8900590234719281, 0.0, 0.1395885727389325, 0.39274638865688727, 0.13258182339863903, 1.0427544725112363, 0.007925765580094073, 0.0, 0.0, 0.9248219821941955, 0.0, 0.38782207933590473, 0.20331266090801786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4620448777897825, 0.5673723076761421, 0.13444042454417618, 0.0, 0.0012927651989113214, 0.0, 0.0, 0.0, 0.3049721916420315, 0.017266202832261764, 0.0, 0.0, 0.07071993264415252, 0.04567425634491729, 0.3943633692304047, 0.0, 0.15861807151929683, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05848946000294637, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0002825960061227963, 0.18362488935764, 0.0, 0.0, 0.0, 0.16115194339742445, 0.5974334511167834, 0.0, 0.04024167944046561, 0.33382381844541353, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6087942383002851, 0.0, 0.0, 0.7807479082612564, 0.3974967659255351, 1.5487027213337248, 0.03765559375444021, 0.17692333788215128, 0.23426356503546714, 0.0, 0.22388851869475412, 0.04007956243736881, 1.0262040210122396, 0.0, 0.7972348331243138, 1.0049259227957363, 0.051433760809377164, 0.0, 0.8283458296766737, 0.0, 0.7561556098507006, 0.0, 0.0, 0.0, 0.24907496608552146, 0.0, 0.5011916402324644, 0.1747189814102487, 0.9899595982235516, 0.6164188940137083, 0.11559029428984438, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.593849645786338, 0.0, 0.0, 0.0, 0.0, 0.13660851844466146, 0.030970403587585463, 0.23157107362581741, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13749939723080143, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7110898100418397, 0.0, 0.0, 0.0, 0.46081314114808425, 0.7109856621285974, 0.2884350146527927, 0.0, 0.0, 0.30337236072169704, 0.06739814120009983, 0.0, 0.7785291912169707, 0.0, 0.0, 0.13287789565404662, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3593823347180517, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4624623396236477, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.024288127378650458, 0.0, 0.793430084070044, 0.0, 0.0, 0.07003161792104487, 0.0, 0.390525043836891, 0.7636039620295462, 0.06950112764284275, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019321154098251664, 0.0, 0.18651557279691772, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05792018405822482, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18265223354453325, 0.12454723256219671, 0.0, 0.0002798455087109209, 0.0, 0.0, 0.11611318457978691, 0.05398921986713746, 0.0, 0.8752290763913787, 0.0, 0.0, 0.0, 0.0, 0.13107895831547542, 0.0, 0.0, 0.45521248179167606, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11685661958627322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44522459151527227, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26435993065610003, 0.021758541234477975, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2146225974372531, 0.0, 0.13433790512658406, 0.030902835047588124, 0.0, 0.0, 0.03139052000724026, 0.0, 0.0, 0.7200671942026683, 0.0, 0.0, 0.05946084260814123, 0.0, 0.14663715828117352, 0.03324398818324252, 0.008023890708802274, 0.05967012120515395, 0.0, 0.0, 0.0, 0.10840406404650259, 0.0, 0.0, 0.0, 0.23002554078955822, 0.0, 0.21539070760796813, 0.0, 0.15809846801096508, 0.0, 0.0, 0.023379160669788793, 0.06919243918501702, 0.0, 0.4184368340983768, 0.0, 0.0, 0.0, 0.025499570825031452, 0.0, 0.054632252014063354, 0.12383722685885369, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08100665304577326, 0.0, 0.0, 0.0, 1.137863121002405, 0.0, 0.0, 0.18114724382910816, 1.0175246627827756, 0.0, 0.8319051265218698, 0.7408406030496757, 0.0, 0.0, 0.4793159619581115, 0.26457362772519605, 0.7690370272987045, 0.02989528102721059, 0.0, 0.0, 0.0, 0.34236772701032764, 0.22777638147070367, 0.20013535639204974, 0.7445351180710278, 0.0, 0.0, 0.32085924041220354, 0.0, 0.0, 0.0, 0.5922078604864867, 0.0, 0.0, 0.18324289767504168, 0.0, 0.0, 0.05247138335835671, 0.48819810625100485, 0.0, 0.4058243472838195, 0.0, 0.0, 0.6944817185701155, 0.21684000174364465, 0.0, 0.12484778900119534, 0.0, 0.5314768166536554, 0.0, 0.0, 0.0, 0.0, 0.11888353831534566, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4539474830982486, 0.0, 0.12931153719488578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.23351697026332235, 0.0, 0.0, 0.0, 0.0, 0.2291429172294868, 0.4258647172142874, 0.0, 0.0, 0.0, 0.22479141295616378, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05853977920447593, 0.0, 0.16715127001769428, 0.0, 0.3712702672746247, 0.13508244363790445, 0.06392604260421969, 0.5912989058272206, 0.4437811402099471, 0.0, 0.0, 0.0, 0.0, 0.005827558703832637, 0.6627845677844773, 0.0, 0.0, 0.0, 0.30904361146056275, 0.6816789334794826, 0.1436649772664439, 0.16334297841077242, 0.0, 0.0, 0.7882286990025497, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7753056808075847, 0.035768380854023674, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44917737188494944, 0.0, 0.18937379890511313, 0.06882274914369534, 0.0, 0.0, 0.0, 0.009287224889287345, 0.06906497794085972, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26624227636214304, 0.0, 0.0, 0.0, 0.1829905316954157, 0.0, 0.06582989974405196, 0.2036305981722081, 0.08008655235603437, 0.0, 0.0, 0.0, 0.0, 0.0, 0.41729810318329397, 0.0, 0.0, 0.0, 0.0, 0.0, 0.037951024806923965, 0.0, 0.0, 0.0, 0.0, 0.41651629143780994, 0.0, 0.2053954771505675, 0.29245802337269494, 0.0368786813523771, 0.0, 0.38440171693921094, 0.0, 1.0326219326945734, 0.0, 0.02604768015780454, 0.9153304998316836, 0.0, 0.0, 0.0, 0.021211537114504155, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3418184639399641, 0.9530187941808128, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5415447555144779, 0.0, 0.16269589476095273, 0.0, 0.2704207942532035, 0.6129742049927741, 0.0, 0.0, 0.0, 0.0, 0.07078757436524862, 0.0, 0.7077105145475581, 0.34262729838304967, 0.5909987644476324, 0.0, 0.11177131716736882, 0.4359653240929594, 0.04723041930008277, 0.45146742793812006, 0.896649501844373, 0.0, 0.0, 0.6373803605539574, 0.5201327056992473, 0.10980024784153514, 0.07242729038979111, 0.0, 0.25075448235999825, 0.0, 0.14797679652158516, 0.0, 0.0, 0.0, 0.0, 0.6939917265420261, 0.9906375819864492, 0.9257686181712707, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37693205342755914, 0.5232740229070877, 0.0, 0.060081052233409524, 0.0, 0.3350366056610552, 0.0, 0.20067269510180097, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5308540215160052, 0.0, 0.0, 0.04969049276705586, 0.4729163126308979, 0.17206519556589087, 0.08142765800071788, 0.0, 0.6342266715653555, 0.28491323267898133, 0.0, 0.0, 0.0, 0.0, 0.3249315382934875, 0.27888197557292793, 0.0, 0.00024008316707892853, 0.0, 0.0, 0.4429941865632019, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08351200806876206, 0.0, 0.0, 0.3644144714136701, 0.0, 0.25850208657414453, 0.3044172676246769, 0.0, 0.0, 0.0, 0.42064905943656483, 0.5410542431685182, 0.0, 0.0, 0.0235250266831074, 0.17227146855360218, 0.0, 0.0, 0.11190852746246406, 0.0, 0.0, 0.0, 0.0, 0.14411942384547258, 0.0, 0.0, 0.4237744107411662, 0.0, 0.2972186074559964, 0.0, 0.5397314242092841, 0.4632402464002124, 0.0, 0.5786606886346829, 0.0, 0.0, 0.47789419623388885, 0.0, 0.0, 0.0, 0.10580588439167306, 0.0, 0.0, 0.7377357792707717, 0.0, 0.10579038780894534, 0.0, 0.0, 0.0, 0.045139981578782816, 0.0, 0.0, 0.11584045845995011, 0.0, 0.0, 0.019771431213384455, 0.36490249309768175, 0.35310751173091487, 1.1149184594112733, 0.0, 0.0, 0.0, 0.5857527772485364, 0.44959707967332574, 0.1008560617277558, 0.018841708015473753, 0.7001531183110316, 0.0, 0.0, 0.0, 0.5946141177445001, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22666010948008636, 0.0, 0.0, 0.0, 0.0, 0.0, 0.014782177343261123, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02695824533437821, 0.0, 0.0, 0.0, 0.016838719448302838, 0.0, 0.0, 0.0, 0.08231997245985787, 0.0, 0.0, 0.0, 0.01058107131899943, 0.0, 0.05814319369896461, 0.0, 0.0, 0.0, 0.0, 0.047348036509572325, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019563192629043182, 0.027295875565384514, 0.0, 0.0, 0.0, 0.0, 0.33629932740438834, 0.0, 0.0, 0.0, 0.32394391802925426, 0.5704070896351352, 0.0, 0.14173474826201982, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6013127745008292, 0.0, 0.7561985490243033, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2959306772073682, 0.2539911401819114, 0.0, 0.0, 0.7300245622804938, 0.0, 0.2367914528076339, 0.0, 0.0, 0.0, 0.33628005236128533, 0.025934644678944505, 0.0, 0.06026134263178236, 0.0, 0.0, 0.03662105153743461, 0.06883834406728133, 0.0, 0.0, 0.21279478779844782, 0.0, 0.0, 0.07129569822964256, 0.0, 0.09738688258412649, 0.06246220065656896, 0.0, 0.059045957391141574, 0.0, 0.006923917652553149, 0.051490108793371445, 0.0, 0.16644468958034975, 0.19015418061029377, 0.10882376279915186, 0.06400227485256132, 0.2644778831991808, 0.0, 0.19849197355887785, 0.0, 0.0010725148648749981, 0.12198011848273568, 0.1548472256356659, 0.0, 0.009305339154304988, 0.0, 0.10589543929012146, 0.0, 0.0, 0.17178211974814458, 0.0, 0.23085925511580369, 0.0, 0.0, 0.0, 0.31374773386794685, 0.0, 0.4234572393895347, 0.0, 0.0, 0.0, 0.045888478821935044, 0.0, 0.0, 0.13665231391596233, 0.0, 0.05546447903889757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15847133453228077, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3148706017686264, 0.2655048691833022, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.28333620483908656, 0.0, 0.0, 0.0, 0.3208604446677971, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25931056270601605, 0.0, 0.0, 0.20842242702467234, 0.0, 0.0, 0.28681902268117093, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2978149918318377, 0.0, 0.0, 0.09574337597144772, 0.0, 0.0, 0.38017827065442816, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03128644702667798, 0.0, 0.0, 0.0]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.18463927542167063, 0.16872726618738124, 0.0, 0.0, 0.0, 0.5894648191942263, 0.0, 0.0, 0.4399979683038884, 0.4872396182365841, 0.0, 0.0, 0.0, 0.5232587908717465, 0.0, 0.028458776980687873, 0.0, 0.1912882078151879, 0.5164204427507948, 0.25375520169397275, 0.7988048308846816, 0.548219404354131, 0.0, 0.0, 0.0, 0.08973042123875676, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16269102551813888, 0.0, 0.6368094288799442, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03708423534085979, 0.16845626013473977, 0.6588748971102081, 0.010877416543996312, 0.0, 0.0, 0.0, 0.44123232519423083, 0.0, 0.24002669576156066, 0.0, 0.0, 0.0, 0.21689234576879324, 0.2098895841423717, 0.6161647640351655, 0.4776903273077015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6355594744363152, 0.0, 0.0, 0.08457949502263125, 0.0, 0.0, 0.6901459039432658, 0.0, 0.0, 0.0, 0.057641486402300816, 0.0, 0.0, 0.09549316762404748, 0.09211299074367744, 0.11795836585190977, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0467877508869465, 0.0, 0.0, 0.0, 0.0, 0.04370712736779799, 0.281244207688617, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2030486542718697, 0.0, 0.5182178756464231, 0.0, 0.0, 0.0, 0.057729640414041494, 0.0, 0.0, 0.0, 0.0, 0.19354540299708142, 0.06300918519480127, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1478355026964281, 0.0, 0.0, 0.0, 0.541165159810693, 0.0, 0.0, 0.0, 0.16407931870757664, 0.2057712545151301, 0.32812733654993936, 0.0, 0.24913050204963633, 0.20974603114415158, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5086673274457614, 0.32467254520642835, 0.0, 0.22357645210013752, 0.0, 0.0, 0.0, 0.15908397194054766, 0.0, 0.5866968618616202, 0.21349654033737236, 0.243214867615369, 0.0, 0.0, 0.27374855832219774, 0.0, 0.3075930851551728, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44087523604465795, 0.22505682646241645, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2406824670174747, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4353583318013107, 0.0, 0.0, 0.0, 0.0, 0.42257756079609887, 0.0, 0.16328692344233348, 0.7239663574899861, 0.253917129058883, 0.0, 0.0, 0.0, 0.012941670285380298, 0.005948300091521438, 0.6648934966409066, 1.0229318994166612, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13578338949001834, 0.4197116456419966, 0.0, 0.947053670891027, 0.0, 0.13486088669396906, 0.0, 0.6620124726194103, 0.0, 0.6496849904621673, 0.0, 0.0, 0.7890806801928671, 0.01841465881846702, 0.27914669822772004, 0.0, 0.029516583729604803, 0.0, 0.0, 0.018864268719240455, 0.24394303159635272, 0.0, 0.5741603792214627, 0.3080365664801448, 0.6155081898538994, 0.2367816204152454, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17416434327376132, 0.0, 0.0, 0.0, 0.0, 0.16269692366253372, 0.0, 0.3491221627973697, 0.0, 0.0, 0.0, 0.0, 0.0, 0.896220207410521, 0.13858473312625733, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2148948115594729, 0.1029957040349639, 0.0, 0.10833979410008034, 0.0, 0.0, 0.23454757178184932, 0.0, 0.2155791117194733, 0.0, 0.22311080318652476, 0.0, 0.0, 0.0, 0.0, 0.07959294795619429, 0.0, 0.17163567622890405, 0.07283994445558169, 0.0, 0.0, 0.0, 0.08654379427684032, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16368166253985994, 0.0, 0.17071385720442764, 0.34758616988919516, 0.0, 0.0, 0.0, 0.0, 0.25336804558610515, 0.0, 0.032257457723339725, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2136279714073461, 0.0, 0.24003957209260046, 0.21303254632455026, 0.006511170502708404, 0.383310313899178, 0.0, 0.0, 0.0, 0.1337677376744651, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0646519260588245, 0.0, 0.0, 0.0, 0.31350938881953055, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20384728982176575, 0.0, 0.0, 0.0, 0.0, 0.05670575896106868, 0.0, 0.05964802423259749, 0.0, 0.0, 0.0, 0.4488563568162377, 0.11869016538841153, 0.0, 0.07667734536959822, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.040450967971474544, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09480431131127824, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0016369185703860613, 0.0, 0.0017218526009009176, 0.0, 0.0, 0.0, 0.0, 0.003426215245260554, 0.0, 0.002213436040060287, 0.0, 0.0, 0.0, 0.0, 0.028624781651490867, 0.0, 0.0, 0.0917221717112923, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03948493179664919, 0.0998678691104795, 0.0, 0.0, 0.0, 0.0, 0.0519314302968116, 0.019753641949088564, 0.0, 0.0, 0.08679325173985959, 0.0, 0.0, 0.44412542864463755, 0.0, 0.0, 0.0, 0.25440324223859473, 0.0, 0.06322962025433154, 0.0, 0.10055420420038351, 0.08043066558940987, 0.01930551218305079, 0.019941838639940274, 0.025537187307223392, 0.0, 0.2186623932992767, 0.06407227122111338, 0.0254835950299198, 0.0, 0.0, 0.6628636898477958, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5422666551724673, 0.6870145051652384, 0.0, 0.0, 0.1501651963322761, 0.019574736086580828, 0.0, 0.0, 0.03589870327691644, 0.0, 0.026565876114361182, 0.0, 0.0, 0.029264986204643254, 0.0, 0.0, 0.01893195304872942, 0.046727577005066426, 0.0, 0.0, 0.28025040572174376, 0.0, 0.018913093854322344, 0.0, 0.0, 0.0, 0.04894945277637971, 0.006583695531171352, 0.3875798367774556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3292155284261099, 0.04344067936293723, 0.0653720550702903, 0.0, 0.0, 0.22649528787365272, 0.018049730534704385, 0.14615138313733889, 0.0, 0.0, 0.0, 0.0, 0.20611785399916963, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31511052111518423, 0.0, 0.03672395965581389, 0.0, 0.0, 0.9552411806377301, 0.0, 0.0, 0.0, 0.3512720117094026, 0.0, 0.7814509194588117, 0.9900444949397926, 0.0, 0.2416698136762867, 0.0, 0.15594310090475377, 0.37345396038999507, 0.13378200524387487, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0037871796529251873, 0.0, 0.07132197093797825, 0.0, 0.0, 0.4038639203443338, 0.0, 0.007926901739731977, 0.0, 0.005121012178382578, 0.4483265473520345, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19545324009971515, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.015822792815906598, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2654026801406409, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005338269605792754, 0.3841199941370228, 0.003089715236949895, 0.0, 0.0, 0.0, 0.2702896727602311, 0.0061480462629685435, 0.0, 0.0077716018517988575, 0.0, 0.0, 0.5060334906800565, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5325221835704804, 0.4354711371945976, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4529112439588725, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.42175363431898494, 0.540090698333841, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1429447733494866, 0.0, 0.0, 0.17383910328410926, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7778438721037507, 0.7592283162924894, 0.27027978053916946, 0.9680808201913975, 0.0, 0.0, 0.0, 0.0, 0.23721687040615713, 0.0, 0.0, 0.0, 0.214724244927467, 0.0, 0.6713747276751851, 0.2691029964691732, 0.24957193666978766, 0.04174679102400021, 0.0, 0.0, 0.44623226966778873, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9739425217687773, 0.3878431688435761, 0.0, 0.0, 0.0, 0.0, 0.5905353658253105, 0.0, 0.41099451149099264, 0.46959062394023404, 0.38400872176268547, 0.0, 0.4974135902693747, 0.0, 0.0, 0.0, 0.9154557174508635, 0.2586557560688982, 0.09838729964211103, 0.4023736739495505, 0.0, 0.43229262167712557, 0.25909478937718255, 0.0, 0.0, 0.9527916935554207, 0.3993878193283669, 0.4377172055566821, 0.0, 0.0, 0.02448196261221554, 0.28590941544125414, 0.0, 0.4006023808751287, 0.03918308759508126, 0.0, 0.2882716435062163, 0.0, 0.0110856134215592, 0.37363494354124355, 0.049778285574341975, 0.0, 0.0, 0.9269077110105975, 0.31315811797299237, 0.0, 0.012303674452273154, 0.015429991708474198, 0.0, 0.0, 0.014446013487908171, 0.04123415495113678, 0.03371931705724562, 0.29538913191692134, 0.0, 0.3349006097039049, 0.23542836206424417, 0.23052114963877735, 0.31614042332280545, 0.0, 0.0, 0.11683083227872514, 0.0, 0.0, 0.0006114799040197484, 0.10975727273531571, 0.0, 0.004295508139252644, 0.05107901709661121, 0.0, 0.9334562674798996, 0.0, 0.0, 0.0, 0.0, 0.5880007983611341, 0.06450382436313898, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11800940272957328, 0.0, 0.1899751304440791, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.273744879534597, 0.0, 0.0, 0.2671580962806136, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3492510086210155, 0.0, 0.3080038714015672, 0.0, 0.0, 0.2221605109577772, 0.0, 0.0, 0.0, 0.0, 0.07999688285015112, 0.06742807554519747, 0.08634727349135116, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10258077598728532, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5012203954355052, 0.0, 0.0, 0.0, 0.08111247475296846, 0.0, 0.0, 0.12138201096876389, 0.0, 0.08982551378065248, 0.0, 0.0, 0.12126628140327211, 0.0, 0.0, 0.07844895363581271, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07837080617454226, 0.0, 0.0, 0.0, 0.20283344995989894, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1282379216751728, 0.033796057874619194, 0.0, 0.09653017040380268, 0.0, 0.08822574416521244, 0.01404236183038609, 0.056929725378038414, 0.0, 0.15526439596527059, 0.0, 0.0, 0.0, 0.03781410167223484, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2529010219858623, 0.3238608478009693, 0.0, 0.0, 0.1407409609998849, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.329852425046806, 0.0, 0.0, 0.33341239592531074, 0.45526487856119674, 0.0, 0.33690660829115365, 0.08120142522000469, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08802821410799472, 0.39029129939250945, 0.13688708765693952, 0.0, 0.08496391292272984, 0.0, 0.0, 0.5183827483305287, 0.703065773125918, 0.4814340077714492, 0.0, 0.0, 0.0, 0.12053001147739661, 0.0, 0.07320101959394086, 0.0, 0.0, 0.5105579893076974, 0.6674329003953465, 0.7892434941755087, 0.051355650714931346, 0.4403973256963498, 0.0, 0.01884360978410253, 0.0, 0.0, 0.42539452394686605, 0.1591995319925085, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17375879569486846, 0.0, 0.0, 0.0, 0.0, 0.1721016330265864, 0.0, 0.00044047585032663307, 0.1672932604423309, 0.18102660031449758, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004373654797423859, 0.0, 0.0, 0.08031885873943684, 0.0, 0.0, 0.12088873452345646, 0.0, 0.25447674137867604, 0.0, 0.20210883042048103, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05466434515545004, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005119594240948603, 0.0, 0.2461616206228127, 0.0, 0.0, 0.40062152777610743, 0.0, 0.0, 0.0, 0.4450914546665199, 0.0, 0.0, 0.0, 0.25078704499066257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6437873083636174, 0.0, 0.08986536930257488, 0.05459463157090123, 0.0, 0.0, 0.1617782592438168, 0.0, 0.0, 0.0, 0.0, 0.510293956173341, 0.0, 0.0, 0.0, 0.0, 0.0539939979224501, 0.06022554282071448, 0.0, 0.0, 0.0017903697912685446, 0.10539843894447092, 0.0, 0.007216901945678346, 0.0, 0.0, 0.0, 0.22684974207663636, 1.4564553082728662, 0.182720528082649, 0.06653876275957457, 0.0, 0.6274289004185675, 0.0, 0.5406773490882926, 0.27822503396119075, 0.09306814986560254, 0.29383387946651635, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6230315233142055, 0.9648450369390001, 0.5108864746688708, 0.0, 0.36840186712596623, 0.22805280632725022, 0.3227837297104921, 0.0, 0.0, 1.0240377781477865, 1.591691363735423, 0.0, 0.7314261723085571, 0.0, 0.0, 0.45960855697902075, 0.0, 0.43090812739194506, 0.0, 0.3151566241591431, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3316537279743774, 0.27121053456867833, 0.0, 0.0, 0.0, 0.4001441487163798, 0.5176883689695168, 0.709966180421066, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2820721974309868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03908614977726766, 0.3083419381268706, 0.39485756407874356, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11511559935873378, 0.014949071584157462, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03837527794969671, 0.5550679626138529, 0.0, 0.5726479000113842, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07921974732295421, 0.0, 0.0, 0.0, 0.0, 0.0035899619569867425, 0.0, 0.0, 0.2145099852146676, 0.0, 0.0, 0.0, 0.0, 0.21950879525087302, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09449503481586544, 0.21750142180635595, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32517302304866597, 0.0, 0.0, 0.21035924507266648, 0.0, 0.0, 0.0, 0.0, 0.23713929311152726, 0.21014969427312982, 0.0, 0.0, 0.0, 0.5438936968761621, 0.3401858622480347, 0.0, 0.0, 0.0016527476817863266, 0.0, 0.007935034693483254, 0.0, 0.0, 0.1293317927443745, 0.0, 0.0, 0.0, 0.14368792432790373, 0.0, 0.0, 0.0, 0.0, 0.35799313982296815, 0.29274964408302323, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029011045367568582, 0.0017598612427760815, 0.0, 0.0, 0.052226530139838453, 0.0, 0.0, 0.0, 0.0, 0.16473710872422428, 0.30447392294316244, 0.0, 0.0, 0.0, 0.01743076710707649, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0410977515599671, 0.0, 0.7547303898094697, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.30609022817115544, 0.0, 0.0, 0.0, 0.0, 0.2105854322132866, 0.5327502455990605, 0.13588517657689586, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24025222517683778, 0.0, 0.007535433506713796, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6979826303937671, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07410089446237557, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4744178097104391, 0.0, 0.0, 0.0, 0.0, 0.1876471424480227, 0.28765608703745393, 0.2182401932056186, 0.04951496463333951, 0.0, 0.12909838655126593, 0.0, 0.3498317042975124, 0.0, 0.37087394843503463, 0.47981991008621333, 1.1039610273729945, 0.4455015727565212, 0.05271863458630144, 0.19600051626620313, 0.0, 0.2316343353202091, 0.0, 0.0, 0.0, 0.4641150152741525, 0.15018757716392944, 0.21321672818601478, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21465382837602517, 0.0, 0.0, 0.0, 0.00020573734093944128, 0.0, 0.0, 0.0, 0.16929708918389524, 0.0160994805386141, 0.0, 0.049657622486024976, 0.0, 0.017886560545272906, 0.1659947360027911, 0.0, 0.0, 0.0, 0.0, 0.11420185948155097, 0.0, 0.07369142147184715, 0.0, 0.33489361550116375, 0.46496602729779546, 0.0036113530199273977, 0.044355883980523376, 0.08156217107736623, 0.0, 0.006501263051750628, 0.24089225482763127, 0.0, 0.0, 0.3861226254326548, 0.020506805168434235, 0.0, 0.24677384860885976, 0.0, 0.0, 0.002169816793370778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.041148887129618034, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9769895490432172, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5923828848790257, 0.0, 0.10196835358593148, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.328835975725113, 0.0, 0.0, 0.4036325198584592, 0.0, 0.0, 0.3602983928676083, 0.0, 0.0, 0.9557725494193282, 0.0, 0.43908662544955285, 0.0, 0.0, 0.46995823158461947, 0.0, 0.14454935060909507, 0.0, 0.010668331756011213, 0.6280409324984255, 0.03247332779409237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10592998533424139, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.33399686192793854, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7833052225131492, 0.0, 0.0, 0.0, 0.24187208135853017, 0.0, 0.071730719549714, 0.0, 0.11407352111288803, 0.0, 0.44957678307373006, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5736773783460691, 0.0692607726207939, 0.0, 0.0, 0.4731102083446558, 0.7389531951966185, 0.028778055517643567, 0.22717903301955947, 0.0, 0.1436855444728547, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.49542697237169275, 0.0, 0.3454532351491738, 0.11660950163380673, 0.0, 0.0, 0.0, 0.0, 0.027794605242432064, 0.0, 0.0, 0.0, 0.132905538815286, 0.0, 0.05497259939520882, 0.0, 0.0, 1.2625457513449383, 0.39900789022393385, 0.0, 0.0, 0.0, 0.0, 0.4114559732861708, 0.4741201455820112, 0.0, 0.21077985466978477, 0.0, 0.0, 0.7439578224938339, 0.42232266256074136, 0.4876343844944301, 0.6687496612887465, 0.115118039848854, 0.0, 0.0, 0.0, 0.0, 0.05260063632046659, 0.07759581613885312, 0.028401563276091994, 0.0, 0.056334062495133036, 0.17033944709766455, 0.9153107777932757, 0.0, 0.004924424218813803, 0.057509247607595904, 0.0, 0.7491964746840728, 0.05934710743113981, 0.0, 0.0, 0.0, 0.22238712275143577, 0.4319949206677921, 0.025917686578643146, 0.031803778192995576, 0.0, 0.6741550137516903, 0.009328571558732282, 0.0, 0.0, 0.0, 0.0, 0.5515037103010108, 0.6987172178395075, 0.0, 0.0, 0.0, 0.060174729085221354, 0.0, 0.0, 0.08734749351416564, 0.6636235071641303, 0.09580942583448827, 0.0, 0.0, 0.08996354325075087, 0.04525348827838765, 0.5824434635228624, 0.05819874866882126, 0.12005968761069685, 0.0, 0.0, 0.3313826265510977, 0.0, 0.058140773587614956, 0.6127791119711469, 0.0, 0.0, 0.15047559500471339, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6662085079556846, 0.3400843601648346, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22423528728211575, 0.0, 0.0, 0.0, 0.0, 0.3636963343220375, 0.5756271502974593, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046502182852265775, 0.0, 0.04891501992848654, 0.0, 0.0, 0.0, 0.9407814186149676, 0.09733317875961926, 0.0, 0.11672934297033466, 0.0, 0.6385588104227404, 0.0, 0.022206283976929683, 0.09845615426665595, 0.03496357540242119, 0.0, 0.0, 0.0, 0.0, 0.03380456195194267, 0.18543528221865002, 0.12144811071150914, 0.0, 0.03755694741887004, 0.16907550573428723, 0.0, 0.0, 0.1443808645220955, 0.0, 0.1003230425739974, 0.12879502114342312, 0.0647357901808317, 0.0, 0.5084955858844, 0.08519692951707138, 0.007582866204885641, 0.0, 0.03198292312330168, 0.0, 0.1209623049539008, 0.0, 0.12387820451445683, 0.0, 0.0, 0.043058753609476905, 0.03493082633215086, 0.0, 0.0, 0.043777031505228374, 0.016261326799286477, 0.16693678030096587, 0.0, 0.0]), 42), 42)),) julia> @finch_code begin Ct .= 0 for j = parallel(_) @@ -734,7 +734,7 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.2504314291953376, 0.0, 0.0, 0.9648065476989627, 0.2835978542736629, 0.13211849643271117, 0.2796391765298554, 0.22540993882752317, 0.5512218518807817, 0.5478145335437775, 0.0, 0.2291959647754706, 0.23520231615614767, 0.03296826745685447, 0.18421763750874248, 0.6035878434468992, 0.7441004608135994, 0.2535097758200323, 0.20236453274735783, 0.09228241774990334, 0.13384560784694935, 0.5269755678736615, 0.03880627317810495, 0.17704264007357723, 0.0, 0.2632287465084173, 0.0, 0.02720231717357045, 0.5246531850072871, 0.0, 0.0, 0.3360269038793386, 0.0, 0.22538882742471622, 0.22621665568148489, 0.0, 0.09095677592426996, 0.0, 0.2343687318872728, 0.0, 0.00044179348092010485, 0.07281055209847118, 0.6821285312867097, 0.0, 0.0, 0.0, 0.8944403740767686, 0.11973372388784431, 0.2613237068921269, 0.5923534538840982, 0.0, 0.0, 0.0, 0.8426453838331012, 0.0, 0.0, 1.0769929937540788, 0.43300907588983417, 0.0, 0.6905133736710757, 0.0, 0.0, 0.0, 0.07271653050953786, 0.8664857754450395, 0.08570530865158534, 0.0, 0.7169860381548754, 0.20498067747201715, 0.0, 0.23050103487101342, 0.0, 0.0, 0.9152746488430813, 0.14299878494120105, 0.44815460009097313, 0.0, 0.0, 0.0, 0.23162241551000032, 1.0326337985335274, 1.0530846396126474, 0.22109306040172927, 0.0, 0.0, 0.0, 1.0289491599002607, 0.008076930682810486, 0.037079469071792215, 0.0, 0.03308196940629956, 0.07165705922647192, 0.18447863887953236, 0.0, 0.24885144181470292, 0.0, 0.0, 0.0, 0.7193963651558962, 0.0, 0.6007574484421223, 0.0, 0.11361690641306497, 0.0, 0.0, 0.0, 0.0, 0.5189539173895105, 0.027360695267410504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.769945776489901, 0.00013219515459577855, 0.0, 0.0, 0.0, 0.0, 0.21518747264967641, 0.0, 0.0, 0.0, 0.10980938651098104, 0.07347552139071808, 0.0, 0.3613462418752601, 0.04465135919773286, 0.027102240057490925, 0.0, 0.0, 0.2594566815123038, 0.417973871558788, 0.02337304044012675, 0.5498222432776159, 0.011558313103301096, 0.13519961718643905, 0.0830809338177889, 0.0, 0.0, 0.0, 0.17989871031119878, 0.05233157238393502, 0.0, 0.051508809526025434, 0.225133841185459, 0.18950167625902217, 0.0, 0.0, 0.0, 0.20173577654712102, 0.7662693488070871, 0.0, 0.33259178463685746, 0.13865467767460202, 0.0, 0.8944580603877651, 0.0, 0.060682785060590494, 0.06051599339484606, 0.0, 0.0, 0.0, 0.12305720211410776, 0.10081888448105404, 0.0, 0.0, 0.2522377522294325, 0.0, 0.12103967793114603, 0.06077105223878225, 0.0, 0.0, 0.5586258592154407, 0.0, 0.0, 0.0, 0.2984848816909581, 0.029564782247173068, 0.6276543733906952, 0.0, 0.07353625635562432, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08001934416956356, 0.13808411155288577, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0013608908425346389, 0.15477792583676012, 0.8924302032481646, 0.0, 0.13515079773758784, 0.0, 0.059793517595463114, 0.0, 0.04933055693313389, 0.0, 0.0, 0.3342781850907459, 0.02578025634698341, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1229501707927792, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287208489034296, 0.0, 0.0, 0.28149278769379354, 0.0, 0.0, 0.0, 0.031923890851782225, 0.23740383631799186, 0.0, 0.0, 0.0, 0.0, 0.06362127081034188, 0.2629034525588847, 0.0, 0.9151807425831917, 0.0, 0.0, 0.0, 0.6693739198309284, 0.0, 0.0, 0.2061930933620024, 0.27528937724536684, 0.0, 0.0, 0.0, 0.0, 0.2675780483794807, 0.02063619759744684, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5460074055587408, 0.0, 0.6541555536266587, 0.0, 0.0, 0.07150154126300666, 0.0, 0.15048122306270975, 0.034115472912426725, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.050926612139623545, 0.21044506008920905, 0.0, 0.0, 0.4253961501964202, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5242476712268254, 0.0, 0.0, 0.6721198397890595, 0.02913210340779019, 0.0, 0.20059561631676462, 0.0, 0.29433701033990906, 0.0, 0.0, 0.0, 0.12559144077146528, 0.0, 0.0, 0.32229898127496104, 0.0, 0.0, 0.05500938293182685, 0.1114468235961369, 0.09601244908001759, 0.255231140185047, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05242264559033129, 0.07189305704474794, 0.29708512061039594, 0.0, 0.0, 0.16167981650220184, 0.0, 0.0, 0.42894283906704944, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24120550186102305, 0.002462183433889286, 0.1185465354728046, 0.0, 0.0, 0.20924909285728116, 0.0, 0.2383879501918044, 0.0, 0.08928505124693381, 0.0, 0.0, 0.2291277246538886, 0.0, 0.0, 0.039107088380868994, 0.03339412468553525, 0.0, 0.17867986571670036, 0.0, 0.15885581639487184, 0.0, 0.4770109811329409, 0.46521958209705216, 0.08213268605220507, 0.8570033319080816, 0.5762497735248863, 0.025109002675938377, 0.0, 0.0, 0.0, 0.006062678222071191, 0.6895253688974624, 0.0, 0.0, 0.14425623656373723, 0.0, 0.26058653129843573, 0.2499129405223175, 0.5556369963578781, 0.0, 0.0, 0.14846473797228377, 1.311439497677356, 0.0, 0.0, 0.0, 0.14844299347189643, 0.0, 0.06204384333300274, 0.5085214657536261, 0.06333953518463412, 0.0, 0.4087271917522072, 0.56471815720299, 0.0, 0.7613475113276124, 0.31092441757595435, 0.25657570652463557, 0.0, 0.6284352010004853, 0.0, 0.44245087677575873, 0.0, 0.5840306487685422, 0.886297089335757, 0.0, 0.2141960416332438, 0.0, 0.0, 0.7455493113099605, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9841442926021067, 0.155496454991287, 0.0, 0.0, 0.07678252545804619, 0.0, 0.0, 0.3721354350358947, 0.020164712785984047, 0.0, 0.0, 0.0, 0.0, 0.1088564167894987, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9595213220321046, 0.0, 0.026588936071193094, 0.0, 0.0, 0.18249673153915044, 0.041373682209080435, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04976306812868327, 0.2056369238513726, 0.0, 0.0, 0.341205976763526, 0.0, 0.0, 0.0, 0.0, 0.5785815925839551, 0.0, 0.0, 0.0, 0.5989984098523007, 0.041848978991102986, 0.0, 0.7058966144833084, 0.0, 0.1357909427918936, 0.0, 0.0, 0.0, 0.6943234317201388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03329077451447904, 0.0, 0.16959332194846893, 0.03825181104342904, 0.0, 0.030570483496490792, 0.0, 0.181963825346749, 0.0, 0.0, 0.0861751567882612, 0.0, 0.23433890396321935, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06468139820825311, 0.4901043774165395, 0.0, 0.1652405132589817, 0.0, 0.0, 0.07483443864111192, 0.0, 0.0, 0.0, 0.2810295005684995, 0.0, 0.3898372849078984, 0.0, 0.27070466717435465, 0.5873234092956581, 0.0, 0.0, 0.8033877947986148, 0.0, 0.0, 0.0, 0.5030084273245645, 0.1643009637310288, 0.0, 0.0, 0.0, 0.052313365367879956, 0.02924539070601191, 0.0, 0.7815339827038686, 0.0, 0.631919493277437, 0.08243985181699306, 0.0, 0.0, 0.0, 0.0, 0.12868680907403285, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.1259698971001804, 0.7198499769348474, 0.0, 0.41807281750787384, 0.0, 0.0, 0.6290848565988848, 0.7773412611170788, 0.0, 0.3270721417747804, 0.0, 0.0, 0.6187710034515789, 0.07069501936159496, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15113911645003905, 0.0, 0.15654877177402662, 1.1322176354521876, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2636197382380641, 0.0, 0.0, 0.34206988627899454, 0.0, 0.0, 0.2168559436204628, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12189174979618164, 0.009400555275465744, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02319896532052816, 0.09586554938115534, 0.0, 0.0, 0.47758214062526055, 0.0, 0.0, 0.0, 0.0, 0.766521270904984, 0.0, 0.0, 0.0, 0.05687724891036996, 0.0, 0.0, 0.0, 0.019988327516632248, 0.0, 0.0, 0.24020596976351885, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5319793134128888, 0.0, 0.0, 0.12310759546793347, 0.28424710350697324, 0.0, 0.9704064926727941, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.595062055789435, 0.0, 0.022922464313533127, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7479520138852049, 0.0, 0.0, 0.0, 0.0, 0.11201726895804533, 0.0, 0.0, 0.5882991104057551, 0.0, 0.0, 0.0, 0.5372591710353254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4185803721513073, 0.0, 0.4160894350708626, 0.35712090084273435, 0.0, 0.0, 0.0, 0.0, 0.3329375067097101, 0.0, 0.0, 0.0, 0.9791513934288851, 0.040171778764664906, 0.0, 0.0, 0.18774405618493867, 0.47311893679528827, 0.2590438343789052, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12077476728428499, 0.0, 0.06327325623124767, 0.0, 0.0, 0.0, 0.0, 0.34849519635188847, 0.0, 0.4382603746311635, 0.0, 0.0, 0.0, 0.09913709085437171, 0.4096661875861404, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4230910500526733, 0.0, 0.0, 0.0, 0.17776900851570368, 0.0, 0.5438917161748563, 0.0, 0.43287084617637955, 0.0, 0.0, 0.0, 0.5349746055023918, 0.0, 0.7894262258085124, 0.0, 0.0, 0.0, 0.416696264214944, 0.1414148713022835, 0.0, 0.1306712640828635, 0.5944339267365731, 0.0, 0.0, 0.0, 0.3098486230376566, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27475814956764166, 0.0, 0.0, 0.0, 0.572874722755641, 0.7993131511508778, 0.0, 0.2979949962228512, 0.14400098705349634, 0.0, 0.0, 0.02684711041673838, 0.0, 0.0575193250192605, 0.13038147684896279, 0.07982177723780243, 0.0, 0.0, 0.22370954598082965, 0.0, 0.0, 0.0, 0.16207849359014098, 0.8780589957563658, 0.0, 0.0, 0.0, 0.03773454641900064, 0.0, 0.190720074864707, 0.03823162707299666, 0.0, 0.027092618673790602, 0.07782668325822914, 0.0, 0.0, 0.025612768291380317, 0.0, 0.1339183762706947, 0.03147511447091019, 0.0, 0.0, 0.22256660522037766, 0.0, 0.050981846070955524, 0.33080849696175413, 0.22670468547648376, 0.0, 0.0, 0.2394131641393997, 0.0, 0.6763225254232694, 0.0, 0.32609931596811353, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02551395955593748, 0.0, 0.19870976845837512, 0.0, 0.8838430389981123, 0.0, 0.8900590234719281, 0.0, 0.1395885727389325, 0.39274638865688727, 0.13258182339863903, 1.0427544725112363, 0.007925765580094073, 0.0, 0.0, 0.9248219821941955, 0.0, 0.38782207933590473, 0.20331266090801786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4620448777897825, 0.5673723076761421, 0.13444042454417618, 0.0, 0.0012927651989113214, 0.0, 0.0, 0.0, 0.3049721916420315, 0.017266202832261764, 0.0, 0.0, 0.07071993264415252, 0.04567425634491729, 0.3943633692304047, 0.0, 0.15861807151929683, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05848946000294637, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0002825960061227963, 0.18362488935764, 0.0, 0.0, 0.0, 0.16115194339742445, 0.5974334511167834, 0.0, 0.04024167944046561, 0.33382381844541353, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6087942383002851, 0.0, 0.0, 0.7807479082612564, 0.3974967659255351, 1.5487027213337248, 0.03765559375444021, 0.17692333788215128, 0.23426356503546714, 0.0, 0.22388851869475412, 0.04007956243736881, 1.0262040210122396, 0.0, 0.7972348331243138, 1.0049259227957363, 0.051433760809377164, 0.0, 0.8283458296766737, 0.0, 0.7561556098507006, 0.0, 0.0, 0.0, 0.24907496608552146, 0.0, 0.5011916402324644, 0.1747189814102487, 0.9899595982235516, 0.6164188940137083, 0.11559029428984438, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.593849645786338, 0.0, 0.0, 0.0, 0.0, 0.13660851844466146, 0.030970403587585463, 0.23157107362581741, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13749939723080143, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7110898100418397, 0.0, 0.0, 0.0, 0.46081314114808425, 0.7109856621285974, 0.2884350146527927, 0.0, 0.0, 0.30337236072169704, 0.06739814120009983, 0.0, 0.7785291912169707, 0.0, 0.0, 0.13287789565404662, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3593823347180517, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4624623396236477, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.024288127378650458, 0.0, 0.793430084070044, 0.0, 0.0, 0.07003161792104487, 0.0, 0.390525043836891, 0.7636039620295462, 0.06950112764284275, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019321154098251664, 0.0, 0.18651557279691772, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05792018405822482, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18265223354453325, 0.12454723256219671, 0.0, 0.0002798455087109209, 0.0, 0.0, 0.11611318457978691, 0.05398921986713746, 0.0, 0.8752290763913787, 0.0, 0.0, 0.0, 0.0, 0.13107895831547542, 0.0, 0.0, 0.45521248179167606, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11685661958627322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44522459151527227, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26435993065610003, 0.021758541234477975, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2146225974372531, 0.0, 0.13433790512658406, 0.030902835047588124, 0.0, 0.0, 0.03139052000724026, 0.0, 0.0, 0.7200671942026683, 0.0, 0.0, 0.05946084260814123, 0.0, 0.14663715828117352, 0.03324398818324252, 0.008023890708802274, 0.05967012120515395, 0.0, 0.0, 0.0, 0.10840406404650259, 0.0, 0.0, 0.0, 0.23002554078955822, 0.0, 0.21539070760796813, 0.0, 0.15809846801096508, 0.0, 0.0, 0.023379160669788793, 0.06919243918501702, 0.0, 0.4184368340983768, 0.0, 0.0, 0.0, 0.025499570825031452, 0.0, 0.054632252014063354, 0.12383722685885369, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08100665304577326, 0.0, 0.0, 0.0, 1.137863121002405, 0.0, 0.0, 0.18114724382910816, 1.0175246627827756, 0.0, 0.8319051265218698, 0.7408406030496757, 0.0, 0.0, 0.4793159619581115, 0.26457362772519605, 0.7690370272987045, 0.02989528102721059, 0.0, 0.0, 0.0, 0.34236772701032764, 0.22777638147070367, 0.20013535639204974, 0.7445351180710278, 0.0, 0.0, 0.32085924041220354, 0.0, 0.0, 0.0, 0.5922078604864867, 0.0, 0.0, 0.18324289767504168, 0.0, 0.0, 0.05247138335835671, 0.48819810625100485, 0.0, 0.4058243472838195, 0.0, 0.0, 0.6944817185701155, 0.21684000174364465, 0.0, 0.12484778900119534, 0.0, 0.5314768166536554, 0.0, 0.0, 0.0, 0.0, 0.11888353831534566, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4539474830982486, 0.0, 0.12931153719488578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.23351697026332235, 0.0, 0.0, 0.0, 0.0, 0.2291429172294868, 0.4258647172142874, 0.0, 0.0, 0.0, 0.22479141295616378, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05853977920447593, 0.0, 0.16715127001769428, 0.0, 0.3712702672746247, 0.13508244363790445, 0.06392604260421969, 0.5912989058272206, 0.4437811402099471, 0.0, 0.0, 0.0, 0.0, 0.005827558703832637, 0.6627845677844773, 0.0, 0.0, 0.0, 0.30904361146056275, 0.6816789334794826, 0.1436649772664439, 0.16334297841077242, 0.0, 0.0, 0.7882286990025497, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7753056808075847, 0.035768380854023674, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44917737188494944, 0.0, 0.18937379890511313, 0.06882274914369534, 0.0, 0.0, 0.0, 0.009287224889287345, 0.06906497794085972, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26624227636214304, 0.0, 0.0, 0.0, 0.1829905316954157, 0.0, 0.06582989974405196, 0.2036305981722081, 0.08008655235603437, 0.0, 0.0, 0.0, 0.0, 0.0, 0.41729810318329397, 0.0, 0.0, 0.0, 0.0, 0.0, 0.037951024806923965, 0.0, 0.0, 0.0, 0.0, 0.41651629143780994, 0.0, 0.2053954771505675, 0.29245802337269494, 0.0368786813523771, 0.0, 0.38440171693921094, 0.0, 1.0326219326945734, 0.0, 0.02604768015780454, 0.9153304998316836, 0.0, 0.0, 0.0, 0.021211537114504155, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3418184639399641, 0.9530187941808128, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5415447555144779, 0.0, 0.16269589476095273, 0.0, 0.2704207942532035, 0.6129742049927741, 0.0, 0.0, 0.0, 0.0, 0.07078757436524862, 0.0, 0.7077105145475581, 0.34262729838304967, 0.5909987644476324, 0.0, 0.11177131716736882, 0.4359653240929594, 0.04723041930008277, 0.45146742793812006, 0.896649501844373, 0.0, 0.0, 0.6373803605539574, 0.5201327056992473, 0.10980024784153514, 0.07242729038979111, 0.0, 0.25075448235999825, 0.0, 0.14797679652158516, 0.0, 0.0, 0.0, 0.0, 0.6939917265420261, 0.9906375819864492, 0.9257686181712707, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37693205342755914, 0.5232740229070877, 0.0, 0.060081052233409524, 0.0, 0.3350366056610552, 0.0, 0.20067269510180097, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5308540215160052, 0.0, 0.0, 0.04969049276705586, 0.4729163126308979, 0.17206519556589087, 0.08142765800071788, 0.0, 0.6342266715653555, 0.28491323267898133, 0.0, 0.0, 0.0, 0.0, 0.3249315382934875, 0.27888197557292793, 0.0, 0.00024008316707892853, 0.0, 0.0, 0.4429941865632019, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08351200806876206, 0.0, 0.0, 0.3644144714136701, 0.0, 0.25850208657414453, 0.3044172676246769, 0.0, 0.0, 0.0, 0.42064905943656483, 0.5410542431685182, 0.0, 0.0, 0.0235250266831074, 0.17227146855360218, 0.0, 0.0, 0.11190852746246406, 0.0, 0.0, 0.0, 0.0, 0.14411942384547258, 0.0, 0.0, 0.4237744107411662, 0.0, 0.2972186074559964, 0.0, 0.5397314242092841, 0.4632402464002124, 0.0, 0.5786606886346829, 0.0, 0.0, 0.47789419623388885, 0.0, 0.0, 0.0, 0.10580588439167306, 0.0, 0.0, 0.7377357792707717, 0.0, 0.10579038780894534, 0.0, 0.0, 0.0, 0.045139981578782816, 0.0, 0.0, 0.11584045845995011, 0.0, 0.0, 0.019771431213384455, 0.36490249309768175, 0.35310751173091487, 1.1149184594112733, 0.0, 0.0, 0.0, 0.5857527772485364, 0.44959707967332574, 0.1008560617277558, 0.018841708015473753, 0.7001531183110316, 0.0, 0.0, 0.0, 0.5946141177445001, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22666010948008636, 0.0, 0.0, 0.0, 0.0, 0.0, 0.014782177343261123, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02695824533437821, 0.0, 0.0, 0.0, 0.016838719448302838, 0.0, 0.0, 0.0, 0.08231997245985787, 0.0, 0.0, 0.0, 0.01058107131899943, 0.0, 0.05814319369896461, 0.0, 0.0, 0.0, 0.0, 0.047348036509572325, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019563192629043182, 0.027295875565384514, 0.0, 0.0, 0.0, 0.0, 0.33629932740438834, 0.0, 0.0, 0.0, 0.32394391802925426, 0.5704070896351352, 0.0, 0.14173474826201982, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6013127745008292, 0.0, 0.7561985490243033, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2959306772073682, 0.2539911401819114, 0.0, 0.0, 0.7300245622804938, 0.0, 0.2367914528076339, 0.0, 0.0, 0.0, 0.33628005236128533, 0.025934644678944505, 0.0, 0.06026134263178236, 0.0, 0.0, 0.03662105153743461, 0.06883834406728133, 0.0, 0.0, 0.21279478779844782, 0.0, 0.0, 0.07129569822964256, 0.0, 0.09738688258412649, 0.06246220065656896, 0.0, 0.059045957391141574, 0.0, 0.006923917652553149, 0.051490108793371445, 0.0, 0.16644468958034975, 0.19015418061029377, 0.10882376279915186, 0.06400227485256132, 0.2644778831991808, 0.0, 0.19849197355887785, 0.0, 0.0010725148648749981, 0.12198011848273568, 0.1548472256356659, 0.0, 0.009305339154304988, 0.0, 0.10589543929012146, 0.0, 0.0, 0.17178211974814458, 0.0, 0.23085925511580369, 0.0, 0.0, 0.0, 0.31374773386794685, 0.0, 0.4234572393895347, 0.0, 0.0, 0.0, 0.045888478821935044, 0.0, 0.0, 0.13665231391596233, 0.0, 0.05546447903889757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15847133453228077, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3148706017686264, 0.2655048691833022, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.28333620483908656, 0.0, 0.0, 0.0, 0.3208604446677971, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25931056270601605, 0.0, 0.0, 0.20842242702467234, 0.0, 0.0, 0.28681902268117093, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2978149918318377, 0.0, 0.0, 0.09574337597144772, 0.0, 0.0, 0.38017827065442816, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03128644702667798, 0.0, 0.0, 0.0]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.18463927542167063, 0.16872726618738124, 0.0, 0.0, 0.0, 0.5894648191942263, 0.0, 0.0, 0.4399979683038884, 0.4872396182365841, 0.0, 0.0, 0.0, 0.5232587908717465, 0.0, 0.028458776980687873, 0.0, 0.1912882078151879, 0.5164204427507948, 0.25375520169397275, 0.7988048308846816, 0.548219404354131, 0.0, 0.0, 0.0, 0.08973042123875676, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16269102551813888, 0.0, 0.6368094288799442, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03708423534085979, 0.16845626013473977, 0.6588748971102081, 0.010877416543996312, 0.0, 0.0, 0.0, 0.44123232519423083, 0.0, 0.24002669576156066, 0.0, 0.0, 0.0, 0.21689234576879324, 0.2098895841423717, 0.6161647640351655, 0.4776903273077015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6355594744363152, 0.0, 0.0, 0.08457949502263125, 0.0, 0.0, 0.6901459039432658, 0.0, 0.0, 0.0, 0.057641486402300816, 0.0, 0.0, 0.09549316762404748, 0.09211299074367744, 0.11795836585190977, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0467877508869465, 0.0, 0.0, 0.0, 0.0, 0.04370712736779799, 0.281244207688617, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2030486542718697, 0.0, 0.5182178756464231, 0.0, 0.0, 0.0, 0.057729640414041494, 0.0, 0.0, 0.0, 0.0, 0.19354540299708142, 0.06300918519480127, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1478355026964281, 0.0, 0.0, 0.0, 0.541165159810693, 0.0, 0.0, 0.0, 0.16407931870757664, 0.2057712545151301, 0.32812733654993936, 0.0, 0.24913050204963633, 0.20974603114415158, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5086673274457614, 0.32467254520642835, 0.0, 0.22357645210013752, 0.0, 0.0, 0.0, 0.15908397194054766, 0.0, 0.5866968618616202, 0.21349654033737236, 0.243214867615369, 0.0, 0.0, 0.27374855832219774, 0.0, 0.3075930851551728, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44087523604465795, 0.22505682646241645, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2406824670174747, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4353583318013107, 0.0, 0.0, 0.0, 0.0, 0.42257756079609887, 0.0, 0.16328692344233348, 0.7239663574899861, 0.253917129058883, 0.0, 0.0, 0.0, 0.012941670285380298, 0.005948300091521438, 0.6648934966409066, 1.0229318994166612, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13578338949001834, 0.4197116456419966, 0.0, 0.947053670891027, 0.0, 0.13486088669396906, 0.0, 0.6620124726194103, 0.0, 0.6496849904621673, 0.0, 0.0, 0.7890806801928671, 0.01841465881846702, 0.27914669822772004, 0.0, 0.029516583729604803, 0.0, 0.0, 0.018864268719240455, 0.24394303159635272, 0.0, 0.5741603792214627, 0.3080365664801448, 0.6155081898538994, 0.2367816204152454, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17416434327376132, 0.0, 0.0, 0.0, 0.0, 0.16269692366253372, 0.0, 0.3491221627973697, 0.0, 0.0, 0.0, 0.0, 0.0, 0.896220207410521, 0.13858473312625733, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2148948115594729, 0.1029957040349639, 0.0, 0.10833979410008034, 0.0, 0.0, 0.23454757178184932, 0.0, 0.2155791117194733, 0.0, 0.22311080318652476, 0.0, 0.0, 0.0, 0.0, 0.07959294795619429, 0.0, 0.17163567622890405, 0.07283994445558169, 0.0, 0.0, 0.0, 0.08654379427684032, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16368166253985994, 0.0, 0.17071385720442764, 0.34758616988919516, 0.0, 0.0, 0.0, 0.0, 0.25336804558610515, 0.0, 0.032257457723339725, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2136279714073461, 0.0, 0.24003957209260046, 0.21303254632455026, 0.006511170502708404, 0.383310313899178, 0.0, 0.0, 0.0, 0.1337677376744651, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0646519260588245, 0.0, 0.0, 0.0, 0.31350938881953055, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20384728982176575, 0.0, 0.0, 0.0, 0.0, 0.05670575896106868, 0.0, 0.05964802423259749, 0.0, 0.0, 0.0, 0.4488563568162377, 0.11869016538841153, 0.0, 0.07667734536959822, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.040450967971474544, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09480431131127824, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0016369185703860613, 0.0, 0.0017218526009009176, 0.0, 0.0, 0.0, 0.0, 0.003426215245260554, 0.0, 0.002213436040060287, 0.0, 0.0, 0.0, 0.0, 0.028624781651490867, 0.0, 0.0, 0.0917221717112923, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03948493179664919, 0.0998678691104795, 0.0, 0.0, 0.0, 0.0, 0.0519314302968116, 0.019753641949088564, 0.0, 0.0, 0.08679325173985959, 0.0, 0.0, 0.44412542864463755, 0.0, 0.0, 0.0, 0.25440324223859473, 0.0, 0.06322962025433154, 0.0, 0.10055420420038351, 0.08043066558940987, 0.01930551218305079, 0.019941838639940274, 0.025537187307223392, 0.0, 0.2186623932992767, 0.06407227122111338, 0.0254835950299198, 0.0, 0.0, 0.6628636898477958, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5422666551724673, 0.6870145051652384, 0.0, 0.0, 0.1501651963322761, 0.019574736086580828, 0.0, 0.0, 0.03589870327691644, 0.0, 0.026565876114361182, 0.0, 0.0, 0.029264986204643254, 0.0, 0.0, 0.01893195304872942, 0.046727577005066426, 0.0, 0.0, 0.28025040572174376, 0.0, 0.018913093854322344, 0.0, 0.0, 0.0, 0.04894945277637971, 0.006583695531171352, 0.3875798367774556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3292155284261099, 0.04344067936293723, 0.0653720550702903, 0.0, 0.0, 0.22649528787365272, 0.018049730534704385, 0.14615138313733889, 0.0, 0.0, 0.0, 0.0, 0.20611785399916963, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31511052111518423, 0.0, 0.03672395965581389, 0.0, 0.0, 0.9552411806377301, 0.0, 0.0, 0.0, 0.3512720117094026, 0.0, 0.7814509194588117, 0.9900444949397926, 0.0, 0.2416698136762867, 0.0, 0.15594310090475377, 0.37345396038999507, 0.13378200524387487, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0037871796529251873, 0.0, 0.07132197093797825, 0.0, 0.0, 0.4038639203443338, 0.0, 0.007926901739731977, 0.0, 0.005121012178382578, 0.4483265473520345, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19545324009971515, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.015822792815906598, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2654026801406409, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005338269605792754, 0.3841199941370228, 0.003089715236949895, 0.0, 0.0, 0.0, 0.2702896727602311, 0.0061480462629685435, 0.0, 0.0077716018517988575, 0.0, 0.0, 0.5060334906800565, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5325221835704804, 0.4354711371945976, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4529112439588725, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.42175363431898494, 0.540090698333841, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1429447733494866, 0.0, 0.0, 0.17383910328410926, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7778438721037507, 0.7592283162924894, 0.27027978053916946, 0.9680808201913975, 0.0, 0.0, 0.0, 0.0, 0.23721687040615713, 0.0, 0.0, 0.0, 0.214724244927467, 0.0, 0.6713747276751851, 0.2691029964691732, 0.24957193666978766, 0.04174679102400021, 0.0, 0.0, 0.44623226966778873, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9739425217687773, 0.3878431688435761, 0.0, 0.0, 0.0, 0.0, 0.5905353658253105, 0.0, 0.41099451149099264, 0.46959062394023404, 0.38400872176268547, 0.0, 0.4974135902693747, 0.0, 0.0, 0.0, 0.9154557174508635, 0.2586557560688982, 0.09838729964211103, 0.4023736739495505, 0.0, 0.43229262167712557, 0.25909478937718255, 0.0, 0.0, 0.9527916935554207, 0.3993878193283669, 0.4377172055566821, 0.0, 0.0, 0.02448196261221554, 0.28590941544125414, 0.0, 0.4006023808751287, 0.03918308759508126, 0.0, 0.2882716435062163, 0.0, 0.0110856134215592, 0.37363494354124355, 0.049778285574341975, 0.0, 0.0, 0.9269077110105975, 0.31315811797299237, 0.0, 0.012303674452273154, 0.015429991708474198, 0.0, 0.0, 0.014446013487908171, 0.04123415495113678, 0.03371931705724562, 0.29538913191692134, 0.0, 0.3349006097039049, 0.23542836206424417, 0.23052114963877735, 0.31614042332280545, 0.0, 0.0, 0.11683083227872514, 0.0, 0.0, 0.0006114799040197484, 0.10975727273531571, 0.0, 0.004295508139252644, 0.05107901709661121, 0.0, 0.9334562674798996, 0.0, 0.0, 0.0, 0.0, 0.5880007983611341, 0.06450382436313898, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11800940272957328, 0.0, 0.1899751304440791, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.273744879534597, 0.0, 0.0, 0.2671580962806136, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3492510086210155, 0.0, 0.3080038714015672, 0.0, 0.0, 0.2221605109577772, 0.0, 0.0, 0.0, 0.0, 0.07999688285015112, 0.06742807554519747, 0.08634727349135116, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10258077598728532, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5012203954355052, 0.0, 0.0, 0.0, 0.08111247475296846, 0.0, 0.0, 0.12138201096876389, 0.0, 0.08982551378065248, 0.0, 0.0, 0.12126628140327211, 0.0, 0.0, 0.07844895363581271, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07837080617454226, 0.0, 0.0, 0.0, 0.20283344995989894, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1282379216751728, 0.033796057874619194, 0.0, 0.09653017040380268, 0.0, 0.08822574416521244, 0.01404236183038609, 0.056929725378038414, 0.0, 0.15526439596527059, 0.0, 0.0, 0.0, 0.03781410167223484, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2529010219858623, 0.3238608478009693, 0.0, 0.0, 0.1407409609998849, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.329852425046806, 0.0, 0.0, 0.33341239592531074, 0.45526487856119674, 0.0, 0.33690660829115365, 0.08120142522000469, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08802821410799472, 0.39029129939250945, 0.13688708765693952, 0.0, 0.08496391292272984, 0.0, 0.0, 0.5183827483305287, 0.703065773125918, 0.4814340077714492, 0.0, 0.0, 0.0, 0.12053001147739661, 0.0, 0.07320101959394086, 0.0, 0.0, 0.5105579893076974, 0.6674329003953465, 0.7892434941755087, 0.051355650714931346, 0.4403973256963498, 0.0, 0.01884360978410253, 0.0, 0.0, 0.42539452394686605, 0.1591995319925085, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17375879569486846, 0.0, 0.0, 0.0, 0.0, 0.1721016330265864, 0.0, 0.00044047585032663307, 0.1672932604423309, 0.18102660031449758, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004373654797423859, 0.0, 0.0, 0.08031885873943684, 0.0, 0.0, 0.12088873452345646, 0.0, 0.25447674137867604, 0.0, 0.20210883042048103, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05466434515545004, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005119594240948603, 0.0, 0.2461616206228127, 0.0, 0.0, 0.40062152777610743, 0.0, 0.0, 0.0, 0.4450914546665199, 0.0, 0.0, 0.0, 0.25078704499066257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6437873083636174, 0.0, 0.08986536930257488, 0.05459463157090123, 0.0, 0.0, 0.1617782592438168, 0.0, 0.0, 0.0, 0.0, 0.510293956173341, 0.0, 0.0, 0.0, 0.0, 0.0539939979224501, 0.06022554282071448, 0.0, 0.0, 0.0017903697912685446, 0.10539843894447092, 0.0, 0.007216901945678346, 0.0, 0.0, 0.0, 0.22684974207663636, 1.4564553082728662, 0.182720528082649, 0.06653876275957457, 0.0, 0.6274289004185675, 0.0, 0.5406773490882926, 0.27822503396119075, 0.09306814986560254, 0.29383387946651635, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6230315233142055, 0.9648450369390001, 0.5108864746688708, 0.0, 0.36840186712596623, 0.22805280632725022, 0.3227837297104921, 0.0, 0.0, 1.0240377781477865, 1.591691363735423, 0.0, 0.7314261723085571, 0.0, 0.0, 0.45960855697902075, 0.0, 0.43090812739194506, 0.0, 0.3151566241591431, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3316537279743774, 0.27121053456867833, 0.0, 0.0, 0.0, 0.4001441487163798, 0.5176883689695168, 0.709966180421066, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2820721974309868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03908614977726766, 0.3083419381268706, 0.39485756407874356, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11511559935873378, 0.014949071584157462, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03837527794969671, 0.5550679626138529, 0.0, 0.5726479000113842, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07921974732295421, 0.0, 0.0, 0.0, 0.0, 0.0035899619569867425, 0.0, 0.0, 0.2145099852146676, 0.0, 0.0, 0.0, 0.0, 0.21950879525087302, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09449503481586544, 0.21750142180635595, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32517302304866597, 0.0, 0.0, 0.21035924507266648, 0.0, 0.0, 0.0, 0.0, 0.23713929311152726, 0.21014969427312982, 0.0, 0.0, 0.0, 0.5438936968761621, 0.3401858622480347, 0.0, 0.0, 0.0016527476817863266, 0.0, 0.007935034693483254, 0.0, 0.0, 0.1293317927443745, 0.0, 0.0, 0.0, 0.14368792432790373, 0.0, 0.0, 0.0, 0.0, 0.35799313982296815, 0.29274964408302323, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029011045367568582, 0.0017598612427760815, 0.0, 0.0, 0.052226530139838453, 0.0, 0.0, 0.0, 0.0, 0.16473710872422428, 0.30447392294316244, 0.0, 0.0, 0.0, 0.01743076710707649, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0410977515599671, 0.0, 0.7547303898094697, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.30609022817115544, 0.0, 0.0, 0.0, 0.0, 0.2105854322132866, 0.5327502455990605, 0.13588517657689586, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24025222517683778, 0.0, 0.007535433506713796, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6979826303937671, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07410089446237557, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4744178097104391, 0.0, 0.0, 0.0, 0.0, 0.1876471424480227, 0.28765608703745393, 0.2182401932056186, 0.04951496463333951, 0.0, 0.12909838655126593, 0.0, 0.3498317042975124, 0.0, 0.37087394843503463, 0.47981991008621333, 1.1039610273729945, 0.4455015727565212, 0.05271863458630144, 0.19600051626620313, 0.0, 0.2316343353202091, 0.0, 0.0, 0.0, 0.4641150152741525, 0.15018757716392944, 0.21321672818601478, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21465382837602517, 0.0, 0.0, 0.0, 0.00020573734093944128, 0.0, 0.0, 0.0, 0.16929708918389524, 0.0160994805386141, 0.0, 0.049657622486024976, 0.0, 0.017886560545272906, 0.1659947360027911, 0.0, 0.0, 0.0, 0.0, 0.11420185948155097, 0.0, 0.07369142147184715, 0.0, 0.33489361550116375, 0.46496602729779546, 0.0036113530199273977, 0.044355883980523376, 0.08156217107736623, 0.0, 0.006501263051750628, 0.24089225482763127, 0.0, 0.0, 0.3861226254326548, 0.020506805168434235, 0.0, 0.24677384860885976, 0.0, 0.0, 0.002169816793370778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.041148887129618034, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9769895490432172, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5923828848790257, 0.0, 0.10196835358593148, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.328835975725113, 0.0, 0.0, 0.4036325198584592, 0.0, 0.0, 0.3602983928676083, 0.0, 0.0, 0.9557725494193282, 0.0, 0.43908662544955285, 0.0, 0.0, 0.46995823158461947, 0.0, 0.14454935060909507, 0.0, 0.010668331756011213, 0.6280409324984255, 0.03247332779409237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10592998533424139, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.33399686192793854, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7833052225131492, 0.0, 0.0, 0.0, 0.24187208135853017, 0.0, 0.071730719549714, 0.0, 0.11407352111288803, 0.0, 0.44957678307373006, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5736773783460691, 0.0692607726207939, 0.0, 0.0, 0.4731102083446558, 0.7389531951966185, 0.028778055517643567, 0.22717903301955947, 0.0, 0.1436855444728547, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.49542697237169275, 0.0, 0.3454532351491738, 0.11660950163380673, 0.0, 0.0, 0.0, 0.0, 0.027794605242432064, 0.0, 0.0, 0.0, 0.132905538815286, 0.0, 0.05497259939520882, 0.0, 0.0, 1.2625457513449383, 0.39900789022393385, 0.0, 0.0, 0.0, 0.0, 0.4114559732861708, 0.4741201455820112, 0.0, 0.21077985466978477, 0.0, 0.0, 0.7439578224938339, 0.42232266256074136, 0.4876343844944301, 0.6687496612887465, 0.115118039848854, 0.0, 0.0, 0.0, 0.0, 0.05260063632046659, 0.07759581613885312, 0.028401563276091994, 0.0, 0.056334062495133036, 0.17033944709766455, 0.9153107777932757, 0.0, 0.004924424218813803, 0.057509247607595904, 0.0, 0.7491964746840728, 0.05934710743113981, 0.0, 0.0, 0.0, 0.22238712275143577, 0.4319949206677921, 0.025917686578643146, 0.031803778192995576, 0.0, 0.6741550137516903, 0.009328571558732282, 0.0, 0.0, 0.0, 0.0, 0.5515037103010108, 0.6987172178395075, 0.0, 0.0, 0.0, 0.060174729085221354, 0.0, 0.0, 0.08734749351416564, 0.6636235071641303, 0.09580942583448827, 0.0, 0.0, 0.08996354325075087, 0.04525348827838765, 0.5824434635228624, 0.05819874866882126, 0.12005968761069685, 0.0, 0.0, 0.3313826265510977, 0.0, 0.058140773587614956, 0.6127791119711469, 0.0, 0.0, 0.15047559500471339, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6662085079556846, 0.3400843601648346, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22423528728211575, 0.0, 0.0, 0.0, 0.0, 0.3636963343220375, 0.5756271502974593, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046502182852265775, 0.0, 0.04891501992848654, 0.0, 0.0, 0.0, 0.9407814186149676, 0.09733317875961926, 0.0, 0.11672934297033466, 0.0, 0.6385588104227404, 0.0, 0.022206283976929683, 0.09845615426665595, 0.03496357540242119, 0.0, 0.0, 0.0, 0.0, 0.03380456195194267, 0.18543528221865002, 0.12144811071150914, 0.0, 0.03755694741887004, 0.16907550573428723, 0.0, 0.0, 0.1443808645220955, 0.0, 0.1003230425739974, 0.12879502114342312, 0.0647357901808317, 0.0, 0.5084955858844, 0.08519692951707138, 0.007582866204885641, 0.0, 0.03198292312330168, 0.0, 0.1209623049539008, 0.0, 0.12387820451445683, 0.0, 0.0, 0.043058753609476905, 0.03493082633215086, 0.0, 0.0, 0.043777031505228374, 0.016261326799286477, 0.16693678030096587, 0.0, 0.0]), 42), 42)),) julia> @finch_code begin Ct .= 0 for j = _ @@ -1015,7 +1015,7 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.2504314291953376, 0.0, 0.0, 0.9648065476989627, 0.2835978542736629, 0.13211849643271117, 0.2796391765298554, 0.22540993882752317, 0.5512218518807817, 0.5478145335437775, 0.0, 0.2291959647754706, 0.23520231615614767, 0.03296826745685447, 0.18421763750874248, 0.6035878434468992, 0.7441004608135994, 0.2535097758200323, 0.20236453274735783, 0.09228241774990334, 0.13384560784694935, 0.5269755678736615, 0.03880627317810495, 0.17704264007357723, 0.0, 0.2632287465084173, 0.0, 0.02720231717357045, 0.5246531850072871, 0.0, 0.0, 0.3360269038793386, 0.0, 0.22538882742471622, 0.22621665568148489, 0.0, 0.09095677592426996, 0.0, 0.2343687318872728, 0.0, 0.00044179348092010485, 0.07281055209847118, 0.6821285312867097, 0.0, 0.0, 0.0, 0.8944403740767686, 0.11973372388784431, 0.2613237068921269, 0.5923534538840982, 0.0, 0.0, 0.0, 0.8426453838331012, 0.0, 0.0, 1.0769929937540788, 0.43300907588983417, 0.0, 0.6905133736710757, 0.0, 0.0, 0.0, 0.07271653050953786, 0.8664857754450395, 0.08570530865158534, 0.0, 0.7169860381548754, 0.20498067747201715, 0.0, 0.23050103487101342, 0.0, 0.0, 0.9152746488430813, 0.14299878494120105, 0.44815460009097313, 0.0, 0.0, 0.0, 0.23162241551000032, 1.0326337985335274, 1.0530846396126474, 0.22109306040172927, 0.0, 0.0, 0.0, 1.0289491599002607, 0.008076930682810486, 0.037079469071792215, 0.0, 0.03308196940629956, 0.07165705922647192, 0.18447863887953236, 0.0, 0.24885144181470292, 0.0, 0.0, 0.0, 0.7193963651558962, 0.0, 0.6007574484421223, 0.0, 0.11361690641306497, 0.0, 0.0, 0.0, 0.0, 0.5189539173895105, 0.027360695267410504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.769945776489901, 0.00013219515459577855, 0.0, 0.0, 0.0, 0.0, 0.21518747264967641, 0.0, 0.0, 0.0, 0.10980938651098104, 0.07347552139071808, 0.0, 0.3613462418752601, 0.04465135919773286, 0.027102240057490925, 0.0, 0.0, 0.2594566815123038, 0.417973871558788, 0.02337304044012675, 0.5498222432776159, 0.011558313103301096, 0.13519961718643905, 0.0830809338177889, 0.0, 0.0, 0.0, 0.17989871031119878, 0.05233157238393502, 0.0, 0.051508809526025434, 0.225133841185459, 0.18950167625902217, 0.0, 0.0, 0.0, 0.20173577654712102, 0.7662693488070871, 0.0, 0.33259178463685746, 0.13865467767460202, 0.0, 0.8944580603877651, 0.0, 0.060682785060590494, 0.06051599339484606, 0.0, 0.0, 0.0, 0.12305720211410776, 0.10081888448105404, 0.0, 0.0, 0.2522377522294325, 0.0, 0.12103967793114603, 0.06077105223878225, 0.0, 0.0, 0.5586258592154407, 0.0, 0.0, 0.0, 0.2984848816909581, 0.029564782247173068, 0.6276543733906952, 0.0, 0.07353625635562432, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08001934416956356, 0.13808411155288577, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0013608908425346389, 0.15477792583676012, 0.8924302032481646, 0.0, 0.13515079773758784, 0.0, 0.059793517595463114, 0.0, 0.04933055693313389, 0.0, 0.0, 0.3342781850907459, 0.02578025634698341, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1229501707927792, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287208489034296, 0.0, 0.0, 0.28149278769379354, 0.0, 0.0, 0.0, 0.031923890851782225, 0.23740383631799186, 0.0, 0.0, 0.0, 0.0, 0.06362127081034188, 0.2629034525588847, 0.0, 0.9151807425831917, 0.0, 0.0, 0.0, 0.6693739198309284, 0.0, 0.0, 0.2061930933620024, 0.27528937724536684, 0.0, 0.0, 0.0, 0.0, 0.2675780483794807, 0.02063619759744684, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5460074055587408, 0.0, 0.6541555536266587, 0.0, 0.0, 0.07150154126300666, 0.0, 0.15048122306270975, 0.034115472912426725, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.050926612139623545, 0.21044506008920905, 0.0, 0.0, 0.4253961501964202, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5242476712268254, 0.0, 0.0, 0.6721198397890595, 0.02913210340779019, 0.0, 0.20059561631676462, 0.0, 0.29433701033990906, 0.0, 0.0, 0.0, 0.12559144077146528, 0.0, 0.0, 0.32229898127496104, 0.0, 0.0, 0.05500938293182685, 0.1114468235961369, 0.09601244908001759, 0.255231140185047, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05242264559033129, 0.07189305704474794, 0.29708512061039594, 0.0, 0.0, 0.16167981650220184, 0.0, 0.0, 0.42894283906704944, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24120550186102305, 0.002462183433889286, 0.1185465354728046, 0.0, 0.0, 0.20924909285728116, 0.0, 0.2383879501918044, 0.0, 0.08928505124693381, 0.0, 0.0, 0.2291277246538886, 0.0, 0.0, 0.039107088380868994, 0.03339412468553525, 0.0, 0.17867986571670036, 0.0, 0.15885581639487184, 0.0, 0.4770109811329409, 0.46521958209705216, 0.08213268605220507, 0.8570033319080816, 0.5762497735248863, 0.025109002675938377, 0.0, 0.0, 0.0, 0.006062678222071191, 0.6895253688974624, 0.0, 0.0, 0.14425623656373723, 0.0, 0.26058653129843573, 0.2499129405223175, 0.5556369963578781, 0.0, 0.0, 0.14846473797228377, 1.311439497677356, 0.0, 0.0, 0.0, 0.14844299347189643, 0.0, 0.06204384333300274, 0.5085214657536261, 0.06333953518463412, 0.0, 0.4087271917522072, 0.56471815720299, 0.0, 0.7613475113276124, 0.31092441757595435, 0.25657570652463557, 0.0, 0.6284352010004853, 0.0, 0.44245087677575873, 0.0, 0.5840306487685422, 0.886297089335757, 0.0, 0.2141960416332438, 0.0, 0.0, 0.7455493113099605, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9841442926021067, 0.155496454991287, 0.0, 0.0, 0.07678252545804619, 0.0, 0.0, 0.3721354350358947, 0.020164712785984047, 0.0, 0.0, 0.0, 0.0, 0.1088564167894987, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9595213220321046, 0.0, 0.026588936071193094, 0.0, 0.0, 0.18249673153915044, 0.041373682209080435, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04976306812868327, 0.2056369238513726, 0.0, 0.0, 0.341205976763526, 0.0, 0.0, 0.0, 0.0, 0.5785815925839551, 0.0, 0.0, 0.0, 0.5989984098523007, 0.041848978991102986, 0.0, 0.7058966144833084, 0.0, 0.1357909427918936, 0.0, 0.0, 0.0, 0.6943234317201388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03329077451447904, 0.0, 0.16959332194846893, 0.03825181104342904, 0.0, 0.030570483496490792, 0.0, 0.181963825346749, 0.0, 0.0, 0.0861751567882612, 0.0, 0.23433890396321935, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06468139820825311, 0.4901043774165395, 0.0, 0.1652405132589817, 0.0, 0.0, 0.07483443864111192, 0.0, 0.0, 0.0, 0.2810295005684995, 0.0, 0.3898372849078984, 0.0, 0.27070466717435465, 0.5873234092956581, 0.0, 0.0, 0.8033877947986148, 0.0, 0.0, 0.0, 0.5030084273245645, 0.1643009637310288, 0.0, 0.0, 0.0, 0.052313365367879956, 0.02924539070601191, 0.0, 0.7815339827038686, 0.0, 0.631919493277437, 0.08243985181699306, 0.0, 0.0, 0.0, 0.0, 0.12868680907403285, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.1259698971001804, 0.7198499769348474, 0.0, 0.41807281750787384, 0.0, 0.0, 0.6290848565988848, 0.7773412611170788, 0.0, 0.3270721417747804, 0.0, 0.0, 0.6187710034515789, 0.07069501936159496, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15113911645003905, 0.0, 0.15654877177402662, 1.1322176354521876, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2636197382380641, 0.0, 0.0, 0.34206988627899454, 0.0, 0.0, 0.2168559436204628, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12189174979618164, 0.009400555275465744, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02319896532052816, 0.09586554938115534, 0.0, 0.0, 0.47758214062526055, 0.0, 0.0, 0.0, 0.0, 0.766521270904984, 0.0, 0.0, 0.0, 0.05687724891036996, 0.0, 0.0, 0.0, 0.019988327516632248, 0.0, 0.0, 0.24020596976351885, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5319793134128888, 0.0, 0.0, 0.12310759546793347, 0.28424710350697324, 0.0, 0.9704064926727941, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.595062055789435, 0.0, 0.022922464313533127, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7479520138852049, 0.0, 0.0, 0.0, 0.0, 0.11201726895804533, 0.0, 0.0, 0.5882991104057551, 0.0, 0.0, 0.0, 0.5372591710353254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4185803721513073, 0.0, 0.4160894350708626, 0.35712090084273435, 0.0, 0.0, 0.0, 0.0, 0.3329375067097101, 0.0, 0.0, 0.0, 0.9791513934288851, 0.040171778764664906, 0.0, 0.0, 0.18774405618493867, 0.47311893679528827, 0.2590438343789052, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12077476728428499, 0.0, 0.06327325623124767, 0.0, 0.0, 0.0, 0.0, 0.34849519635188847, 0.0, 0.4382603746311635, 0.0, 0.0, 0.0, 0.09913709085437171, 0.4096661875861404, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4230910500526733, 0.0, 0.0, 0.0, 0.17776900851570368, 0.0, 0.5438917161748563, 0.0, 0.43287084617637955, 0.0, 0.0, 0.0, 0.5349746055023918, 0.0, 0.7894262258085124, 0.0, 0.0, 0.0, 0.416696264214944, 0.1414148713022835, 0.0, 0.1306712640828635, 0.5944339267365731, 0.0, 0.0, 0.0, 0.3098486230376566, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27475814956764166, 0.0, 0.0, 0.0, 0.572874722755641, 0.7993131511508778, 0.0, 0.2979949962228512, 0.14400098705349634, 0.0, 0.0, 0.02684711041673838, 0.0, 0.0575193250192605, 0.13038147684896279, 0.07982177723780243, 0.0, 0.0, 0.22370954598082965, 0.0, 0.0, 0.0, 0.16207849359014098, 0.8780589957563658, 0.0, 0.0, 0.0, 0.03773454641900064, 0.0, 0.190720074864707, 0.03823162707299666, 0.0, 0.027092618673790602, 0.07782668325822914, 0.0, 0.0, 0.025612768291380317, 0.0, 0.1339183762706947, 0.03147511447091019, 0.0, 0.0, 0.22256660522037766, 0.0, 0.050981846070955524, 0.33080849696175413, 0.22670468547648376, 0.0, 0.0, 0.2394131641393997, 0.0, 0.6763225254232694, 0.0, 0.32609931596811353, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02551395955593748, 0.0, 0.19870976845837512, 0.0, 0.8838430389981123, 0.0, 0.8900590234719281, 0.0, 0.1395885727389325, 0.39274638865688727, 0.13258182339863903, 1.0427544725112363, 0.007925765580094073, 0.0, 0.0, 0.9248219821941955, 0.0, 0.38782207933590473, 0.20331266090801786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4620448777897825, 0.5673723076761421, 0.13444042454417618, 0.0, 0.0012927651989113214, 0.0, 0.0, 0.0, 0.3049721916420315, 0.017266202832261764, 0.0, 0.0, 0.07071993264415252, 0.04567425634491729, 0.3943633692304047, 0.0, 0.15861807151929683, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05848946000294637, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0002825960061227963, 0.18362488935764, 0.0, 0.0, 0.0, 0.16115194339742445, 0.5974334511167834, 0.0, 0.04024167944046561, 0.33382381844541353, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6087942383002851, 0.0, 0.0, 0.7807479082612564, 0.3974967659255351, 1.5487027213337248, 0.03765559375444021, 0.17692333788215128, 0.23426356503546714, 0.0, 0.22388851869475412, 0.04007956243736881, 1.0262040210122396, 0.0, 0.7972348331243138, 1.0049259227957363, 0.051433760809377164, 0.0, 0.8283458296766737, 0.0, 0.7561556098507006, 0.0, 0.0, 0.0, 0.24907496608552146, 0.0, 0.5011916402324644, 0.1747189814102487, 0.9899595982235516, 0.6164188940137083, 0.11559029428984438, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.593849645786338, 0.0, 0.0, 0.0, 0.0, 0.13660851844466146, 0.030970403587585463, 0.23157107362581741, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13749939723080143, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7110898100418397, 0.0, 0.0, 0.0, 0.46081314114808425, 0.7109856621285974, 0.2884350146527927, 0.0, 0.0, 0.30337236072169704, 0.06739814120009983, 0.0, 0.7785291912169707, 0.0, 0.0, 0.13287789565404662, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3593823347180517, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4624623396236477, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.024288127378650458, 0.0, 0.793430084070044, 0.0, 0.0, 0.07003161792104487, 0.0, 0.390525043836891, 0.7636039620295462, 0.06950112764284275, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019321154098251664, 0.0, 0.18651557279691772, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05792018405822482, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18265223354453325, 0.12454723256219671, 0.0, 0.0002798455087109209, 0.0, 0.0, 0.11611318457978691, 0.05398921986713746, 0.0, 0.8752290763913787, 0.0, 0.0, 0.0, 0.0, 0.13107895831547542, 0.0, 0.0, 0.45521248179167606, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11685661958627322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44522459151527227, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26435993065610003, 0.021758541234477975, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2146225974372531, 0.0, 0.13433790512658406, 0.030902835047588124, 0.0, 0.0, 0.03139052000724026, 0.0, 0.0, 0.7200671942026683, 0.0, 0.0, 0.05946084260814123, 0.0, 0.14663715828117352, 0.03324398818324252, 0.008023890708802274, 0.05967012120515395, 0.0, 0.0, 0.0, 0.10840406404650259, 0.0, 0.0, 0.0, 0.23002554078955822, 0.0, 0.21539070760796813, 0.0, 0.15809846801096508, 0.0, 0.0, 0.023379160669788793, 0.06919243918501702, 0.0, 0.4184368340983768, 0.0, 0.0, 0.0, 0.025499570825031452, 0.0, 0.054632252014063354, 0.12383722685885369, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08100665304577326, 0.0, 0.0, 0.0, 1.137863121002405, 0.0, 0.0, 0.18114724382910816, 1.0175246627827756, 0.0, 0.8319051265218698, 0.7408406030496757, 0.0, 0.0, 0.4793159619581115, 0.26457362772519605, 0.7690370272987045, 0.02989528102721059, 0.0, 0.0, 0.0, 0.34236772701032764, 0.22777638147070367, 0.20013535639204974, 0.7445351180710278, 0.0, 0.0, 0.32085924041220354, 0.0, 0.0, 0.0, 0.5922078604864867, 0.0, 0.0, 0.18324289767504168, 0.0, 0.0, 0.05247138335835671, 0.48819810625100485, 0.0, 0.4058243472838195, 0.0, 0.0, 0.6944817185701155, 0.21684000174364465, 0.0, 0.12484778900119534, 0.0, 0.5314768166536554, 0.0, 0.0, 0.0, 0.0, 0.11888353831534566, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4539474830982486, 0.0, 0.12931153719488578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.23351697026332235, 0.0, 0.0, 0.0, 0.0, 0.2291429172294868, 0.4258647172142874, 0.0, 0.0, 0.0, 0.22479141295616378, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05853977920447593, 0.0, 0.16715127001769428, 0.0, 0.3712702672746247, 0.13508244363790445, 0.06392604260421969, 0.5912989058272206, 0.4437811402099471, 0.0, 0.0, 0.0, 0.0, 0.005827558703832637, 0.6627845677844773, 0.0, 0.0, 0.0, 0.30904361146056275, 0.6816789334794826, 0.1436649772664439, 0.16334297841077242, 0.0, 0.0, 0.7882286990025497, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7753056808075847, 0.035768380854023674, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44917737188494944, 0.0, 0.18937379890511313, 0.06882274914369534, 0.0, 0.0, 0.0, 0.009287224889287345, 0.06906497794085972, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26624227636214304, 0.0, 0.0, 0.0, 0.1829905316954157, 0.0, 0.06582989974405196, 0.2036305981722081, 0.08008655235603437, 0.0, 0.0, 0.0, 0.0, 0.0, 0.41729810318329397, 0.0, 0.0, 0.0, 0.0, 0.0, 0.037951024806923965, 0.0, 0.0, 0.0, 0.0, 0.41651629143780994, 0.0, 0.2053954771505675, 0.29245802337269494, 0.0368786813523771, 0.0, 0.38440171693921094, 0.0, 1.0326219326945734, 0.0, 0.02604768015780454, 0.9153304998316836, 0.0, 0.0, 0.0, 0.021211537114504155, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3418184639399641, 0.9530187941808128, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5415447555144779, 0.0, 0.16269589476095273, 0.0, 0.2704207942532035, 0.6129742049927741, 0.0, 0.0, 0.0, 0.0, 0.07078757436524862, 0.0, 0.7077105145475581, 0.34262729838304967, 0.5909987644476324, 0.0, 0.11177131716736882, 0.4359653240929594, 0.04723041930008277, 0.45146742793812006, 0.896649501844373, 0.0, 0.0, 0.6373803605539574, 0.5201327056992473, 0.10980024784153514, 0.07242729038979111, 0.0, 0.25075448235999825, 0.0, 0.14797679652158516, 0.0, 0.0, 0.0, 0.0, 0.6939917265420261, 0.9906375819864492, 0.9257686181712707, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37693205342755914, 0.5232740229070877, 0.0, 0.060081052233409524, 0.0, 0.3350366056610552, 0.0, 0.20067269510180097, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5308540215160052, 0.0, 0.0, 0.04969049276705586, 0.4729163126308979, 0.17206519556589087, 0.08142765800071788, 0.0, 0.6342266715653555, 0.28491323267898133, 0.0, 0.0, 0.0, 0.0, 0.3249315382934875, 0.27888197557292793, 0.0, 0.00024008316707892853, 0.0, 0.0, 0.4429941865632019, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08351200806876206, 0.0, 0.0, 0.3644144714136701, 0.0, 0.25850208657414453, 0.3044172676246769, 0.0, 0.0, 0.0, 0.42064905943656483, 0.5410542431685182, 0.0, 0.0, 0.0235250266831074, 0.17227146855360218, 0.0, 0.0, 0.11190852746246406, 0.0, 0.0, 0.0, 0.0, 0.14411942384547258, 0.0, 0.0, 0.4237744107411662, 0.0, 0.2972186074559964, 0.0, 0.5397314242092841, 0.4632402464002124, 0.0, 0.5786606886346829, 0.0, 0.0, 0.47789419623388885, 0.0, 0.0, 0.0, 0.10580588439167306, 0.0, 0.0, 0.7377357792707717, 0.0, 0.10579038780894534, 0.0, 0.0, 0.0, 0.045139981578782816, 0.0, 0.0, 0.11584045845995011, 0.0, 0.0, 0.019771431213384455, 0.36490249309768175, 0.35310751173091487, 1.1149184594112733, 0.0, 0.0, 0.0, 0.5857527772485364, 0.44959707967332574, 0.1008560617277558, 0.018841708015473753, 0.7001531183110316, 0.0, 0.0, 0.0, 0.5946141177445001, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22666010948008636, 0.0, 0.0, 0.0, 0.0, 0.0, 0.014782177343261123, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02695824533437821, 0.0, 0.0, 0.0, 0.016838719448302838, 0.0, 0.0, 0.0, 0.08231997245985787, 0.0, 0.0, 0.0, 0.01058107131899943, 0.0, 0.05814319369896461, 0.0, 0.0, 0.0, 0.0, 0.047348036509572325, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019563192629043182, 0.027295875565384514, 0.0, 0.0, 0.0, 0.0, 0.33629932740438834, 0.0, 0.0, 0.0, 0.32394391802925426, 0.5704070896351352, 0.0, 0.14173474826201982, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6013127745008292, 0.0, 0.7561985490243033, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2959306772073682, 0.2539911401819114, 0.0, 0.0, 0.7300245622804938, 0.0, 0.2367914528076339, 0.0, 0.0, 0.0, 0.33628005236128533, 0.025934644678944505, 0.0, 0.06026134263178236, 0.0, 0.0, 0.03662105153743461, 0.06883834406728133, 0.0, 0.0, 0.21279478779844782, 0.0, 0.0, 0.07129569822964256, 0.0, 0.09738688258412649, 0.06246220065656896, 0.0, 0.059045957391141574, 0.0, 0.006923917652553149, 0.051490108793371445, 0.0, 0.16644468958034975, 0.19015418061029377, 0.10882376279915186, 0.06400227485256132, 0.2644778831991808, 0.0, 0.19849197355887785, 0.0, 0.0010725148648749981, 0.12198011848273568, 0.1548472256356659, 0.0, 0.009305339154304988, 0.0, 0.10589543929012146, 0.0, 0.0, 0.17178211974814458, 0.0, 0.23085925511580369, 0.0, 0.0, 0.0, 0.31374773386794685, 0.0, 0.4234572393895347, 0.0, 0.0, 0.0, 0.045888478821935044, 0.0, 0.0, 0.13665231391596233, 0.0, 0.05546447903889757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15847133453228077, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3148706017686264, 0.2655048691833022, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.28333620483908656, 0.0, 0.0, 0.0, 0.3208604446677971, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25931056270601605, 0.0, 0.0, 0.20842242702467234, 0.0, 0.0, 0.28681902268117093, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2978149918318377, 0.0, 0.0, 0.09574337597144772, 0.0, 0.0, 0.38017827065442816, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03128644702667798, 0.0, 0.0, 0.0]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.18463927542167063, 0.16872726618738124, 0.0, 0.0, 0.0, 0.5894648191942263, 0.0, 0.0, 0.4399979683038884, 0.4872396182365841, 0.0, 0.0, 0.0, 0.5232587908717465, 0.0, 0.028458776980687873, 0.0, 0.1912882078151879, 0.5164204427507948, 0.25375520169397275, 0.7988048308846816, 0.548219404354131, 0.0, 0.0, 0.0, 0.08973042123875676, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16269102551813888, 0.0, 0.6368094288799442, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03708423534085979, 0.16845626013473977, 0.6588748971102081, 0.010877416543996312, 0.0, 0.0, 0.0, 0.44123232519423083, 0.0, 0.24002669576156066, 0.0, 0.0, 0.0, 0.21689234576879324, 0.2098895841423717, 0.6161647640351655, 0.4776903273077015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6355594744363152, 0.0, 0.0, 0.08457949502263125, 0.0, 0.0, 0.6901459039432658, 0.0, 0.0, 0.0, 0.057641486402300816, 0.0, 0.0, 0.09549316762404748, 0.09211299074367744, 0.11795836585190977, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0467877508869465, 0.0, 0.0, 0.0, 0.0, 0.04370712736779799, 0.281244207688617, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2030486542718697, 0.0, 0.5182178756464231, 0.0, 0.0, 0.0, 0.057729640414041494, 0.0, 0.0, 0.0, 0.0, 0.19354540299708142, 0.06300918519480127, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1478355026964281, 0.0, 0.0, 0.0, 0.541165159810693, 0.0, 0.0, 0.0, 0.16407931870757664, 0.2057712545151301, 0.32812733654993936, 0.0, 0.24913050204963633, 0.20974603114415158, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5086673274457614, 0.32467254520642835, 0.0, 0.22357645210013752, 0.0, 0.0, 0.0, 0.15908397194054766, 0.0, 0.5866968618616202, 0.21349654033737236, 0.243214867615369, 0.0, 0.0, 0.27374855832219774, 0.0, 0.3075930851551728, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44087523604465795, 0.22505682646241645, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2406824670174747, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4353583318013107, 0.0, 0.0, 0.0, 0.0, 0.42257756079609887, 0.0, 0.16328692344233348, 0.7239663574899861, 0.253917129058883, 0.0, 0.0, 0.0, 0.012941670285380298, 0.005948300091521438, 0.6648934966409066, 1.0229318994166612, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13578338949001834, 0.4197116456419966, 0.0, 0.947053670891027, 0.0, 0.13486088669396906, 0.0, 0.6620124726194103, 0.0, 0.6496849904621673, 0.0, 0.0, 0.7890806801928671, 0.01841465881846702, 0.27914669822772004, 0.0, 0.029516583729604803, 0.0, 0.0, 0.018864268719240455, 0.24394303159635272, 0.0, 0.5741603792214627, 0.3080365664801448, 0.6155081898538994, 0.2367816204152454, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17416434327376132, 0.0, 0.0, 0.0, 0.0, 0.16269692366253372, 0.0, 0.3491221627973697, 0.0, 0.0, 0.0, 0.0, 0.0, 0.896220207410521, 0.13858473312625733, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2148948115594729, 0.1029957040349639, 0.0, 0.10833979410008034, 0.0, 0.0, 0.23454757178184932, 0.0, 0.2155791117194733, 0.0, 0.22311080318652476, 0.0, 0.0, 0.0, 0.0, 0.07959294795619429, 0.0, 0.17163567622890405, 0.07283994445558169, 0.0, 0.0, 0.0, 0.08654379427684032, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16368166253985994, 0.0, 0.17071385720442764, 0.34758616988919516, 0.0, 0.0, 0.0, 0.0, 0.25336804558610515, 0.0, 0.032257457723339725, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2136279714073461, 0.0, 0.24003957209260046, 0.21303254632455026, 0.006511170502708404, 0.383310313899178, 0.0, 0.0, 0.0, 0.1337677376744651, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0646519260588245, 0.0, 0.0, 0.0, 0.31350938881953055, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20384728982176575, 0.0, 0.0, 0.0, 0.0, 0.05670575896106868, 0.0, 0.05964802423259749, 0.0, 0.0, 0.0, 0.4488563568162377, 0.11869016538841153, 0.0, 0.07667734536959822, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.040450967971474544, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09480431131127824, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0016369185703860613, 0.0, 0.0017218526009009176, 0.0, 0.0, 0.0, 0.0, 0.003426215245260554, 0.0, 0.002213436040060287, 0.0, 0.0, 0.0, 0.0, 0.028624781651490867, 0.0, 0.0, 0.0917221717112923, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03948493179664919, 0.0998678691104795, 0.0, 0.0, 0.0, 0.0, 0.0519314302968116, 0.019753641949088564, 0.0, 0.0, 0.08679325173985959, 0.0, 0.0, 0.44412542864463755, 0.0, 0.0, 0.0, 0.25440324223859473, 0.0, 0.06322962025433154, 0.0, 0.10055420420038351, 0.08043066558940987, 0.01930551218305079, 0.019941838639940274, 0.025537187307223392, 0.0, 0.2186623932992767, 0.06407227122111338, 0.0254835950299198, 0.0, 0.0, 0.6628636898477958, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5422666551724673, 0.6870145051652384, 0.0, 0.0, 0.1501651963322761, 0.019574736086580828, 0.0, 0.0, 0.03589870327691644, 0.0, 0.026565876114361182, 0.0, 0.0, 0.029264986204643254, 0.0, 0.0, 0.01893195304872942, 0.046727577005066426, 0.0, 0.0, 0.28025040572174376, 0.0, 0.018913093854322344, 0.0, 0.0, 0.0, 0.04894945277637971, 0.006583695531171352, 0.3875798367774556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3292155284261099, 0.04344067936293723, 0.0653720550702903, 0.0, 0.0, 0.22649528787365272, 0.018049730534704385, 0.14615138313733889, 0.0, 0.0, 0.0, 0.0, 0.20611785399916963, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31511052111518423, 0.0, 0.03672395965581389, 0.0, 0.0, 0.9552411806377301, 0.0, 0.0, 0.0, 0.3512720117094026, 0.0, 0.7814509194588117, 0.9900444949397926, 0.0, 0.2416698136762867, 0.0, 0.15594310090475377, 0.37345396038999507, 0.13378200524387487, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0037871796529251873, 0.0, 0.07132197093797825, 0.0, 0.0, 0.4038639203443338, 0.0, 0.007926901739731977, 0.0, 0.005121012178382578, 0.4483265473520345, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19545324009971515, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.015822792815906598, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2654026801406409, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005338269605792754, 0.3841199941370228, 0.003089715236949895, 0.0, 0.0, 0.0, 0.2702896727602311, 0.0061480462629685435, 0.0, 0.0077716018517988575, 0.0, 0.0, 0.5060334906800565, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5325221835704804, 0.4354711371945976, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4529112439588725, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.42175363431898494, 0.540090698333841, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1429447733494866, 0.0, 0.0, 0.17383910328410926, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7778438721037507, 0.7592283162924894, 0.27027978053916946, 0.9680808201913975, 0.0, 0.0, 0.0, 0.0, 0.23721687040615713, 0.0, 0.0, 0.0, 0.214724244927467, 0.0, 0.6713747276751851, 0.2691029964691732, 0.24957193666978766, 0.04174679102400021, 0.0, 0.0, 0.44623226966778873, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9739425217687773, 0.3878431688435761, 0.0, 0.0, 0.0, 0.0, 0.5905353658253105, 0.0, 0.41099451149099264, 0.46959062394023404, 0.38400872176268547, 0.0, 0.4974135902693747, 0.0, 0.0, 0.0, 0.9154557174508635, 0.2586557560688982, 0.09838729964211103, 0.4023736739495505, 0.0, 0.43229262167712557, 0.25909478937718255, 0.0, 0.0, 0.9527916935554207, 0.3993878193283669, 0.4377172055566821, 0.0, 0.0, 0.02448196261221554, 0.28590941544125414, 0.0, 0.4006023808751287, 0.03918308759508126, 0.0, 0.2882716435062163, 0.0, 0.0110856134215592, 0.37363494354124355, 0.049778285574341975, 0.0, 0.0, 0.9269077110105975, 0.31315811797299237, 0.0, 0.012303674452273154, 0.015429991708474198, 0.0, 0.0, 0.014446013487908171, 0.04123415495113678, 0.03371931705724562, 0.29538913191692134, 0.0, 0.3349006097039049, 0.23542836206424417, 0.23052114963877735, 0.31614042332280545, 0.0, 0.0, 0.11683083227872514, 0.0, 0.0, 0.0006114799040197484, 0.10975727273531571, 0.0, 0.004295508139252644, 0.05107901709661121, 0.0, 0.9334562674798996, 0.0, 0.0, 0.0, 0.0, 0.5880007983611341, 0.06450382436313898, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11800940272957328, 0.0, 0.1899751304440791, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.273744879534597, 0.0, 0.0, 0.2671580962806136, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3492510086210155, 0.0, 0.3080038714015672, 0.0, 0.0, 0.2221605109577772, 0.0, 0.0, 0.0, 0.0, 0.07999688285015112, 0.06742807554519747, 0.08634727349135116, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10258077598728532, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5012203954355052, 0.0, 0.0, 0.0, 0.08111247475296846, 0.0, 0.0, 0.12138201096876389, 0.0, 0.08982551378065248, 0.0, 0.0, 0.12126628140327211, 0.0, 0.0, 0.07844895363581271, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07837080617454226, 0.0, 0.0, 0.0, 0.20283344995989894, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1282379216751728, 0.033796057874619194, 0.0, 0.09653017040380268, 0.0, 0.08822574416521244, 0.01404236183038609, 0.056929725378038414, 0.0, 0.15526439596527059, 0.0, 0.0, 0.0, 0.03781410167223484, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2529010219858623, 0.3238608478009693, 0.0, 0.0, 0.1407409609998849, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.329852425046806, 0.0, 0.0, 0.33341239592531074, 0.45526487856119674, 0.0, 0.33690660829115365, 0.08120142522000469, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08802821410799472, 0.39029129939250945, 0.13688708765693952, 0.0, 0.08496391292272984, 0.0, 0.0, 0.5183827483305287, 0.703065773125918, 0.4814340077714492, 0.0, 0.0, 0.0, 0.12053001147739661, 0.0, 0.07320101959394086, 0.0, 0.0, 0.5105579893076974, 0.6674329003953465, 0.7892434941755087, 0.051355650714931346, 0.4403973256963498, 0.0, 0.01884360978410253, 0.0, 0.0, 0.42539452394686605, 0.1591995319925085, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17375879569486846, 0.0, 0.0, 0.0, 0.0, 0.1721016330265864, 0.0, 0.00044047585032663307, 0.1672932604423309, 0.18102660031449758, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004373654797423859, 0.0, 0.0, 0.08031885873943684, 0.0, 0.0, 0.12088873452345646, 0.0, 0.25447674137867604, 0.0, 0.20210883042048103, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05466434515545004, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005119594240948603, 0.0, 0.2461616206228127, 0.0, 0.0, 0.40062152777610743, 0.0, 0.0, 0.0, 0.4450914546665199, 0.0, 0.0, 0.0, 0.25078704499066257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6437873083636174, 0.0, 0.08986536930257488, 0.05459463157090123, 0.0, 0.0, 0.1617782592438168, 0.0, 0.0, 0.0, 0.0, 0.510293956173341, 0.0, 0.0, 0.0, 0.0, 0.0539939979224501, 0.06022554282071448, 0.0, 0.0, 0.0017903697912685446, 0.10539843894447092, 0.0, 0.007216901945678346, 0.0, 0.0, 0.0, 0.22684974207663636, 1.4564553082728662, 0.182720528082649, 0.06653876275957457, 0.0, 0.6274289004185675, 0.0, 0.5406773490882926, 0.27822503396119075, 0.09306814986560254, 0.29383387946651635, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6230315233142055, 0.9648450369390001, 0.5108864746688708, 0.0, 0.36840186712596623, 0.22805280632725022, 0.3227837297104921, 0.0, 0.0, 1.0240377781477865, 1.591691363735423, 0.0, 0.7314261723085571, 0.0, 0.0, 0.45960855697902075, 0.0, 0.43090812739194506, 0.0, 0.3151566241591431, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3316537279743774, 0.27121053456867833, 0.0, 0.0, 0.0, 0.4001441487163798, 0.5176883689695168, 0.709966180421066, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2820721974309868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03908614977726766, 0.3083419381268706, 0.39485756407874356, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11511559935873378, 0.014949071584157462, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03837527794969671, 0.5550679626138529, 0.0, 0.5726479000113842, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07921974732295421, 0.0, 0.0, 0.0, 0.0, 0.0035899619569867425, 0.0, 0.0, 0.2145099852146676, 0.0, 0.0, 0.0, 0.0, 0.21950879525087302, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09449503481586544, 0.21750142180635595, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32517302304866597, 0.0, 0.0, 0.21035924507266648, 0.0, 0.0, 0.0, 0.0, 0.23713929311152726, 0.21014969427312982, 0.0, 0.0, 0.0, 0.5438936968761621, 0.3401858622480347, 0.0, 0.0, 0.0016527476817863266, 0.0, 0.007935034693483254, 0.0, 0.0, 0.1293317927443745, 0.0, 0.0, 0.0, 0.14368792432790373, 0.0, 0.0, 0.0, 0.0, 0.35799313982296815, 0.29274964408302323, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029011045367568582, 0.0017598612427760815, 0.0, 0.0, 0.052226530139838453, 0.0, 0.0, 0.0, 0.0, 0.16473710872422428, 0.30447392294316244, 0.0, 0.0, 0.0, 0.01743076710707649, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0410977515599671, 0.0, 0.7547303898094697, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.30609022817115544, 0.0, 0.0, 0.0, 0.0, 0.2105854322132866, 0.5327502455990605, 0.13588517657689586, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24025222517683778, 0.0, 0.007535433506713796, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6979826303937671, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07410089446237557, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4744178097104391, 0.0, 0.0, 0.0, 0.0, 0.1876471424480227, 0.28765608703745393, 0.2182401932056186, 0.04951496463333951, 0.0, 0.12909838655126593, 0.0, 0.3498317042975124, 0.0, 0.37087394843503463, 0.47981991008621333, 1.1039610273729945, 0.4455015727565212, 0.05271863458630144, 0.19600051626620313, 0.0, 0.2316343353202091, 0.0, 0.0, 0.0, 0.4641150152741525, 0.15018757716392944, 0.21321672818601478, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21465382837602517, 0.0, 0.0, 0.0, 0.00020573734093944128, 0.0, 0.0, 0.0, 0.16929708918389524, 0.0160994805386141, 0.0, 0.049657622486024976, 0.0, 0.017886560545272906, 0.1659947360027911, 0.0, 0.0, 0.0, 0.0, 0.11420185948155097, 0.0, 0.07369142147184715, 0.0, 0.33489361550116375, 0.46496602729779546, 0.0036113530199273977, 0.044355883980523376, 0.08156217107736623, 0.0, 0.006501263051750628, 0.24089225482763127, 0.0, 0.0, 0.3861226254326548, 0.020506805168434235, 0.0, 0.24677384860885976, 0.0, 0.0, 0.002169816793370778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.041148887129618034, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9769895490432172, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5923828848790257, 0.0, 0.10196835358593148, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.328835975725113, 0.0, 0.0, 0.4036325198584592, 0.0, 0.0, 0.3602983928676083, 0.0, 0.0, 0.9557725494193282, 0.0, 0.43908662544955285, 0.0, 0.0, 0.46995823158461947, 0.0, 0.14454935060909507, 0.0, 0.010668331756011213, 0.6280409324984255, 0.03247332779409237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10592998533424139, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.33399686192793854, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7833052225131492, 0.0, 0.0, 0.0, 0.24187208135853017, 0.0, 0.071730719549714, 0.0, 0.11407352111288803, 0.0, 0.44957678307373006, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5736773783460691, 0.0692607726207939, 0.0, 0.0, 0.4731102083446558, 0.7389531951966185, 0.028778055517643567, 0.22717903301955947, 0.0, 0.1436855444728547, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.49542697237169275, 0.0, 0.3454532351491738, 0.11660950163380673, 0.0, 0.0, 0.0, 0.0, 0.027794605242432064, 0.0, 0.0, 0.0, 0.132905538815286, 0.0, 0.05497259939520882, 0.0, 0.0, 1.2625457513449383, 0.39900789022393385, 0.0, 0.0, 0.0, 0.0, 0.4114559732861708, 0.4741201455820112, 0.0, 0.21077985466978477, 0.0, 0.0, 0.7439578224938339, 0.42232266256074136, 0.4876343844944301, 0.6687496612887465, 0.115118039848854, 0.0, 0.0, 0.0, 0.0, 0.05260063632046659, 0.07759581613885312, 0.028401563276091994, 0.0, 0.056334062495133036, 0.17033944709766455, 0.9153107777932757, 0.0, 0.004924424218813803, 0.057509247607595904, 0.0, 0.7491964746840728, 0.05934710743113981, 0.0, 0.0, 0.0, 0.22238712275143577, 0.4319949206677921, 0.025917686578643146, 0.031803778192995576, 0.0, 0.6741550137516903, 0.009328571558732282, 0.0, 0.0, 0.0, 0.0, 0.5515037103010108, 0.6987172178395075, 0.0, 0.0, 0.0, 0.060174729085221354, 0.0, 0.0, 0.08734749351416564, 0.6636235071641303, 0.09580942583448827, 0.0, 0.0, 0.08996354325075087, 0.04525348827838765, 0.5824434635228624, 0.05819874866882126, 0.12005968761069685, 0.0, 0.0, 0.3313826265510977, 0.0, 0.058140773587614956, 0.6127791119711469, 0.0, 0.0, 0.15047559500471339, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6662085079556846, 0.3400843601648346, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22423528728211575, 0.0, 0.0, 0.0, 0.0, 0.3636963343220375, 0.5756271502974593, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046502182852265775, 0.0, 0.04891501992848654, 0.0, 0.0, 0.0, 0.9407814186149676, 0.09733317875961926, 0.0, 0.11672934297033466, 0.0, 0.6385588104227404, 0.0, 0.022206283976929683, 0.09845615426665595, 0.03496357540242119, 0.0, 0.0, 0.0, 0.0, 0.03380456195194267, 0.18543528221865002, 0.12144811071150914, 0.0, 0.03755694741887004, 0.16907550573428723, 0.0, 0.0, 0.1443808645220955, 0.0, 0.1003230425739974, 0.12879502114342312, 0.0647357901808317, 0.0, 0.5084955858844, 0.08519692951707138, 0.007582866204885641, 0.0, 0.03198292312330168, 0.0, 0.1209623049539008, 0.0, 0.12387820451445683, 0.0, 0.0, 0.043058753609476905, 0.03493082633215086, 0.0, 0.0, 0.043777031505228374, 0.016261326799286477, 0.16693678030096587, 0.0, 0.0]), 42), 42)),) julia> @finch_code begin Ct .= 0 for j = parallel(_) @@ -1313,5 +1313,5 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.2504314291953376, 0.0, 0.0, 0.9648065476989627, 0.2835978542736629, 0.13211849643271117, 0.2796391765298554, 0.22540993882752317, 0.5512218518807817, 0.5478145335437775, 0.0, 0.2291959647754706, 0.23520231615614767, 0.03296826745685447, 0.18421763750874248, 0.6035878434468992, 0.7441004608135994, 0.2535097758200323, 0.20236453274735783, 0.09228241774990334, 0.13384560784694935, 0.5269755678736615, 0.03880627317810495, 0.17704264007357723, 0.0, 0.2632287465084173, 0.0, 0.02720231717357045, 0.5246531850072871, 0.0, 0.0, 0.3360269038793386, 0.0, 0.22538882742471622, 0.22621665568148489, 0.0, 0.09095677592426996, 0.0, 0.2343687318872728, 0.0, 0.00044179348092010485, 0.07281055209847118, 0.6821285312867097, 0.0, 0.0, 0.0, 0.8944403740767686, 0.11973372388784431, 0.2613237068921269, 0.5923534538840982, 0.0, 0.0, 0.0, 0.8426453838331012, 0.0, 0.0, 1.0769929937540788, 0.43300907588983417, 0.0, 0.6905133736710757, 0.0, 0.0, 0.0, 0.07271653050953786, 0.8664857754450395, 0.08570530865158534, 0.0, 0.7169860381548754, 0.20498067747201715, 0.0, 0.23050103487101342, 0.0, 0.0, 0.9152746488430813, 0.14299878494120105, 0.44815460009097313, 0.0, 0.0, 0.0, 0.23162241551000032, 1.0326337985335274, 1.0530846396126474, 0.22109306040172927, 0.0, 0.0, 0.0, 1.0289491599002607, 0.008076930682810486, 0.037079469071792215, 0.0, 0.03308196940629956, 0.07165705922647192, 0.18447863887953236, 0.0, 0.24885144181470292, 0.0, 0.0, 0.0, 0.7193963651558962, 0.0, 0.6007574484421223, 0.0, 0.11361690641306497, 0.0, 0.0, 0.0, 0.0, 0.5189539173895105, 0.027360695267410504, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.769945776489901, 0.00013219515459577855, 0.0, 0.0, 0.0, 0.0, 0.21518747264967641, 0.0, 0.0, 0.0, 0.10980938651098104, 0.07347552139071808, 0.0, 0.3613462418752601, 0.04465135919773286, 0.027102240057490925, 0.0, 0.0, 0.2594566815123038, 0.417973871558788, 0.02337304044012675, 0.5498222432776159, 0.011558313103301096, 0.13519961718643905, 0.0830809338177889, 0.0, 0.0, 0.0, 0.17989871031119878, 0.05233157238393502, 0.0, 0.051508809526025434, 0.225133841185459, 0.18950167625902217, 0.0, 0.0, 0.0, 0.20173577654712102, 0.7662693488070871, 0.0, 0.33259178463685746, 0.13865467767460202, 0.0, 0.8944580603877651, 0.0, 0.060682785060590494, 0.06051599339484606, 0.0, 0.0, 0.0, 0.12305720211410776, 0.10081888448105404, 0.0, 0.0, 0.2522377522294325, 0.0, 0.12103967793114603, 0.06077105223878225, 0.0, 0.0, 0.5586258592154407, 0.0, 0.0, 0.0, 0.2984848816909581, 0.029564782247173068, 0.6276543733906952, 0.0, 0.07353625635562432, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08001934416956356, 0.13808411155288577, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0013608908425346389, 0.15477792583676012, 0.8924302032481646, 0.0, 0.13515079773758784, 0.0, 0.059793517595463114, 0.0, 0.04933055693313389, 0.0, 0.0, 0.3342781850907459, 0.02578025634698341, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1229501707927792, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3287208489034296, 0.0, 0.0, 0.28149278769379354, 0.0, 0.0, 0.0, 0.031923890851782225, 0.23740383631799186, 0.0, 0.0, 0.0, 0.0, 0.06362127081034188, 0.2629034525588847, 0.0, 0.9151807425831917, 0.0, 0.0, 0.0, 0.6693739198309284, 0.0, 0.0, 0.2061930933620024, 0.27528937724536684, 0.0, 0.0, 0.0, 0.0, 0.2675780483794807, 0.02063619759744684, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5460074055587408, 0.0, 0.6541555536266587, 0.0, 0.0, 0.07150154126300666, 0.0, 0.15048122306270975, 0.034115472912426725, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.050926612139623545, 0.21044506008920905, 0.0, 0.0, 0.4253961501964202, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5242476712268254, 0.0, 0.0, 0.6721198397890595, 0.02913210340779019, 0.0, 0.20059561631676462, 0.0, 0.29433701033990906, 0.0, 0.0, 0.0, 0.12559144077146528, 0.0, 0.0, 0.32229898127496104, 0.0, 0.0, 0.05500938293182685, 0.1114468235961369, 0.09601244908001759, 0.255231140185047, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05242264559033129, 0.07189305704474794, 0.29708512061039594, 0.0, 0.0, 0.16167981650220184, 0.0, 0.0, 0.42894283906704944, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24120550186102305, 0.002462183433889286, 0.1185465354728046, 0.0, 0.0, 0.20924909285728116, 0.0, 0.2383879501918044, 0.0, 0.08928505124693381, 0.0, 0.0, 0.2291277246538886, 0.0, 0.0, 0.039107088380868994, 0.03339412468553525, 0.0, 0.17867986571670036, 0.0, 0.15885581639487184, 0.0, 0.4770109811329409, 0.46521958209705216, 0.08213268605220507, 0.8570033319080816, 0.5762497735248863, 0.025109002675938377, 0.0, 0.0, 0.0, 0.006062678222071191, 0.6895253688974624, 0.0, 0.0, 0.14425623656373723, 0.0, 0.26058653129843573, 0.2499129405223175, 0.5556369963578781, 0.0, 0.0, 0.14846473797228377, 1.311439497677356, 0.0, 0.0, 0.0, 0.14844299347189643, 0.0, 0.06204384333300274, 0.5085214657536261, 0.06333953518463412, 0.0, 0.4087271917522072, 0.56471815720299, 0.0, 0.7613475113276124, 0.31092441757595435, 0.25657570652463557, 0.0, 0.6284352010004853, 0.0, 0.44245087677575873, 0.0, 0.5840306487685422, 0.886297089335757, 0.0, 0.2141960416332438, 0.0, 0.0, 0.7455493113099605, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9841442926021067, 0.155496454991287, 0.0, 0.0, 0.07678252545804619, 0.0, 0.0, 0.3721354350358947, 0.020164712785984047, 0.0, 0.0, 0.0, 0.0, 0.1088564167894987, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9595213220321046, 0.0, 0.026588936071193094, 0.0, 0.0, 0.18249673153915044, 0.041373682209080435, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04976306812868327, 0.2056369238513726, 0.0, 0.0, 0.341205976763526, 0.0, 0.0, 0.0, 0.0, 0.5785815925839551, 0.0, 0.0, 0.0, 0.5989984098523007, 0.041848978991102986, 0.0, 0.7058966144833084, 0.0, 0.1357909427918936, 0.0, 0.0, 0.0, 0.6943234317201388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03329077451447904, 0.0, 0.16959332194846893, 0.03825181104342904, 0.0, 0.030570483496490792, 0.0, 0.181963825346749, 0.0, 0.0, 0.0861751567882612, 0.0, 0.23433890396321935, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06468139820825311, 0.4901043774165395, 0.0, 0.1652405132589817, 0.0, 0.0, 0.07483443864111192, 0.0, 0.0, 0.0, 0.2810295005684995, 0.0, 0.3898372849078984, 0.0, 0.27070466717435465, 0.5873234092956581, 0.0, 0.0, 0.8033877947986148, 0.0, 0.0, 0.0, 0.5030084273245645, 0.1643009637310288, 0.0, 0.0, 0.0, 0.052313365367879956, 0.02924539070601191, 0.0, 0.7815339827038686, 0.0, 0.631919493277437, 0.08243985181699306, 0.0, 0.0, 0.0, 0.0, 0.12868680907403285, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.1259698971001804, 0.7198499769348474, 0.0, 0.41807281750787384, 0.0, 0.0, 0.6290848565988848, 0.7773412611170788, 0.0, 0.3270721417747804, 0.0, 0.0, 0.6187710034515789, 0.07069501936159496, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15113911645003905, 0.0, 0.15654877177402662, 1.1322176354521876, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2636197382380641, 0.0, 0.0, 0.34206988627899454, 0.0, 0.0, 0.2168559436204628, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12189174979618164, 0.009400555275465744, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02319896532052816, 0.09586554938115534, 0.0, 0.0, 0.47758214062526055, 0.0, 0.0, 0.0, 0.0, 0.766521270904984, 0.0, 0.0, 0.0, 0.05687724891036996, 0.0, 0.0, 0.0, 0.019988327516632248, 0.0, 0.0, 0.24020596976351885, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5319793134128888, 0.0, 0.0, 0.12310759546793347, 0.28424710350697324, 0.0, 0.9704064926727941, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.595062055789435, 0.0, 0.022922464313533127, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7479520138852049, 0.0, 0.0, 0.0, 0.0, 0.11201726895804533, 0.0, 0.0, 0.5882991104057551, 0.0, 0.0, 0.0, 0.5372591710353254, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4185803721513073, 0.0, 0.4160894350708626, 0.35712090084273435, 0.0, 0.0, 0.0, 0.0, 0.3329375067097101, 0.0, 0.0, 0.0, 0.9791513934288851, 0.040171778764664906, 0.0, 0.0, 0.18774405618493867, 0.47311893679528827, 0.2590438343789052, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12077476728428499, 0.0, 0.06327325623124767, 0.0, 0.0, 0.0, 0.0, 0.34849519635188847, 0.0, 0.4382603746311635, 0.0, 0.0, 0.0, 0.09913709085437171, 0.4096661875861404, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4230910500526733, 0.0, 0.0, 0.0, 0.17776900851570368, 0.0, 0.5438917161748563, 0.0, 0.43287084617637955, 0.0, 0.0, 0.0, 0.5349746055023918, 0.0, 0.7894262258085124, 0.0, 0.0, 0.0, 0.416696264214944, 0.1414148713022835, 0.0, 0.1306712640828635, 0.5944339267365731, 0.0, 0.0, 0.0, 0.3098486230376566, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27475814956764166, 0.0, 0.0, 0.0, 0.572874722755641, 0.7993131511508778, 0.0, 0.2979949962228512, 0.14400098705349634, 0.0, 0.0, 0.02684711041673838, 0.0, 0.0575193250192605, 0.13038147684896279, 0.07982177723780243, 0.0, 0.0, 0.22370954598082965, 0.0, 0.0, 0.0, 0.16207849359014098, 0.8780589957563658, 0.0, 0.0, 0.0, 0.03773454641900064, 0.0, 0.190720074864707, 0.03823162707299666, 0.0, 0.027092618673790602, 0.07782668325822914, 0.0, 0.0, 0.025612768291380317, 0.0, 0.1339183762706947, 0.03147511447091019, 0.0, 0.0, 0.22256660522037766, 0.0, 0.050981846070955524, 0.33080849696175413, 0.22670468547648376, 0.0, 0.0, 0.2394131641393997, 0.0, 0.6763225254232694, 0.0, 0.32609931596811353, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02551395955593748, 0.0, 0.19870976845837512, 0.0, 0.8838430389981123, 0.0, 0.8900590234719281, 0.0, 0.1395885727389325, 0.39274638865688727, 0.13258182339863903, 1.0427544725112363, 0.007925765580094073, 0.0, 0.0, 0.9248219821941955, 0.0, 0.38782207933590473, 0.20331266090801786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4620448777897825, 0.5673723076761421, 0.13444042454417618, 0.0, 0.0012927651989113214, 0.0, 0.0, 0.0, 0.3049721916420315, 0.017266202832261764, 0.0, 0.0, 0.07071993264415252, 0.04567425634491729, 0.3943633692304047, 0.0, 0.15861807151929683, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05848946000294637, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0002825960061227963, 0.18362488935764, 0.0, 0.0, 0.0, 0.16115194339742445, 0.5974334511167834, 0.0, 0.04024167944046561, 0.33382381844541353, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6087942383002851, 0.0, 0.0, 0.7807479082612564, 0.3974967659255351, 1.5487027213337248, 0.03765559375444021, 0.17692333788215128, 0.23426356503546714, 0.0, 0.22388851869475412, 0.04007956243736881, 1.0262040210122396, 0.0, 0.7972348331243138, 1.0049259227957363, 0.051433760809377164, 0.0, 0.8283458296766737, 0.0, 0.7561556098507006, 0.0, 0.0, 0.0, 0.24907496608552146, 0.0, 0.5011916402324644, 0.1747189814102487, 0.9899595982235516, 0.6164188940137083, 0.11559029428984438, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.593849645786338, 0.0, 0.0, 0.0, 0.0, 0.13660851844466146, 0.030970403587585463, 0.23157107362581741, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13749939723080143, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7110898100418397, 0.0, 0.0, 0.0, 0.46081314114808425, 0.7109856621285974, 0.2884350146527927, 0.0, 0.0, 0.30337236072169704, 0.06739814120009983, 0.0, 0.7785291912169707, 0.0, 0.0, 0.13287789565404662, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3593823347180517, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4624623396236477, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.024288127378650458, 0.0, 0.793430084070044, 0.0, 0.0, 0.07003161792104487, 0.0, 0.390525043836891, 0.7636039620295462, 0.06950112764284275, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019321154098251664, 0.0, 0.18651557279691772, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05792018405822482, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18265223354453325, 0.12454723256219671, 0.0, 0.0002798455087109209, 0.0, 0.0, 0.11611318457978691, 0.05398921986713746, 0.0, 0.8752290763913787, 0.0, 0.0, 0.0, 0.0, 0.13107895831547542, 0.0, 0.0, 0.45521248179167606, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11685661958627322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44522459151527227, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26435993065610003, 0.021758541234477975, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2146225974372531, 0.0, 0.13433790512658406, 0.030902835047588124, 0.0, 0.0, 0.03139052000724026, 0.0, 0.0, 0.7200671942026683, 0.0, 0.0, 0.05946084260814123, 0.0, 0.14663715828117352, 0.03324398818324252, 0.008023890708802274, 0.05967012120515395, 0.0, 0.0, 0.0, 0.10840406404650259, 0.0, 0.0, 0.0, 0.23002554078955822, 0.0, 0.21539070760796813, 0.0, 0.15809846801096508, 0.0, 0.0, 0.023379160669788793, 0.06919243918501702, 0.0, 0.4184368340983768, 0.0, 0.0, 0.0, 0.025499570825031452, 0.0, 0.054632252014063354, 0.12383722685885369, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08100665304577326, 0.0, 0.0, 0.0, 1.137863121002405, 0.0, 0.0, 0.18114724382910816, 1.0175246627827756, 0.0, 0.8319051265218698, 0.7408406030496757, 0.0, 0.0, 0.4793159619581115, 0.26457362772519605, 0.7690370272987045, 0.02989528102721059, 0.0, 0.0, 0.0, 0.34236772701032764, 0.22777638147070367, 0.20013535639204974, 0.7445351180710278, 0.0, 0.0, 0.32085924041220354, 0.0, 0.0, 0.0, 0.5922078604864867, 0.0, 0.0, 0.18324289767504168, 0.0, 0.0, 0.05247138335835671, 0.48819810625100485, 0.0, 0.4058243472838195, 0.0, 0.0, 0.6944817185701155, 0.21684000174364465, 0.0, 0.12484778900119534, 0.0, 0.5314768166536554, 0.0, 0.0, 0.0, 0.0, 0.11888353831534566, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4539474830982486, 0.0, 0.12931153719488578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.23351697026332235, 0.0, 0.0, 0.0, 0.0, 0.2291429172294868, 0.4258647172142874, 0.0, 0.0, 0.0, 0.22479141295616378, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05853977920447593, 0.0, 0.16715127001769428, 0.0, 0.3712702672746247, 0.13508244363790445, 0.06392604260421969, 0.5912989058272206, 0.4437811402099471, 0.0, 0.0, 0.0, 0.0, 0.005827558703832637, 0.6627845677844773, 0.0, 0.0, 0.0, 0.30904361146056275, 0.6816789334794826, 0.1436649772664439, 0.16334297841077242, 0.0, 0.0, 0.7882286990025497, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7753056808075847, 0.035768380854023674, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44917737188494944, 0.0, 0.18937379890511313, 0.06882274914369534, 0.0, 0.0, 0.0, 0.009287224889287345, 0.06906497794085972, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26624227636214304, 0.0, 0.0, 0.0, 0.1829905316954157, 0.0, 0.06582989974405196, 0.2036305981722081, 0.08008655235603437, 0.0, 0.0, 0.0, 0.0, 0.0, 0.41729810318329397, 0.0, 0.0, 0.0, 0.0, 0.0, 0.037951024806923965, 0.0, 0.0, 0.0, 0.0, 0.41651629143780994, 0.0, 0.2053954771505675, 0.29245802337269494, 0.0368786813523771, 0.0, 0.38440171693921094, 0.0, 1.0326219326945734, 0.0, 0.02604768015780454, 0.9153304998316836, 0.0, 0.0, 0.0, 0.021211537114504155, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3418184639399641, 0.9530187941808128, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5415447555144779, 0.0, 0.16269589476095273, 0.0, 0.2704207942532035, 0.6129742049927741, 0.0, 0.0, 0.0, 0.0, 0.07078757436524862, 0.0, 0.7077105145475581, 0.34262729838304967, 0.5909987644476324, 0.0, 0.11177131716736882, 0.4359653240929594, 0.04723041930008277, 0.45146742793812006, 0.896649501844373, 0.0, 0.0, 0.6373803605539574, 0.5201327056992473, 0.10980024784153514, 0.07242729038979111, 0.0, 0.25075448235999825, 0.0, 0.14797679652158516, 0.0, 0.0, 0.0, 0.0, 0.6939917265420261, 0.9906375819864492, 0.9257686181712707, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37693205342755914, 0.5232740229070877, 0.0, 0.060081052233409524, 0.0, 0.3350366056610552, 0.0, 0.20067269510180097, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5308540215160052, 0.0, 0.0, 0.04969049276705586, 0.4729163126308979, 0.17206519556589087, 0.08142765800071788, 0.0, 0.6342266715653555, 0.28491323267898133, 0.0, 0.0, 0.0, 0.0, 0.3249315382934875, 0.27888197557292793, 0.0, 0.00024008316707892853, 0.0, 0.0, 0.4429941865632019, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08351200806876206, 0.0, 0.0, 0.3644144714136701, 0.0, 0.25850208657414453, 0.3044172676246769, 0.0, 0.0, 0.0, 0.42064905943656483, 0.5410542431685182, 0.0, 0.0, 0.0235250266831074, 0.17227146855360218, 0.0, 0.0, 0.11190852746246406, 0.0, 0.0, 0.0, 0.0, 0.14411942384547258, 0.0, 0.0, 0.4237744107411662, 0.0, 0.2972186074559964, 0.0, 0.5397314242092841, 0.4632402464002124, 0.0, 0.5786606886346829, 0.0, 0.0, 0.47789419623388885, 0.0, 0.0, 0.0, 0.10580588439167306, 0.0, 0.0, 0.7377357792707717, 0.0, 0.10579038780894534, 0.0, 0.0, 0.0, 0.045139981578782816, 0.0, 0.0, 0.11584045845995011, 0.0, 0.0, 0.019771431213384455, 0.36490249309768175, 0.35310751173091487, 1.1149184594112733, 0.0, 0.0, 0.0, 0.5857527772485364, 0.44959707967332574, 0.1008560617277558, 0.018841708015473753, 0.7001531183110316, 0.0, 0.0, 0.0, 0.5946141177445001, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22666010948008636, 0.0, 0.0, 0.0, 0.0, 0.0, 0.014782177343261123, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02695824533437821, 0.0, 0.0, 0.0, 0.016838719448302838, 0.0, 0.0, 0.0, 0.08231997245985787, 0.0, 0.0, 0.0, 0.01058107131899943, 0.0, 0.05814319369896461, 0.0, 0.0, 0.0, 0.0, 0.047348036509572325, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.019563192629043182, 0.027295875565384514, 0.0, 0.0, 0.0, 0.0, 0.33629932740438834, 0.0, 0.0, 0.0, 0.32394391802925426, 0.5704070896351352, 0.0, 0.14173474826201982, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6013127745008292, 0.0, 0.7561985490243033, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2959306772073682, 0.2539911401819114, 0.0, 0.0, 0.7300245622804938, 0.0, 0.2367914528076339, 0.0, 0.0, 0.0, 0.33628005236128533, 0.025934644678944505, 0.0, 0.06026134263178236, 0.0, 0.0, 0.03662105153743461, 0.06883834406728133, 0.0, 0.0, 0.21279478779844782, 0.0, 0.0, 0.07129569822964256, 0.0, 0.09738688258412649, 0.06246220065656896, 0.0, 0.059045957391141574, 0.0, 0.006923917652553149, 0.051490108793371445, 0.0, 0.16644468958034975, 0.19015418061029377, 0.10882376279915186, 0.06400227485256132, 0.2644778831991808, 0.0, 0.19849197355887785, 0.0, 0.0010725148648749981, 0.12198011848273568, 0.1548472256356659, 0.0, 0.009305339154304988, 0.0, 0.10589543929012146, 0.0, 0.0, 0.17178211974814458, 0.0, 0.23085925511580369, 0.0, 0.0, 0.0, 0.31374773386794685, 0.0, 0.4234572393895347, 0.0, 0.0, 0.0, 0.045888478821935044, 0.0, 0.0, 0.13665231391596233, 0.0, 0.05546447903889757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15847133453228077, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3148706017686264, 0.2655048691833022, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.28333620483908656, 0.0, 0.0, 0.0, 0.3208604446677971, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25931056270601605, 0.0, 0.0, 0.20842242702467234, 0.0, 0.0, 0.28681902268117093, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2978149918318377, 0.0, 0.0, 0.09574337597144772, 0.0, 0.0, 0.38017827065442816, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03128644702667798, 0.0, 0.0, 0.0]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.18463927542167063, 0.16872726618738124, 0.0, 0.0, 0.0, 0.5894648191942263, 0.0, 0.0, 0.4399979683038884, 0.4872396182365841, 0.0, 0.0, 0.0, 0.5232587908717465, 0.0, 0.028458776980687873, 0.0, 0.1912882078151879, 0.5164204427507948, 0.25375520169397275, 0.7988048308846816, 0.548219404354131, 0.0, 0.0, 0.0, 0.08973042123875676, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16269102551813888, 0.0, 0.6368094288799442, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03708423534085979, 0.16845626013473977, 0.6588748971102081, 0.010877416543996312, 0.0, 0.0, 0.0, 0.44123232519423083, 0.0, 0.24002669576156066, 0.0, 0.0, 0.0, 0.21689234576879324, 0.2098895841423717, 0.6161647640351655, 0.4776903273077015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6355594744363152, 0.0, 0.0, 0.08457949502263125, 0.0, 0.0, 0.6901459039432658, 0.0, 0.0, 0.0, 0.057641486402300816, 0.0, 0.0, 0.09549316762404748, 0.09211299074367744, 0.11795836585190977, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0467877508869465, 0.0, 0.0, 0.0, 0.0, 0.04370712736779799, 0.281244207688617, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2030486542718697, 0.0, 0.5182178756464231, 0.0, 0.0, 0.0, 0.057729640414041494, 0.0, 0.0, 0.0, 0.0, 0.19354540299708142, 0.06300918519480127, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1478355026964281, 0.0, 0.0, 0.0, 0.541165159810693, 0.0, 0.0, 0.0, 0.16407931870757664, 0.2057712545151301, 0.32812733654993936, 0.0, 0.24913050204963633, 0.20974603114415158, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5086673274457614, 0.32467254520642835, 0.0, 0.22357645210013752, 0.0, 0.0, 0.0, 0.15908397194054766, 0.0, 0.5866968618616202, 0.21349654033737236, 0.243214867615369, 0.0, 0.0, 0.27374855832219774, 0.0, 0.3075930851551728, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44087523604465795, 0.22505682646241645, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2406824670174747, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4353583318013107, 0.0, 0.0, 0.0, 0.0, 0.42257756079609887, 0.0, 0.16328692344233348, 0.7239663574899861, 0.253917129058883, 0.0, 0.0, 0.0, 0.012941670285380298, 0.005948300091521438, 0.6648934966409066, 1.0229318994166612, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13578338949001834, 0.4197116456419966, 0.0, 0.947053670891027, 0.0, 0.13486088669396906, 0.0, 0.6620124726194103, 0.0, 0.6496849904621673, 0.0, 0.0, 0.7890806801928671, 0.01841465881846702, 0.27914669822772004, 0.0, 0.029516583729604803, 0.0, 0.0, 0.018864268719240455, 0.24394303159635272, 0.0, 0.5741603792214627, 0.3080365664801448, 0.6155081898538994, 0.2367816204152454, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17416434327376132, 0.0, 0.0, 0.0, 0.0, 0.16269692366253372, 0.0, 0.3491221627973697, 0.0, 0.0, 0.0, 0.0, 0.0, 0.896220207410521, 0.13858473312625733, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2148948115594729, 0.1029957040349639, 0.0, 0.10833979410008034, 0.0, 0.0, 0.23454757178184932, 0.0, 0.2155791117194733, 0.0, 0.22311080318652476, 0.0, 0.0, 0.0, 0.0, 0.07959294795619429, 0.0, 0.17163567622890405, 0.07283994445558169, 0.0, 0.0, 0.0, 0.08654379427684032, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16368166253985994, 0.0, 0.17071385720442764, 0.34758616988919516, 0.0, 0.0, 0.0, 0.0, 0.25336804558610515, 0.0, 0.032257457723339725, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2136279714073461, 0.0, 0.24003957209260046, 0.21303254632455026, 0.006511170502708404, 0.383310313899178, 0.0, 0.0, 0.0, 0.1337677376744651, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0646519260588245, 0.0, 0.0, 0.0, 0.31350938881953055, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20384728982176575, 0.0, 0.0, 0.0, 0.0, 0.05670575896106868, 0.0, 0.05964802423259749, 0.0, 0.0, 0.0, 0.4488563568162377, 0.11869016538841153, 0.0, 0.07667734536959822, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.040450967971474544, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09480431131127824, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0016369185703860613, 0.0, 0.0017218526009009176, 0.0, 0.0, 0.0, 0.0, 0.003426215245260554, 0.0, 0.002213436040060287, 0.0, 0.0, 0.0, 0.0, 0.028624781651490867, 0.0, 0.0, 0.0917221717112923, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03948493179664919, 0.0998678691104795, 0.0, 0.0, 0.0, 0.0, 0.0519314302968116, 0.019753641949088564, 0.0, 0.0, 0.08679325173985959, 0.0, 0.0, 0.44412542864463755, 0.0, 0.0, 0.0, 0.25440324223859473, 0.0, 0.06322962025433154, 0.0, 0.10055420420038351, 0.08043066558940987, 0.01930551218305079, 0.019941838639940274, 0.025537187307223392, 0.0, 0.2186623932992767, 0.06407227122111338, 0.0254835950299198, 0.0, 0.0, 0.6628636898477958, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5422666551724673, 0.6870145051652384, 0.0, 0.0, 0.1501651963322761, 0.019574736086580828, 0.0, 0.0, 0.03589870327691644, 0.0, 0.026565876114361182, 0.0, 0.0, 0.029264986204643254, 0.0, 0.0, 0.01893195304872942, 0.046727577005066426, 0.0, 0.0, 0.28025040572174376, 0.0, 0.018913093854322344, 0.0, 0.0, 0.0, 0.04894945277637971, 0.006583695531171352, 0.3875798367774556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3292155284261099, 0.04344067936293723, 0.0653720550702903, 0.0, 0.0, 0.22649528787365272, 0.018049730534704385, 0.14615138313733889, 0.0, 0.0, 0.0, 0.0, 0.20611785399916963, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31511052111518423, 0.0, 0.03672395965581389, 0.0, 0.0, 0.9552411806377301, 0.0, 0.0, 0.0, 0.3512720117094026, 0.0, 0.7814509194588117, 0.9900444949397926, 0.0, 0.2416698136762867, 0.0, 0.15594310090475377, 0.37345396038999507, 0.13378200524387487, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0037871796529251873, 0.0, 0.07132197093797825, 0.0, 0.0, 0.4038639203443338, 0.0, 0.007926901739731977, 0.0, 0.005121012178382578, 0.4483265473520345, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19545324009971515, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.015822792815906598, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2654026801406409, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005338269605792754, 0.3841199941370228, 0.003089715236949895, 0.0, 0.0, 0.0, 0.2702896727602311, 0.0061480462629685435, 0.0, 0.0077716018517988575, 0.0, 0.0, 0.5060334906800565, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5325221835704804, 0.4354711371945976, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4529112439588725, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.42175363431898494, 0.540090698333841, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1429447733494866, 0.0, 0.0, 0.17383910328410926, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7778438721037507, 0.7592283162924894, 0.27027978053916946, 0.9680808201913975, 0.0, 0.0, 0.0, 0.0, 0.23721687040615713, 0.0, 0.0, 0.0, 0.214724244927467, 0.0, 0.6713747276751851, 0.2691029964691732, 0.24957193666978766, 0.04174679102400021, 0.0, 0.0, 0.44623226966778873, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9739425217687773, 0.3878431688435761, 0.0, 0.0, 0.0, 0.0, 0.5905353658253105, 0.0, 0.41099451149099264, 0.46959062394023404, 0.38400872176268547, 0.0, 0.4974135902693747, 0.0, 0.0, 0.0, 0.9154557174508635, 0.2586557560688982, 0.09838729964211103, 0.4023736739495505, 0.0, 0.43229262167712557, 0.25909478937718255, 0.0, 0.0, 0.9527916935554207, 0.3993878193283669, 0.4377172055566821, 0.0, 0.0, 0.02448196261221554, 0.28590941544125414, 0.0, 0.4006023808751287, 0.03918308759508126, 0.0, 0.2882716435062163, 0.0, 0.0110856134215592, 0.37363494354124355, 0.049778285574341975, 0.0, 0.0, 0.9269077110105975, 0.31315811797299237, 0.0, 0.012303674452273154, 0.015429991708474198, 0.0, 0.0, 0.014446013487908171, 0.04123415495113678, 0.03371931705724562, 0.29538913191692134, 0.0, 0.3349006097039049, 0.23542836206424417, 0.23052114963877735, 0.31614042332280545, 0.0, 0.0, 0.11683083227872514, 0.0, 0.0, 0.0006114799040197484, 0.10975727273531571, 0.0, 0.004295508139252644, 0.05107901709661121, 0.0, 0.9334562674798996, 0.0, 0.0, 0.0, 0.0, 0.5880007983611341, 0.06450382436313898, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11800940272957328, 0.0, 0.1899751304440791, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.273744879534597, 0.0, 0.0, 0.2671580962806136, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3492510086210155, 0.0, 0.3080038714015672, 0.0, 0.0, 0.2221605109577772, 0.0, 0.0, 0.0, 0.0, 0.07999688285015112, 0.06742807554519747, 0.08634727349135116, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10258077598728532, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5012203954355052, 0.0, 0.0, 0.0, 0.08111247475296846, 0.0, 0.0, 0.12138201096876389, 0.0, 0.08982551378065248, 0.0, 0.0, 0.12126628140327211, 0.0, 0.0, 0.07844895363581271, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07837080617454226, 0.0, 0.0, 0.0, 0.20283344995989894, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1282379216751728, 0.033796057874619194, 0.0, 0.09653017040380268, 0.0, 0.08822574416521244, 0.01404236183038609, 0.056929725378038414, 0.0, 0.15526439596527059, 0.0, 0.0, 0.0, 0.03781410167223484, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2529010219858623, 0.3238608478009693, 0.0, 0.0, 0.1407409609998849, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.329852425046806, 0.0, 0.0, 0.33341239592531074, 0.45526487856119674, 0.0, 0.33690660829115365, 0.08120142522000469, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08802821410799472, 0.39029129939250945, 0.13688708765693952, 0.0, 0.08496391292272984, 0.0, 0.0, 0.5183827483305287, 0.703065773125918, 0.4814340077714492, 0.0, 0.0, 0.0, 0.12053001147739661, 0.0, 0.07320101959394086, 0.0, 0.0, 0.5105579893076974, 0.6674329003953465, 0.7892434941755087, 0.051355650714931346, 0.4403973256963498, 0.0, 0.01884360978410253, 0.0, 0.0, 0.42539452394686605, 0.1591995319925085, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17375879569486846, 0.0, 0.0, 0.0, 0.0, 0.1721016330265864, 0.0, 0.00044047585032663307, 0.1672932604423309, 0.18102660031449758, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004373654797423859, 0.0, 0.0, 0.08031885873943684, 0.0, 0.0, 0.12088873452345646, 0.0, 0.25447674137867604, 0.0, 0.20210883042048103, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05466434515545004, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005119594240948603, 0.0, 0.2461616206228127, 0.0, 0.0, 0.40062152777610743, 0.0, 0.0, 0.0, 0.4450914546665199, 0.0, 0.0, 0.0, 0.25078704499066257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6437873083636174, 0.0, 0.08986536930257488, 0.05459463157090123, 0.0, 0.0, 0.1617782592438168, 0.0, 0.0, 0.0, 0.0, 0.510293956173341, 0.0, 0.0, 0.0, 0.0, 0.0539939979224501, 0.06022554282071448, 0.0, 0.0, 0.0017903697912685446, 0.10539843894447092, 0.0, 0.007216901945678346, 0.0, 0.0, 0.0, 0.22684974207663636, 1.4564553082728662, 0.182720528082649, 0.06653876275957457, 0.0, 0.6274289004185675, 0.0, 0.5406773490882926, 0.27822503396119075, 0.09306814986560254, 0.29383387946651635, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6230315233142055, 0.9648450369390001, 0.5108864746688708, 0.0, 0.36840186712596623, 0.22805280632725022, 0.3227837297104921, 0.0, 0.0, 1.0240377781477865, 1.591691363735423, 0.0, 0.7314261723085571, 0.0, 0.0, 0.45960855697902075, 0.0, 0.43090812739194506, 0.0, 0.3151566241591431, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3316537279743774, 0.27121053456867833, 0.0, 0.0, 0.0, 0.4001441487163798, 0.5176883689695168, 0.709966180421066, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2820721974309868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03908614977726766, 0.3083419381268706, 0.39485756407874356, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11511559935873378, 0.014949071584157462, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03837527794969671, 0.5550679626138529, 0.0, 0.5726479000113842, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07921974732295421, 0.0, 0.0, 0.0, 0.0, 0.0035899619569867425, 0.0, 0.0, 0.2145099852146676, 0.0, 0.0, 0.0, 0.0, 0.21950879525087302, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09449503481586544, 0.21750142180635595, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32517302304866597, 0.0, 0.0, 0.21035924507266648, 0.0, 0.0, 0.0, 0.0, 0.23713929311152726, 0.21014969427312982, 0.0, 0.0, 0.0, 0.5438936968761621, 0.3401858622480347, 0.0, 0.0, 0.0016527476817863266, 0.0, 0.007935034693483254, 0.0, 0.0, 0.1293317927443745, 0.0, 0.0, 0.0, 0.14368792432790373, 0.0, 0.0, 0.0, 0.0, 0.35799313982296815, 0.29274964408302323, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029011045367568582, 0.0017598612427760815, 0.0, 0.0, 0.052226530139838453, 0.0, 0.0, 0.0, 0.0, 0.16473710872422428, 0.30447392294316244, 0.0, 0.0, 0.0, 0.01743076710707649, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0410977515599671, 0.0, 0.7547303898094697, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.30609022817115544, 0.0, 0.0, 0.0, 0.0, 0.2105854322132866, 0.5327502455990605, 0.13588517657689586, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24025222517683778, 0.0, 0.007535433506713796, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6979826303937671, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07410089446237557, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4744178097104391, 0.0, 0.0, 0.0, 0.0, 0.1876471424480227, 0.28765608703745393, 0.2182401932056186, 0.04951496463333951, 0.0, 0.12909838655126593, 0.0, 0.3498317042975124, 0.0, 0.37087394843503463, 0.47981991008621333, 1.1039610273729945, 0.4455015727565212, 0.05271863458630144, 0.19600051626620313, 0.0, 0.2316343353202091, 0.0, 0.0, 0.0, 0.4641150152741525, 0.15018757716392944, 0.21321672818601478, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21465382837602517, 0.0, 0.0, 0.0, 0.00020573734093944128, 0.0, 0.0, 0.0, 0.16929708918389524, 0.0160994805386141, 0.0, 0.049657622486024976, 0.0, 0.017886560545272906, 0.1659947360027911, 0.0, 0.0, 0.0, 0.0, 0.11420185948155097, 0.0, 0.07369142147184715, 0.0, 0.33489361550116375, 0.46496602729779546, 0.0036113530199273977, 0.044355883980523376, 0.08156217107736623, 0.0, 0.006501263051750628, 0.24089225482763127, 0.0, 0.0, 0.3861226254326548, 0.020506805168434235, 0.0, 0.24677384860885976, 0.0, 0.0, 0.002169816793370778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.041148887129618034, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9769895490432172, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5923828848790257, 0.0, 0.10196835358593148, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.328835975725113, 0.0, 0.0, 0.4036325198584592, 0.0, 0.0, 0.3602983928676083, 0.0, 0.0, 0.9557725494193282, 0.0, 0.43908662544955285, 0.0, 0.0, 0.46995823158461947, 0.0, 0.14454935060909507, 0.0, 0.010668331756011213, 0.6280409324984255, 0.03247332779409237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10592998533424139, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.33399686192793854, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7833052225131492, 0.0, 0.0, 0.0, 0.24187208135853017, 0.0, 0.071730719549714, 0.0, 0.11407352111288803, 0.0, 0.44957678307373006, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5736773783460691, 0.0692607726207939, 0.0, 0.0, 0.4731102083446558, 0.7389531951966185, 0.028778055517643567, 0.22717903301955947, 0.0, 0.1436855444728547, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.49542697237169275, 0.0, 0.3454532351491738, 0.11660950163380673, 0.0, 0.0, 0.0, 0.0, 0.027794605242432064, 0.0, 0.0, 0.0, 0.132905538815286, 0.0, 0.05497259939520882, 0.0, 0.0, 1.2625457513449383, 0.39900789022393385, 0.0, 0.0, 0.0, 0.0, 0.4114559732861708, 0.4741201455820112, 0.0, 0.21077985466978477, 0.0, 0.0, 0.7439578224938339, 0.42232266256074136, 0.4876343844944301, 0.6687496612887465, 0.115118039848854, 0.0, 0.0, 0.0, 0.0, 0.05260063632046659, 0.07759581613885312, 0.028401563276091994, 0.0, 0.056334062495133036, 0.17033944709766455, 0.9153107777932757, 0.0, 0.004924424218813803, 0.057509247607595904, 0.0, 0.7491964746840728, 0.05934710743113981, 0.0, 0.0, 0.0, 0.22238712275143577, 0.4319949206677921, 0.025917686578643146, 0.031803778192995576, 0.0, 0.6741550137516903, 0.009328571558732282, 0.0, 0.0, 0.0, 0.0, 0.5515037103010108, 0.6987172178395075, 0.0, 0.0, 0.0, 0.060174729085221354, 0.0, 0.0, 0.08734749351416564, 0.6636235071641303, 0.09580942583448827, 0.0, 0.0, 0.08996354325075087, 0.04525348827838765, 0.5824434635228624, 0.05819874866882126, 0.12005968761069685, 0.0, 0.0, 0.3313826265510977, 0.0, 0.058140773587614956, 0.6127791119711469, 0.0, 0.0, 0.15047559500471339, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6662085079556846, 0.3400843601648346, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22423528728211575, 0.0, 0.0, 0.0, 0.0, 0.3636963343220375, 0.5756271502974593, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046502182852265775, 0.0, 0.04891501992848654, 0.0, 0.0, 0.0, 0.9407814186149676, 0.09733317875961926, 0.0, 0.11672934297033466, 0.0, 0.6385588104227404, 0.0, 0.022206283976929683, 0.09845615426665595, 0.03496357540242119, 0.0, 0.0, 0.0, 0.0, 0.03380456195194267, 0.18543528221865002, 0.12144811071150914, 0.0, 0.03755694741887004, 0.16907550573428723, 0.0, 0.0, 0.1443808645220955, 0.0, 0.1003230425739974, 0.12879502114342312, 0.0647357901808317, 0.0, 0.5084955858844, 0.08519692951707138, 0.007582866204885641, 0.0, 0.03198292312330168, 0.0, 0.1209623049539008, 0.0, 0.12387820451445683, 0.0, 0.0, 0.043058753609476905, 0.03493082633215086, 0.0, 0.0, 0.043777031505228374, 0.016261326799286477, 0.16693678030096587, 0.0, 0.0]), 42), 42)),) From 16085766afae193f87a60a18df54e5a24966748d Mon Sep 17 00:00:00 2001 From: teocollin1995 Date: Thu, 29 Feb 2024 09:25:35 -0500 Subject: [PATCH 25/41] now ae is needed --- src/tensors/levels/atomiclevels.jl | 2 +- .../debug_parallel_spmms_no_atomics.txt | 12 +- test/test_parallel.jl | 134 +++++++++--------- 3 files changed, 74 insertions(+), 74 deletions(-) diff --git a/src/tensors/levels/atomiclevels.jl b/src/tensors/levels/atomiclevels.jl index 124f72367..7e85080cf 100644 --- a/src/tensors/levels/atomiclevels.jl +++ b/src/tensors/levels/atomiclevels.jl @@ -94,7 +94,7 @@ postype(lvl:: VirtualAtomicLevel) = postype(lvl.lvl) is_level_injective(lvl::VirtualAtomicLevel, ctx) = [is_level_injective(lvl.lvl, ctx)...] is_level_concurrent(lvl::VirtualAtomicLevel, ctx) = [is_level_concurrent(lvl.lvl, ctx)..., true] function is_level_atomic(lvl::VirtualAtomicLevel, ctx) - below = is_level_atomic(lvl.lvl, ctx) + (below, _) = is_level_atomic(lvl.lvl, ctx) return (below, true) end num_indexable(lvl::VirtualAtomicLevel, ctx) = virtual_level_ndims(lvl) - virtual_level_ndims(lvl.lvl) diff --git a/test/reference64/debug_parallel_spmms_no_atomics.txt b/test/reference64/debug_parallel_spmms_no_atomics.txt index ec96fb9cd..ab9aa50d2 100644 --- a/test/reference64/debug_parallel_spmms_no_atomics.txt +++ b/test/reference64/debug_parallel_spmms_no_atomics.txt @@ -8,7 +8,7 @@ julia> @finch begin end end end -(CR = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.18463927542167063, 0.16872726618738124, 0.0, 0.0, 0.0, 0.5894648191942263, 0.0, 0.0, 0.4399979683038884, 0.4872396182365841, 0.0, 0.0, 0.0, 0.5232587908717465, 0.0, 0.028458776980687873, 0.0, 0.1912882078151879, 0.5164204427507948, 0.25375520169397275, 0.7988048308846816, 0.548219404354131, 0.0, 0.0, 0.0, 0.08973042123875676, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16269102551813888, 0.0, 0.6368094288799442, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03708423534085979, 0.16845626013473977, 0.6588748971102081, 0.010877416543996312, 0.0, 0.0, 0.0, 0.44123232519423083, 0.0, 0.24002669576156066, 0.0, 0.0, 0.0, 0.21689234576879324, 0.2098895841423717, 0.6161647640351655, 0.4776903273077015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6355594744363152, 0.0, 0.0, 0.08457949502263125, 0.0, 0.0, 0.6901459039432658, 0.0, 0.0, 0.0, 0.057641486402300816, 0.0, 0.0, 0.09549316762404748, 0.09211299074367744, 0.11795836585190977, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0467877508869465, 0.0, 0.0, 0.0, 0.0, 0.04370712736779799, 0.281244207688617, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2030486542718697, 0.0, 0.5182178756464231, 0.0, 0.0, 0.0, 0.057729640414041494, 0.0, 0.0, 0.0, 0.0, 0.19354540299708142, 0.06300918519480127, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1478355026964281, 0.0, 0.0, 0.0, 0.541165159810693, 0.0, 0.0, 0.0, 0.16407931870757664, 0.2057712545151301, 0.32812733654993936, 0.0, 0.24913050204963633, 0.20974603114415158, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5086673274457614, 0.32467254520642835, 0.0, 0.22357645210013752, 0.0, 0.0, 0.0, 0.15908397194054766, 0.0, 0.5866968618616202, 0.21349654033737236, 0.243214867615369, 0.0, 0.0, 0.27374855832219774, 0.0, 0.3075930851551728, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44087523604465795, 0.22505682646241645, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2406824670174747, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4353583318013107, 0.0, 0.0, 0.0, 0.0, 0.42257756079609887, 0.0, 0.16328692344233348, 0.7239663574899861, 0.253917129058883, 0.0, 0.0, 0.0, 0.012941670285380298, 0.005948300091521438, 0.6648934966409066, 1.0229318994166612, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13578338949001834, 0.4197116456419966, 0.0, 0.947053670891027, 0.0, 0.13486088669396906, 0.0, 0.6620124726194103, 0.0, 0.6496849904621673, 0.0, 0.0, 0.7890806801928671, 0.01841465881846702, 0.27914669822772004, 0.0, 0.029516583729604803, 0.0, 0.0, 0.018864268719240455, 0.24394303159635272, 0.0, 0.5741603792214627, 0.3080365664801448, 0.6155081898538994, 0.2367816204152454, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17416434327376132, 0.0, 0.0, 0.0, 0.0, 0.16269692366253372, 0.0, 0.3491221627973697, 0.0, 0.0, 0.0, 0.0, 0.0, 0.896220207410521, 0.13858473312625733, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2148948115594729, 0.1029957040349639, 0.0, 0.10833979410008034, 0.0, 0.0, 0.23454757178184932, 0.0, 0.2155791117194733, 0.0, 0.22311080318652476, 0.0, 0.0, 0.0, 0.0, 0.07959294795619429, 0.0, 0.17163567622890405, 0.07283994445558169, 0.0, 0.0, 0.0, 0.08654379427684032, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16368166253985994, 0.0, 0.17071385720442764, 0.34758616988919516, 0.0, 0.0, 0.0, 0.0, 0.25336804558610515, 0.0, 0.032257457723339725, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2136279714073461, 0.0, 0.24003957209260046, 0.21303254632455026, 0.006511170502708404, 0.383310313899178, 0.0, 0.0, 0.0, 0.1337677376744651, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0646519260588245, 0.0, 0.0, 0.0, 0.31350938881953055, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20384728982176575, 0.0, 0.0, 0.0, 0.0, 0.05670575896106868, 0.0, 0.05964802423259749, 0.0, 0.0, 0.0, 0.4488563568162377, 0.11869016538841153, 0.0, 0.07667734536959822, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.040450967971474544, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09480431131127824, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0016369185703860613, 0.0, 0.0017218526009009176, 0.0, 0.0, 0.0, 0.0, 0.003426215245260554, 0.0, 0.002213436040060287, 0.0, 0.0, 0.0, 0.0, 0.028624781651490867, 0.0, 0.0, 0.0917221717112923, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03948493179664919, 0.0998678691104795, 0.0, 0.0, 0.0, 0.0, 0.0519314302968116, 0.019753641949088564, 0.0, 0.0, 0.08679325173985959, 0.0, 0.0, 0.44412542864463755, 0.0, 0.0, 0.0, 0.25440324223859473, 0.0, 0.06322962025433154, 0.0, 0.10055420420038351, 0.08043066558940987, 0.01930551218305079, 0.019941838639940274, 0.025537187307223392, 0.0, 0.2186623932992767, 0.06407227122111338, 0.0254835950299198, 0.0, 0.0, 0.6628636898477958, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5422666551724673, 0.6870145051652384, 0.0, 0.0, 0.1501651963322761, 0.019574736086580828, 0.0, 0.0, 0.03589870327691644, 0.0, 0.026565876114361182, 0.0, 0.0, 0.029264986204643254, 0.0, 0.0, 0.01893195304872942, 0.046727577005066426, 0.0, 0.0, 0.28025040572174376, 0.0, 0.018913093854322344, 0.0, 0.0, 0.0, 0.04894945277637971, 0.006583695531171352, 0.3875798367774556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3292155284261099, 0.04344067936293723, 0.0653720550702903, 0.0, 0.0, 0.22649528787365272, 0.018049730534704385, 0.14615138313733889, 0.0, 0.0, 0.0, 0.0, 0.20611785399916963, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31511052111518423, 0.0, 0.03672395965581389, 0.0, 0.0, 0.9552411806377301, 0.0, 0.0, 0.0, 0.3512720117094026, 0.0, 0.7814509194588117, 0.9900444949397926, 0.0, 0.2416698136762867, 0.0, 0.15594310090475377, 0.37345396038999507, 0.13378200524387487, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0037871796529251873, 0.0, 0.07132197093797825, 0.0, 0.0, 0.4038639203443338, 0.0, 0.007926901739731977, 0.0, 0.005121012178382578, 0.4483265473520345, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19545324009971515, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.015822792815906598, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2654026801406409, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005338269605792754, 0.3841199941370228, 0.003089715236949895, 0.0, 0.0, 0.0, 0.2702896727602311, 0.0061480462629685435, 0.0, 0.0077716018517988575, 0.0, 0.0, 0.5060334906800565, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5325221835704804, 0.4354711371945976, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4529112439588725, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.42175363431898494, 0.540090698333841, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1429447733494866, 0.0, 0.0, 0.17383910328410926, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7778438721037507, 0.7592283162924894, 0.27027978053916946, 0.9680808201913975, 0.0, 0.0, 0.0, 0.0, 0.23721687040615713, 0.0, 0.0, 0.0, 0.214724244927467, 0.0, 0.6713747276751851, 0.2691029964691732, 0.24957193666978766, 0.04174679102400021, 0.0, 0.0, 0.44623226966778873, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9739425217687773, 0.3878431688435761, 0.0, 0.0, 0.0, 0.0, 0.5905353658253105, 0.0, 0.41099451149099264, 0.46959062394023404, 0.38400872176268547, 0.0, 0.4974135902693747, 0.0, 0.0, 0.0, 0.9154557174508635, 0.2586557560688982, 0.09838729964211103, 0.4023736739495505, 0.0, 0.43229262167712557, 0.25909478937718255, 0.0, 0.0, 0.9527916935554207, 0.3993878193283669, 0.4377172055566821, 0.0, 0.0, 0.02448196261221554, 0.28590941544125414, 0.0, 0.4006023808751287, 0.03918308759508126, 0.0, 0.2882716435062163, 0.0, 0.0110856134215592, 0.37363494354124355, 0.049778285574341975, 0.0, 0.0, 0.9269077110105975, 0.31315811797299237, 0.0, 0.012303674452273154, 0.015429991708474198, 0.0, 0.0, 0.014446013487908171, 0.04123415495113678, 0.03371931705724562, 0.29538913191692134, 0.0, 0.3349006097039049, 0.23542836206424417, 0.23052114963877735, 0.31614042332280545, 0.0, 0.0, 0.11683083227872514, 0.0, 0.0, 0.0006114799040197484, 0.10975727273531571, 0.0, 0.004295508139252644, 0.05107901709661121, 0.0, 0.9334562674798996, 0.0, 0.0, 0.0, 0.0, 0.5880007983611341, 0.06450382436313898, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11800940272957328, 0.0, 0.1899751304440791, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.273744879534597, 0.0, 0.0, 0.2671580962806136, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3492510086210155, 0.0, 0.3080038714015672, 0.0, 0.0, 0.2221605109577772, 0.0, 0.0, 0.0, 0.0, 0.07999688285015112, 0.06742807554519747, 0.08634727349135116, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10258077598728532, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5012203954355052, 0.0, 0.0, 0.0, 0.08111247475296846, 0.0, 0.0, 0.12138201096876389, 0.0, 0.08982551378065248, 0.0, 0.0, 0.12126628140327211, 0.0, 0.0, 0.07844895363581271, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07837080617454226, 0.0, 0.0, 0.0, 0.20283344995989894, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1282379216751728, 0.033796057874619194, 0.0, 0.09653017040380268, 0.0, 0.08822574416521244, 0.01404236183038609, 0.056929725378038414, 0.0, 0.15526439596527059, 0.0, 0.0, 0.0, 0.03781410167223484, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2529010219858623, 0.3238608478009693, 0.0, 0.0, 0.1407409609998849, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.329852425046806, 0.0, 0.0, 0.33341239592531074, 0.45526487856119674, 0.0, 0.33690660829115365, 0.08120142522000469, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08802821410799472, 0.39029129939250945, 0.13688708765693952, 0.0, 0.08496391292272984, 0.0, 0.0, 0.5183827483305287, 0.703065773125918, 0.4814340077714492, 0.0, 0.0, 0.0, 0.12053001147739661, 0.0, 0.07320101959394086, 0.0, 0.0, 0.5105579893076974, 0.6674329003953465, 0.7892434941755087, 0.051355650714931346, 0.4403973256963498, 0.0, 0.01884360978410253, 0.0, 0.0, 0.42539452394686605, 0.1591995319925085, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17375879569486846, 0.0, 0.0, 0.0, 0.0, 0.1721016330265864, 0.0, 0.00044047585032663307, 0.1672932604423309, 0.18102660031449758, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004373654797423859, 0.0, 0.0, 0.08031885873943684, 0.0, 0.0, 0.12088873452345646, 0.0, 0.25447674137867604, 0.0, 0.20210883042048103, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05466434515545004, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005119594240948603, 0.0, 0.2461616206228127, 0.0, 0.0, 0.40062152777610743, 0.0, 0.0, 0.0, 0.4450914546665199, 0.0, 0.0, 0.0, 0.25078704499066257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6437873083636174, 0.0, 0.08986536930257488, 0.05459463157090123, 0.0, 0.0, 0.1617782592438168, 0.0, 0.0, 0.0, 0.0, 0.510293956173341, 0.0, 0.0, 0.0, 0.0, 0.0539939979224501, 0.06022554282071448, 0.0, 0.0, 0.0017903697912685446, 0.10539843894447092, 0.0, 0.007216901945678346, 0.0, 0.0, 0.0, 0.22684974207663636, 1.4564553082728662, 0.182720528082649, 0.06653876275957457, 0.0, 0.6274289004185675, 0.0, 0.5406773490882926, 0.27822503396119075, 0.09306814986560254, 0.29383387946651635, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6230315233142055, 0.9648450369390001, 0.5108864746688708, 0.0, 0.36840186712596623, 0.22805280632725022, 0.3227837297104921, 0.0, 0.0, 1.0240377781477865, 1.591691363735423, 0.0, 0.7314261723085571, 0.0, 0.0, 0.45960855697902075, 0.0, 0.43090812739194506, 0.0, 0.3151566241591431, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3316537279743774, 0.27121053456867833, 0.0, 0.0, 0.0, 0.4001441487163798, 0.5176883689695168, 0.709966180421066, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2820721974309868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03908614977726766, 0.3083419381268706, 0.39485756407874356, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11511559935873378, 0.014949071584157462, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03837527794969671, 0.5550679626138529, 0.0, 0.5726479000113842, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07921974732295421, 0.0, 0.0, 0.0, 0.0, 0.0035899619569867425, 0.0, 0.0, 0.2145099852146676, 0.0, 0.0, 0.0, 0.0, 0.21950879525087302, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09449503481586544, 0.21750142180635595, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32517302304866597, 0.0, 0.0, 0.21035924507266648, 0.0, 0.0, 0.0, 0.0, 0.23713929311152726, 0.21014969427312982, 0.0, 0.0, 0.0, 0.5438936968761621, 0.3401858622480347, 0.0, 0.0, 0.0016527476817863266, 0.0, 0.007935034693483254, 0.0, 0.0, 0.1293317927443745, 0.0, 0.0, 0.0, 0.14368792432790373, 0.0, 0.0, 0.0, 0.0, 0.35799313982296815, 0.29274964408302323, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029011045367568582, 0.0017598612427760815, 0.0, 0.0, 0.052226530139838453, 0.0, 0.0, 0.0, 0.0, 0.16473710872422428, 0.30447392294316244, 0.0, 0.0, 0.0, 0.01743076710707649, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0410977515599671, 0.0, 0.7547303898094697, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.30609022817115544, 0.0, 0.0, 0.0, 0.0, 0.2105854322132866, 0.5327502455990605, 0.13588517657689586, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24025222517683778, 0.0, 0.007535433506713796, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6979826303937671, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07410089446237557, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4744178097104391, 0.0, 0.0, 0.0, 0.0, 0.1876471424480227, 0.28765608703745393, 0.2182401932056186, 0.04951496463333951, 0.0, 0.12909838655126593, 0.0, 0.3498317042975124, 0.0, 0.37087394843503463, 0.47981991008621333, 1.1039610273729945, 0.4455015727565212, 0.05271863458630144, 0.19600051626620313, 0.0, 0.2316343353202091, 0.0, 0.0, 0.0, 0.4641150152741525, 0.15018757716392944, 0.21321672818601478, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21465382837602517, 0.0, 0.0, 0.0, 0.00020573734093944128, 0.0, 0.0, 0.0, 0.16929708918389524, 0.0160994805386141, 0.0, 0.049657622486024976, 0.0, 0.017886560545272906, 0.1659947360027911, 0.0, 0.0, 0.0, 0.0, 0.11420185948155097, 0.0, 0.07369142147184715, 0.0, 0.33489361550116375, 0.46496602729779546, 0.0036113530199273977, 0.044355883980523376, 0.08156217107736623, 0.0, 0.006501263051750628, 0.24089225482763127, 0.0, 0.0, 0.3861226254326548, 0.020506805168434235, 0.0, 0.24677384860885976, 0.0, 0.0, 0.002169816793370778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.041148887129618034, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9769895490432172, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5923828848790257, 0.0, 0.10196835358593148, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.328835975725113, 0.0, 0.0, 0.4036325198584592, 0.0, 0.0, 0.3602983928676083, 0.0, 0.0, 0.9557725494193282, 0.0, 0.43908662544955285, 0.0, 0.0, 0.46995823158461947, 0.0, 0.14454935060909507, 0.0, 0.010668331756011213, 0.6280409324984255, 0.03247332779409237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10592998533424139, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.33399686192793854, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7833052225131492, 0.0, 0.0, 0.0, 0.24187208135853017, 0.0, 0.071730719549714, 0.0, 0.11407352111288803, 0.0, 0.44957678307373006, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5736773783460691, 0.0692607726207939, 0.0, 0.0, 0.4731102083446558, 0.7389531951966185, 0.028778055517643567, 0.22717903301955947, 0.0, 0.1436855444728547, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.49542697237169275, 0.0, 0.3454532351491738, 0.11660950163380673, 0.0, 0.0, 0.0, 0.0, 0.027794605242432064, 0.0, 0.0, 0.0, 0.132905538815286, 0.0, 0.05497259939520882, 0.0, 0.0, 1.2625457513449383, 0.39900789022393385, 0.0, 0.0, 0.0, 0.0, 0.4114559732861708, 0.4741201455820112, 0.0, 0.21077985466978477, 0.0, 0.0, 0.7439578224938339, 0.42232266256074136, 0.4876343844944301, 0.6687496612887465, 0.115118039848854, 0.0, 0.0, 0.0, 0.0, 0.05260063632046659, 0.07759581613885312, 0.028401563276091994, 0.0, 0.056334062495133036, 0.17033944709766455, 0.9153107777932757, 0.0, 0.004924424218813803, 0.057509247607595904, 0.0, 0.7491964746840728, 0.05934710743113981, 0.0, 0.0, 0.0, 0.22238712275143577, 0.4319949206677921, 0.025917686578643146, 0.031803778192995576, 0.0, 0.6741550137516903, 0.009328571558732282, 0.0, 0.0, 0.0, 0.0, 0.5515037103010108, 0.6987172178395075, 0.0, 0.0, 0.0, 0.060174729085221354, 0.0, 0.0, 0.08734749351416564, 0.6636235071641303, 0.09580942583448827, 0.0, 0.0, 0.08996354325075087, 0.04525348827838765, 0.5824434635228624, 0.05819874866882126, 0.12005968761069685, 0.0, 0.0, 0.3313826265510977, 0.0, 0.058140773587614956, 0.6127791119711469, 0.0, 0.0, 0.15047559500471339, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6662085079556846, 0.3400843601648346, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22423528728211575, 0.0, 0.0, 0.0, 0.0, 0.3636963343220375, 0.5756271502974593, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046502182852265775, 0.0, 0.04891501992848654, 0.0, 0.0, 0.0, 0.9407814186149676, 0.09733317875961926, 0.0, 0.11672934297033466, 0.0, 0.6385588104227404, 0.0, 0.022206283976929683, 0.09845615426665595, 0.03496357540242119, 0.0, 0.0, 0.0, 0.0, 0.03380456195194267, 0.18543528221865002, 0.12144811071150914, 0.0, 0.03755694741887004, 0.16907550573428723, 0.0, 0.0, 0.1443808645220955, 0.0, 0.1003230425739974, 0.12879502114342312, 0.0647357901808317, 0.0, 0.5084955858844, 0.08519692951707138, 0.007582866204885641, 0.0, 0.03198292312330168, 0.0, 0.1209623049539008, 0.0, 0.12387820451445683, 0.0, 0.0, 0.043058753609476905, 0.03493082633215086, 0.0, 0.0, 0.043777031505228374, 0.016261326799286477, 0.16693678030096587, 0.0, 0.0]), 42), 42)),) +(CR = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.004334271763144113, 0.19866796375858964, 0.05511378591134807, 0.37983318302160474, 0.0, 0.8329001018500983, 0.30166090609024687, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3289219868624648, 0.0, 0.15511617694464214, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18499887719318273, 0.0, 0.0, 0.0, 0.19259223593916178, 0.0, 0.0, 0.0638915620449496, 0.08125561754012361, 0.17659717140450376, 0.0, 0.0, 0.1525779960421776, 0.0, 0.0, 0.0, 0.0, 0.29196799055295863, 0.0, 0.0, 0.0, 0.5551667524029037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4594337414860906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3019846765891098, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18892258579898563, 0.0, 0.2395310548375412, 0.0, 0.359229579293753, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00028478282759787334, 0.0, 0.3432275013790356, 0.0, 0.0, 0.2972839943189292, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19540404365846636, 0.0, 0.0, 0.0, 0.0, 0.18546216890582629, 0.0, 0.0, 0.00916099623463154, 0.0, 0.034731738855626984, 0.4853088859188271, 0.0076713909171271105, 0.0, 0.0, 0.5640422262893099, 0.0, 0.5950501234938147, 0.040920156633969085, 0.0014920661060395996, 0.0, 0.08081663901361853, 0.8825202410318094, 0.0, 0.006218090636031004, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3280555235834662, 0.03812149119614576, 0.0, 0.05190957475021724, 0.0, 0.06033708819060236, 0.0, 0.10124291140603807, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5085302772239245, 0.0, 0.5334307954394755, 0.0, 0.0, 0.2328402544634388, 0.0, 0.005816161517311894, 1.5317318593263975, 0.0, 0.46738125332221536, 0.0, 0.09813163178688389, 0.4394739409933983, 0.0, 0.26102098784262384, 0.0, 0.0, 0.0, 0.0, 0.8804155352247423, 0.0, 0.0, 0.48240400321886606, 0.3763091458911055, 0.6151496795666793, 0.0, 0.27268296540705483, 0.0, 0.0014290584461454537, 0.0, 0.0, 0.0, 0.5294637260878591, 0.0, 0.0, 0.0, 0.31181862629226015, 0.0, 0.34152287293383227, 0.1986997482112381, 0.2527011428302912, 0.0, 0.434749031361829, 0.0, 0.4472075705110786, 0.4092092126159339, 0.2807873539680881, 0.17401521117970595, 0.0, 0.0, 0.43733948883443596, 0.5485693747724284, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0983266821553666, 0.05373620000037918, 0.49612300100963586, 0.0, 0.0, 1.075151264033199, 0.0, 0.18716105879611752, 0.03950202184626144, 0.0, 0.0, 0.7852572057826378, 0.0, 0.0, 0.08756438716142145, 0.27446263899702106, 0.0, 0.0, 0.07204260281080108, 0.0, 0.09291620627436281, 0.23270017215835156, 0.23824566618105675, 0.0, 0.0, 0.0, 0.13665872084048475, 0.0, 0.0, 0.0067937121060301624, 0.1164801427986044, 0.0, 0.5691621002508566, 0.4713388661713567, 0.41358181631025637, 0.0, 0.3128607440091297, 0.0, 0.0, 0.20424594336339066, 0.0, 0.0, 0.7442286193021344, 0.10553727794892508, 0.0, 0.30186901767997887, 0.0, 0.0, 0.0, 0.32291683563950796, 0.07758151598185183, 0.0, 0.347786535534979, 0.7360230359944353, 0.0, 0.0, 0.0, 0.8757273805535595, 0.41322710295268655, 0.0, 0.25679112297862333, 0.17774302673574222, 0.5841939760860391, 0.0, 0.0, 0.0, 0.13300779742001662, 0.16915583797139946, 0.0, 0.0, 0.0, 0.7164740353603845, 0.45156468002631484, 0.0, 0.27217311439601866, 0.7084784766971438, 0.06835326871026481, 0.0, 0.0, 0.0, 0.2861016237491002, 1.0700436562849107, 0.135740840434777, 0.2599664462430113, 0.45536369102376945, 0.0, 0.0, 0.0, 0.16460938932017066, 0.9424546774296569, 0.4980075807530193, 0.501649117240962, 0.9215918221852557, 0.0, 0.5227646022766553, 0.46865433734477785, 0.0, 0.1899494468105599, 0.0, 0.14204872822901377, 0.7891527088162923, 0.2800775160398023, 0.0, 0.0, 0.6038144125549446, 0.0, 0.4101280976499608, 0.15813547044885462, 0.4381740566617935, 0.0025678619479343042, 0.5913196381458786, 0.01581382625018507, 0.4317825799661969, 0.0, 0.5361217114844467, 0.16404576969544252, 0.0, 0.03623369485950333, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19327505078226082, 0.1125279795645968, 0.0, 0.38171505913646114, 0.0, 0.0012820843611261621, 0.0, 0.0, 0.017018867107690273, 0.0, 0.018573326277702022, 0.7755881641075008, 0.12996991545193906, 0.0, 0.18005632805213245, 0.0, 0.2451805301156947, 0.0, 0.3747092870507497, 0.0, 0.4781929115858312, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.35214721497251084, 0.0, 0.020304118651362432, 0.14466279308909658, 0.626862644216891, 0.0, 0.0, 1.5549351131665947, 0.30737844662289215, 0.0, 0.0, 0.0, 0.0, 0.009701873820892715, 0.2520412914553624, 0.018396624198184493, 0.0, 0.7982268230101296, 0.0, 0.9201682818000929, 0.0, 0.0, 0.7342011144064367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09396246898802936, 0.0, 0.5073258744317697, 0.22284199906817412, 0.10151898941699102, 0.03180992568768135, 0.0, 0.5543686635557524, 0.0, 0.0, 0.0, 0.22367207355552704, 0.0, 0.0, 0.0, 0.40880306935546484, 0.0, 0.42113696363931935, 0.0, 0.0, 0.0, 0.43326306412219423, 0.39232717474974355, 0.0, 0.0, 0.0, 0.013675206005982276, 0.0, 0.2603519242467926, 0.3502025254743841, 0.14312660068897712, 0.34775162340880994, 0.20310882214946477, 0.0, 0.27127891969267615, 0.0, 0.0, 0.020541404680713544, 0.0, 0.0, 0.1991870263338475, 0.0, 0.0, 0.2456237488004554, 0.12123860127246498, 0.2079074067296303, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24646978770136238, 0.15225808974571345, 0.0, 0.0, 0.46988488666249073, 0.16461741428636234, 0.4415386194506142, 0.05631807188893752, 0.0611318669096905, 0.0, 0.0, 0.0, 0.5215534136524774, 0.0, 0.0, 0.6274626509368973, 0.038256585847320265, 0.530070634494204, 0.0, 0.7877809268797783, 0.25601250351282806, 0.37534186876141573, 0.700013095645165, 0.0, 0.29431110179251513, 0.22882177649965688, 1.0569304890861846, 0.0, 0.0, 0.0, 0.0, 0.02833923205698933, 0.02572736738919585, 0.0, 0.1150475064446459, 0.24371977071087828, 0.0, 0.0, 0.044121908414131224, 0.0771055384425919, 0.09695789652483547, 0.0, 0.0, 0.0, 0.12020713596947674, 0.045249684273424934, 0.8721213827038133, 0.0, 0.11731035534021127, 0.37569616707373005, 0.0, 0.0, 0.9570606189270042, 0.9086284112098039, 0.20027308709305888, 0.4268041763647709, 0.0, 0.0, 0.015909944043088663, 0.0, 0.7658973441527888, 0.0, 0.19507759787979717, 0.3226660152512004, 0.23629991340839918, 0.0, 0.13848101841219138, 0.0, 0.0, 0.24578615843203896, 0.0, 0.0, 0.10167993256702677, 0.0, 0.0, 0.12538470338440244, 0.9934363459809055, 0.10613146591697438, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6421265863141966, 0.0, 0.5400344618364347, 0.025731716559651077, 0.0, 0.0, 0.0, 0.007521097208030019, 0.5455660054203588, 0.0, 1.1209603429913297, 0.0, 0.0, 0.5234607155600556, 0.0, 0.023977651748011766, 0.0, 0.0, 0.0, 0.27798322874225667, 0.0, 0.35612425891926536, 0.0, 0.7529913555346315, 0.6214420882570796, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12146506806205652, 0.0, 0.3210215267482459, 0.0, 0.0, 0.0, 0.33419799384234544, 0.0, 0.0, 0.15359727591834285, 0.19534099821264672, 0.525863863274946, 0.0, 0.0, 0.34569678733330644, 0.0, 0.0, 0.3415674397857982, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.523004359259986, 0.0, 0.22235180304591923, 0.0, 0.00635695661054767, 0.0, 0.0, 0.0843846185513356, 0.0, 0.0, 0.0, 0.8855039996037297, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27294552017018114, 0.0, 0.3412878895624823, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5864608505347954, 0.0, 0.10380099346078346, 0.02524889717437322, 0.0, 0.0, 0.38157075730498896, 0.0, 0.0, 0.0, 0.45469484904050655, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26459586877877683, 0.18314523505716396, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22372814141562178, 0.0, 0.0, 0.0, 0.6276845275284666, 0.18331203344516112, 0.25689720406507865, 0.04048914090414101, 0.0, 0.016969058333515752, 0.0, 0.5911567891086366, 0.37358991094373184, 0.21597413111529512, 0.09535966106843696, 0.021909623318208237, 0.49412659112391777, 0.39229708641560146, 0.0, 0.0, 0.5239905526116051, 0.22383442432789932, 0.0, 0.408761833081477, 0.7858251636352953, 0.0, 0.03095169444374481, 1.0134328993353359, 0.0, 0.5783663988186404, 0.023349871375665725, 0.4068090650141155, 0.3701047391436106, 0.7170357796952346, 0.31327392774306395, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.39350494784782397, 0.07595368484327951, 0.4868292236818003, 0.046986031631648606, 0.530207151960747, 0.01037806421927761, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05535788985307855, 0.7394134258901907, 0.17106635844034493, 0.9821443208953105, 0.0, 0.008962807708770178, 0.0, 0.0, 0.11897566020800357, 0.0, 0.0, 0.0, 1.2828090910806784, 0.0, 0.4691443493685695, 0.0, 0.07022467062008277, 0.18231155361607748, 0.41302392682414213, 0.0, 0.13696413696930718, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.423686950315378, 0.0, 0.5297732126841366, 0.0, 0.10086209606266386, 0.4105665706595916, 0.2899236467445781, 0.08479167779863508, 0.0, 1.1607169616195545, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44056670549109944, 0.0036426275414389976, 0.22268017654499572, 0.70259131988822, 0.021981713208965886, 0.0, 0.0, 0.0, 0.6644482698446481, 0.5559910462571956, 0.9081368976941899, 0.9545466439826781, 0.0, 0.5800820874802947, 0.6131061961157059, 0.0, 0.3387938943904664, 0.0, 0.41233232521209184, 0.6892320892052487, 0.9168247018477867, 0.7592095444656833, 0.0, 0.7080274090242662, 0.0, 0.0, 0.7409103227795685, 0.4891910517462003, 0.0, 0.0, 0.6996898878138225, 0.18201720925245757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.033060035104523045, 0.0, 0.0, 0.0, 0.0, 0.0010434833431631984, 0.0, 0.0, 0.0, 0.010921241238865733, 0.0, 0.015498170387323498, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.011618017340433275, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2104054739321471, 0.0, 0.0, 0.0, 0.051249741424478176, 0.0, 0.0, 0.0, 0.09744956100917274, 0.0, 0.0, 0.0, 0.0, 0.10766993925868745, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18951483497887683, 0.5969374604132631, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6248091001560899, 0.0, 0.0, 0.0, 0.0, 0.18617398114562853, 0.0530079909103574, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14076422137873648, 0.3823151552281139, 0.28535858102685935, 0.3054264047421474, 0.0, 0.0, 0.5425991952026914, 0.16566917168527906, 0.0, 0.0, 0.24572721112234908, 0.0, 0.0, 0.311993347128524, 0.0, 1.0231061248638629, 0.5939954507294103, 0.5983388707717968, 0.7851882761904205, 0.0, 0.28209866162610053, 0.46470151179975694, 0.0, 0.22767102275324697, 0.0, 0.0, 0.3351791998251741, 0.0, 0.0, 0.0, 0.3258354466053841, 0.29514851487698524, 0.25858133097678015, 0.1886151008053812, 0.5226293862659805, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0442888167727012, 0.0, 0.002505192641426779, 0.0, 0.0, 0.07664740890754863, 0.0, 0.0, 0.013363010227595206, 0.00048725362450601585, 0.002419244088482629, 0.026391726291740327, 0.0, 0.0, 0.03460717393330891, 0.0, 0.13624247986958654, 0.0, 0.0, 0.0, 0.0, 0.0, 0.012449069569846, 0.0, 0.016951747875799564, 0.0, 0.0197038621774241, 0.0, 0.033062191640471625, 0.07310509907314719, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06556034095953286, 0.0, 0.02434740964367002, 0.0, 0.0, 0.13592547532623306, 0.0, 0.030022610188286405, 0.03795734899490777, 0.008699370747195389, 0.0, 0.0, 0.18940737674761182, 0.16014434992779022, 0.0058393216511455045, 0.0, 0.3162824676834449, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14919154588027264, 0.0, 0.20315232851529888, 0.0, 0.27582528532656464, 0.0, 0.3962223404212856, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00142596300027198, 0.0, 0.008781597914028754, 0.2917830655969515, 0.0, 0.0, 0.3010196130390429, 1.085161420061463, 0.0, 0.8818413438369698, 0.0, 0.14807253735972709, 0.6682230613653689, 0.6738718955158736, 0.0, 0.2921120382906695, 0.0, 0.23016863424694362, 0.44343897402347887, 0.0, 0.0, 1.2859761704109314, 1.188418751121335, 0.0, 0.4620501506594876, 0.23396469855670338, 0.0, 0.03498671823904876, 0.0, 0.0, 0.3392611399043929, 0.20497564811318061, 0.0, 0.4183535169904413, 0.20649711391931772, 0.520902106226398, 0.0, 0.0, 0.16125806820737418, 0.5576988707246249, 0.0, 0.0, 0.0, 0.11391623120681071, 0.0, 0.0, 0.09151851725619714, 0.0, 0.0, 1.197254000111945, 0.0, 0.8775820846458859, 0.0, 0.5629797627532018, 0.6687057520979063, 0.341227000414515, 0.0, 0.25482576175079585, 0.0, 0.39537376259476137, 0.4437592920364036, 0.0, 0.0, 0.5927285333298421, 0.651986303075751, 0.0, 1.0434591895456948, 0.0, 0.0, 0.03501199088471498, 0.0, 0.0, 0.3395062050893736, 0.15619471223870085, 0.0, 0.41865571453083017, 0.20664627704903807, 0.48238135206809674, 0.08860575544817058, 0.0, 0.005695035181786341, 0.42497543210880456, 0.0, 0.23934194260454025, 0.30438882267274336, 0.2874361482000896, 0.0, 0.0, 0.6245971595264426, 0.0, 0.3639559852559372, 0.0, 0.0, 0.20575691959192335, 0.0, 0.5994751724692355, 0.0, 0.0, 0.0, 0.0, 0.002904710270589501, 0.0, 0.27722048222724693, 0.15720637186052522, 0.0, 0.40582979792580204, 0.3276141191929195, 0.0, 0.5216472712210337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.022828121623522435, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.111114554054197, 0.0, 0.0, 0.005523835481493179, 0.12589753624924738, 0.4223352609451343, 0.19512225997871732, 0.9646462752755526, 0.0, 0.0, 0.908234546074678, 0.0, 0.1303083320340461, 0.4180115467796097, 0.3502002628164635, 0.005797584702932196, 0.620011620521792, 0.6673813159226286, 0.0030737631986123407, 0.0, 0.42144642014638856, 1.0414378536891689, 0.6289622414694364, 1.5563606265339154, 0.08385396416867873, 0.3115994197854627, 0.7117829870894571, 0.6381078265340546, 0.0, 0.23989801450652898, 0.0, 0.5826228436020011, 0.8457142287971168, 0.0, 0.0, 0.0, 1.0193786877434905, 0.0, 0.0, 0.19971832516875276, 0.5533950636153777, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21472741909783344, 0.39082851888093567, 0.44716245502350144, 0.2879713896328549, 0.5511368948723377, 0.33565164359388877, 1.3517828371888283, 0.0, 0.09957607530690628, 0.0, 0.0, 0.26103163435011795, 0.3965287786994862, 0.6597151598792015, 0.0, 0.34286845579856556, 0.3900059867245693, 0.34423839922938515, 0.0, 1.2842745238771571, 0.3694211002080512, 0.0, 0.05489702502604951, 0.3645945046142821, 0.0, 0.0, 0.08041277613458127, 0.2893532857853331, 0.0, 0.5419495915870312, 0.70973704371772, 0.06597297072421819, 0.0, 0.0, 0.28417074423649047, 0.45673560467870195, 0.1772454725351981, 0.22541615615699262, 0.08077018346809645, 0.5662548477384789, 0.07678831671440492, 0.7573984424681688, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4826509895037858, 0.0, 0.7156459126461995, 0.0, 0.0, 0.0, 0.0, 0.0, 0.013563432420802306, 0.4559162518278489, 0.0, 0.0, 0.0, 0.0, 0.26262283944881243, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16505781512417061, 0.2933206286622639, 0.0, 0.0, 0.0, 0.0, 0.40289003757510067, 0.0, 0.0, 0.0, 0.6372941893353361, 0.0, 0.6237934507673457, 0.8070702584067075, 0.0, 0.0, 0.3379623279083573, 0.0, 0.46129991809862586, 0.7333015288992237, 0.21031442023566344, 0.0, 0.7041420713561054, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7760176053652288, 0.0, 1.0534236649773678, 0.0, 0.0, 0.8070780011372765, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4823716017908521, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6208306891807599, 0.0, 0.0, 0.01732988822073383, 0.2738833349341264, 0.10672374403860475, 0.0, 0.008043590060480383, 0.0, 0.055277084044920086, 0.0, 0.0, 0.17943961322559207, 0.0, 0.0, 0.0, 0.0, 0.0, 0.718108290096912, 0.0, 0.0, 0.0, 0.008728384689335622, 0.0, 0.1697763404331079, 0.11586384141065409, 0.0, 0.0, 0.0, 0.8848305575683707, 0.0, 0.8449968950182224, 0.0, 0.0, 0.0, 0.6706152313255382, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8308196053978146, 0.0, 0.9175002824131868, 0.7530109173431534, 0.022342425693822682, 0.0, 0.0035915524463436964, 0.15288943835905894, 0.0, 0.5199425421439203, 0.11917728725476327, 0.3521011644457409, 0.0, 0.822488739774635, 0.513543493422637, 0.2981570434312181, 0.0, 0.0, 1.2701086711578897, 0.0, 0.11247893732510689, 0.0, 0.039332390318575425, 0.0, 0.11102635670488926, 0.0, 0.15118325075382752, 0.0, 0.1757278339799435, 0.0, 0.2948633760880991, 0.15371975197149906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04453230950399372, 0.0, 0.05568267952698087, 0.0, 0.21714106205060016, 0.0, 0.0, 0.0, 0.0, 0.7213227431120439, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2701718137836067, 0.0, 0.06123281377737304, 0.4007297534572718, 0.0, 0.0, 0.02350606599699272, 0.0, 0.47270164239805296, 0.39554302818161685, 0.39843532224568856, 0.0, 0.0, 0.46004399190355705, 0.41242580548884994, 0.0, 0.15086754157289264, 0.0, 0.0, 0.5466072621606027, 0.18414300130678235, 0.2087681866233734, 0.0, 0.5313695523968773, 0.0, 0.0, 0.2807883504872339, 0.34802019073798685, 0.0, 0.09776175774612722, 0.1924014129464173, 0.0, 0.0, 0.0, 0.2995245510564702, 0.1439415371971276, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09612835370305864, 0.0, 0.07178793274997196, 0.0, 0.0, 0.0, 0.529229742886101, 0.0, 0.0, 0.5898615183638936, 0.0, 0.1996504875270556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07685007162501065, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4724449949223617, 0.0, 0.21985358976027652, 0.0, 0.0, 0.0, 0.6511036698044336, 0.5394783324223208, 0.9048355234024855, 0.0, 0.0, 0.0, 0.008134079103649166, 0.17236516549262873, 0.0, 0.7108281927774538, 0.0, 0.0, 0.0, 0.8245834715993663, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22989626507902333, 0.12442621872484774, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3037122713618223, 0.0, 0.0, 0.008259351424073042, 0.4378900919766154, 0.05086408498890661, 0.31974807102322866, 0.0, 0.0, 0.7960980638875322, 0.0689135689704732, 0.0, 0.0, 0.0, 0.20359294387478752, 0.9097633301509839, 0.0, 0.6841090251831579, 0.0, 0.6154584825649704, 0.7335150023327748, 1.015637287349907, 0.0, 0.0779165260149525, 1.1277817941657742, 0.0, 0.0, 0.3457097793442966, 0.6958114560471119, 0.22297907055084815, 0.02617735461213243, 0.8271866794310433, 0.0, 0.25383801660715655, 0.0, 0.6564805026462143, 0.4519424562793308, 0.8175733700968422, 0.26495100977979114, 0.0, 0.0, 0.0, 0.33910693050583907, 0.0, 0.0, 0.0, 0.4889218480481046, 0.0, 0.3925649791995639, 1.5627863234111485, 0.8201598086100989, 0.28474440170274185, 1.0514838770367962, 0.010290531779792767, 0.0, 0.0, 1.5282247448720891, 0.4202365445740981, 0.38631591015261757, 0.07827208426350975, 0.002001482371009478, 0.19978631068641475, 0.10840878806592323, 0.8849580765325739, 0.7025926608640433, 0.21468725597950544, 0.6515266028885637, 0.304659479667613, 0.0, 0.5203661079080213, 0.1989832785613875, 0.22866153178235926, 0.2129788116497342, 0.0511368043793991, 0.0, 0.06963236972450947, 0.0, 0.08093717687353573, 0.0, 0.3254291820176872, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4944791980843742, 0.5417407856384763, 0.0, 0.4343792686365096, 1.5442785077006684, 0.0, 0.13746522377571999, 0.0, 0.0, 0.0, 0.0, 0.01933245239450143, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44623451745418, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.30502005455201636, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.014872981553739924, 0.0, 0.0, 0.0007393802182031884, 0.0, 0.14653699929908884, 0.0, 0.0, 0.26188312990151436, 0.028159286104530473, 0.0, 0.4084686341089707, 0.9235151006259961, 0.5957064186534903, 0.0, 0.0, 0.5535709817494249, 0.0, 0.25891613288066156, 0.07783302925410085, 0.2939591160629263, 0.1987201643010643, 0.0, 0.09767541007114018, 0.4120929351702914, 0.22225830848448824, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13739476210353194, 0.0, 0.037597515302596925, 0.0, 0.0, 0.31874062595288627, 0.33536722163001637, 0.0, 0.0, 0.0, 0.48352996362981304, 0.0, 0.38851289261478805, 0.6830254018960756, 0.3364461001285706, 0.8253161071254982, 0.0, 0.2348841918025421, 0.0, 0.4205219693225024, 0.5314960091024892, 0.0, 0.0, 0.10178270195612651, 0.0, 0.0, 0.780835547454152, 0.5872223143240599, 0.2503853190515238, 0.0, 0.0, 0.6150976289535472, 0.0, 0.09445718365268194, 0.0, 0.0, 0.17331386223779208, 1.5139967025892487, 0.0, 0.0031631037123804793, 0.0, 0.0, 0.20592512324808152, 0.0, 0.03635874582185372, 0.0, 0.20018457152414249, 0.22068196040992705, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), 42), 42)),) julia> @finch_code begin Ct .= 0 for i = parallel(_) @@ -246,7 +246,7 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.18463927542167063, 0.16872726618738124, 0.0, 0.0, 0.0, 0.5894648191942263, 0.0, 0.0, 0.4399979683038884, 0.4872396182365841, 0.0, 0.0, 0.0, 0.5232587908717465, 0.0, 0.028458776980687873, 0.0, 0.1912882078151879, 0.5164204427507948, 0.25375520169397275, 0.7988048308846816, 0.548219404354131, 0.0, 0.0, 0.0, 0.08973042123875676, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16269102551813888, 0.0, 0.6368094288799442, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03708423534085979, 0.16845626013473977, 0.6588748971102081, 0.010877416543996312, 0.0, 0.0, 0.0, 0.44123232519423083, 0.0, 0.24002669576156066, 0.0, 0.0, 0.0, 0.21689234576879324, 0.2098895841423717, 0.6161647640351655, 0.4776903273077015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6355594744363152, 0.0, 0.0, 0.08457949502263125, 0.0, 0.0, 0.6901459039432658, 0.0, 0.0, 0.0, 0.057641486402300816, 0.0, 0.0, 0.09549316762404748, 0.09211299074367744, 0.11795836585190977, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0467877508869465, 0.0, 0.0, 0.0, 0.0, 0.04370712736779799, 0.281244207688617, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2030486542718697, 0.0, 0.5182178756464231, 0.0, 0.0, 0.0, 0.057729640414041494, 0.0, 0.0, 0.0, 0.0, 0.19354540299708142, 0.06300918519480127, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1478355026964281, 0.0, 0.0, 0.0, 0.541165159810693, 0.0, 0.0, 0.0, 0.16407931870757664, 0.2057712545151301, 0.32812733654993936, 0.0, 0.24913050204963633, 0.20974603114415158, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5086673274457614, 0.32467254520642835, 0.0, 0.22357645210013752, 0.0, 0.0, 0.0, 0.15908397194054766, 0.0, 0.5866968618616202, 0.21349654033737236, 0.243214867615369, 0.0, 0.0, 0.27374855832219774, 0.0, 0.3075930851551728, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44087523604465795, 0.22505682646241645, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2406824670174747, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4353583318013107, 0.0, 0.0, 0.0, 0.0, 0.42257756079609887, 0.0, 0.16328692344233348, 0.7239663574899861, 0.253917129058883, 0.0, 0.0, 0.0, 0.012941670285380298, 0.005948300091521438, 0.6648934966409066, 1.0229318994166612, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13578338949001834, 0.4197116456419966, 0.0, 0.947053670891027, 0.0, 0.13486088669396906, 0.0, 0.6620124726194103, 0.0, 0.6496849904621673, 0.0, 0.0, 0.7890806801928671, 0.01841465881846702, 0.27914669822772004, 0.0, 0.029516583729604803, 0.0, 0.0, 0.018864268719240455, 0.24394303159635272, 0.0, 0.5741603792214627, 0.3080365664801448, 0.6155081898538994, 0.2367816204152454, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17416434327376132, 0.0, 0.0, 0.0, 0.0, 0.16269692366253372, 0.0, 0.3491221627973697, 0.0, 0.0, 0.0, 0.0, 0.0, 0.896220207410521, 0.13858473312625733, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2148948115594729, 0.1029957040349639, 0.0, 0.10833979410008034, 0.0, 0.0, 0.23454757178184932, 0.0, 0.2155791117194733, 0.0, 0.22311080318652476, 0.0, 0.0, 0.0, 0.0, 0.07959294795619429, 0.0, 0.17163567622890405, 0.07283994445558169, 0.0, 0.0, 0.0, 0.08654379427684032, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16368166253985994, 0.0, 0.17071385720442764, 0.34758616988919516, 0.0, 0.0, 0.0, 0.0, 0.25336804558610515, 0.0, 0.032257457723339725, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2136279714073461, 0.0, 0.24003957209260046, 0.21303254632455026, 0.006511170502708404, 0.383310313899178, 0.0, 0.0, 0.0, 0.1337677376744651, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0646519260588245, 0.0, 0.0, 0.0, 0.31350938881953055, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20384728982176575, 0.0, 0.0, 0.0, 0.0, 0.05670575896106868, 0.0, 0.05964802423259749, 0.0, 0.0, 0.0, 0.4488563568162377, 0.11869016538841153, 0.0, 0.07667734536959822, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.040450967971474544, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09480431131127824, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0016369185703860613, 0.0, 0.0017218526009009176, 0.0, 0.0, 0.0, 0.0, 0.003426215245260554, 0.0, 0.002213436040060287, 0.0, 0.0, 0.0, 0.0, 0.028624781651490867, 0.0, 0.0, 0.0917221717112923, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03948493179664919, 0.0998678691104795, 0.0, 0.0, 0.0, 0.0, 0.0519314302968116, 0.019753641949088564, 0.0, 0.0, 0.08679325173985959, 0.0, 0.0, 0.44412542864463755, 0.0, 0.0, 0.0, 0.25440324223859473, 0.0, 0.06322962025433154, 0.0, 0.10055420420038351, 0.08043066558940987, 0.01930551218305079, 0.019941838639940274, 0.025537187307223392, 0.0, 0.2186623932992767, 0.06407227122111338, 0.0254835950299198, 0.0, 0.0, 0.6628636898477958, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5422666551724673, 0.6870145051652384, 0.0, 0.0, 0.1501651963322761, 0.019574736086580828, 0.0, 0.0, 0.03589870327691644, 0.0, 0.026565876114361182, 0.0, 0.0, 0.029264986204643254, 0.0, 0.0, 0.01893195304872942, 0.046727577005066426, 0.0, 0.0, 0.28025040572174376, 0.0, 0.018913093854322344, 0.0, 0.0, 0.0, 0.04894945277637971, 0.006583695531171352, 0.3875798367774556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3292155284261099, 0.04344067936293723, 0.0653720550702903, 0.0, 0.0, 0.22649528787365272, 0.018049730534704385, 0.14615138313733889, 0.0, 0.0, 0.0, 0.0, 0.20611785399916963, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31511052111518423, 0.0, 0.03672395965581389, 0.0, 0.0, 0.9552411806377301, 0.0, 0.0, 0.0, 0.3512720117094026, 0.0, 0.7814509194588117, 0.9900444949397926, 0.0, 0.2416698136762867, 0.0, 0.15594310090475377, 0.37345396038999507, 0.13378200524387487, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0037871796529251873, 0.0, 0.07132197093797825, 0.0, 0.0, 0.4038639203443338, 0.0, 0.007926901739731977, 0.0, 0.005121012178382578, 0.4483265473520345, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19545324009971515, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.015822792815906598, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2654026801406409, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005338269605792754, 0.3841199941370228, 0.003089715236949895, 0.0, 0.0, 0.0, 0.2702896727602311, 0.0061480462629685435, 0.0, 0.0077716018517988575, 0.0, 0.0, 0.5060334906800565, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5325221835704804, 0.4354711371945976, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4529112439588725, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.42175363431898494, 0.540090698333841, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1429447733494866, 0.0, 0.0, 0.17383910328410926, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7778438721037507, 0.7592283162924894, 0.27027978053916946, 0.9680808201913975, 0.0, 0.0, 0.0, 0.0, 0.23721687040615713, 0.0, 0.0, 0.0, 0.214724244927467, 0.0, 0.6713747276751851, 0.2691029964691732, 0.24957193666978766, 0.04174679102400021, 0.0, 0.0, 0.44623226966778873, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9739425217687773, 0.3878431688435761, 0.0, 0.0, 0.0, 0.0, 0.5905353658253105, 0.0, 0.41099451149099264, 0.46959062394023404, 0.38400872176268547, 0.0, 0.4974135902693747, 0.0, 0.0, 0.0, 0.9154557174508635, 0.2586557560688982, 0.09838729964211103, 0.4023736739495505, 0.0, 0.43229262167712557, 0.25909478937718255, 0.0, 0.0, 0.9527916935554207, 0.3993878193283669, 0.4377172055566821, 0.0, 0.0, 0.02448196261221554, 0.28590941544125414, 0.0, 0.4006023808751287, 0.03918308759508126, 0.0, 0.2882716435062163, 0.0, 0.0110856134215592, 0.37363494354124355, 0.049778285574341975, 0.0, 0.0, 0.9269077110105975, 0.31315811797299237, 0.0, 0.012303674452273154, 0.015429991708474198, 0.0, 0.0, 0.014446013487908171, 0.04123415495113678, 0.03371931705724562, 0.29538913191692134, 0.0, 0.3349006097039049, 0.23542836206424417, 0.23052114963877735, 0.31614042332280545, 0.0, 0.0, 0.11683083227872514, 0.0, 0.0, 0.0006114799040197484, 0.10975727273531571, 0.0, 0.004295508139252644, 0.05107901709661121, 0.0, 0.9334562674798996, 0.0, 0.0, 0.0, 0.0, 0.5880007983611341, 0.06450382436313898, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11800940272957328, 0.0, 0.1899751304440791, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.273744879534597, 0.0, 0.0, 0.2671580962806136, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3492510086210155, 0.0, 0.3080038714015672, 0.0, 0.0, 0.2221605109577772, 0.0, 0.0, 0.0, 0.0, 0.07999688285015112, 0.06742807554519747, 0.08634727349135116, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10258077598728532, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5012203954355052, 0.0, 0.0, 0.0, 0.08111247475296846, 0.0, 0.0, 0.12138201096876389, 0.0, 0.08982551378065248, 0.0, 0.0, 0.12126628140327211, 0.0, 0.0, 0.07844895363581271, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07837080617454226, 0.0, 0.0, 0.0, 0.20283344995989894, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1282379216751728, 0.033796057874619194, 0.0, 0.09653017040380268, 0.0, 0.08822574416521244, 0.01404236183038609, 0.056929725378038414, 0.0, 0.15526439596527059, 0.0, 0.0, 0.0, 0.03781410167223484, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2529010219858623, 0.3238608478009693, 0.0, 0.0, 0.1407409609998849, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.329852425046806, 0.0, 0.0, 0.33341239592531074, 0.45526487856119674, 0.0, 0.33690660829115365, 0.08120142522000469, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08802821410799472, 0.39029129939250945, 0.13688708765693952, 0.0, 0.08496391292272984, 0.0, 0.0, 0.5183827483305287, 0.703065773125918, 0.4814340077714492, 0.0, 0.0, 0.0, 0.12053001147739661, 0.0, 0.07320101959394086, 0.0, 0.0, 0.5105579893076974, 0.6674329003953465, 0.7892434941755087, 0.051355650714931346, 0.4403973256963498, 0.0, 0.01884360978410253, 0.0, 0.0, 0.42539452394686605, 0.1591995319925085, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17375879569486846, 0.0, 0.0, 0.0, 0.0, 0.1721016330265864, 0.0, 0.00044047585032663307, 0.1672932604423309, 0.18102660031449758, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004373654797423859, 0.0, 0.0, 0.08031885873943684, 0.0, 0.0, 0.12088873452345646, 0.0, 0.25447674137867604, 0.0, 0.20210883042048103, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05466434515545004, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005119594240948603, 0.0, 0.2461616206228127, 0.0, 0.0, 0.40062152777610743, 0.0, 0.0, 0.0, 0.4450914546665199, 0.0, 0.0, 0.0, 0.25078704499066257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6437873083636174, 0.0, 0.08986536930257488, 0.05459463157090123, 0.0, 0.0, 0.1617782592438168, 0.0, 0.0, 0.0, 0.0, 0.510293956173341, 0.0, 0.0, 0.0, 0.0, 0.0539939979224501, 0.06022554282071448, 0.0, 0.0, 0.0017903697912685446, 0.10539843894447092, 0.0, 0.007216901945678346, 0.0, 0.0, 0.0, 0.22684974207663636, 1.4564553082728662, 0.182720528082649, 0.06653876275957457, 0.0, 0.6274289004185675, 0.0, 0.5406773490882926, 0.27822503396119075, 0.09306814986560254, 0.29383387946651635, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6230315233142055, 0.9648450369390001, 0.5108864746688708, 0.0, 0.36840186712596623, 0.22805280632725022, 0.3227837297104921, 0.0, 0.0, 1.0240377781477865, 1.591691363735423, 0.0, 0.7314261723085571, 0.0, 0.0, 0.45960855697902075, 0.0, 0.43090812739194506, 0.0, 0.3151566241591431, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3316537279743774, 0.27121053456867833, 0.0, 0.0, 0.0, 0.4001441487163798, 0.5176883689695168, 0.709966180421066, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2820721974309868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03908614977726766, 0.3083419381268706, 0.39485756407874356, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11511559935873378, 0.014949071584157462, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03837527794969671, 0.5550679626138529, 0.0, 0.5726479000113842, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07921974732295421, 0.0, 0.0, 0.0, 0.0, 0.0035899619569867425, 0.0, 0.0, 0.2145099852146676, 0.0, 0.0, 0.0, 0.0, 0.21950879525087302, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09449503481586544, 0.21750142180635595, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32517302304866597, 0.0, 0.0, 0.21035924507266648, 0.0, 0.0, 0.0, 0.0, 0.23713929311152726, 0.21014969427312982, 0.0, 0.0, 0.0, 0.5438936968761621, 0.3401858622480347, 0.0, 0.0, 0.0016527476817863266, 0.0, 0.007935034693483254, 0.0, 0.0, 0.1293317927443745, 0.0, 0.0, 0.0, 0.14368792432790373, 0.0, 0.0, 0.0, 0.0, 0.35799313982296815, 0.29274964408302323, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029011045367568582, 0.0017598612427760815, 0.0, 0.0, 0.052226530139838453, 0.0, 0.0, 0.0, 0.0, 0.16473710872422428, 0.30447392294316244, 0.0, 0.0, 0.0, 0.01743076710707649, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0410977515599671, 0.0, 0.7547303898094697, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.30609022817115544, 0.0, 0.0, 0.0, 0.0, 0.2105854322132866, 0.5327502455990605, 0.13588517657689586, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24025222517683778, 0.0, 0.007535433506713796, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6979826303937671, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07410089446237557, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4744178097104391, 0.0, 0.0, 0.0, 0.0, 0.1876471424480227, 0.28765608703745393, 0.2182401932056186, 0.04951496463333951, 0.0, 0.12909838655126593, 0.0, 0.3498317042975124, 0.0, 0.37087394843503463, 0.47981991008621333, 1.1039610273729945, 0.4455015727565212, 0.05271863458630144, 0.19600051626620313, 0.0, 0.2316343353202091, 0.0, 0.0, 0.0, 0.4641150152741525, 0.15018757716392944, 0.21321672818601478, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21465382837602517, 0.0, 0.0, 0.0, 0.00020573734093944128, 0.0, 0.0, 0.0, 0.16929708918389524, 0.0160994805386141, 0.0, 0.049657622486024976, 0.0, 0.017886560545272906, 0.1659947360027911, 0.0, 0.0, 0.0, 0.0, 0.11420185948155097, 0.0, 0.07369142147184715, 0.0, 0.33489361550116375, 0.46496602729779546, 0.0036113530199273977, 0.044355883980523376, 0.08156217107736623, 0.0, 0.006501263051750628, 0.24089225482763127, 0.0, 0.0, 0.3861226254326548, 0.020506805168434235, 0.0, 0.24677384860885976, 0.0, 0.0, 0.002169816793370778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.041148887129618034, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9769895490432172, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5923828848790257, 0.0, 0.10196835358593148, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.328835975725113, 0.0, 0.0, 0.4036325198584592, 0.0, 0.0, 0.3602983928676083, 0.0, 0.0, 0.9557725494193282, 0.0, 0.43908662544955285, 0.0, 0.0, 0.46995823158461947, 0.0, 0.14454935060909507, 0.0, 0.010668331756011213, 0.6280409324984255, 0.03247332779409237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10592998533424139, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.33399686192793854, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7833052225131492, 0.0, 0.0, 0.0, 0.24187208135853017, 0.0, 0.071730719549714, 0.0, 0.11407352111288803, 0.0, 0.44957678307373006, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5736773783460691, 0.0692607726207939, 0.0, 0.0, 0.4731102083446558, 0.7389531951966185, 0.028778055517643567, 0.22717903301955947, 0.0, 0.1436855444728547, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.49542697237169275, 0.0, 0.3454532351491738, 0.11660950163380673, 0.0, 0.0, 0.0, 0.0, 0.027794605242432064, 0.0, 0.0, 0.0, 0.132905538815286, 0.0, 0.05497259939520882, 0.0, 0.0, 1.2625457513449383, 0.39900789022393385, 0.0, 0.0, 0.0, 0.0, 0.4114559732861708, 0.4741201455820112, 0.0, 0.21077985466978477, 0.0, 0.0, 0.7439578224938339, 0.42232266256074136, 0.4876343844944301, 0.6687496612887465, 0.115118039848854, 0.0, 0.0, 0.0, 0.0, 0.05260063632046659, 0.07759581613885312, 0.028401563276091994, 0.0, 0.056334062495133036, 0.17033944709766455, 0.9153107777932757, 0.0, 0.004924424218813803, 0.057509247607595904, 0.0, 0.7491964746840728, 0.05934710743113981, 0.0, 0.0, 0.0, 0.22238712275143577, 0.4319949206677921, 0.025917686578643146, 0.031803778192995576, 0.0, 0.6741550137516903, 0.009328571558732282, 0.0, 0.0, 0.0, 0.0, 0.5515037103010108, 0.6987172178395075, 0.0, 0.0, 0.0, 0.060174729085221354, 0.0, 0.0, 0.08734749351416564, 0.6636235071641303, 0.09580942583448827, 0.0, 0.0, 0.08996354325075087, 0.04525348827838765, 0.5824434635228624, 0.05819874866882126, 0.12005968761069685, 0.0, 0.0, 0.3313826265510977, 0.0, 0.058140773587614956, 0.6127791119711469, 0.0, 0.0, 0.15047559500471339, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6662085079556846, 0.3400843601648346, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22423528728211575, 0.0, 0.0, 0.0, 0.0, 0.3636963343220375, 0.5756271502974593, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046502182852265775, 0.0, 0.04891501992848654, 0.0, 0.0, 0.0, 0.9407814186149676, 0.09733317875961926, 0.0, 0.11672934297033466, 0.0, 0.6385588104227404, 0.0, 0.022206283976929683, 0.09845615426665595, 0.03496357540242119, 0.0, 0.0, 0.0, 0.0, 0.03380456195194267, 0.18543528221865002, 0.12144811071150914, 0.0, 0.03755694741887004, 0.16907550573428723, 0.0, 0.0, 0.1443808645220955, 0.0, 0.1003230425739974, 0.12879502114342312, 0.0647357901808317, 0.0, 0.5084955858844, 0.08519692951707138, 0.007582866204885641, 0.0, 0.03198292312330168, 0.0, 0.1209623049539008, 0.0, 0.12387820451445683, 0.0, 0.0, 0.043058753609476905, 0.03493082633215086, 0.0, 0.0, 0.043777031505228374, 0.016261326799286477, 0.16693678030096587, 0.0, 0.0]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.004334271763144113, 0.19866796375858964, 0.05511378591134807, 0.37983318302160474, 0.0, 0.8329001018500983, 0.30166090609024687, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3289219868624648, 0.0, 0.15511617694464214, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18499887719318273, 0.0, 0.0, 0.0, 0.19259223593916178, 0.0, 0.0, 0.0638915620449496, 0.08125561754012361, 0.17659717140450376, 0.0, 0.0, 0.1525779960421776, 0.0, 0.0, 0.0, 0.0, 0.29196799055295863, 0.0, 0.0, 0.0, 0.5551667524029037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4594337414860906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3019846765891098, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18892258579898563, 0.0, 0.2395310548375412, 0.0, 0.359229579293753, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00028478282759787334, 0.0, 0.3432275013790356, 0.0, 0.0, 0.2972839943189292, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19540404365846636, 0.0, 0.0, 0.0, 0.0, 0.18546216890582629, 0.0, 0.0, 0.00916099623463154, 0.0, 0.034731738855626984, 0.4853088859188271, 0.0076713909171271105, 0.0, 0.0, 0.5640422262893099, 0.0, 0.5950501234938147, 0.040920156633969085, 0.0014920661060395996, 0.0, 0.08081663901361853, 0.8825202410318094, 0.0, 0.006218090636031004, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3280555235834662, 0.03812149119614576, 0.0, 0.05190957475021724, 0.0, 0.06033708819060236, 0.0, 0.10124291140603807, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5085302772239245, 0.0, 0.5334307954394755, 0.0, 0.0, 0.2328402544634388, 0.0, 0.005816161517311894, 1.5317318593263975, 0.0, 0.46738125332221536, 0.0, 0.09813163178688389, 0.4394739409933983, 0.0, 0.26102098784262384, 0.0, 0.0, 0.0, 0.0, 0.8804155352247423, 0.0, 0.0, 0.48240400321886606, 0.3763091458911055, 0.6151496795666793, 0.0, 0.27268296540705483, 0.0, 0.0014290584461454537, 0.0, 0.0, 0.0, 0.5294637260878591, 0.0, 0.0, 0.0, 0.31181862629226015, 0.0, 0.34152287293383227, 0.1986997482112381, 0.2527011428302912, 0.0, 0.434749031361829, 0.0, 0.4472075705110786, 0.4092092126159339, 0.2807873539680881, 0.17401521117970595, 0.0, 0.0, 0.43733948883443596, 0.5485693747724284, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0983266821553666, 0.05373620000037918, 0.49612300100963586, 0.0, 0.0, 1.075151264033199, 0.0, 0.18716105879611752, 0.03950202184626144, 0.0, 0.0, 0.7852572057826378, 0.0, 0.0, 0.08756438716142145, 0.27446263899702106, 0.0, 0.0, 0.07204260281080108, 0.0, 0.09291620627436281, 0.23270017215835156, 0.23824566618105675, 0.0, 0.0, 0.0, 0.13665872084048475, 0.0, 0.0, 0.0067937121060301624, 0.1164801427986044, 0.0, 0.5691621002508566, 0.4713388661713567, 0.41358181631025637, 0.0, 0.3128607440091297, 0.0, 0.0, 0.20424594336339066, 0.0, 0.0, 0.7442286193021344, 0.10553727794892508, 0.0, 0.30186901767997887, 0.0, 0.0, 0.0, 0.32291683563950796, 0.07758151598185183, 0.0, 0.347786535534979, 0.7360230359944353, 0.0, 0.0, 0.0, 0.8757273805535595, 0.41322710295268655, 0.0, 0.25679112297862333, 0.17774302673574222, 0.5841939760860391, 0.0, 0.0, 0.0, 0.13300779742001662, 0.16915583797139946, 0.0, 0.0, 0.0, 0.7164740353603845, 0.45156468002631484, 0.0, 0.27217311439601866, 0.7084784766971438, 0.06835326871026481, 0.0, 0.0, 0.0, 0.2861016237491002, 1.0700436562849107, 0.135740840434777, 0.2599664462430113, 0.45536369102376945, 0.0, 0.0, 0.0, 0.16460938932017066, 0.9424546774296569, 0.4980075807530193, 0.501649117240962, 0.9215918221852557, 0.0, 0.5227646022766553, 0.46865433734477785, 0.0, 0.1899494468105599, 0.0, 0.14204872822901377, 0.7891527088162923, 0.2800775160398023, 0.0, 0.0, 0.6038144125549446, 0.0, 0.4101280976499608, 0.15813547044885462, 0.4381740566617935, 0.0025678619479343042, 0.5913196381458786, 0.01581382625018507, 0.4317825799661969, 0.0, 0.5361217114844467, 0.16404576969544252, 0.0, 0.03623369485950333, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19327505078226082, 0.1125279795645968, 0.0, 0.38171505913646114, 0.0, 0.0012820843611261621, 0.0, 0.0, 0.017018867107690273, 0.0, 0.018573326277702022, 0.7755881641075008, 0.12996991545193906, 0.0, 0.18005632805213245, 0.0, 0.2451805301156947, 0.0, 0.3747092870507497, 0.0, 0.4781929115858312, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.35214721497251084, 0.0, 0.020304118651362432, 0.14466279308909658, 0.626862644216891, 0.0, 0.0, 1.5549351131665947, 0.30737844662289215, 0.0, 0.0, 0.0, 0.0, 0.009701873820892715, 0.2520412914553624, 0.018396624198184493, 0.0, 0.7982268230101296, 0.0, 0.9201682818000929, 0.0, 0.0, 0.7342011144064367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09396246898802936, 0.0, 0.5073258744317697, 0.22284199906817412, 0.10151898941699102, 0.03180992568768135, 0.0, 0.5543686635557524, 0.0, 0.0, 0.0, 0.22367207355552704, 0.0, 0.0, 0.0, 0.40880306935546484, 0.0, 0.42113696363931935, 0.0, 0.0, 0.0, 0.43326306412219423, 0.39232717474974355, 0.0, 0.0, 0.0, 0.013675206005982276, 0.0, 0.2603519242467926, 0.3502025254743841, 0.14312660068897712, 0.34775162340880994, 0.20310882214946477, 0.0, 0.27127891969267615, 0.0, 0.0, 0.020541404680713544, 0.0, 0.0, 0.1991870263338475, 0.0, 0.0, 0.2456237488004554, 0.12123860127246498, 0.2079074067296303, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24646978770136238, 0.15225808974571345, 0.0, 0.0, 0.46988488666249073, 0.16461741428636234, 0.4415386194506142, 0.05631807188893752, 0.0611318669096905, 0.0, 0.0, 0.0, 0.5215534136524774, 0.0, 0.0, 0.6274626509368973, 0.038256585847320265, 0.530070634494204, 0.0, 0.7877809268797783, 0.25601250351282806, 0.37534186876141573, 0.700013095645165, 0.0, 0.29431110179251513, 0.22882177649965688, 1.0569304890861846, 0.0, 0.0, 0.0, 0.0, 0.02833923205698933, 0.02572736738919585, 0.0, 0.1150475064446459, 0.24371977071087828, 0.0, 0.0, 0.044121908414131224, 0.0771055384425919, 0.09695789652483547, 0.0, 0.0, 0.0, 0.12020713596947674, 0.045249684273424934, 0.8721213827038133, 0.0, 0.11731035534021127, 0.37569616707373005, 0.0, 0.0, 0.9570606189270042, 0.9086284112098039, 0.20027308709305888, 0.4268041763647709, 0.0, 0.0, 0.015909944043088663, 0.0, 0.7658973441527888, 0.0, 0.19507759787979717, 0.3226660152512004, 0.23629991340839918, 0.0, 0.13848101841219138, 0.0, 0.0, 0.24578615843203896, 0.0, 0.0, 0.10167993256702677, 0.0, 0.0, 0.12538470338440244, 0.9934363459809055, 0.10613146591697438, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6421265863141966, 0.0, 0.5400344618364347, 0.025731716559651077, 0.0, 0.0, 0.0, 0.007521097208030019, 0.5455660054203588, 0.0, 1.1209603429913297, 0.0, 0.0, 0.5234607155600556, 0.0, 0.023977651748011766, 0.0, 0.0, 0.0, 0.27798322874225667, 0.0, 0.35612425891926536, 0.0, 0.7529913555346315, 0.6214420882570796, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12146506806205652, 0.0, 0.3210215267482459, 0.0, 0.0, 0.0, 0.33419799384234544, 0.0, 0.0, 0.15359727591834285, 0.19534099821264672, 0.525863863274946, 0.0, 0.0, 0.34569678733330644, 0.0, 0.0, 0.3415674397857982, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.523004359259986, 0.0, 0.22235180304591923, 0.0, 0.00635695661054767, 0.0, 0.0, 0.0843846185513356, 0.0, 0.0, 0.0, 0.8855039996037297, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27294552017018114, 0.0, 0.3412878895624823, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5864608505347954, 0.0, 0.10380099346078346, 0.02524889717437322, 0.0, 0.0, 0.38157075730498896, 0.0, 0.0, 0.0, 0.45469484904050655, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26459586877877683, 0.18314523505716396, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22372814141562178, 0.0, 0.0, 0.0, 0.6276845275284666, 0.18331203344516112, 0.25689720406507865, 0.04048914090414101, 0.0, 0.016969058333515752, 0.0, 0.5911567891086366, 0.37358991094373184, 0.21597413111529512, 0.09535966106843696, 0.021909623318208237, 0.49412659112391777, 0.39229708641560146, 0.0, 0.0, 0.5239905526116051, 0.22383442432789932, 0.0, 0.408761833081477, 0.7858251636352953, 0.0, 0.03095169444374481, 1.0134328993353359, 0.0, 0.5783663988186404, 0.023349871375665725, 0.4068090650141155, 0.3701047391436106, 0.7170357796952346, 0.31327392774306395, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.39350494784782397, 0.07595368484327951, 0.4868292236818003, 0.046986031631648606, 0.530207151960747, 0.01037806421927761, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05535788985307855, 0.7394134258901907, 0.17106635844034493, 0.9821443208953105, 0.0, 0.008962807708770178, 0.0, 0.0, 0.11897566020800357, 0.0, 0.0, 0.0, 1.2828090910806784, 0.0, 0.4691443493685695, 0.0, 0.07022467062008277, 0.18231155361607748, 0.41302392682414213, 0.0, 0.13696413696930718, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.423686950315378, 0.0, 0.5297732126841366, 0.0, 0.10086209606266386, 0.4105665706595916, 0.2899236467445781, 0.08479167779863508, 0.0, 1.1607169616195545, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44056670549109944, 0.0036426275414389976, 0.22268017654499572, 0.70259131988822, 0.021981713208965886, 0.0, 0.0, 0.0, 0.6644482698446481, 0.5559910462571956, 0.9081368976941899, 0.9545466439826781, 0.0, 0.5800820874802947, 0.6131061961157059, 0.0, 0.3387938943904664, 0.0, 0.41233232521209184, 0.6892320892052487, 0.9168247018477867, 0.7592095444656833, 0.0, 0.7080274090242662, 0.0, 0.0, 0.7409103227795685, 0.4891910517462003, 0.0, 0.0, 0.6996898878138225, 0.18201720925245757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.033060035104523045, 0.0, 0.0, 0.0, 0.0, 0.0010434833431631984, 0.0, 0.0, 0.0, 0.010921241238865733, 0.0, 0.015498170387323498, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.011618017340433275, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2104054739321471, 0.0, 0.0, 0.0, 0.051249741424478176, 0.0, 0.0, 0.0, 0.09744956100917274, 0.0, 0.0, 0.0, 0.0, 0.10766993925868745, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18951483497887683, 0.5969374604132631, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6248091001560899, 0.0, 0.0, 0.0, 0.0, 0.18617398114562853, 0.0530079909103574, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14076422137873648, 0.3823151552281139, 0.28535858102685935, 0.3054264047421474, 0.0, 0.0, 0.5425991952026914, 0.16566917168527906, 0.0, 0.0, 0.24572721112234908, 0.0, 0.0, 0.311993347128524, 0.0, 1.0231061248638629, 0.5939954507294103, 0.5983388707717968, 0.7851882761904205, 0.0, 0.28209866162610053, 0.46470151179975694, 0.0, 0.22767102275324697, 0.0, 0.0, 0.3351791998251741, 0.0, 0.0, 0.0, 0.3258354466053841, 0.29514851487698524, 0.25858133097678015, 0.1886151008053812, 0.5226293862659805, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0442888167727012, 0.0, 0.002505192641426779, 0.0, 0.0, 0.07664740890754863, 0.0, 0.0, 0.013363010227595206, 0.00048725362450601585, 0.002419244088482629, 0.026391726291740327, 0.0, 0.0, 0.03460717393330891, 0.0, 0.13624247986958654, 0.0, 0.0, 0.0, 0.0, 0.0, 0.012449069569846, 0.0, 0.016951747875799564, 0.0, 0.0197038621774241, 0.0, 0.033062191640471625, 0.07310509907314719, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06556034095953286, 0.0, 0.02434740964367002, 0.0, 0.0, 0.13592547532623306, 0.0, 0.030022610188286405, 0.03795734899490777, 0.008699370747195389, 0.0, 0.0, 0.18940737674761182, 0.16014434992779022, 0.0058393216511455045, 0.0, 0.3162824676834449, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14919154588027264, 0.0, 0.20315232851529888, 0.0, 0.27582528532656464, 0.0, 0.3962223404212856, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00142596300027198, 0.0, 0.008781597914028754, 0.2917830655969515, 0.0, 0.0, 0.3010196130390429, 1.085161420061463, 0.0, 0.8818413438369698, 0.0, 0.14807253735972709, 0.6682230613653689, 0.6738718955158736, 0.0, 0.2921120382906695, 0.0, 0.23016863424694362, 0.44343897402347887, 0.0, 0.0, 1.2859761704109314, 1.188418751121335, 0.0, 0.4620501506594876, 0.23396469855670338, 0.0, 0.03498671823904876, 0.0, 0.0, 0.3392611399043929, 0.20497564811318061, 0.0, 0.4183535169904413, 0.20649711391931772, 0.520902106226398, 0.0, 0.0, 0.16125806820737418, 0.5576988707246249, 0.0, 0.0, 0.0, 0.11391623120681071, 0.0, 0.0, 0.09151851725619714, 0.0, 0.0, 1.197254000111945, 0.0, 0.8775820846458859, 0.0, 0.5629797627532018, 0.6687057520979063, 0.341227000414515, 0.0, 0.25482576175079585, 0.0, 0.39537376259476137, 0.4437592920364036, 0.0, 0.0, 0.5927285333298421, 0.651986303075751, 0.0, 1.0434591895456948, 0.0, 0.0, 0.03501199088471498, 0.0, 0.0, 0.3395062050893736, 0.15619471223870085, 0.0, 0.41865571453083017, 0.20664627704903807, 0.48238135206809674, 0.08860575544817058, 0.0, 0.005695035181786341, 0.42497543210880456, 0.0, 0.23934194260454025, 0.30438882267274336, 0.2874361482000896, 0.0, 0.0, 0.6245971595264426, 0.0, 0.3639559852559372, 0.0, 0.0, 0.20575691959192335, 0.0, 0.5994751724692355, 0.0, 0.0, 0.0, 0.0, 0.002904710270589501, 0.0, 0.27722048222724693, 0.15720637186052522, 0.0, 0.40582979792580204, 0.3276141191929195, 0.0, 0.5216472712210337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.022828121623522435, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.111114554054197, 0.0, 0.0, 0.005523835481493179, 0.12589753624924738, 0.4223352609451343, 0.19512225997871732, 0.9646462752755526, 0.0, 0.0, 0.908234546074678, 0.0, 0.1303083320340461, 0.4180115467796097, 0.3502002628164635, 0.005797584702932196, 0.620011620521792, 0.6673813159226286, 0.0030737631986123407, 0.0, 0.42144642014638856, 1.0414378536891689, 0.6289622414694364, 1.5563606265339154, 0.08385396416867873, 0.3115994197854627, 0.7117829870894571, 0.6381078265340546, 0.0, 0.23989801450652898, 0.0, 0.5826228436020011, 0.8457142287971168, 0.0, 0.0, 0.0, 1.0193786877434905, 0.0, 0.0, 0.19971832516875276, 0.5533950636153777, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21472741909783344, 0.39082851888093567, 0.44716245502350144, 0.2879713896328549, 0.5511368948723377, 0.33565164359388877, 1.3517828371888283, 0.0, 0.09957607530690628, 0.0, 0.0, 0.26103163435011795, 0.3965287786994862, 0.6597151598792015, 0.0, 0.34286845579856556, 0.3900059867245693, 0.34423839922938515, 0.0, 1.2842745238771571, 0.3694211002080512, 0.0, 0.05489702502604951, 0.3645945046142821, 0.0, 0.0, 0.08041277613458127, 0.2893532857853331, 0.0, 0.5419495915870312, 0.70973704371772, 0.06597297072421819, 0.0, 0.0, 0.28417074423649047, 0.45673560467870195, 0.1772454725351981, 0.22541615615699262, 0.08077018346809645, 0.5662548477384789, 0.07678831671440492, 0.7573984424681688, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4826509895037858, 0.0, 0.7156459126461995, 0.0, 0.0, 0.0, 0.0, 0.0, 0.013563432420802306, 0.4559162518278489, 0.0, 0.0, 0.0, 0.0, 0.26262283944881243, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16505781512417061, 0.2933206286622639, 0.0, 0.0, 0.0, 0.0, 0.40289003757510067, 0.0, 0.0, 0.0, 0.6372941893353361, 0.0, 0.6237934507673457, 0.8070702584067075, 0.0, 0.0, 0.3379623279083573, 0.0, 0.46129991809862586, 0.7333015288992237, 0.21031442023566344, 0.0, 0.7041420713561054, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7760176053652288, 0.0, 1.0534236649773678, 0.0, 0.0, 0.8070780011372765, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4823716017908521, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6208306891807599, 0.0, 0.0, 0.01732988822073383, 0.2738833349341264, 0.10672374403860475, 0.0, 0.008043590060480383, 0.0, 0.055277084044920086, 0.0, 0.0, 0.17943961322559207, 0.0, 0.0, 0.0, 0.0, 0.0, 0.718108290096912, 0.0, 0.0, 0.0, 0.008728384689335622, 0.0, 0.1697763404331079, 0.11586384141065409, 0.0, 0.0, 0.0, 0.8848305575683707, 0.0, 0.8449968950182224, 0.0, 0.0, 0.0, 0.6706152313255382, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8308196053978146, 0.0, 0.9175002824131868, 0.7530109173431534, 0.022342425693822682, 0.0, 0.0035915524463436964, 0.15288943835905894, 0.0, 0.5199425421439203, 0.11917728725476327, 0.3521011644457409, 0.0, 0.822488739774635, 0.513543493422637, 0.2981570434312181, 0.0, 0.0, 1.2701086711578897, 0.0, 0.11247893732510689, 0.0, 0.039332390318575425, 0.0, 0.11102635670488926, 0.0, 0.15118325075382752, 0.0, 0.1757278339799435, 0.0, 0.2948633760880991, 0.15371975197149906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04453230950399372, 0.0, 0.05568267952698087, 0.0, 0.21714106205060016, 0.0, 0.0, 0.0, 0.0, 0.7213227431120439, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2701718137836067, 0.0, 0.06123281377737304, 0.4007297534572718, 0.0, 0.0, 0.02350606599699272, 0.0, 0.47270164239805296, 0.39554302818161685, 0.39843532224568856, 0.0, 0.0, 0.46004399190355705, 0.41242580548884994, 0.0, 0.15086754157289264, 0.0, 0.0, 0.5466072621606027, 0.18414300130678235, 0.2087681866233734, 0.0, 0.5313695523968773, 0.0, 0.0, 0.2807883504872339, 0.34802019073798685, 0.0, 0.09776175774612722, 0.1924014129464173, 0.0, 0.0, 0.0, 0.2995245510564702, 0.1439415371971276, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09612835370305864, 0.0, 0.07178793274997196, 0.0, 0.0, 0.0, 0.529229742886101, 0.0, 0.0, 0.5898615183638936, 0.0, 0.1996504875270556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07685007162501065, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4724449949223617, 0.0, 0.21985358976027652, 0.0, 0.0, 0.0, 0.6511036698044336, 0.5394783324223208, 0.9048355234024855, 0.0, 0.0, 0.0, 0.008134079103649166, 0.17236516549262873, 0.0, 0.7108281927774538, 0.0, 0.0, 0.0, 0.8245834715993663, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22989626507902333, 0.12442621872484774, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3037122713618223, 0.0, 0.0, 0.008259351424073042, 0.4378900919766154, 0.05086408498890661, 0.31974807102322866, 0.0, 0.0, 0.7960980638875322, 0.0689135689704732, 0.0, 0.0, 0.0, 0.20359294387478752, 0.9097633301509839, 0.0, 0.6841090251831579, 0.0, 0.6154584825649704, 0.7335150023327748, 1.015637287349907, 0.0, 0.0779165260149525, 1.1277817941657742, 0.0, 0.0, 0.3457097793442966, 0.6958114560471119, 0.22297907055084815, 0.02617735461213243, 0.8271866794310433, 0.0, 0.25383801660715655, 0.0, 0.6564805026462143, 0.4519424562793308, 0.8175733700968422, 0.26495100977979114, 0.0, 0.0, 0.0, 0.33910693050583907, 0.0, 0.0, 0.0, 0.4889218480481046, 0.0, 0.3925649791995639, 1.5627863234111485, 0.8201598086100989, 0.28474440170274185, 1.0514838770367962, 0.010290531779792767, 0.0, 0.0, 1.5282247448720891, 0.4202365445740981, 0.38631591015261757, 0.07827208426350975, 0.002001482371009478, 0.19978631068641475, 0.10840878806592323, 0.8849580765325739, 0.7025926608640433, 0.21468725597950544, 0.6515266028885637, 0.304659479667613, 0.0, 0.5203661079080213, 0.1989832785613875, 0.22866153178235926, 0.2129788116497342, 0.0511368043793991, 0.0, 0.06963236972450947, 0.0, 0.08093717687353573, 0.0, 0.3254291820176872, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4944791980843742, 0.5417407856384763, 0.0, 0.4343792686365096, 1.5442785077006684, 0.0, 0.13746522377571999, 0.0, 0.0, 0.0, 0.0, 0.01933245239450143, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44623451745418, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.30502005455201636, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.014872981553739924, 0.0, 0.0, 0.0007393802182031884, 0.0, 0.14653699929908884, 0.0, 0.0, 0.26188312990151436, 0.028159286104530473, 0.0, 0.4084686341089707, 0.9235151006259961, 0.5957064186534903, 0.0, 0.0, 0.5535709817494249, 0.0, 0.25891613288066156, 0.07783302925410085, 0.2939591160629263, 0.1987201643010643, 0.0, 0.09767541007114018, 0.4120929351702914, 0.22225830848448824, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13739476210353194, 0.0, 0.037597515302596925, 0.0, 0.0, 0.31874062595288627, 0.33536722163001637, 0.0, 0.0, 0.0, 0.48352996362981304, 0.0, 0.38851289261478805, 0.6830254018960756, 0.3364461001285706, 0.8253161071254982, 0.0, 0.2348841918025421, 0.0, 0.4205219693225024, 0.5314960091024892, 0.0, 0.0, 0.10178270195612651, 0.0, 0.0, 0.780835547454152, 0.5872223143240599, 0.2503853190515238, 0.0, 0.0, 0.6150976289535472, 0.0, 0.09445718365268194, 0.0, 0.0, 0.17331386223779208, 1.5139967025892487, 0.0, 0.0031631037123804793, 0.0, 0.0, 0.20592512324808152, 0.0, 0.03635874582185372, 0.0, 0.20018457152414249, 0.22068196040992705, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), 42), 42)),) julia> @finch_code begin Ct .= 0 for i = _ @@ -498,7 +498,7 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.18463927542167063, 0.16872726618738124, 0.0, 0.0, 0.0, 0.5894648191942263, 0.0, 0.0, 0.4399979683038884, 0.4872396182365841, 0.0, 0.0, 0.0, 0.5232587908717465, 0.0, 0.028458776980687873, 0.0, 0.1912882078151879, 0.5164204427507948, 0.25375520169397275, 0.7988048308846816, 0.548219404354131, 0.0, 0.0, 0.0, 0.08973042123875676, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16269102551813888, 0.0, 0.6368094288799442, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03708423534085979, 0.16845626013473977, 0.6588748971102081, 0.010877416543996312, 0.0, 0.0, 0.0, 0.44123232519423083, 0.0, 0.24002669576156066, 0.0, 0.0, 0.0, 0.21689234576879324, 0.2098895841423717, 0.6161647640351655, 0.4776903273077015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6355594744363152, 0.0, 0.0, 0.08457949502263125, 0.0, 0.0, 0.6901459039432658, 0.0, 0.0, 0.0, 0.057641486402300816, 0.0, 0.0, 0.09549316762404748, 0.09211299074367744, 0.11795836585190977, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0467877508869465, 0.0, 0.0, 0.0, 0.0, 0.04370712736779799, 0.281244207688617, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2030486542718697, 0.0, 0.5182178756464231, 0.0, 0.0, 0.0, 0.057729640414041494, 0.0, 0.0, 0.0, 0.0, 0.19354540299708142, 0.06300918519480127, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1478355026964281, 0.0, 0.0, 0.0, 0.541165159810693, 0.0, 0.0, 0.0, 0.16407931870757664, 0.2057712545151301, 0.32812733654993936, 0.0, 0.24913050204963633, 0.20974603114415158, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5086673274457614, 0.32467254520642835, 0.0, 0.22357645210013752, 0.0, 0.0, 0.0, 0.15908397194054766, 0.0, 0.5866968618616202, 0.21349654033737236, 0.243214867615369, 0.0, 0.0, 0.27374855832219774, 0.0, 0.3075930851551728, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44087523604465795, 0.22505682646241645, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2406824670174747, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4353583318013107, 0.0, 0.0, 0.0, 0.0, 0.42257756079609887, 0.0, 0.16328692344233348, 0.7239663574899861, 0.253917129058883, 0.0, 0.0, 0.0, 0.012941670285380298, 0.005948300091521438, 0.6648934966409066, 1.0229318994166612, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13578338949001834, 0.4197116456419966, 0.0, 0.947053670891027, 0.0, 0.13486088669396906, 0.0, 0.6620124726194103, 0.0, 0.6496849904621673, 0.0, 0.0, 0.7890806801928671, 0.01841465881846702, 0.27914669822772004, 0.0, 0.029516583729604803, 0.0, 0.0, 0.018864268719240455, 0.24394303159635272, 0.0, 0.5741603792214627, 0.3080365664801448, 0.6155081898538994, 0.2367816204152454, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17416434327376132, 0.0, 0.0, 0.0, 0.0, 0.16269692366253372, 0.0, 0.3491221627973697, 0.0, 0.0, 0.0, 0.0, 0.0, 0.896220207410521, 0.13858473312625733, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2148948115594729, 0.1029957040349639, 0.0, 0.10833979410008034, 0.0, 0.0, 0.23454757178184932, 0.0, 0.2155791117194733, 0.0, 0.22311080318652476, 0.0, 0.0, 0.0, 0.0, 0.07959294795619429, 0.0, 0.17163567622890405, 0.07283994445558169, 0.0, 0.0, 0.0, 0.08654379427684032, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16368166253985994, 0.0, 0.17071385720442764, 0.34758616988919516, 0.0, 0.0, 0.0, 0.0, 0.25336804558610515, 0.0, 0.032257457723339725, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2136279714073461, 0.0, 0.24003957209260046, 0.21303254632455026, 0.006511170502708404, 0.383310313899178, 0.0, 0.0, 0.0, 0.1337677376744651, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0646519260588245, 0.0, 0.0, 0.0, 0.31350938881953055, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20384728982176575, 0.0, 0.0, 0.0, 0.0, 0.05670575896106868, 0.0, 0.05964802423259749, 0.0, 0.0, 0.0, 0.4488563568162377, 0.11869016538841153, 0.0, 0.07667734536959822, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.040450967971474544, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09480431131127824, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0016369185703860613, 0.0, 0.0017218526009009176, 0.0, 0.0, 0.0, 0.0, 0.003426215245260554, 0.0, 0.002213436040060287, 0.0, 0.0, 0.0, 0.0, 0.028624781651490867, 0.0, 0.0, 0.0917221717112923, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03948493179664919, 0.0998678691104795, 0.0, 0.0, 0.0, 0.0, 0.0519314302968116, 0.019753641949088564, 0.0, 0.0, 0.08679325173985959, 0.0, 0.0, 0.44412542864463755, 0.0, 0.0, 0.0, 0.25440324223859473, 0.0, 0.06322962025433154, 0.0, 0.10055420420038351, 0.08043066558940987, 0.01930551218305079, 0.019941838639940274, 0.025537187307223392, 0.0, 0.2186623932992767, 0.06407227122111338, 0.0254835950299198, 0.0, 0.0, 0.6628636898477958, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5422666551724673, 0.6870145051652384, 0.0, 0.0, 0.1501651963322761, 0.019574736086580828, 0.0, 0.0, 0.03589870327691644, 0.0, 0.026565876114361182, 0.0, 0.0, 0.029264986204643254, 0.0, 0.0, 0.01893195304872942, 0.046727577005066426, 0.0, 0.0, 0.28025040572174376, 0.0, 0.018913093854322344, 0.0, 0.0, 0.0, 0.04894945277637971, 0.006583695531171352, 0.3875798367774556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3292155284261099, 0.04344067936293723, 0.0653720550702903, 0.0, 0.0, 0.22649528787365272, 0.018049730534704385, 0.14615138313733889, 0.0, 0.0, 0.0, 0.0, 0.20611785399916963, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31511052111518423, 0.0, 0.03672395965581389, 0.0, 0.0, 0.9552411806377301, 0.0, 0.0, 0.0, 0.3512720117094026, 0.0, 0.7814509194588117, 0.9900444949397926, 0.0, 0.2416698136762867, 0.0, 0.15594310090475377, 0.37345396038999507, 0.13378200524387487, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0037871796529251873, 0.0, 0.07132197093797825, 0.0, 0.0, 0.4038639203443338, 0.0, 0.007926901739731977, 0.0, 0.005121012178382578, 0.4483265473520345, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19545324009971515, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.015822792815906598, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2654026801406409, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005338269605792754, 0.3841199941370228, 0.003089715236949895, 0.0, 0.0, 0.0, 0.2702896727602311, 0.0061480462629685435, 0.0, 0.0077716018517988575, 0.0, 0.0, 0.5060334906800565, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5325221835704804, 0.4354711371945976, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4529112439588725, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.42175363431898494, 0.540090698333841, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1429447733494866, 0.0, 0.0, 0.17383910328410926, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7778438721037507, 0.7592283162924894, 0.27027978053916946, 0.9680808201913975, 0.0, 0.0, 0.0, 0.0, 0.23721687040615713, 0.0, 0.0, 0.0, 0.214724244927467, 0.0, 0.6713747276751851, 0.2691029964691732, 0.24957193666978766, 0.04174679102400021, 0.0, 0.0, 0.44623226966778873, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9739425217687773, 0.3878431688435761, 0.0, 0.0, 0.0, 0.0, 0.5905353658253105, 0.0, 0.41099451149099264, 0.46959062394023404, 0.38400872176268547, 0.0, 0.4974135902693747, 0.0, 0.0, 0.0, 0.9154557174508635, 0.2586557560688982, 0.09838729964211103, 0.4023736739495505, 0.0, 0.43229262167712557, 0.25909478937718255, 0.0, 0.0, 0.9527916935554207, 0.3993878193283669, 0.4377172055566821, 0.0, 0.0, 0.02448196261221554, 0.28590941544125414, 0.0, 0.4006023808751287, 0.03918308759508126, 0.0, 0.2882716435062163, 0.0, 0.0110856134215592, 0.37363494354124355, 0.049778285574341975, 0.0, 0.0, 0.9269077110105975, 0.31315811797299237, 0.0, 0.012303674452273154, 0.015429991708474198, 0.0, 0.0, 0.014446013487908171, 0.04123415495113678, 0.03371931705724562, 0.29538913191692134, 0.0, 0.3349006097039049, 0.23542836206424417, 0.23052114963877735, 0.31614042332280545, 0.0, 0.0, 0.11683083227872514, 0.0, 0.0, 0.0006114799040197484, 0.10975727273531571, 0.0, 0.004295508139252644, 0.05107901709661121, 0.0, 0.9334562674798996, 0.0, 0.0, 0.0, 0.0, 0.5880007983611341, 0.06450382436313898, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11800940272957328, 0.0, 0.1899751304440791, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.273744879534597, 0.0, 0.0, 0.2671580962806136, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3492510086210155, 0.0, 0.3080038714015672, 0.0, 0.0, 0.2221605109577772, 0.0, 0.0, 0.0, 0.0, 0.07999688285015112, 0.06742807554519747, 0.08634727349135116, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10258077598728532, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5012203954355052, 0.0, 0.0, 0.0, 0.08111247475296846, 0.0, 0.0, 0.12138201096876389, 0.0, 0.08982551378065248, 0.0, 0.0, 0.12126628140327211, 0.0, 0.0, 0.07844895363581271, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07837080617454226, 0.0, 0.0, 0.0, 0.20283344995989894, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1282379216751728, 0.033796057874619194, 0.0, 0.09653017040380268, 0.0, 0.08822574416521244, 0.01404236183038609, 0.056929725378038414, 0.0, 0.15526439596527059, 0.0, 0.0, 0.0, 0.03781410167223484, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2529010219858623, 0.3238608478009693, 0.0, 0.0, 0.1407409609998849, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.329852425046806, 0.0, 0.0, 0.33341239592531074, 0.45526487856119674, 0.0, 0.33690660829115365, 0.08120142522000469, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08802821410799472, 0.39029129939250945, 0.13688708765693952, 0.0, 0.08496391292272984, 0.0, 0.0, 0.5183827483305287, 0.703065773125918, 0.4814340077714492, 0.0, 0.0, 0.0, 0.12053001147739661, 0.0, 0.07320101959394086, 0.0, 0.0, 0.5105579893076974, 0.6674329003953465, 0.7892434941755087, 0.051355650714931346, 0.4403973256963498, 0.0, 0.01884360978410253, 0.0, 0.0, 0.42539452394686605, 0.1591995319925085, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17375879569486846, 0.0, 0.0, 0.0, 0.0, 0.1721016330265864, 0.0, 0.00044047585032663307, 0.1672932604423309, 0.18102660031449758, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004373654797423859, 0.0, 0.0, 0.08031885873943684, 0.0, 0.0, 0.12088873452345646, 0.0, 0.25447674137867604, 0.0, 0.20210883042048103, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05466434515545004, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005119594240948603, 0.0, 0.2461616206228127, 0.0, 0.0, 0.40062152777610743, 0.0, 0.0, 0.0, 0.4450914546665199, 0.0, 0.0, 0.0, 0.25078704499066257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6437873083636174, 0.0, 0.08986536930257488, 0.05459463157090123, 0.0, 0.0, 0.1617782592438168, 0.0, 0.0, 0.0, 0.0, 0.510293956173341, 0.0, 0.0, 0.0, 0.0, 0.0539939979224501, 0.06022554282071448, 0.0, 0.0, 0.0017903697912685446, 0.10539843894447092, 0.0, 0.007216901945678346, 0.0, 0.0, 0.0, 0.22684974207663636, 1.4564553082728662, 0.182720528082649, 0.06653876275957457, 0.0, 0.6274289004185675, 0.0, 0.5406773490882926, 0.27822503396119075, 0.09306814986560254, 0.29383387946651635, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6230315233142055, 0.9648450369390001, 0.5108864746688708, 0.0, 0.36840186712596623, 0.22805280632725022, 0.3227837297104921, 0.0, 0.0, 1.0240377781477865, 1.591691363735423, 0.0, 0.7314261723085571, 0.0, 0.0, 0.45960855697902075, 0.0, 0.43090812739194506, 0.0, 0.3151566241591431, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3316537279743774, 0.27121053456867833, 0.0, 0.0, 0.0, 0.4001441487163798, 0.5176883689695168, 0.709966180421066, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2820721974309868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03908614977726766, 0.3083419381268706, 0.39485756407874356, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11511559935873378, 0.014949071584157462, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03837527794969671, 0.5550679626138529, 0.0, 0.5726479000113842, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07921974732295421, 0.0, 0.0, 0.0, 0.0, 0.0035899619569867425, 0.0, 0.0, 0.2145099852146676, 0.0, 0.0, 0.0, 0.0, 0.21950879525087302, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09449503481586544, 0.21750142180635595, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32517302304866597, 0.0, 0.0, 0.21035924507266648, 0.0, 0.0, 0.0, 0.0, 0.23713929311152726, 0.21014969427312982, 0.0, 0.0, 0.0, 0.5438936968761621, 0.3401858622480347, 0.0, 0.0, 0.0016527476817863266, 0.0, 0.007935034693483254, 0.0, 0.0, 0.1293317927443745, 0.0, 0.0, 0.0, 0.14368792432790373, 0.0, 0.0, 0.0, 0.0, 0.35799313982296815, 0.29274964408302323, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029011045367568582, 0.0017598612427760815, 0.0, 0.0, 0.052226530139838453, 0.0, 0.0, 0.0, 0.0, 0.16473710872422428, 0.30447392294316244, 0.0, 0.0, 0.0, 0.01743076710707649, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0410977515599671, 0.0, 0.7547303898094697, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.30609022817115544, 0.0, 0.0, 0.0, 0.0, 0.2105854322132866, 0.5327502455990605, 0.13588517657689586, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24025222517683778, 0.0, 0.007535433506713796, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6979826303937671, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07410089446237557, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4744178097104391, 0.0, 0.0, 0.0, 0.0, 0.1876471424480227, 0.28765608703745393, 0.2182401932056186, 0.04951496463333951, 0.0, 0.12909838655126593, 0.0, 0.3498317042975124, 0.0, 0.37087394843503463, 0.47981991008621333, 1.1039610273729945, 0.4455015727565212, 0.05271863458630144, 0.19600051626620313, 0.0, 0.2316343353202091, 0.0, 0.0, 0.0, 0.4641150152741525, 0.15018757716392944, 0.21321672818601478, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21465382837602517, 0.0, 0.0, 0.0, 0.00020573734093944128, 0.0, 0.0, 0.0, 0.16929708918389524, 0.0160994805386141, 0.0, 0.049657622486024976, 0.0, 0.017886560545272906, 0.1659947360027911, 0.0, 0.0, 0.0, 0.0, 0.11420185948155097, 0.0, 0.07369142147184715, 0.0, 0.33489361550116375, 0.46496602729779546, 0.0036113530199273977, 0.044355883980523376, 0.08156217107736623, 0.0, 0.006501263051750628, 0.24089225482763127, 0.0, 0.0, 0.3861226254326548, 0.020506805168434235, 0.0, 0.24677384860885976, 0.0, 0.0, 0.002169816793370778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.041148887129618034, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9769895490432172, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5923828848790257, 0.0, 0.10196835358593148, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.328835975725113, 0.0, 0.0, 0.4036325198584592, 0.0, 0.0, 0.3602983928676083, 0.0, 0.0, 0.9557725494193282, 0.0, 0.43908662544955285, 0.0, 0.0, 0.46995823158461947, 0.0, 0.14454935060909507, 0.0, 0.010668331756011213, 0.6280409324984255, 0.03247332779409237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10592998533424139, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.33399686192793854, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7833052225131492, 0.0, 0.0, 0.0, 0.24187208135853017, 0.0, 0.071730719549714, 0.0, 0.11407352111288803, 0.0, 0.44957678307373006, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5736773783460691, 0.0692607726207939, 0.0, 0.0, 0.4731102083446558, 0.7389531951966185, 0.028778055517643567, 0.22717903301955947, 0.0, 0.1436855444728547, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.49542697237169275, 0.0, 0.3454532351491738, 0.11660950163380673, 0.0, 0.0, 0.0, 0.0, 0.027794605242432064, 0.0, 0.0, 0.0, 0.132905538815286, 0.0, 0.05497259939520882, 0.0, 0.0, 1.2625457513449383, 0.39900789022393385, 0.0, 0.0, 0.0, 0.0, 0.4114559732861708, 0.4741201455820112, 0.0, 0.21077985466978477, 0.0, 0.0, 0.7439578224938339, 0.42232266256074136, 0.4876343844944301, 0.6687496612887465, 0.115118039848854, 0.0, 0.0, 0.0, 0.0, 0.05260063632046659, 0.07759581613885312, 0.028401563276091994, 0.0, 0.056334062495133036, 0.17033944709766455, 0.9153107777932757, 0.0, 0.004924424218813803, 0.057509247607595904, 0.0, 0.7491964746840728, 0.05934710743113981, 0.0, 0.0, 0.0, 0.22238712275143577, 0.4319949206677921, 0.025917686578643146, 0.031803778192995576, 0.0, 0.6741550137516903, 0.009328571558732282, 0.0, 0.0, 0.0, 0.0, 0.5515037103010108, 0.6987172178395075, 0.0, 0.0, 0.0, 0.060174729085221354, 0.0, 0.0, 0.08734749351416564, 0.6636235071641303, 0.09580942583448827, 0.0, 0.0, 0.08996354325075087, 0.04525348827838765, 0.5824434635228624, 0.05819874866882126, 0.12005968761069685, 0.0, 0.0, 0.3313826265510977, 0.0, 0.058140773587614956, 0.6127791119711469, 0.0, 0.0, 0.15047559500471339, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6662085079556846, 0.3400843601648346, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22423528728211575, 0.0, 0.0, 0.0, 0.0, 0.3636963343220375, 0.5756271502974593, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046502182852265775, 0.0, 0.04891501992848654, 0.0, 0.0, 0.0, 0.9407814186149676, 0.09733317875961926, 0.0, 0.11672934297033466, 0.0, 0.6385588104227404, 0.0, 0.022206283976929683, 0.09845615426665595, 0.03496357540242119, 0.0, 0.0, 0.0, 0.0, 0.03380456195194267, 0.18543528221865002, 0.12144811071150914, 0.0, 0.03755694741887004, 0.16907550573428723, 0.0, 0.0, 0.1443808645220955, 0.0, 0.1003230425739974, 0.12879502114342312, 0.0647357901808317, 0.0, 0.5084955858844, 0.08519692951707138, 0.007582866204885641, 0.0, 0.03198292312330168, 0.0, 0.1209623049539008, 0.0, 0.12387820451445683, 0.0, 0.0, 0.043058753609476905, 0.03493082633215086, 0.0, 0.0, 0.043777031505228374, 0.016261326799286477, 0.16693678030096587, 0.0, 0.0]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.004334271763144113, 0.19866796375858964, 0.05511378591134807, 0.37983318302160474, 0.0, 0.8329001018500983, 0.30166090609024687, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3289219868624648, 0.0, 0.15511617694464214, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18499887719318273, 0.0, 0.0, 0.0, 0.19259223593916178, 0.0, 0.0, 0.0638915620449496, 0.08125561754012361, 0.17659717140450376, 0.0, 0.0, 0.1525779960421776, 0.0, 0.0, 0.0, 0.0, 0.29196799055295863, 0.0, 0.0, 0.0, 0.5551667524029037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4594337414860906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3019846765891098, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18892258579898563, 0.0, 0.2395310548375412, 0.0, 0.359229579293753, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00028478282759787334, 0.0, 0.3432275013790356, 0.0, 0.0, 0.2972839943189292, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19540404365846636, 0.0, 0.0, 0.0, 0.0, 0.18546216890582629, 0.0, 0.0, 0.00916099623463154, 0.0, 0.034731738855626984, 0.4853088859188271, 0.0076713909171271105, 0.0, 0.0, 0.5640422262893099, 0.0, 0.5950501234938147, 0.040920156633969085, 0.0014920661060395996, 0.0, 0.08081663901361853, 0.8825202410318094, 0.0, 0.006218090636031004, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3280555235834662, 0.03812149119614576, 0.0, 0.05190957475021724, 0.0, 0.06033708819060236, 0.0, 0.10124291140603807, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5085302772239245, 0.0, 0.5334307954394755, 0.0, 0.0, 0.2328402544634388, 0.0, 0.005816161517311894, 1.5317318593263975, 0.0, 0.46738125332221536, 0.0, 0.09813163178688389, 0.4394739409933983, 0.0, 0.26102098784262384, 0.0, 0.0, 0.0, 0.0, 0.8804155352247423, 0.0, 0.0, 0.48240400321886606, 0.3763091458911055, 0.6151496795666793, 0.0, 0.27268296540705483, 0.0, 0.0014290584461454537, 0.0, 0.0, 0.0, 0.5294637260878591, 0.0, 0.0, 0.0, 0.31181862629226015, 0.0, 0.34152287293383227, 0.1986997482112381, 0.2527011428302912, 0.0, 0.434749031361829, 0.0, 0.4472075705110786, 0.4092092126159339, 0.2807873539680881, 0.17401521117970595, 0.0, 0.0, 0.43733948883443596, 0.5485693747724284, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0983266821553666, 0.05373620000037918, 0.49612300100963586, 0.0, 0.0, 1.075151264033199, 0.0, 0.18716105879611752, 0.03950202184626144, 0.0, 0.0, 0.7852572057826378, 0.0, 0.0, 0.08756438716142145, 0.27446263899702106, 0.0, 0.0, 0.07204260281080108, 0.0, 0.09291620627436281, 0.23270017215835156, 0.23824566618105675, 0.0, 0.0, 0.0, 0.13665872084048475, 0.0, 0.0, 0.0067937121060301624, 0.1164801427986044, 0.0, 0.5691621002508566, 0.4713388661713567, 0.41358181631025637, 0.0, 0.3128607440091297, 0.0, 0.0, 0.20424594336339066, 0.0, 0.0, 0.7442286193021344, 0.10553727794892508, 0.0, 0.30186901767997887, 0.0, 0.0, 0.0, 0.32291683563950796, 0.07758151598185183, 0.0, 0.347786535534979, 0.7360230359944353, 0.0, 0.0, 0.0, 0.8757273805535595, 0.41322710295268655, 0.0, 0.25679112297862333, 0.17774302673574222, 0.5841939760860391, 0.0, 0.0, 0.0, 0.13300779742001662, 0.16915583797139946, 0.0, 0.0, 0.0, 0.7164740353603845, 0.45156468002631484, 0.0, 0.27217311439601866, 0.7084784766971438, 0.06835326871026481, 0.0, 0.0, 0.0, 0.2861016237491002, 1.0700436562849107, 0.135740840434777, 0.2599664462430113, 0.45536369102376945, 0.0, 0.0, 0.0, 0.16460938932017066, 0.9424546774296569, 0.4980075807530193, 0.501649117240962, 0.9215918221852557, 0.0, 0.5227646022766553, 0.46865433734477785, 0.0, 0.1899494468105599, 0.0, 0.14204872822901377, 0.7891527088162923, 0.2800775160398023, 0.0, 0.0, 0.6038144125549446, 0.0, 0.4101280976499608, 0.15813547044885462, 0.4381740566617935, 0.0025678619479343042, 0.5913196381458786, 0.01581382625018507, 0.4317825799661969, 0.0, 0.5361217114844467, 0.16404576969544252, 0.0, 0.03623369485950333, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19327505078226082, 0.1125279795645968, 0.0, 0.38171505913646114, 0.0, 0.0012820843611261621, 0.0, 0.0, 0.017018867107690273, 0.0, 0.018573326277702022, 0.7755881641075008, 0.12996991545193906, 0.0, 0.18005632805213245, 0.0, 0.2451805301156947, 0.0, 0.3747092870507497, 0.0, 0.4781929115858312, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.35214721497251084, 0.0, 0.020304118651362432, 0.14466279308909658, 0.626862644216891, 0.0, 0.0, 1.5549351131665947, 0.30737844662289215, 0.0, 0.0, 0.0, 0.0, 0.009701873820892715, 0.2520412914553624, 0.018396624198184493, 0.0, 0.7982268230101296, 0.0, 0.9201682818000929, 0.0, 0.0, 0.7342011144064367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09396246898802936, 0.0, 0.5073258744317697, 0.22284199906817412, 0.10151898941699102, 0.03180992568768135, 0.0, 0.5543686635557524, 0.0, 0.0, 0.0, 0.22367207355552704, 0.0, 0.0, 0.0, 0.40880306935546484, 0.0, 0.42113696363931935, 0.0, 0.0, 0.0, 0.43326306412219423, 0.39232717474974355, 0.0, 0.0, 0.0, 0.013675206005982276, 0.0, 0.2603519242467926, 0.3502025254743841, 0.14312660068897712, 0.34775162340880994, 0.20310882214946477, 0.0, 0.27127891969267615, 0.0, 0.0, 0.020541404680713544, 0.0, 0.0, 0.1991870263338475, 0.0, 0.0, 0.2456237488004554, 0.12123860127246498, 0.2079074067296303, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24646978770136238, 0.15225808974571345, 0.0, 0.0, 0.46988488666249073, 0.16461741428636234, 0.4415386194506142, 0.05631807188893752, 0.0611318669096905, 0.0, 0.0, 0.0, 0.5215534136524774, 0.0, 0.0, 0.6274626509368973, 0.038256585847320265, 0.530070634494204, 0.0, 0.7877809268797783, 0.25601250351282806, 0.37534186876141573, 0.700013095645165, 0.0, 0.29431110179251513, 0.22882177649965688, 1.0569304890861846, 0.0, 0.0, 0.0, 0.0, 0.02833923205698933, 0.02572736738919585, 0.0, 0.1150475064446459, 0.24371977071087828, 0.0, 0.0, 0.044121908414131224, 0.0771055384425919, 0.09695789652483547, 0.0, 0.0, 0.0, 0.12020713596947674, 0.045249684273424934, 0.8721213827038133, 0.0, 0.11731035534021127, 0.37569616707373005, 0.0, 0.0, 0.9570606189270042, 0.9086284112098039, 0.20027308709305888, 0.4268041763647709, 0.0, 0.0, 0.015909944043088663, 0.0, 0.7658973441527888, 0.0, 0.19507759787979717, 0.3226660152512004, 0.23629991340839918, 0.0, 0.13848101841219138, 0.0, 0.0, 0.24578615843203896, 0.0, 0.0, 0.10167993256702677, 0.0, 0.0, 0.12538470338440244, 0.9934363459809055, 0.10613146591697438, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6421265863141966, 0.0, 0.5400344618364347, 0.025731716559651077, 0.0, 0.0, 0.0, 0.007521097208030019, 0.5455660054203588, 0.0, 1.1209603429913297, 0.0, 0.0, 0.5234607155600556, 0.0, 0.023977651748011766, 0.0, 0.0, 0.0, 0.27798322874225667, 0.0, 0.35612425891926536, 0.0, 0.7529913555346315, 0.6214420882570796, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12146506806205652, 0.0, 0.3210215267482459, 0.0, 0.0, 0.0, 0.33419799384234544, 0.0, 0.0, 0.15359727591834285, 0.19534099821264672, 0.525863863274946, 0.0, 0.0, 0.34569678733330644, 0.0, 0.0, 0.3415674397857982, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.523004359259986, 0.0, 0.22235180304591923, 0.0, 0.00635695661054767, 0.0, 0.0, 0.0843846185513356, 0.0, 0.0, 0.0, 0.8855039996037297, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27294552017018114, 0.0, 0.3412878895624823, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5864608505347954, 0.0, 0.10380099346078346, 0.02524889717437322, 0.0, 0.0, 0.38157075730498896, 0.0, 0.0, 0.0, 0.45469484904050655, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26459586877877683, 0.18314523505716396, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22372814141562178, 0.0, 0.0, 0.0, 0.6276845275284666, 0.18331203344516112, 0.25689720406507865, 0.04048914090414101, 0.0, 0.016969058333515752, 0.0, 0.5911567891086366, 0.37358991094373184, 0.21597413111529512, 0.09535966106843696, 0.021909623318208237, 0.49412659112391777, 0.39229708641560146, 0.0, 0.0, 0.5239905526116051, 0.22383442432789932, 0.0, 0.408761833081477, 0.7858251636352953, 0.0, 0.03095169444374481, 1.0134328993353359, 0.0, 0.5783663988186404, 0.023349871375665725, 0.4068090650141155, 0.3701047391436106, 0.7170357796952346, 0.31327392774306395, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.39350494784782397, 0.07595368484327951, 0.4868292236818003, 0.046986031631648606, 0.530207151960747, 0.01037806421927761, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05535788985307855, 0.7394134258901907, 0.17106635844034493, 0.9821443208953105, 0.0, 0.008962807708770178, 0.0, 0.0, 0.11897566020800357, 0.0, 0.0, 0.0, 1.2828090910806784, 0.0, 0.4691443493685695, 0.0, 0.07022467062008277, 0.18231155361607748, 0.41302392682414213, 0.0, 0.13696413696930718, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.423686950315378, 0.0, 0.5297732126841366, 0.0, 0.10086209606266386, 0.4105665706595916, 0.2899236467445781, 0.08479167779863508, 0.0, 1.1607169616195545, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44056670549109944, 0.0036426275414389976, 0.22268017654499572, 0.70259131988822, 0.021981713208965886, 0.0, 0.0, 0.0, 0.6644482698446481, 0.5559910462571956, 0.9081368976941899, 0.9545466439826781, 0.0, 0.5800820874802947, 0.6131061961157059, 0.0, 0.3387938943904664, 0.0, 0.41233232521209184, 0.6892320892052487, 0.9168247018477867, 0.7592095444656833, 0.0, 0.7080274090242662, 0.0, 0.0, 0.7409103227795685, 0.4891910517462003, 0.0, 0.0, 0.6996898878138225, 0.18201720925245757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.033060035104523045, 0.0, 0.0, 0.0, 0.0, 0.0010434833431631984, 0.0, 0.0, 0.0, 0.010921241238865733, 0.0, 0.015498170387323498, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.011618017340433275, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2104054739321471, 0.0, 0.0, 0.0, 0.051249741424478176, 0.0, 0.0, 0.0, 0.09744956100917274, 0.0, 0.0, 0.0, 0.0, 0.10766993925868745, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18951483497887683, 0.5969374604132631, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6248091001560899, 0.0, 0.0, 0.0, 0.0, 0.18617398114562853, 0.0530079909103574, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14076422137873648, 0.3823151552281139, 0.28535858102685935, 0.3054264047421474, 0.0, 0.0, 0.5425991952026914, 0.16566917168527906, 0.0, 0.0, 0.24572721112234908, 0.0, 0.0, 0.311993347128524, 0.0, 1.0231061248638629, 0.5939954507294103, 0.5983388707717968, 0.7851882761904205, 0.0, 0.28209866162610053, 0.46470151179975694, 0.0, 0.22767102275324697, 0.0, 0.0, 0.3351791998251741, 0.0, 0.0, 0.0, 0.3258354466053841, 0.29514851487698524, 0.25858133097678015, 0.1886151008053812, 0.5226293862659805, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0442888167727012, 0.0, 0.002505192641426779, 0.0, 0.0, 0.07664740890754863, 0.0, 0.0, 0.013363010227595206, 0.00048725362450601585, 0.002419244088482629, 0.026391726291740327, 0.0, 0.0, 0.03460717393330891, 0.0, 0.13624247986958654, 0.0, 0.0, 0.0, 0.0, 0.0, 0.012449069569846, 0.0, 0.016951747875799564, 0.0, 0.0197038621774241, 0.0, 0.033062191640471625, 0.07310509907314719, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06556034095953286, 0.0, 0.02434740964367002, 0.0, 0.0, 0.13592547532623306, 0.0, 0.030022610188286405, 0.03795734899490777, 0.008699370747195389, 0.0, 0.0, 0.18940737674761182, 0.16014434992779022, 0.0058393216511455045, 0.0, 0.3162824676834449, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14919154588027264, 0.0, 0.20315232851529888, 0.0, 0.27582528532656464, 0.0, 0.3962223404212856, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00142596300027198, 0.0, 0.008781597914028754, 0.2917830655969515, 0.0, 0.0, 0.3010196130390429, 1.085161420061463, 0.0, 0.8818413438369698, 0.0, 0.14807253735972709, 0.6682230613653689, 0.6738718955158736, 0.0, 0.2921120382906695, 0.0, 0.23016863424694362, 0.44343897402347887, 0.0, 0.0, 1.2859761704109314, 1.188418751121335, 0.0, 0.4620501506594876, 0.23396469855670338, 0.0, 0.03498671823904876, 0.0, 0.0, 0.3392611399043929, 0.20497564811318061, 0.0, 0.4183535169904413, 0.20649711391931772, 0.520902106226398, 0.0, 0.0, 0.16125806820737418, 0.5576988707246249, 0.0, 0.0, 0.0, 0.11391623120681071, 0.0, 0.0, 0.09151851725619714, 0.0, 0.0, 1.197254000111945, 0.0, 0.8775820846458859, 0.0, 0.5629797627532018, 0.6687057520979063, 0.341227000414515, 0.0, 0.25482576175079585, 0.0, 0.39537376259476137, 0.4437592920364036, 0.0, 0.0, 0.5927285333298421, 0.651986303075751, 0.0, 1.0434591895456948, 0.0, 0.0, 0.03501199088471498, 0.0, 0.0, 0.3395062050893736, 0.15619471223870085, 0.0, 0.41865571453083017, 0.20664627704903807, 0.48238135206809674, 0.08860575544817058, 0.0, 0.005695035181786341, 0.42497543210880456, 0.0, 0.23934194260454025, 0.30438882267274336, 0.2874361482000896, 0.0, 0.0, 0.6245971595264426, 0.0, 0.3639559852559372, 0.0, 0.0, 0.20575691959192335, 0.0, 0.5994751724692355, 0.0, 0.0, 0.0, 0.0, 0.002904710270589501, 0.0, 0.27722048222724693, 0.15720637186052522, 0.0, 0.40582979792580204, 0.3276141191929195, 0.0, 0.5216472712210337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.022828121623522435, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.111114554054197, 0.0, 0.0, 0.005523835481493179, 0.12589753624924738, 0.4223352609451343, 0.19512225997871732, 0.9646462752755526, 0.0, 0.0, 0.908234546074678, 0.0, 0.1303083320340461, 0.4180115467796097, 0.3502002628164635, 0.005797584702932196, 0.620011620521792, 0.6673813159226286, 0.0030737631986123407, 0.0, 0.42144642014638856, 1.0414378536891689, 0.6289622414694364, 1.5563606265339154, 0.08385396416867873, 0.3115994197854627, 0.7117829870894571, 0.6381078265340546, 0.0, 0.23989801450652898, 0.0, 0.5826228436020011, 0.8457142287971168, 0.0, 0.0, 0.0, 1.0193786877434905, 0.0, 0.0, 0.19971832516875276, 0.5533950636153777, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21472741909783344, 0.39082851888093567, 0.44716245502350144, 0.2879713896328549, 0.5511368948723377, 0.33565164359388877, 1.3517828371888283, 0.0, 0.09957607530690628, 0.0, 0.0, 0.26103163435011795, 0.3965287786994862, 0.6597151598792015, 0.0, 0.34286845579856556, 0.3900059867245693, 0.34423839922938515, 0.0, 1.2842745238771571, 0.3694211002080512, 0.0, 0.05489702502604951, 0.3645945046142821, 0.0, 0.0, 0.08041277613458127, 0.2893532857853331, 0.0, 0.5419495915870312, 0.70973704371772, 0.06597297072421819, 0.0, 0.0, 0.28417074423649047, 0.45673560467870195, 0.1772454725351981, 0.22541615615699262, 0.08077018346809645, 0.5662548477384789, 0.07678831671440492, 0.7573984424681688, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4826509895037858, 0.0, 0.7156459126461995, 0.0, 0.0, 0.0, 0.0, 0.0, 0.013563432420802306, 0.4559162518278489, 0.0, 0.0, 0.0, 0.0, 0.26262283944881243, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16505781512417061, 0.2933206286622639, 0.0, 0.0, 0.0, 0.0, 0.40289003757510067, 0.0, 0.0, 0.0, 0.6372941893353361, 0.0, 0.6237934507673457, 0.8070702584067075, 0.0, 0.0, 0.3379623279083573, 0.0, 0.46129991809862586, 0.7333015288992237, 0.21031442023566344, 0.0, 0.7041420713561054, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7760176053652288, 0.0, 1.0534236649773678, 0.0, 0.0, 0.8070780011372765, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4823716017908521, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6208306891807599, 0.0, 0.0, 0.01732988822073383, 0.2738833349341264, 0.10672374403860475, 0.0, 0.008043590060480383, 0.0, 0.055277084044920086, 0.0, 0.0, 0.17943961322559207, 0.0, 0.0, 0.0, 0.0, 0.0, 0.718108290096912, 0.0, 0.0, 0.0, 0.008728384689335622, 0.0, 0.1697763404331079, 0.11586384141065409, 0.0, 0.0, 0.0, 0.8848305575683707, 0.0, 0.8449968950182224, 0.0, 0.0, 0.0, 0.6706152313255382, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8308196053978146, 0.0, 0.9175002824131868, 0.7530109173431534, 0.022342425693822682, 0.0, 0.0035915524463436964, 0.15288943835905894, 0.0, 0.5199425421439203, 0.11917728725476327, 0.3521011644457409, 0.0, 0.822488739774635, 0.513543493422637, 0.2981570434312181, 0.0, 0.0, 1.2701086711578897, 0.0, 0.11247893732510689, 0.0, 0.039332390318575425, 0.0, 0.11102635670488926, 0.0, 0.15118325075382752, 0.0, 0.1757278339799435, 0.0, 0.2948633760880991, 0.15371975197149906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04453230950399372, 0.0, 0.05568267952698087, 0.0, 0.21714106205060016, 0.0, 0.0, 0.0, 0.0, 0.7213227431120439, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2701718137836067, 0.0, 0.06123281377737304, 0.4007297534572718, 0.0, 0.0, 0.02350606599699272, 0.0, 0.47270164239805296, 0.39554302818161685, 0.39843532224568856, 0.0, 0.0, 0.46004399190355705, 0.41242580548884994, 0.0, 0.15086754157289264, 0.0, 0.0, 0.5466072621606027, 0.18414300130678235, 0.2087681866233734, 0.0, 0.5313695523968773, 0.0, 0.0, 0.2807883504872339, 0.34802019073798685, 0.0, 0.09776175774612722, 0.1924014129464173, 0.0, 0.0, 0.0, 0.2995245510564702, 0.1439415371971276, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09612835370305864, 0.0, 0.07178793274997196, 0.0, 0.0, 0.0, 0.529229742886101, 0.0, 0.0, 0.5898615183638936, 0.0, 0.1996504875270556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07685007162501065, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4724449949223617, 0.0, 0.21985358976027652, 0.0, 0.0, 0.0, 0.6511036698044336, 0.5394783324223208, 0.9048355234024855, 0.0, 0.0, 0.0, 0.008134079103649166, 0.17236516549262873, 0.0, 0.7108281927774538, 0.0, 0.0, 0.0, 0.8245834715993663, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22989626507902333, 0.12442621872484774, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3037122713618223, 0.0, 0.0, 0.008259351424073042, 0.4378900919766154, 0.05086408498890661, 0.31974807102322866, 0.0, 0.0, 0.7960980638875322, 0.0689135689704732, 0.0, 0.0, 0.0, 0.20359294387478752, 0.9097633301509839, 0.0, 0.6841090251831579, 0.0, 0.6154584825649704, 0.7335150023327748, 1.015637287349907, 0.0, 0.0779165260149525, 1.1277817941657742, 0.0, 0.0, 0.3457097793442966, 0.6958114560471119, 0.22297907055084815, 0.02617735461213243, 0.8271866794310433, 0.0, 0.25383801660715655, 0.0, 0.6564805026462143, 0.4519424562793308, 0.8175733700968422, 0.26495100977979114, 0.0, 0.0, 0.0, 0.33910693050583907, 0.0, 0.0, 0.0, 0.4889218480481046, 0.0, 0.3925649791995639, 1.5627863234111485, 0.8201598086100989, 0.28474440170274185, 1.0514838770367962, 0.010290531779792767, 0.0, 0.0, 1.5282247448720891, 0.4202365445740981, 0.38631591015261757, 0.07827208426350975, 0.002001482371009478, 0.19978631068641475, 0.10840878806592323, 0.8849580765325739, 0.7025926608640433, 0.21468725597950544, 0.6515266028885637, 0.304659479667613, 0.0, 0.5203661079080213, 0.1989832785613875, 0.22866153178235926, 0.2129788116497342, 0.0511368043793991, 0.0, 0.06963236972450947, 0.0, 0.08093717687353573, 0.0, 0.3254291820176872, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4944791980843742, 0.5417407856384763, 0.0, 0.4343792686365096, 1.5442785077006684, 0.0, 0.13746522377571999, 0.0, 0.0, 0.0, 0.0, 0.01933245239450143, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44623451745418, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.30502005455201636, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.014872981553739924, 0.0, 0.0, 0.0007393802182031884, 0.0, 0.14653699929908884, 0.0, 0.0, 0.26188312990151436, 0.028159286104530473, 0.0, 0.4084686341089707, 0.9235151006259961, 0.5957064186534903, 0.0, 0.0, 0.5535709817494249, 0.0, 0.25891613288066156, 0.07783302925410085, 0.2939591160629263, 0.1987201643010643, 0.0, 0.09767541007114018, 0.4120929351702914, 0.22225830848448824, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13739476210353194, 0.0, 0.037597515302596925, 0.0, 0.0, 0.31874062595288627, 0.33536722163001637, 0.0, 0.0, 0.0, 0.48352996362981304, 0.0, 0.38851289261478805, 0.6830254018960756, 0.3364461001285706, 0.8253161071254982, 0.0, 0.2348841918025421, 0.0, 0.4205219693225024, 0.5314960091024892, 0.0, 0.0, 0.10178270195612651, 0.0, 0.0, 0.780835547454152, 0.5872223143240599, 0.2503853190515238, 0.0, 0.0, 0.6150976289535472, 0.0, 0.09445718365268194, 0.0, 0.0, 0.17331386223779208, 1.5139967025892487, 0.0, 0.0031631037123804793, 0.0, 0.0, 0.20592512324808152, 0.0, 0.03635874582185372, 0.0, 0.20018457152414249, 0.22068196040992705, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), 42), 42)),) julia> @finch_code begin Ct .= 0 for j = parallel(_) @@ -734,7 +734,7 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.18463927542167063, 0.16872726618738124, 0.0, 0.0, 0.0, 0.5894648191942263, 0.0, 0.0, 0.4399979683038884, 0.4872396182365841, 0.0, 0.0, 0.0, 0.5232587908717465, 0.0, 0.028458776980687873, 0.0, 0.1912882078151879, 0.5164204427507948, 0.25375520169397275, 0.7988048308846816, 0.548219404354131, 0.0, 0.0, 0.0, 0.08973042123875676, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16269102551813888, 0.0, 0.6368094288799442, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03708423534085979, 0.16845626013473977, 0.6588748971102081, 0.010877416543996312, 0.0, 0.0, 0.0, 0.44123232519423083, 0.0, 0.24002669576156066, 0.0, 0.0, 0.0, 0.21689234576879324, 0.2098895841423717, 0.6161647640351655, 0.4776903273077015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6355594744363152, 0.0, 0.0, 0.08457949502263125, 0.0, 0.0, 0.6901459039432658, 0.0, 0.0, 0.0, 0.057641486402300816, 0.0, 0.0, 0.09549316762404748, 0.09211299074367744, 0.11795836585190977, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0467877508869465, 0.0, 0.0, 0.0, 0.0, 0.04370712736779799, 0.281244207688617, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2030486542718697, 0.0, 0.5182178756464231, 0.0, 0.0, 0.0, 0.057729640414041494, 0.0, 0.0, 0.0, 0.0, 0.19354540299708142, 0.06300918519480127, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1478355026964281, 0.0, 0.0, 0.0, 0.541165159810693, 0.0, 0.0, 0.0, 0.16407931870757664, 0.2057712545151301, 0.32812733654993936, 0.0, 0.24913050204963633, 0.20974603114415158, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5086673274457614, 0.32467254520642835, 0.0, 0.22357645210013752, 0.0, 0.0, 0.0, 0.15908397194054766, 0.0, 0.5866968618616202, 0.21349654033737236, 0.243214867615369, 0.0, 0.0, 0.27374855832219774, 0.0, 0.3075930851551728, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44087523604465795, 0.22505682646241645, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2406824670174747, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4353583318013107, 0.0, 0.0, 0.0, 0.0, 0.42257756079609887, 0.0, 0.16328692344233348, 0.7239663574899861, 0.253917129058883, 0.0, 0.0, 0.0, 0.012941670285380298, 0.005948300091521438, 0.6648934966409066, 1.0229318994166612, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13578338949001834, 0.4197116456419966, 0.0, 0.947053670891027, 0.0, 0.13486088669396906, 0.0, 0.6620124726194103, 0.0, 0.6496849904621673, 0.0, 0.0, 0.7890806801928671, 0.01841465881846702, 0.27914669822772004, 0.0, 0.029516583729604803, 0.0, 0.0, 0.018864268719240455, 0.24394303159635272, 0.0, 0.5741603792214627, 0.3080365664801448, 0.6155081898538994, 0.2367816204152454, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17416434327376132, 0.0, 0.0, 0.0, 0.0, 0.16269692366253372, 0.0, 0.3491221627973697, 0.0, 0.0, 0.0, 0.0, 0.0, 0.896220207410521, 0.13858473312625733, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2148948115594729, 0.1029957040349639, 0.0, 0.10833979410008034, 0.0, 0.0, 0.23454757178184932, 0.0, 0.2155791117194733, 0.0, 0.22311080318652476, 0.0, 0.0, 0.0, 0.0, 0.07959294795619429, 0.0, 0.17163567622890405, 0.07283994445558169, 0.0, 0.0, 0.0, 0.08654379427684032, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16368166253985994, 0.0, 0.17071385720442764, 0.34758616988919516, 0.0, 0.0, 0.0, 0.0, 0.25336804558610515, 0.0, 0.032257457723339725, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2136279714073461, 0.0, 0.24003957209260046, 0.21303254632455026, 0.006511170502708404, 0.383310313899178, 0.0, 0.0, 0.0, 0.1337677376744651, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0646519260588245, 0.0, 0.0, 0.0, 0.31350938881953055, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20384728982176575, 0.0, 0.0, 0.0, 0.0, 0.05670575896106868, 0.0, 0.05964802423259749, 0.0, 0.0, 0.0, 0.4488563568162377, 0.11869016538841153, 0.0, 0.07667734536959822, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.040450967971474544, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09480431131127824, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0016369185703860613, 0.0, 0.0017218526009009176, 0.0, 0.0, 0.0, 0.0, 0.003426215245260554, 0.0, 0.002213436040060287, 0.0, 0.0, 0.0, 0.0, 0.028624781651490867, 0.0, 0.0, 0.0917221717112923, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03948493179664919, 0.0998678691104795, 0.0, 0.0, 0.0, 0.0, 0.0519314302968116, 0.019753641949088564, 0.0, 0.0, 0.08679325173985959, 0.0, 0.0, 0.44412542864463755, 0.0, 0.0, 0.0, 0.25440324223859473, 0.0, 0.06322962025433154, 0.0, 0.10055420420038351, 0.08043066558940987, 0.01930551218305079, 0.019941838639940274, 0.025537187307223392, 0.0, 0.2186623932992767, 0.06407227122111338, 0.0254835950299198, 0.0, 0.0, 0.6628636898477958, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5422666551724673, 0.6870145051652384, 0.0, 0.0, 0.1501651963322761, 0.019574736086580828, 0.0, 0.0, 0.03589870327691644, 0.0, 0.026565876114361182, 0.0, 0.0, 0.029264986204643254, 0.0, 0.0, 0.01893195304872942, 0.046727577005066426, 0.0, 0.0, 0.28025040572174376, 0.0, 0.018913093854322344, 0.0, 0.0, 0.0, 0.04894945277637971, 0.006583695531171352, 0.3875798367774556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3292155284261099, 0.04344067936293723, 0.0653720550702903, 0.0, 0.0, 0.22649528787365272, 0.018049730534704385, 0.14615138313733889, 0.0, 0.0, 0.0, 0.0, 0.20611785399916963, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31511052111518423, 0.0, 0.03672395965581389, 0.0, 0.0, 0.9552411806377301, 0.0, 0.0, 0.0, 0.3512720117094026, 0.0, 0.7814509194588117, 0.9900444949397926, 0.0, 0.2416698136762867, 0.0, 0.15594310090475377, 0.37345396038999507, 0.13378200524387487, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0037871796529251873, 0.0, 0.07132197093797825, 0.0, 0.0, 0.4038639203443338, 0.0, 0.007926901739731977, 0.0, 0.005121012178382578, 0.4483265473520345, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19545324009971515, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.015822792815906598, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2654026801406409, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005338269605792754, 0.3841199941370228, 0.003089715236949895, 0.0, 0.0, 0.0, 0.2702896727602311, 0.0061480462629685435, 0.0, 0.0077716018517988575, 0.0, 0.0, 0.5060334906800565, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5325221835704804, 0.4354711371945976, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4529112439588725, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.42175363431898494, 0.540090698333841, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1429447733494866, 0.0, 0.0, 0.17383910328410926, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7778438721037507, 0.7592283162924894, 0.27027978053916946, 0.9680808201913975, 0.0, 0.0, 0.0, 0.0, 0.23721687040615713, 0.0, 0.0, 0.0, 0.214724244927467, 0.0, 0.6713747276751851, 0.2691029964691732, 0.24957193666978766, 0.04174679102400021, 0.0, 0.0, 0.44623226966778873, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9739425217687773, 0.3878431688435761, 0.0, 0.0, 0.0, 0.0, 0.5905353658253105, 0.0, 0.41099451149099264, 0.46959062394023404, 0.38400872176268547, 0.0, 0.4974135902693747, 0.0, 0.0, 0.0, 0.9154557174508635, 0.2586557560688982, 0.09838729964211103, 0.4023736739495505, 0.0, 0.43229262167712557, 0.25909478937718255, 0.0, 0.0, 0.9527916935554207, 0.3993878193283669, 0.4377172055566821, 0.0, 0.0, 0.02448196261221554, 0.28590941544125414, 0.0, 0.4006023808751287, 0.03918308759508126, 0.0, 0.2882716435062163, 0.0, 0.0110856134215592, 0.37363494354124355, 0.049778285574341975, 0.0, 0.0, 0.9269077110105975, 0.31315811797299237, 0.0, 0.012303674452273154, 0.015429991708474198, 0.0, 0.0, 0.014446013487908171, 0.04123415495113678, 0.03371931705724562, 0.29538913191692134, 0.0, 0.3349006097039049, 0.23542836206424417, 0.23052114963877735, 0.31614042332280545, 0.0, 0.0, 0.11683083227872514, 0.0, 0.0, 0.0006114799040197484, 0.10975727273531571, 0.0, 0.004295508139252644, 0.05107901709661121, 0.0, 0.9334562674798996, 0.0, 0.0, 0.0, 0.0, 0.5880007983611341, 0.06450382436313898, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11800940272957328, 0.0, 0.1899751304440791, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.273744879534597, 0.0, 0.0, 0.2671580962806136, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3492510086210155, 0.0, 0.3080038714015672, 0.0, 0.0, 0.2221605109577772, 0.0, 0.0, 0.0, 0.0, 0.07999688285015112, 0.06742807554519747, 0.08634727349135116, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10258077598728532, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5012203954355052, 0.0, 0.0, 0.0, 0.08111247475296846, 0.0, 0.0, 0.12138201096876389, 0.0, 0.08982551378065248, 0.0, 0.0, 0.12126628140327211, 0.0, 0.0, 0.07844895363581271, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07837080617454226, 0.0, 0.0, 0.0, 0.20283344995989894, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1282379216751728, 0.033796057874619194, 0.0, 0.09653017040380268, 0.0, 0.08822574416521244, 0.01404236183038609, 0.056929725378038414, 0.0, 0.15526439596527059, 0.0, 0.0, 0.0, 0.03781410167223484, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2529010219858623, 0.3238608478009693, 0.0, 0.0, 0.1407409609998849, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.329852425046806, 0.0, 0.0, 0.33341239592531074, 0.45526487856119674, 0.0, 0.33690660829115365, 0.08120142522000469, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08802821410799472, 0.39029129939250945, 0.13688708765693952, 0.0, 0.08496391292272984, 0.0, 0.0, 0.5183827483305287, 0.703065773125918, 0.4814340077714492, 0.0, 0.0, 0.0, 0.12053001147739661, 0.0, 0.07320101959394086, 0.0, 0.0, 0.5105579893076974, 0.6674329003953465, 0.7892434941755087, 0.051355650714931346, 0.4403973256963498, 0.0, 0.01884360978410253, 0.0, 0.0, 0.42539452394686605, 0.1591995319925085, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17375879569486846, 0.0, 0.0, 0.0, 0.0, 0.1721016330265864, 0.0, 0.00044047585032663307, 0.1672932604423309, 0.18102660031449758, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004373654797423859, 0.0, 0.0, 0.08031885873943684, 0.0, 0.0, 0.12088873452345646, 0.0, 0.25447674137867604, 0.0, 0.20210883042048103, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05466434515545004, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005119594240948603, 0.0, 0.2461616206228127, 0.0, 0.0, 0.40062152777610743, 0.0, 0.0, 0.0, 0.4450914546665199, 0.0, 0.0, 0.0, 0.25078704499066257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6437873083636174, 0.0, 0.08986536930257488, 0.05459463157090123, 0.0, 0.0, 0.1617782592438168, 0.0, 0.0, 0.0, 0.0, 0.510293956173341, 0.0, 0.0, 0.0, 0.0, 0.0539939979224501, 0.06022554282071448, 0.0, 0.0, 0.0017903697912685446, 0.10539843894447092, 0.0, 0.007216901945678346, 0.0, 0.0, 0.0, 0.22684974207663636, 1.4564553082728662, 0.182720528082649, 0.06653876275957457, 0.0, 0.6274289004185675, 0.0, 0.5406773490882926, 0.27822503396119075, 0.09306814986560254, 0.29383387946651635, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6230315233142055, 0.9648450369390001, 0.5108864746688708, 0.0, 0.36840186712596623, 0.22805280632725022, 0.3227837297104921, 0.0, 0.0, 1.0240377781477865, 1.591691363735423, 0.0, 0.7314261723085571, 0.0, 0.0, 0.45960855697902075, 0.0, 0.43090812739194506, 0.0, 0.3151566241591431, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3316537279743774, 0.27121053456867833, 0.0, 0.0, 0.0, 0.4001441487163798, 0.5176883689695168, 0.709966180421066, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2820721974309868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03908614977726766, 0.3083419381268706, 0.39485756407874356, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11511559935873378, 0.014949071584157462, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03837527794969671, 0.5550679626138529, 0.0, 0.5726479000113842, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07921974732295421, 0.0, 0.0, 0.0, 0.0, 0.0035899619569867425, 0.0, 0.0, 0.2145099852146676, 0.0, 0.0, 0.0, 0.0, 0.21950879525087302, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09449503481586544, 0.21750142180635595, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32517302304866597, 0.0, 0.0, 0.21035924507266648, 0.0, 0.0, 0.0, 0.0, 0.23713929311152726, 0.21014969427312982, 0.0, 0.0, 0.0, 0.5438936968761621, 0.3401858622480347, 0.0, 0.0, 0.0016527476817863266, 0.0, 0.007935034693483254, 0.0, 0.0, 0.1293317927443745, 0.0, 0.0, 0.0, 0.14368792432790373, 0.0, 0.0, 0.0, 0.0, 0.35799313982296815, 0.29274964408302323, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029011045367568582, 0.0017598612427760815, 0.0, 0.0, 0.052226530139838453, 0.0, 0.0, 0.0, 0.0, 0.16473710872422428, 0.30447392294316244, 0.0, 0.0, 0.0, 0.01743076710707649, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0410977515599671, 0.0, 0.7547303898094697, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.30609022817115544, 0.0, 0.0, 0.0, 0.0, 0.2105854322132866, 0.5327502455990605, 0.13588517657689586, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24025222517683778, 0.0, 0.007535433506713796, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6979826303937671, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07410089446237557, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4744178097104391, 0.0, 0.0, 0.0, 0.0, 0.1876471424480227, 0.28765608703745393, 0.2182401932056186, 0.04951496463333951, 0.0, 0.12909838655126593, 0.0, 0.3498317042975124, 0.0, 0.37087394843503463, 0.47981991008621333, 1.1039610273729945, 0.4455015727565212, 0.05271863458630144, 0.19600051626620313, 0.0, 0.2316343353202091, 0.0, 0.0, 0.0, 0.4641150152741525, 0.15018757716392944, 0.21321672818601478, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21465382837602517, 0.0, 0.0, 0.0, 0.00020573734093944128, 0.0, 0.0, 0.0, 0.16929708918389524, 0.0160994805386141, 0.0, 0.049657622486024976, 0.0, 0.017886560545272906, 0.1659947360027911, 0.0, 0.0, 0.0, 0.0, 0.11420185948155097, 0.0, 0.07369142147184715, 0.0, 0.33489361550116375, 0.46496602729779546, 0.0036113530199273977, 0.044355883980523376, 0.08156217107736623, 0.0, 0.006501263051750628, 0.24089225482763127, 0.0, 0.0, 0.3861226254326548, 0.020506805168434235, 0.0, 0.24677384860885976, 0.0, 0.0, 0.002169816793370778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.041148887129618034, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9769895490432172, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5923828848790257, 0.0, 0.10196835358593148, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.328835975725113, 0.0, 0.0, 0.4036325198584592, 0.0, 0.0, 0.3602983928676083, 0.0, 0.0, 0.9557725494193282, 0.0, 0.43908662544955285, 0.0, 0.0, 0.46995823158461947, 0.0, 0.14454935060909507, 0.0, 0.010668331756011213, 0.6280409324984255, 0.03247332779409237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10592998533424139, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.33399686192793854, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7833052225131492, 0.0, 0.0, 0.0, 0.24187208135853017, 0.0, 0.071730719549714, 0.0, 0.11407352111288803, 0.0, 0.44957678307373006, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5736773783460691, 0.0692607726207939, 0.0, 0.0, 0.4731102083446558, 0.7389531951966185, 0.028778055517643567, 0.22717903301955947, 0.0, 0.1436855444728547, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.49542697237169275, 0.0, 0.3454532351491738, 0.11660950163380673, 0.0, 0.0, 0.0, 0.0, 0.027794605242432064, 0.0, 0.0, 0.0, 0.132905538815286, 0.0, 0.05497259939520882, 0.0, 0.0, 1.2625457513449383, 0.39900789022393385, 0.0, 0.0, 0.0, 0.0, 0.4114559732861708, 0.4741201455820112, 0.0, 0.21077985466978477, 0.0, 0.0, 0.7439578224938339, 0.42232266256074136, 0.4876343844944301, 0.6687496612887465, 0.115118039848854, 0.0, 0.0, 0.0, 0.0, 0.05260063632046659, 0.07759581613885312, 0.028401563276091994, 0.0, 0.056334062495133036, 0.17033944709766455, 0.9153107777932757, 0.0, 0.004924424218813803, 0.057509247607595904, 0.0, 0.7491964746840728, 0.05934710743113981, 0.0, 0.0, 0.0, 0.22238712275143577, 0.4319949206677921, 0.025917686578643146, 0.031803778192995576, 0.0, 0.6741550137516903, 0.009328571558732282, 0.0, 0.0, 0.0, 0.0, 0.5515037103010108, 0.6987172178395075, 0.0, 0.0, 0.0, 0.060174729085221354, 0.0, 0.0, 0.08734749351416564, 0.6636235071641303, 0.09580942583448827, 0.0, 0.0, 0.08996354325075087, 0.04525348827838765, 0.5824434635228624, 0.05819874866882126, 0.12005968761069685, 0.0, 0.0, 0.3313826265510977, 0.0, 0.058140773587614956, 0.6127791119711469, 0.0, 0.0, 0.15047559500471339, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6662085079556846, 0.3400843601648346, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22423528728211575, 0.0, 0.0, 0.0, 0.0, 0.3636963343220375, 0.5756271502974593, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046502182852265775, 0.0, 0.04891501992848654, 0.0, 0.0, 0.0, 0.9407814186149676, 0.09733317875961926, 0.0, 0.11672934297033466, 0.0, 0.6385588104227404, 0.0, 0.022206283976929683, 0.09845615426665595, 0.03496357540242119, 0.0, 0.0, 0.0, 0.0, 0.03380456195194267, 0.18543528221865002, 0.12144811071150914, 0.0, 0.03755694741887004, 0.16907550573428723, 0.0, 0.0, 0.1443808645220955, 0.0, 0.1003230425739974, 0.12879502114342312, 0.0647357901808317, 0.0, 0.5084955858844, 0.08519692951707138, 0.007582866204885641, 0.0, 0.03198292312330168, 0.0, 0.1209623049539008, 0.0, 0.12387820451445683, 0.0, 0.0, 0.043058753609476905, 0.03493082633215086, 0.0, 0.0, 0.043777031505228374, 0.016261326799286477, 0.16693678030096587, 0.0, 0.0]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.004334271763144113, 0.19866796375858964, 0.05511378591134807, 0.37983318302160474, 0.0, 0.8329001018500983, 0.30166090609024687, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3289219868624648, 0.0, 0.15511617694464214, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18499887719318273, 0.0, 0.0, 0.0, 0.19259223593916178, 0.0, 0.0, 0.0638915620449496, 0.08125561754012361, 0.17659717140450376, 0.0, 0.0, 0.1525779960421776, 0.0, 0.0, 0.0, 0.0, 0.29196799055295863, 0.0, 0.0, 0.0, 0.5551667524029037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4594337414860906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3019846765891098, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18892258579898563, 0.0, 0.2395310548375412, 0.0, 0.359229579293753, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00028478282759787334, 0.0, 0.3432275013790356, 0.0, 0.0, 0.2972839943189292, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19540404365846636, 0.0, 0.0, 0.0, 0.0, 0.18546216890582629, 0.0, 0.0, 0.00916099623463154, 0.0, 0.034731738855626984, 0.4853088859188271, 0.0076713909171271105, 0.0, 0.0, 0.5640422262893099, 0.0, 0.5950501234938147, 0.040920156633969085, 0.0014920661060395996, 0.0, 0.08081663901361853, 0.8825202410318094, 0.0, 0.006218090636031004, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3280555235834662, 0.03812149119614576, 0.0, 0.05190957475021724, 0.0, 0.06033708819060236, 0.0, 0.10124291140603807, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5085302772239245, 0.0, 0.5334307954394755, 0.0, 0.0, 0.2328402544634388, 0.0, 0.005816161517311894, 1.5317318593263975, 0.0, 0.46738125332221536, 0.0, 0.09813163178688389, 0.4394739409933983, 0.0, 0.26102098784262384, 0.0, 0.0, 0.0, 0.0, 0.8804155352247423, 0.0, 0.0, 0.48240400321886606, 0.3763091458911055, 0.6151496795666793, 0.0, 0.27268296540705483, 0.0, 0.0014290584461454537, 0.0, 0.0, 0.0, 0.5294637260878591, 0.0, 0.0, 0.0, 0.31181862629226015, 0.0, 0.34152287293383227, 0.1986997482112381, 0.2527011428302912, 0.0, 0.434749031361829, 0.0, 0.4472075705110786, 0.4092092126159339, 0.2807873539680881, 0.17401521117970595, 0.0, 0.0, 0.43733948883443596, 0.5485693747724284, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0983266821553666, 0.05373620000037918, 0.49612300100963586, 0.0, 0.0, 1.075151264033199, 0.0, 0.18716105879611752, 0.03950202184626144, 0.0, 0.0, 0.7852572057826378, 0.0, 0.0, 0.08756438716142145, 0.27446263899702106, 0.0, 0.0, 0.07204260281080108, 0.0, 0.09291620627436281, 0.23270017215835156, 0.23824566618105675, 0.0, 0.0, 0.0, 0.13665872084048475, 0.0, 0.0, 0.0067937121060301624, 0.1164801427986044, 0.0, 0.5691621002508566, 0.4713388661713567, 0.41358181631025637, 0.0, 0.3128607440091297, 0.0, 0.0, 0.20424594336339066, 0.0, 0.0, 0.7442286193021344, 0.10553727794892508, 0.0, 0.30186901767997887, 0.0, 0.0, 0.0, 0.32291683563950796, 0.07758151598185183, 0.0, 0.347786535534979, 0.7360230359944353, 0.0, 0.0, 0.0, 0.8757273805535595, 0.41322710295268655, 0.0, 0.25679112297862333, 0.17774302673574222, 0.5841939760860391, 0.0, 0.0, 0.0, 0.13300779742001662, 0.16915583797139946, 0.0, 0.0, 0.0, 0.7164740353603845, 0.45156468002631484, 0.0, 0.27217311439601866, 0.7084784766971438, 0.06835326871026481, 0.0, 0.0, 0.0, 0.2861016237491002, 1.0700436562849107, 0.135740840434777, 0.2599664462430113, 0.45536369102376945, 0.0, 0.0, 0.0, 0.16460938932017066, 0.9424546774296569, 0.4980075807530193, 0.501649117240962, 0.9215918221852557, 0.0, 0.5227646022766553, 0.46865433734477785, 0.0, 0.1899494468105599, 0.0, 0.14204872822901377, 0.7891527088162923, 0.2800775160398023, 0.0, 0.0, 0.6038144125549446, 0.0, 0.4101280976499608, 0.15813547044885462, 0.4381740566617935, 0.0025678619479343042, 0.5913196381458786, 0.01581382625018507, 0.4317825799661969, 0.0, 0.5361217114844467, 0.16404576969544252, 0.0, 0.03623369485950333, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19327505078226082, 0.1125279795645968, 0.0, 0.38171505913646114, 0.0, 0.0012820843611261621, 0.0, 0.0, 0.017018867107690273, 0.0, 0.018573326277702022, 0.7755881641075008, 0.12996991545193906, 0.0, 0.18005632805213245, 0.0, 0.2451805301156947, 0.0, 0.3747092870507497, 0.0, 0.4781929115858312, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.35214721497251084, 0.0, 0.020304118651362432, 0.14466279308909658, 0.626862644216891, 0.0, 0.0, 1.5549351131665947, 0.30737844662289215, 0.0, 0.0, 0.0, 0.0, 0.009701873820892715, 0.2520412914553624, 0.018396624198184493, 0.0, 0.7982268230101296, 0.0, 0.9201682818000929, 0.0, 0.0, 0.7342011144064367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09396246898802936, 0.0, 0.5073258744317697, 0.22284199906817412, 0.10151898941699102, 0.03180992568768135, 0.0, 0.5543686635557524, 0.0, 0.0, 0.0, 0.22367207355552704, 0.0, 0.0, 0.0, 0.40880306935546484, 0.0, 0.42113696363931935, 0.0, 0.0, 0.0, 0.43326306412219423, 0.39232717474974355, 0.0, 0.0, 0.0, 0.013675206005982276, 0.0, 0.2603519242467926, 0.3502025254743841, 0.14312660068897712, 0.34775162340880994, 0.20310882214946477, 0.0, 0.27127891969267615, 0.0, 0.0, 0.020541404680713544, 0.0, 0.0, 0.1991870263338475, 0.0, 0.0, 0.2456237488004554, 0.12123860127246498, 0.2079074067296303, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24646978770136238, 0.15225808974571345, 0.0, 0.0, 0.46988488666249073, 0.16461741428636234, 0.4415386194506142, 0.05631807188893752, 0.0611318669096905, 0.0, 0.0, 0.0, 0.5215534136524774, 0.0, 0.0, 0.6274626509368973, 0.038256585847320265, 0.530070634494204, 0.0, 0.7877809268797783, 0.25601250351282806, 0.37534186876141573, 0.700013095645165, 0.0, 0.29431110179251513, 0.22882177649965688, 1.0569304890861846, 0.0, 0.0, 0.0, 0.0, 0.02833923205698933, 0.02572736738919585, 0.0, 0.1150475064446459, 0.24371977071087828, 0.0, 0.0, 0.044121908414131224, 0.0771055384425919, 0.09695789652483547, 0.0, 0.0, 0.0, 0.12020713596947674, 0.045249684273424934, 0.8721213827038133, 0.0, 0.11731035534021127, 0.37569616707373005, 0.0, 0.0, 0.9570606189270042, 0.9086284112098039, 0.20027308709305888, 0.4268041763647709, 0.0, 0.0, 0.015909944043088663, 0.0, 0.7658973441527888, 0.0, 0.19507759787979717, 0.3226660152512004, 0.23629991340839918, 0.0, 0.13848101841219138, 0.0, 0.0, 0.24578615843203896, 0.0, 0.0, 0.10167993256702677, 0.0, 0.0, 0.12538470338440244, 0.9934363459809055, 0.10613146591697438, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6421265863141966, 0.0, 0.5400344618364347, 0.025731716559651077, 0.0, 0.0, 0.0, 0.007521097208030019, 0.5455660054203588, 0.0, 1.1209603429913297, 0.0, 0.0, 0.5234607155600556, 0.0, 0.023977651748011766, 0.0, 0.0, 0.0, 0.27798322874225667, 0.0, 0.35612425891926536, 0.0, 0.7529913555346315, 0.6214420882570796, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12146506806205652, 0.0, 0.3210215267482459, 0.0, 0.0, 0.0, 0.33419799384234544, 0.0, 0.0, 0.15359727591834285, 0.19534099821264672, 0.525863863274946, 0.0, 0.0, 0.34569678733330644, 0.0, 0.0, 0.3415674397857982, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.523004359259986, 0.0, 0.22235180304591923, 0.0, 0.00635695661054767, 0.0, 0.0, 0.0843846185513356, 0.0, 0.0, 0.0, 0.8855039996037297, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27294552017018114, 0.0, 0.3412878895624823, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5864608505347954, 0.0, 0.10380099346078346, 0.02524889717437322, 0.0, 0.0, 0.38157075730498896, 0.0, 0.0, 0.0, 0.45469484904050655, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26459586877877683, 0.18314523505716396, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22372814141562178, 0.0, 0.0, 0.0, 0.6276845275284666, 0.18331203344516112, 0.25689720406507865, 0.04048914090414101, 0.0, 0.016969058333515752, 0.0, 0.5911567891086366, 0.37358991094373184, 0.21597413111529512, 0.09535966106843696, 0.021909623318208237, 0.49412659112391777, 0.39229708641560146, 0.0, 0.0, 0.5239905526116051, 0.22383442432789932, 0.0, 0.408761833081477, 0.7858251636352953, 0.0, 0.03095169444374481, 1.0134328993353359, 0.0, 0.5783663988186404, 0.023349871375665725, 0.4068090650141155, 0.3701047391436106, 0.7170357796952346, 0.31327392774306395, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.39350494784782397, 0.07595368484327951, 0.4868292236818003, 0.046986031631648606, 0.530207151960747, 0.01037806421927761, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05535788985307855, 0.7394134258901907, 0.17106635844034493, 0.9821443208953105, 0.0, 0.008962807708770178, 0.0, 0.0, 0.11897566020800357, 0.0, 0.0, 0.0, 1.2828090910806784, 0.0, 0.4691443493685695, 0.0, 0.07022467062008277, 0.18231155361607748, 0.41302392682414213, 0.0, 0.13696413696930718, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.423686950315378, 0.0, 0.5297732126841366, 0.0, 0.10086209606266386, 0.4105665706595916, 0.2899236467445781, 0.08479167779863508, 0.0, 1.1607169616195545, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44056670549109944, 0.0036426275414389976, 0.22268017654499572, 0.70259131988822, 0.021981713208965886, 0.0, 0.0, 0.0, 0.6644482698446481, 0.5559910462571956, 0.9081368976941899, 0.9545466439826781, 0.0, 0.5800820874802947, 0.6131061961157059, 0.0, 0.3387938943904664, 0.0, 0.41233232521209184, 0.6892320892052487, 0.9168247018477867, 0.7592095444656833, 0.0, 0.7080274090242662, 0.0, 0.0, 0.7409103227795685, 0.4891910517462003, 0.0, 0.0, 0.6996898878138225, 0.18201720925245757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.033060035104523045, 0.0, 0.0, 0.0, 0.0, 0.0010434833431631984, 0.0, 0.0, 0.0, 0.010921241238865733, 0.0, 0.015498170387323498, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.011618017340433275, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2104054739321471, 0.0, 0.0, 0.0, 0.051249741424478176, 0.0, 0.0, 0.0, 0.09744956100917274, 0.0, 0.0, 0.0, 0.0, 0.10766993925868745, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18951483497887683, 0.5969374604132631, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6248091001560899, 0.0, 0.0, 0.0, 0.0, 0.18617398114562853, 0.0530079909103574, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14076422137873648, 0.3823151552281139, 0.28535858102685935, 0.3054264047421474, 0.0, 0.0, 0.5425991952026914, 0.16566917168527906, 0.0, 0.0, 0.24572721112234908, 0.0, 0.0, 0.311993347128524, 0.0, 1.0231061248638629, 0.5939954507294103, 0.5983388707717968, 0.7851882761904205, 0.0, 0.28209866162610053, 0.46470151179975694, 0.0, 0.22767102275324697, 0.0, 0.0, 0.3351791998251741, 0.0, 0.0, 0.0, 0.3258354466053841, 0.29514851487698524, 0.25858133097678015, 0.1886151008053812, 0.5226293862659805, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0442888167727012, 0.0, 0.002505192641426779, 0.0, 0.0, 0.07664740890754863, 0.0, 0.0, 0.013363010227595206, 0.00048725362450601585, 0.002419244088482629, 0.026391726291740327, 0.0, 0.0, 0.03460717393330891, 0.0, 0.13624247986958654, 0.0, 0.0, 0.0, 0.0, 0.0, 0.012449069569846, 0.0, 0.016951747875799564, 0.0, 0.0197038621774241, 0.0, 0.033062191640471625, 0.07310509907314719, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06556034095953286, 0.0, 0.02434740964367002, 0.0, 0.0, 0.13592547532623306, 0.0, 0.030022610188286405, 0.03795734899490777, 0.008699370747195389, 0.0, 0.0, 0.18940737674761182, 0.16014434992779022, 0.0058393216511455045, 0.0, 0.3162824676834449, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14919154588027264, 0.0, 0.20315232851529888, 0.0, 0.27582528532656464, 0.0, 0.3962223404212856, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00142596300027198, 0.0, 0.008781597914028754, 0.2917830655969515, 0.0, 0.0, 0.3010196130390429, 1.085161420061463, 0.0, 0.8818413438369698, 0.0, 0.14807253735972709, 0.6682230613653689, 0.6738718955158736, 0.0, 0.2921120382906695, 0.0, 0.23016863424694362, 0.44343897402347887, 0.0, 0.0, 1.2859761704109314, 1.188418751121335, 0.0, 0.4620501506594876, 0.23396469855670338, 0.0, 0.03498671823904876, 0.0, 0.0, 0.3392611399043929, 0.20497564811318061, 0.0, 0.4183535169904413, 0.20649711391931772, 0.520902106226398, 0.0, 0.0, 0.16125806820737418, 0.5576988707246249, 0.0, 0.0, 0.0, 0.11391623120681071, 0.0, 0.0, 0.09151851725619714, 0.0, 0.0, 1.197254000111945, 0.0, 0.8775820846458859, 0.0, 0.5629797627532018, 0.6687057520979063, 0.341227000414515, 0.0, 0.25482576175079585, 0.0, 0.39537376259476137, 0.4437592920364036, 0.0, 0.0, 0.5927285333298421, 0.651986303075751, 0.0, 1.0434591895456948, 0.0, 0.0, 0.03501199088471498, 0.0, 0.0, 0.3395062050893736, 0.15619471223870085, 0.0, 0.41865571453083017, 0.20664627704903807, 0.48238135206809674, 0.08860575544817058, 0.0, 0.005695035181786341, 0.42497543210880456, 0.0, 0.23934194260454025, 0.30438882267274336, 0.2874361482000896, 0.0, 0.0, 0.6245971595264426, 0.0, 0.3639559852559372, 0.0, 0.0, 0.20575691959192335, 0.0, 0.5994751724692355, 0.0, 0.0, 0.0, 0.0, 0.002904710270589501, 0.0, 0.27722048222724693, 0.15720637186052522, 0.0, 0.40582979792580204, 0.3276141191929195, 0.0, 0.5216472712210337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.022828121623522435, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.111114554054197, 0.0, 0.0, 0.005523835481493179, 0.12589753624924738, 0.4223352609451343, 0.19512225997871732, 0.9646462752755526, 0.0, 0.0, 0.908234546074678, 0.0, 0.1303083320340461, 0.4180115467796097, 0.3502002628164635, 0.005797584702932196, 0.620011620521792, 0.6673813159226286, 0.0030737631986123407, 0.0, 0.42144642014638856, 1.0414378536891689, 0.6289622414694364, 1.5563606265339154, 0.08385396416867873, 0.3115994197854627, 0.7117829870894571, 0.6381078265340546, 0.0, 0.23989801450652898, 0.0, 0.5826228436020011, 0.8457142287971168, 0.0, 0.0, 0.0, 1.0193786877434905, 0.0, 0.0, 0.19971832516875276, 0.5533950636153777, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21472741909783344, 0.39082851888093567, 0.44716245502350144, 0.2879713896328549, 0.5511368948723377, 0.33565164359388877, 1.3517828371888283, 0.0, 0.09957607530690628, 0.0, 0.0, 0.26103163435011795, 0.3965287786994862, 0.6597151598792015, 0.0, 0.34286845579856556, 0.3900059867245693, 0.34423839922938515, 0.0, 1.2842745238771571, 0.3694211002080512, 0.0, 0.05489702502604951, 0.3645945046142821, 0.0, 0.0, 0.08041277613458127, 0.2893532857853331, 0.0, 0.5419495915870312, 0.70973704371772, 0.06597297072421819, 0.0, 0.0, 0.28417074423649047, 0.45673560467870195, 0.1772454725351981, 0.22541615615699262, 0.08077018346809645, 0.5662548477384789, 0.07678831671440492, 0.7573984424681688, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4826509895037858, 0.0, 0.7156459126461995, 0.0, 0.0, 0.0, 0.0, 0.0, 0.013563432420802306, 0.4559162518278489, 0.0, 0.0, 0.0, 0.0, 0.26262283944881243, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16505781512417061, 0.2933206286622639, 0.0, 0.0, 0.0, 0.0, 0.40289003757510067, 0.0, 0.0, 0.0, 0.6372941893353361, 0.0, 0.6237934507673457, 0.8070702584067075, 0.0, 0.0, 0.3379623279083573, 0.0, 0.46129991809862586, 0.7333015288992237, 0.21031442023566344, 0.0, 0.7041420713561054, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7760176053652288, 0.0, 1.0534236649773678, 0.0, 0.0, 0.8070780011372765, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4823716017908521, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6208306891807599, 0.0, 0.0, 0.01732988822073383, 0.2738833349341264, 0.10672374403860475, 0.0, 0.008043590060480383, 0.0, 0.055277084044920086, 0.0, 0.0, 0.17943961322559207, 0.0, 0.0, 0.0, 0.0, 0.0, 0.718108290096912, 0.0, 0.0, 0.0, 0.008728384689335622, 0.0, 0.1697763404331079, 0.11586384141065409, 0.0, 0.0, 0.0, 0.8848305575683707, 0.0, 0.8449968950182224, 0.0, 0.0, 0.0, 0.6706152313255382, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8308196053978146, 0.0, 0.9175002824131868, 0.7530109173431534, 0.022342425693822682, 0.0, 0.0035915524463436964, 0.15288943835905894, 0.0, 0.5199425421439203, 0.11917728725476327, 0.3521011644457409, 0.0, 0.822488739774635, 0.513543493422637, 0.2981570434312181, 0.0, 0.0, 1.2701086711578897, 0.0, 0.11247893732510689, 0.0, 0.039332390318575425, 0.0, 0.11102635670488926, 0.0, 0.15118325075382752, 0.0, 0.1757278339799435, 0.0, 0.2948633760880991, 0.15371975197149906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04453230950399372, 0.0, 0.05568267952698087, 0.0, 0.21714106205060016, 0.0, 0.0, 0.0, 0.0, 0.7213227431120439, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2701718137836067, 0.0, 0.06123281377737304, 0.4007297534572718, 0.0, 0.0, 0.02350606599699272, 0.0, 0.47270164239805296, 0.39554302818161685, 0.39843532224568856, 0.0, 0.0, 0.46004399190355705, 0.41242580548884994, 0.0, 0.15086754157289264, 0.0, 0.0, 0.5466072621606027, 0.18414300130678235, 0.2087681866233734, 0.0, 0.5313695523968773, 0.0, 0.0, 0.2807883504872339, 0.34802019073798685, 0.0, 0.09776175774612722, 0.1924014129464173, 0.0, 0.0, 0.0, 0.2995245510564702, 0.1439415371971276, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09612835370305864, 0.0, 0.07178793274997196, 0.0, 0.0, 0.0, 0.529229742886101, 0.0, 0.0, 0.5898615183638936, 0.0, 0.1996504875270556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07685007162501065, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4724449949223617, 0.0, 0.21985358976027652, 0.0, 0.0, 0.0, 0.6511036698044336, 0.5394783324223208, 0.9048355234024855, 0.0, 0.0, 0.0, 0.008134079103649166, 0.17236516549262873, 0.0, 0.7108281927774538, 0.0, 0.0, 0.0, 0.8245834715993663, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22989626507902333, 0.12442621872484774, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3037122713618223, 0.0, 0.0, 0.008259351424073042, 0.4378900919766154, 0.05086408498890661, 0.31974807102322866, 0.0, 0.0, 0.7960980638875322, 0.0689135689704732, 0.0, 0.0, 0.0, 0.20359294387478752, 0.9097633301509839, 0.0, 0.6841090251831579, 0.0, 0.6154584825649704, 0.7335150023327748, 1.015637287349907, 0.0, 0.0779165260149525, 1.1277817941657742, 0.0, 0.0, 0.3457097793442966, 0.6958114560471119, 0.22297907055084815, 0.02617735461213243, 0.8271866794310433, 0.0, 0.25383801660715655, 0.0, 0.6564805026462143, 0.4519424562793308, 0.8175733700968422, 0.26495100977979114, 0.0, 0.0, 0.0, 0.33910693050583907, 0.0, 0.0, 0.0, 0.4889218480481046, 0.0, 0.3925649791995639, 1.5627863234111485, 0.8201598086100989, 0.28474440170274185, 1.0514838770367962, 0.010290531779792767, 0.0, 0.0, 1.5282247448720891, 0.4202365445740981, 0.38631591015261757, 0.07827208426350975, 0.002001482371009478, 0.19978631068641475, 0.10840878806592323, 0.8849580765325739, 0.7025926608640433, 0.21468725597950544, 0.6515266028885637, 0.304659479667613, 0.0, 0.5203661079080213, 0.1989832785613875, 0.22866153178235926, 0.2129788116497342, 0.0511368043793991, 0.0, 0.06963236972450947, 0.0, 0.08093717687353573, 0.0, 0.3254291820176872, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4944791980843742, 0.5417407856384763, 0.0, 0.4343792686365096, 1.5442785077006684, 0.0, 0.13746522377571999, 0.0, 0.0, 0.0, 0.0, 0.01933245239450143, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44623451745418, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.30502005455201636, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.014872981553739924, 0.0, 0.0, 0.0007393802182031884, 0.0, 0.14653699929908884, 0.0, 0.0, 0.26188312990151436, 0.028159286104530473, 0.0, 0.4084686341089707, 0.9235151006259961, 0.5957064186534903, 0.0, 0.0, 0.5535709817494249, 0.0, 0.25891613288066156, 0.07783302925410085, 0.2939591160629263, 0.1987201643010643, 0.0, 0.09767541007114018, 0.4120929351702914, 0.22225830848448824, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13739476210353194, 0.0, 0.037597515302596925, 0.0, 0.0, 0.31874062595288627, 0.33536722163001637, 0.0, 0.0, 0.0, 0.48352996362981304, 0.0, 0.38851289261478805, 0.6830254018960756, 0.3364461001285706, 0.8253161071254982, 0.0, 0.2348841918025421, 0.0, 0.4205219693225024, 0.5314960091024892, 0.0, 0.0, 0.10178270195612651, 0.0, 0.0, 0.780835547454152, 0.5872223143240599, 0.2503853190515238, 0.0, 0.0, 0.6150976289535472, 0.0, 0.09445718365268194, 0.0, 0.0, 0.17331386223779208, 1.5139967025892487, 0.0, 0.0031631037123804793, 0.0, 0.0, 0.20592512324808152, 0.0, 0.03635874582185372, 0.0, 0.20018457152414249, 0.22068196040992705, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), 42), 42)),) julia> @finch_code begin Ct .= 0 for j = _ @@ -1015,7 +1015,7 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.18463927542167063, 0.16872726618738124, 0.0, 0.0, 0.0, 0.5894648191942263, 0.0, 0.0, 0.4399979683038884, 0.4872396182365841, 0.0, 0.0, 0.0, 0.5232587908717465, 0.0, 0.028458776980687873, 0.0, 0.1912882078151879, 0.5164204427507948, 0.25375520169397275, 0.7988048308846816, 0.548219404354131, 0.0, 0.0, 0.0, 0.08973042123875676, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16269102551813888, 0.0, 0.6368094288799442, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03708423534085979, 0.16845626013473977, 0.6588748971102081, 0.010877416543996312, 0.0, 0.0, 0.0, 0.44123232519423083, 0.0, 0.24002669576156066, 0.0, 0.0, 0.0, 0.21689234576879324, 0.2098895841423717, 0.6161647640351655, 0.4776903273077015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6355594744363152, 0.0, 0.0, 0.08457949502263125, 0.0, 0.0, 0.6901459039432658, 0.0, 0.0, 0.0, 0.057641486402300816, 0.0, 0.0, 0.09549316762404748, 0.09211299074367744, 0.11795836585190977, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0467877508869465, 0.0, 0.0, 0.0, 0.0, 0.04370712736779799, 0.281244207688617, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2030486542718697, 0.0, 0.5182178756464231, 0.0, 0.0, 0.0, 0.057729640414041494, 0.0, 0.0, 0.0, 0.0, 0.19354540299708142, 0.06300918519480127, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1478355026964281, 0.0, 0.0, 0.0, 0.541165159810693, 0.0, 0.0, 0.0, 0.16407931870757664, 0.2057712545151301, 0.32812733654993936, 0.0, 0.24913050204963633, 0.20974603114415158, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5086673274457614, 0.32467254520642835, 0.0, 0.22357645210013752, 0.0, 0.0, 0.0, 0.15908397194054766, 0.0, 0.5866968618616202, 0.21349654033737236, 0.243214867615369, 0.0, 0.0, 0.27374855832219774, 0.0, 0.3075930851551728, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44087523604465795, 0.22505682646241645, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2406824670174747, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4353583318013107, 0.0, 0.0, 0.0, 0.0, 0.42257756079609887, 0.0, 0.16328692344233348, 0.7239663574899861, 0.253917129058883, 0.0, 0.0, 0.0, 0.012941670285380298, 0.005948300091521438, 0.6648934966409066, 1.0229318994166612, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13578338949001834, 0.4197116456419966, 0.0, 0.947053670891027, 0.0, 0.13486088669396906, 0.0, 0.6620124726194103, 0.0, 0.6496849904621673, 0.0, 0.0, 0.7890806801928671, 0.01841465881846702, 0.27914669822772004, 0.0, 0.029516583729604803, 0.0, 0.0, 0.018864268719240455, 0.24394303159635272, 0.0, 0.5741603792214627, 0.3080365664801448, 0.6155081898538994, 0.2367816204152454, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17416434327376132, 0.0, 0.0, 0.0, 0.0, 0.16269692366253372, 0.0, 0.3491221627973697, 0.0, 0.0, 0.0, 0.0, 0.0, 0.896220207410521, 0.13858473312625733, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2148948115594729, 0.1029957040349639, 0.0, 0.10833979410008034, 0.0, 0.0, 0.23454757178184932, 0.0, 0.2155791117194733, 0.0, 0.22311080318652476, 0.0, 0.0, 0.0, 0.0, 0.07959294795619429, 0.0, 0.17163567622890405, 0.07283994445558169, 0.0, 0.0, 0.0, 0.08654379427684032, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16368166253985994, 0.0, 0.17071385720442764, 0.34758616988919516, 0.0, 0.0, 0.0, 0.0, 0.25336804558610515, 0.0, 0.032257457723339725, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2136279714073461, 0.0, 0.24003957209260046, 0.21303254632455026, 0.006511170502708404, 0.383310313899178, 0.0, 0.0, 0.0, 0.1337677376744651, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0646519260588245, 0.0, 0.0, 0.0, 0.31350938881953055, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20384728982176575, 0.0, 0.0, 0.0, 0.0, 0.05670575896106868, 0.0, 0.05964802423259749, 0.0, 0.0, 0.0, 0.4488563568162377, 0.11869016538841153, 0.0, 0.07667734536959822, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.040450967971474544, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09480431131127824, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0016369185703860613, 0.0, 0.0017218526009009176, 0.0, 0.0, 0.0, 0.0, 0.003426215245260554, 0.0, 0.002213436040060287, 0.0, 0.0, 0.0, 0.0, 0.028624781651490867, 0.0, 0.0, 0.0917221717112923, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03948493179664919, 0.0998678691104795, 0.0, 0.0, 0.0, 0.0, 0.0519314302968116, 0.019753641949088564, 0.0, 0.0, 0.08679325173985959, 0.0, 0.0, 0.44412542864463755, 0.0, 0.0, 0.0, 0.25440324223859473, 0.0, 0.06322962025433154, 0.0, 0.10055420420038351, 0.08043066558940987, 0.01930551218305079, 0.019941838639940274, 0.025537187307223392, 0.0, 0.2186623932992767, 0.06407227122111338, 0.0254835950299198, 0.0, 0.0, 0.6628636898477958, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5422666551724673, 0.6870145051652384, 0.0, 0.0, 0.1501651963322761, 0.019574736086580828, 0.0, 0.0, 0.03589870327691644, 0.0, 0.026565876114361182, 0.0, 0.0, 0.029264986204643254, 0.0, 0.0, 0.01893195304872942, 0.046727577005066426, 0.0, 0.0, 0.28025040572174376, 0.0, 0.018913093854322344, 0.0, 0.0, 0.0, 0.04894945277637971, 0.006583695531171352, 0.3875798367774556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3292155284261099, 0.04344067936293723, 0.0653720550702903, 0.0, 0.0, 0.22649528787365272, 0.018049730534704385, 0.14615138313733889, 0.0, 0.0, 0.0, 0.0, 0.20611785399916963, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31511052111518423, 0.0, 0.03672395965581389, 0.0, 0.0, 0.9552411806377301, 0.0, 0.0, 0.0, 0.3512720117094026, 0.0, 0.7814509194588117, 0.9900444949397926, 0.0, 0.2416698136762867, 0.0, 0.15594310090475377, 0.37345396038999507, 0.13378200524387487, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0037871796529251873, 0.0, 0.07132197093797825, 0.0, 0.0, 0.4038639203443338, 0.0, 0.007926901739731977, 0.0, 0.005121012178382578, 0.4483265473520345, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19545324009971515, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.015822792815906598, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2654026801406409, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005338269605792754, 0.3841199941370228, 0.003089715236949895, 0.0, 0.0, 0.0, 0.2702896727602311, 0.0061480462629685435, 0.0, 0.0077716018517988575, 0.0, 0.0, 0.5060334906800565, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5325221835704804, 0.4354711371945976, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4529112439588725, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.42175363431898494, 0.540090698333841, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1429447733494866, 0.0, 0.0, 0.17383910328410926, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7778438721037507, 0.7592283162924894, 0.27027978053916946, 0.9680808201913975, 0.0, 0.0, 0.0, 0.0, 0.23721687040615713, 0.0, 0.0, 0.0, 0.214724244927467, 0.0, 0.6713747276751851, 0.2691029964691732, 0.24957193666978766, 0.04174679102400021, 0.0, 0.0, 0.44623226966778873, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9739425217687773, 0.3878431688435761, 0.0, 0.0, 0.0, 0.0, 0.5905353658253105, 0.0, 0.41099451149099264, 0.46959062394023404, 0.38400872176268547, 0.0, 0.4974135902693747, 0.0, 0.0, 0.0, 0.9154557174508635, 0.2586557560688982, 0.09838729964211103, 0.4023736739495505, 0.0, 0.43229262167712557, 0.25909478937718255, 0.0, 0.0, 0.9527916935554207, 0.3993878193283669, 0.4377172055566821, 0.0, 0.0, 0.02448196261221554, 0.28590941544125414, 0.0, 0.4006023808751287, 0.03918308759508126, 0.0, 0.2882716435062163, 0.0, 0.0110856134215592, 0.37363494354124355, 0.049778285574341975, 0.0, 0.0, 0.9269077110105975, 0.31315811797299237, 0.0, 0.012303674452273154, 0.015429991708474198, 0.0, 0.0, 0.014446013487908171, 0.04123415495113678, 0.03371931705724562, 0.29538913191692134, 0.0, 0.3349006097039049, 0.23542836206424417, 0.23052114963877735, 0.31614042332280545, 0.0, 0.0, 0.11683083227872514, 0.0, 0.0, 0.0006114799040197484, 0.10975727273531571, 0.0, 0.004295508139252644, 0.05107901709661121, 0.0, 0.9334562674798996, 0.0, 0.0, 0.0, 0.0, 0.5880007983611341, 0.06450382436313898, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11800940272957328, 0.0, 0.1899751304440791, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.273744879534597, 0.0, 0.0, 0.2671580962806136, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3492510086210155, 0.0, 0.3080038714015672, 0.0, 0.0, 0.2221605109577772, 0.0, 0.0, 0.0, 0.0, 0.07999688285015112, 0.06742807554519747, 0.08634727349135116, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10258077598728532, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5012203954355052, 0.0, 0.0, 0.0, 0.08111247475296846, 0.0, 0.0, 0.12138201096876389, 0.0, 0.08982551378065248, 0.0, 0.0, 0.12126628140327211, 0.0, 0.0, 0.07844895363581271, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07837080617454226, 0.0, 0.0, 0.0, 0.20283344995989894, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1282379216751728, 0.033796057874619194, 0.0, 0.09653017040380268, 0.0, 0.08822574416521244, 0.01404236183038609, 0.056929725378038414, 0.0, 0.15526439596527059, 0.0, 0.0, 0.0, 0.03781410167223484, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2529010219858623, 0.3238608478009693, 0.0, 0.0, 0.1407409609998849, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.329852425046806, 0.0, 0.0, 0.33341239592531074, 0.45526487856119674, 0.0, 0.33690660829115365, 0.08120142522000469, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08802821410799472, 0.39029129939250945, 0.13688708765693952, 0.0, 0.08496391292272984, 0.0, 0.0, 0.5183827483305287, 0.703065773125918, 0.4814340077714492, 0.0, 0.0, 0.0, 0.12053001147739661, 0.0, 0.07320101959394086, 0.0, 0.0, 0.5105579893076974, 0.6674329003953465, 0.7892434941755087, 0.051355650714931346, 0.4403973256963498, 0.0, 0.01884360978410253, 0.0, 0.0, 0.42539452394686605, 0.1591995319925085, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17375879569486846, 0.0, 0.0, 0.0, 0.0, 0.1721016330265864, 0.0, 0.00044047585032663307, 0.1672932604423309, 0.18102660031449758, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004373654797423859, 0.0, 0.0, 0.08031885873943684, 0.0, 0.0, 0.12088873452345646, 0.0, 0.25447674137867604, 0.0, 0.20210883042048103, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05466434515545004, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005119594240948603, 0.0, 0.2461616206228127, 0.0, 0.0, 0.40062152777610743, 0.0, 0.0, 0.0, 0.4450914546665199, 0.0, 0.0, 0.0, 0.25078704499066257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6437873083636174, 0.0, 0.08986536930257488, 0.05459463157090123, 0.0, 0.0, 0.1617782592438168, 0.0, 0.0, 0.0, 0.0, 0.510293956173341, 0.0, 0.0, 0.0, 0.0, 0.0539939979224501, 0.06022554282071448, 0.0, 0.0, 0.0017903697912685446, 0.10539843894447092, 0.0, 0.007216901945678346, 0.0, 0.0, 0.0, 0.22684974207663636, 1.4564553082728662, 0.182720528082649, 0.06653876275957457, 0.0, 0.6274289004185675, 0.0, 0.5406773490882926, 0.27822503396119075, 0.09306814986560254, 0.29383387946651635, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6230315233142055, 0.9648450369390001, 0.5108864746688708, 0.0, 0.36840186712596623, 0.22805280632725022, 0.3227837297104921, 0.0, 0.0, 1.0240377781477865, 1.591691363735423, 0.0, 0.7314261723085571, 0.0, 0.0, 0.45960855697902075, 0.0, 0.43090812739194506, 0.0, 0.3151566241591431, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3316537279743774, 0.27121053456867833, 0.0, 0.0, 0.0, 0.4001441487163798, 0.5176883689695168, 0.709966180421066, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2820721974309868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03908614977726766, 0.3083419381268706, 0.39485756407874356, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11511559935873378, 0.014949071584157462, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03837527794969671, 0.5550679626138529, 0.0, 0.5726479000113842, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07921974732295421, 0.0, 0.0, 0.0, 0.0, 0.0035899619569867425, 0.0, 0.0, 0.2145099852146676, 0.0, 0.0, 0.0, 0.0, 0.21950879525087302, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09449503481586544, 0.21750142180635595, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32517302304866597, 0.0, 0.0, 0.21035924507266648, 0.0, 0.0, 0.0, 0.0, 0.23713929311152726, 0.21014969427312982, 0.0, 0.0, 0.0, 0.5438936968761621, 0.3401858622480347, 0.0, 0.0, 0.0016527476817863266, 0.0, 0.007935034693483254, 0.0, 0.0, 0.1293317927443745, 0.0, 0.0, 0.0, 0.14368792432790373, 0.0, 0.0, 0.0, 0.0, 0.35799313982296815, 0.29274964408302323, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029011045367568582, 0.0017598612427760815, 0.0, 0.0, 0.052226530139838453, 0.0, 0.0, 0.0, 0.0, 0.16473710872422428, 0.30447392294316244, 0.0, 0.0, 0.0, 0.01743076710707649, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0410977515599671, 0.0, 0.7547303898094697, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.30609022817115544, 0.0, 0.0, 0.0, 0.0, 0.2105854322132866, 0.5327502455990605, 0.13588517657689586, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24025222517683778, 0.0, 0.007535433506713796, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6979826303937671, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07410089446237557, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4744178097104391, 0.0, 0.0, 0.0, 0.0, 0.1876471424480227, 0.28765608703745393, 0.2182401932056186, 0.04951496463333951, 0.0, 0.12909838655126593, 0.0, 0.3498317042975124, 0.0, 0.37087394843503463, 0.47981991008621333, 1.1039610273729945, 0.4455015727565212, 0.05271863458630144, 0.19600051626620313, 0.0, 0.2316343353202091, 0.0, 0.0, 0.0, 0.4641150152741525, 0.15018757716392944, 0.21321672818601478, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21465382837602517, 0.0, 0.0, 0.0, 0.00020573734093944128, 0.0, 0.0, 0.0, 0.16929708918389524, 0.0160994805386141, 0.0, 0.049657622486024976, 0.0, 0.017886560545272906, 0.1659947360027911, 0.0, 0.0, 0.0, 0.0, 0.11420185948155097, 0.0, 0.07369142147184715, 0.0, 0.33489361550116375, 0.46496602729779546, 0.0036113530199273977, 0.044355883980523376, 0.08156217107736623, 0.0, 0.006501263051750628, 0.24089225482763127, 0.0, 0.0, 0.3861226254326548, 0.020506805168434235, 0.0, 0.24677384860885976, 0.0, 0.0, 0.002169816793370778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.041148887129618034, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9769895490432172, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5923828848790257, 0.0, 0.10196835358593148, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.328835975725113, 0.0, 0.0, 0.4036325198584592, 0.0, 0.0, 0.3602983928676083, 0.0, 0.0, 0.9557725494193282, 0.0, 0.43908662544955285, 0.0, 0.0, 0.46995823158461947, 0.0, 0.14454935060909507, 0.0, 0.010668331756011213, 0.6280409324984255, 0.03247332779409237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10592998533424139, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.33399686192793854, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7833052225131492, 0.0, 0.0, 0.0, 0.24187208135853017, 0.0, 0.071730719549714, 0.0, 0.11407352111288803, 0.0, 0.44957678307373006, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5736773783460691, 0.0692607726207939, 0.0, 0.0, 0.4731102083446558, 0.7389531951966185, 0.028778055517643567, 0.22717903301955947, 0.0, 0.1436855444728547, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.49542697237169275, 0.0, 0.3454532351491738, 0.11660950163380673, 0.0, 0.0, 0.0, 0.0, 0.027794605242432064, 0.0, 0.0, 0.0, 0.132905538815286, 0.0, 0.05497259939520882, 0.0, 0.0, 1.2625457513449383, 0.39900789022393385, 0.0, 0.0, 0.0, 0.0, 0.4114559732861708, 0.4741201455820112, 0.0, 0.21077985466978477, 0.0, 0.0, 0.7439578224938339, 0.42232266256074136, 0.4876343844944301, 0.6687496612887465, 0.115118039848854, 0.0, 0.0, 0.0, 0.0, 0.05260063632046659, 0.07759581613885312, 0.028401563276091994, 0.0, 0.056334062495133036, 0.17033944709766455, 0.9153107777932757, 0.0, 0.004924424218813803, 0.057509247607595904, 0.0, 0.7491964746840728, 0.05934710743113981, 0.0, 0.0, 0.0, 0.22238712275143577, 0.4319949206677921, 0.025917686578643146, 0.031803778192995576, 0.0, 0.6741550137516903, 0.009328571558732282, 0.0, 0.0, 0.0, 0.0, 0.5515037103010108, 0.6987172178395075, 0.0, 0.0, 0.0, 0.060174729085221354, 0.0, 0.0, 0.08734749351416564, 0.6636235071641303, 0.09580942583448827, 0.0, 0.0, 0.08996354325075087, 0.04525348827838765, 0.5824434635228624, 0.05819874866882126, 0.12005968761069685, 0.0, 0.0, 0.3313826265510977, 0.0, 0.058140773587614956, 0.6127791119711469, 0.0, 0.0, 0.15047559500471339, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6662085079556846, 0.3400843601648346, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22423528728211575, 0.0, 0.0, 0.0, 0.0, 0.3636963343220375, 0.5756271502974593, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046502182852265775, 0.0, 0.04891501992848654, 0.0, 0.0, 0.0, 0.9407814186149676, 0.09733317875961926, 0.0, 0.11672934297033466, 0.0, 0.6385588104227404, 0.0, 0.022206283976929683, 0.09845615426665595, 0.03496357540242119, 0.0, 0.0, 0.0, 0.0, 0.03380456195194267, 0.18543528221865002, 0.12144811071150914, 0.0, 0.03755694741887004, 0.16907550573428723, 0.0, 0.0, 0.1443808645220955, 0.0, 0.1003230425739974, 0.12879502114342312, 0.0647357901808317, 0.0, 0.5084955858844, 0.08519692951707138, 0.007582866204885641, 0.0, 0.03198292312330168, 0.0, 0.1209623049539008, 0.0, 0.12387820451445683, 0.0, 0.0, 0.043058753609476905, 0.03493082633215086, 0.0, 0.0, 0.043777031505228374, 0.016261326799286477, 0.16693678030096587, 0.0, 0.0]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.004334271763144113, 0.19866796375858964, 0.05511378591134807, 0.37983318302160474, 0.0, 0.8329001018500983, 0.30166090609024687, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3289219868624648, 0.0, 0.15511617694464214, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18499887719318273, 0.0, 0.0, 0.0, 0.19259223593916178, 0.0, 0.0, 0.0638915620449496, 0.08125561754012361, 0.17659717140450376, 0.0, 0.0, 0.1525779960421776, 0.0, 0.0, 0.0, 0.0, 0.29196799055295863, 0.0, 0.0, 0.0, 0.5551667524029037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4594337414860906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3019846765891098, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18892258579898563, 0.0, 0.2395310548375412, 0.0, 0.359229579293753, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00028478282759787334, 0.0, 0.3432275013790356, 0.0, 0.0, 0.2972839943189292, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19540404365846636, 0.0, 0.0, 0.0, 0.0, 0.18546216890582629, 0.0, 0.0, 0.00916099623463154, 0.0, 0.034731738855626984, 0.4853088859188271, 0.0076713909171271105, 0.0, 0.0, 0.5640422262893099, 0.0, 0.5950501234938147, 0.040920156633969085, 0.0014920661060395996, 0.0, 0.08081663901361853, 0.8825202410318094, 0.0, 0.006218090636031004, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3280555235834662, 0.03812149119614576, 0.0, 0.05190957475021724, 0.0, 0.06033708819060236, 0.0, 0.10124291140603807, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5085302772239245, 0.0, 0.5334307954394755, 0.0, 0.0, 0.2328402544634388, 0.0, 0.005816161517311894, 1.5317318593263975, 0.0, 0.46738125332221536, 0.0, 0.09813163178688389, 0.4394739409933983, 0.0, 0.26102098784262384, 0.0, 0.0, 0.0, 0.0, 0.8804155352247423, 0.0, 0.0, 0.48240400321886606, 0.3763091458911055, 0.6151496795666793, 0.0, 0.27268296540705483, 0.0, 0.0014290584461454537, 0.0, 0.0, 0.0, 0.5294637260878591, 0.0, 0.0, 0.0, 0.31181862629226015, 0.0, 0.34152287293383227, 0.1986997482112381, 0.2527011428302912, 0.0, 0.434749031361829, 0.0, 0.4472075705110786, 0.4092092126159339, 0.2807873539680881, 0.17401521117970595, 0.0, 0.0, 0.43733948883443596, 0.5485693747724284, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0983266821553666, 0.05373620000037918, 0.49612300100963586, 0.0, 0.0, 1.075151264033199, 0.0, 0.18716105879611752, 0.03950202184626144, 0.0, 0.0, 0.7852572057826378, 0.0, 0.0, 0.08756438716142145, 0.27446263899702106, 0.0, 0.0, 0.07204260281080108, 0.0, 0.09291620627436281, 0.23270017215835156, 0.23824566618105675, 0.0, 0.0, 0.0, 0.13665872084048475, 0.0, 0.0, 0.0067937121060301624, 0.1164801427986044, 0.0, 0.5691621002508566, 0.4713388661713567, 0.41358181631025637, 0.0, 0.3128607440091297, 0.0, 0.0, 0.20424594336339066, 0.0, 0.0, 0.7442286193021344, 0.10553727794892508, 0.0, 0.30186901767997887, 0.0, 0.0, 0.0, 0.32291683563950796, 0.07758151598185183, 0.0, 0.347786535534979, 0.7360230359944353, 0.0, 0.0, 0.0, 0.8757273805535595, 0.41322710295268655, 0.0, 0.25679112297862333, 0.17774302673574222, 0.5841939760860391, 0.0, 0.0, 0.0, 0.13300779742001662, 0.16915583797139946, 0.0, 0.0, 0.0, 0.7164740353603845, 0.45156468002631484, 0.0, 0.27217311439601866, 0.7084784766971438, 0.06835326871026481, 0.0, 0.0, 0.0, 0.2861016237491002, 1.0700436562849107, 0.135740840434777, 0.2599664462430113, 0.45536369102376945, 0.0, 0.0, 0.0, 0.16460938932017066, 0.9424546774296569, 0.4980075807530193, 0.501649117240962, 0.9215918221852557, 0.0, 0.5227646022766553, 0.46865433734477785, 0.0, 0.1899494468105599, 0.0, 0.14204872822901377, 0.7891527088162923, 0.2800775160398023, 0.0, 0.0, 0.6038144125549446, 0.0, 0.4101280976499608, 0.15813547044885462, 0.4381740566617935, 0.0025678619479343042, 0.5913196381458786, 0.01581382625018507, 0.4317825799661969, 0.0, 0.5361217114844467, 0.16404576969544252, 0.0, 0.03623369485950333, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19327505078226082, 0.1125279795645968, 0.0, 0.38171505913646114, 0.0, 0.0012820843611261621, 0.0, 0.0, 0.017018867107690273, 0.0, 0.018573326277702022, 0.7755881641075008, 0.12996991545193906, 0.0, 0.18005632805213245, 0.0, 0.2451805301156947, 0.0, 0.3747092870507497, 0.0, 0.4781929115858312, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.35214721497251084, 0.0, 0.020304118651362432, 0.14466279308909658, 0.626862644216891, 0.0, 0.0, 1.5549351131665947, 0.30737844662289215, 0.0, 0.0, 0.0, 0.0, 0.009701873820892715, 0.2520412914553624, 0.018396624198184493, 0.0, 0.7982268230101296, 0.0, 0.9201682818000929, 0.0, 0.0, 0.7342011144064367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09396246898802936, 0.0, 0.5073258744317697, 0.22284199906817412, 0.10151898941699102, 0.03180992568768135, 0.0, 0.5543686635557524, 0.0, 0.0, 0.0, 0.22367207355552704, 0.0, 0.0, 0.0, 0.40880306935546484, 0.0, 0.42113696363931935, 0.0, 0.0, 0.0, 0.43326306412219423, 0.39232717474974355, 0.0, 0.0, 0.0, 0.013675206005982276, 0.0, 0.2603519242467926, 0.3502025254743841, 0.14312660068897712, 0.34775162340880994, 0.20310882214946477, 0.0, 0.27127891969267615, 0.0, 0.0, 0.020541404680713544, 0.0, 0.0, 0.1991870263338475, 0.0, 0.0, 0.2456237488004554, 0.12123860127246498, 0.2079074067296303, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24646978770136238, 0.15225808974571345, 0.0, 0.0, 0.46988488666249073, 0.16461741428636234, 0.4415386194506142, 0.05631807188893752, 0.0611318669096905, 0.0, 0.0, 0.0, 0.5215534136524774, 0.0, 0.0, 0.6274626509368973, 0.038256585847320265, 0.530070634494204, 0.0, 0.7877809268797783, 0.25601250351282806, 0.37534186876141573, 0.700013095645165, 0.0, 0.29431110179251513, 0.22882177649965688, 1.0569304890861846, 0.0, 0.0, 0.0, 0.0, 0.02833923205698933, 0.02572736738919585, 0.0, 0.1150475064446459, 0.24371977071087828, 0.0, 0.0, 0.044121908414131224, 0.0771055384425919, 0.09695789652483547, 0.0, 0.0, 0.0, 0.12020713596947674, 0.045249684273424934, 0.8721213827038133, 0.0, 0.11731035534021127, 0.37569616707373005, 0.0, 0.0, 0.9570606189270042, 0.9086284112098039, 0.20027308709305888, 0.4268041763647709, 0.0, 0.0, 0.015909944043088663, 0.0, 0.7658973441527888, 0.0, 0.19507759787979717, 0.3226660152512004, 0.23629991340839918, 0.0, 0.13848101841219138, 0.0, 0.0, 0.24578615843203896, 0.0, 0.0, 0.10167993256702677, 0.0, 0.0, 0.12538470338440244, 0.9934363459809055, 0.10613146591697438, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6421265863141966, 0.0, 0.5400344618364347, 0.025731716559651077, 0.0, 0.0, 0.0, 0.007521097208030019, 0.5455660054203588, 0.0, 1.1209603429913297, 0.0, 0.0, 0.5234607155600556, 0.0, 0.023977651748011766, 0.0, 0.0, 0.0, 0.27798322874225667, 0.0, 0.35612425891926536, 0.0, 0.7529913555346315, 0.6214420882570796, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12146506806205652, 0.0, 0.3210215267482459, 0.0, 0.0, 0.0, 0.33419799384234544, 0.0, 0.0, 0.15359727591834285, 0.19534099821264672, 0.525863863274946, 0.0, 0.0, 0.34569678733330644, 0.0, 0.0, 0.3415674397857982, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.523004359259986, 0.0, 0.22235180304591923, 0.0, 0.00635695661054767, 0.0, 0.0, 0.0843846185513356, 0.0, 0.0, 0.0, 0.8855039996037297, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27294552017018114, 0.0, 0.3412878895624823, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5864608505347954, 0.0, 0.10380099346078346, 0.02524889717437322, 0.0, 0.0, 0.38157075730498896, 0.0, 0.0, 0.0, 0.45469484904050655, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26459586877877683, 0.18314523505716396, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22372814141562178, 0.0, 0.0, 0.0, 0.6276845275284666, 0.18331203344516112, 0.25689720406507865, 0.04048914090414101, 0.0, 0.016969058333515752, 0.0, 0.5911567891086366, 0.37358991094373184, 0.21597413111529512, 0.09535966106843696, 0.021909623318208237, 0.49412659112391777, 0.39229708641560146, 0.0, 0.0, 0.5239905526116051, 0.22383442432789932, 0.0, 0.408761833081477, 0.7858251636352953, 0.0, 0.03095169444374481, 1.0134328993353359, 0.0, 0.5783663988186404, 0.023349871375665725, 0.4068090650141155, 0.3701047391436106, 0.7170357796952346, 0.31327392774306395, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.39350494784782397, 0.07595368484327951, 0.4868292236818003, 0.046986031631648606, 0.530207151960747, 0.01037806421927761, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05535788985307855, 0.7394134258901907, 0.17106635844034493, 0.9821443208953105, 0.0, 0.008962807708770178, 0.0, 0.0, 0.11897566020800357, 0.0, 0.0, 0.0, 1.2828090910806784, 0.0, 0.4691443493685695, 0.0, 0.07022467062008277, 0.18231155361607748, 0.41302392682414213, 0.0, 0.13696413696930718, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.423686950315378, 0.0, 0.5297732126841366, 0.0, 0.10086209606266386, 0.4105665706595916, 0.2899236467445781, 0.08479167779863508, 0.0, 1.1607169616195545, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44056670549109944, 0.0036426275414389976, 0.22268017654499572, 0.70259131988822, 0.021981713208965886, 0.0, 0.0, 0.0, 0.6644482698446481, 0.5559910462571956, 0.9081368976941899, 0.9545466439826781, 0.0, 0.5800820874802947, 0.6131061961157059, 0.0, 0.3387938943904664, 0.0, 0.41233232521209184, 0.6892320892052487, 0.9168247018477867, 0.7592095444656833, 0.0, 0.7080274090242662, 0.0, 0.0, 0.7409103227795685, 0.4891910517462003, 0.0, 0.0, 0.6996898878138225, 0.18201720925245757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.033060035104523045, 0.0, 0.0, 0.0, 0.0, 0.0010434833431631984, 0.0, 0.0, 0.0, 0.010921241238865733, 0.0, 0.015498170387323498, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.011618017340433275, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2104054739321471, 0.0, 0.0, 0.0, 0.051249741424478176, 0.0, 0.0, 0.0, 0.09744956100917274, 0.0, 0.0, 0.0, 0.0, 0.10766993925868745, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18951483497887683, 0.5969374604132631, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6248091001560899, 0.0, 0.0, 0.0, 0.0, 0.18617398114562853, 0.0530079909103574, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14076422137873648, 0.3823151552281139, 0.28535858102685935, 0.3054264047421474, 0.0, 0.0, 0.5425991952026914, 0.16566917168527906, 0.0, 0.0, 0.24572721112234908, 0.0, 0.0, 0.311993347128524, 0.0, 1.0231061248638629, 0.5939954507294103, 0.5983388707717968, 0.7851882761904205, 0.0, 0.28209866162610053, 0.46470151179975694, 0.0, 0.22767102275324697, 0.0, 0.0, 0.3351791998251741, 0.0, 0.0, 0.0, 0.3258354466053841, 0.29514851487698524, 0.25858133097678015, 0.1886151008053812, 0.5226293862659805, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0442888167727012, 0.0, 0.002505192641426779, 0.0, 0.0, 0.07664740890754863, 0.0, 0.0, 0.013363010227595206, 0.00048725362450601585, 0.002419244088482629, 0.026391726291740327, 0.0, 0.0, 0.03460717393330891, 0.0, 0.13624247986958654, 0.0, 0.0, 0.0, 0.0, 0.0, 0.012449069569846, 0.0, 0.016951747875799564, 0.0, 0.0197038621774241, 0.0, 0.033062191640471625, 0.07310509907314719, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06556034095953286, 0.0, 0.02434740964367002, 0.0, 0.0, 0.13592547532623306, 0.0, 0.030022610188286405, 0.03795734899490777, 0.008699370747195389, 0.0, 0.0, 0.18940737674761182, 0.16014434992779022, 0.0058393216511455045, 0.0, 0.3162824676834449, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14919154588027264, 0.0, 0.20315232851529888, 0.0, 0.27582528532656464, 0.0, 0.3962223404212856, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00142596300027198, 0.0, 0.008781597914028754, 0.2917830655969515, 0.0, 0.0, 0.3010196130390429, 1.085161420061463, 0.0, 0.8818413438369698, 0.0, 0.14807253735972709, 0.6682230613653689, 0.6738718955158736, 0.0, 0.2921120382906695, 0.0, 0.23016863424694362, 0.44343897402347887, 0.0, 0.0, 1.2859761704109314, 1.188418751121335, 0.0, 0.4620501506594876, 0.23396469855670338, 0.0, 0.03498671823904876, 0.0, 0.0, 0.3392611399043929, 0.20497564811318061, 0.0, 0.4183535169904413, 0.20649711391931772, 0.520902106226398, 0.0, 0.0, 0.16125806820737418, 0.5576988707246249, 0.0, 0.0, 0.0, 0.11391623120681071, 0.0, 0.0, 0.09151851725619714, 0.0, 0.0, 1.197254000111945, 0.0, 0.8775820846458859, 0.0, 0.5629797627532018, 0.6687057520979063, 0.341227000414515, 0.0, 0.25482576175079585, 0.0, 0.39537376259476137, 0.4437592920364036, 0.0, 0.0, 0.5927285333298421, 0.651986303075751, 0.0, 1.0434591895456948, 0.0, 0.0, 0.03501199088471498, 0.0, 0.0, 0.3395062050893736, 0.15619471223870085, 0.0, 0.41865571453083017, 0.20664627704903807, 0.48238135206809674, 0.08860575544817058, 0.0, 0.005695035181786341, 0.42497543210880456, 0.0, 0.23934194260454025, 0.30438882267274336, 0.2874361482000896, 0.0, 0.0, 0.6245971595264426, 0.0, 0.3639559852559372, 0.0, 0.0, 0.20575691959192335, 0.0, 0.5994751724692355, 0.0, 0.0, 0.0, 0.0, 0.002904710270589501, 0.0, 0.27722048222724693, 0.15720637186052522, 0.0, 0.40582979792580204, 0.3276141191929195, 0.0, 0.5216472712210337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.022828121623522435, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.111114554054197, 0.0, 0.0, 0.005523835481493179, 0.12589753624924738, 0.4223352609451343, 0.19512225997871732, 0.9646462752755526, 0.0, 0.0, 0.908234546074678, 0.0, 0.1303083320340461, 0.4180115467796097, 0.3502002628164635, 0.005797584702932196, 0.620011620521792, 0.6673813159226286, 0.0030737631986123407, 0.0, 0.42144642014638856, 1.0414378536891689, 0.6289622414694364, 1.5563606265339154, 0.08385396416867873, 0.3115994197854627, 0.7117829870894571, 0.6381078265340546, 0.0, 0.23989801450652898, 0.0, 0.5826228436020011, 0.8457142287971168, 0.0, 0.0, 0.0, 1.0193786877434905, 0.0, 0.0, 0.19971832516875276, 0.5533950636153777, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21472741909783344, 0.39082851888093567, 0.44716245502350144, 0.2879713896328549, 0.5511368948723377, 0.33565164359388877, 1.3517828371888283, 0.0, 0.09957607530690628, 0.0, 0.0, 0.26103163435011795, 0.3965287786994862, 0.6597151598792015, 0.0, 0.34286845579856556, 0.3900059867245693, 0.34423839922938515, 0.0, 1.2842745238771571, 0.3694211002080512, 0.0, 0.05489702502604951, 0.3645945046142821, 0.0, 0.0, 0.08041277613458127, 0.2893532857853331, 0.0, 0.5419495915870312, 0.70973704371772, 0.06597297072421819, 0.0, 0.0, 0.28417074423649047, 0.45673560467870195, 0.1772454725351981, 0.22541615615699262, 0.08077018346809645, 0.5662548477384789, 0.07678831671440492, 0.7573984424681688, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4826509895037858, 0.0, 0.7156459126461995, 0.0, 0.0, 0.0, 0.0, 0.0, 0.013563432420802306, 0.4559162518278489, 0.0, 0.0, 0.0, 0.0, 0.26262283944881243, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16505781512417061, 0.2933206286622639, 0.0, 0.0, 0.0, 0.0, 0.40289003757510067, 0.0, 0.0, 0.0, 0.6372941893353361, 0.0, 0.6237934507673457, 0.8070702584067075, 0.0, 0.0, 0.3379623279083573, 0.0, 0.46129991809862586, 0.7333015288992237, 0.21031442023566344, 0.0, 0.7041420713561054, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7760176053652288, 0.0, 1.0534236649773678, 0.0, 0.0, 0.8070780011372765, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4823716017908521, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6208306891807599, 0.0, 0.0, 0.01732988822073383, 0.2738833349341264, 0.10672374403860475, 0.0, 0.008043590060480383, 0.0, 0.055277084044920086, 0.0, 0.0, 0.17943961322559207, 0.0, 0.0, 0.0, 0.0, 0.0, 0.718108290096912, 0.0, 0.0, 0.0, 0.008728384689335622, 0.0, 0.1697763404331079, 0.11586384141065409, 0.0, 0.0, 0.0, 0.8848305575683707, 0.0, 0.8449968950182224, 0.0, 0.0, 0.0, 0.6706152313255382, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8308196053978146, 0.0, 0.9175002824131868, 0.7530109173431534, 0.022342425693822682, 0.0, 0.0035915524463436964, 0.15288943835905894, 0.0, 0.5199425421439203, 0.11917728725476327, 0.3521011644457409, 0.0, 0.822488739774635, 0.513543493422637, 0.2981570434312181, 0.0, 0.0, 1.2701086711578897, 0.0, 0.11247893732510689, 0.0, 0.039332390318575425, 0.0, 0.11102635670488926, 0.0, 0.15118325075382752, 0.0, 0.1757278339799435, 0.0, 0.2948633760880991, 0.15371975197149906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04453230950399372, 0.0, 0.05568267952698087, 0.0, 0.21714106205060016, 0.0, 0.0, 0.0, 0.0, 0.7213227431120439, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2701718137836067, 0.0, 0.06123281377737304, 0.4007297534572718, 0.0, 0.0, 0.02350606599699272, 0.0, 0.47270164239805296, 0.39554302818161685, 0.39843532224568856, 0.0, 0.0, 0.46004399190355705, 0.41242580548884994, 0.0, 0.15086754157289264, 0.0, 0.0, 0.5466072621606027, 0.18414300130678235, 0.2087681866233734, 0.0, 0.5313695523968773, 0.0, 0.0, 0.2807883504872339, 0.34802019073798685, 0.0, 0.09776175774612722, 0.1924014129464173, 0.0, 0.0, 0.0, 0.2995245510564702, 0.1439415371971276, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09612835370305864, 0.0, 0.07178793274997196, 0.0, 0.0, 0.0, 0.529229742886101, 0.0, 0.0, 0.5898615183638936, 0.0, 0.1996504875270556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07685007162501065, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4724449949223617, 0.0, 0.21985358976027652, 0.0, 0.0, 0.0, 0.6511036698044336, 0.5394783324223208, 0.9048355234024855, 0.0, 0.0, 0.0, 0.008134079103649166, 0.17236516549262873, 0.0, 0.7108281927774538, 0.0, 0.0, 0.0, 0.8245834715993663, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22989626507902333, 0.12442621872484774, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3037122713618223, 0.0, 0.0, 0.008259351424073042, 0.4378900919766154, 0.05086408498890661, 0.31974807102322866, 0.0, 0.0, 0.7960980638875322, 0.0689135689704732, 0.0, 0.0, 0.0, 0.20359294387478752, 0.9097633301509839, 0.0, 0.6841090251831579, 0.0, 0.6154584825649704, 0.7335150023327748, 1.015637287349907, 0.0, 0.0779165260149525, 1.1277817941657742, 0.0, 0.0, 0.3457097793442966, 0.6958114560471119, 0.22297907055084815, 0.02617735461213243, 0.8271866794310433, 0.0, 0.25383801660715655, 0.0, 0.6564805026462143, 0.4519424562793308, 0.8175733700968422, 0.26495100977979114, 0.0, 0.0, 0.0, 0.33910693050583907, 0.0, 0.0, 0.0, 0.4889218480481046, 0.0, 0.3925649791995639, 1.5627863234111485, 0.8201598086100989, 0.28474440170274185, 1.0514838770367962, 0.010290531779792767, 0.0, 0.0, 1.5282247448720891, 0.4202365445740981, 0.38631591015261757, 0.07827208426350975, 0.002001482371009478, 0.19978631068641475, 0.10840878806592323, 0.8849580765325739, 0.7025926608640433, 0.21468725597950544, 0.6515266028885637, 0.304659479667613, 0.0, 0.5203661079080213, 0.1989832785613875, 0.22866153178235926, 0.2129788116497342, 0.0511368043793991, 0.0, 0.06963236972450947, 0.0, 0.08093717687353573, 0.0, 0.3254291820176872, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4944791980843742, 0.5417407856384763, 0.0, 0.4343792686365096, 1.5442785077006684, 0.0, 0.13746522377571999, 0.0, 0.0, 0.0, 0.0, 0.01933245239450143, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44623451745418, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.30502005455201636, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.014872981553739924, 0.0, 0.0, 0.0007393802182031884, 0.0, 0.14653699929908884, 0.0, 0.0, 0.26188312990151436, 0.028159286104530473, 0.0, 0.4084686341089707, 0.9235151006259961, 0.5957064186534903, 0.0, 0.0, 0.5535709817494249, 0.0, 0.25891613288066156, 0.07783302925410085, 0.2939591160629263, 0.1987201643010643, 0.0, 0.09767541007114018, 0.4120929351702914, 0.22225830848448824, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13739476210353194, 0.0, 0.037597515302596925, 0.0, 0.0, 0.31874062595288627, 0.33536722163001637, 0.0, 0.0, 0.0, 0.48352996362981304, 0.0, 0.38851289261478805, 0.6830254018960756, 0.3364461001285706, 0.8253161071254982, 0.0, 0.2348841918025421, 0.0, 0.4205219693225024, 0.5314960091024892, 0.0, 0.0, 0.10178270195612651, 0.0, 0.0, 0.780835547454152, 0.5872223143240599, 0.2503853190515238, 0.0, 0.0, 0.6150976289535472, 0.0, 0.09445718365268194, 0.0, 0.0, 0.17331386223779208, 1.5139967025892487, 0.0, 0.0031631037123804793, 0.0, 0.0, 0.20592512324808152, 0.0, 0.03635874582185372, 0.0, 0.20018457152414249, 0.22068196040992705, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), 42), 42)),) julia> @finch_code begin Ct .= 0 for j = parallel(_) @@ -1313,5 +1313,5 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.18463927542167063, 0.16872726618738124, 0.0, 0.0, 0.0, 0.5894648191942263, 0.0, 0.0, 0.4399979683038884, 0.4872396182365841, 0.0, 0.0, 0.0, 0.5232587908717465, 0.0, 0.028458776980687873, 0.0, 0.1912882078151879, 0.5164204427507948, 0.25375520169397275, 0.7988048308846816, 0.548219404354131, 0.0, 0.0, 0.0, 0.08973042123875676, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16269102551813888, 0.0, 0.6368094288799442, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03708423534085979, 0.16845626013473977, 0.6588748971102081, 0.010877416543996312, 0.0, 0.0, 0.0, 0.44123232519423083, 0.0, 0.24002669576156066, 0.0, 0.0, 0.0, 0.21689234576879324, 0.2098895841423717, 0.6161647640351655, 0.4776903273077015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6355594744363152, 0.0, 0.0, 0.08457949502263125, 0.0, 0.0, 0.6901459039432658, 0.0, 0.0, 0.0, 0.057641486402300816, 0.0, 0.0, 0.09549316762404748, 0.09211299074367744, 0.11795836585190977, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0467877508869465, 0.0, 0.0, 0.0, 0.0, 0.04370712736779799, 0.281244207688617, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2030486542718697, 0.0, 0.5182178756464231, 0.0, 0.0, 0.0, 0.057729640414041494, 0.0, 0.0, 0.0, 0.0, 0.19354540299708142, 0.06300918519480127, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1478355026964281, 0.0, 0.0, 0.0, 0.541165159810693, 0.0, 0.0, 0.0, 0.16407931870757664, 0.2057712545151301, 0.32812733654993936, 0.0, 0.24913050204963633, 0.20974603114415158, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5086673274457614, 0.32467254520642835, 0.0, 0.22357645210013752, 0.0, 0.0, 0.0, 0.15908397194054766, 0.0, 0.5866968618616202, 0.21349654033737236, 0.243214867615369, 0.0, 0.0, 0.27374855832219774, 0.0, 0.3075930851551728, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44087523604465795, 0.22505682646241645, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2406824670174747, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4353583318013107, 0.0, 0.0, 0.0, 0.0, 0.42257756079609887, 0.0, 0.16328692344233348, 0.7239663574899861, 0.253917129058883, 0.0, 0.0, 0.0, 0.012941670285380298, 0.005948300091521438, 0.6648934966409066, 1.0229318994166612, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13578338949001834, 0.4197116456419966, 0.0, 0.947053670891027, 0.0, 0.13486088669396906, 0.0, 0.6620124726194103, 0.0, 0.6496849904621673, 0.0, 0.0, 0.7890806801928671, 0.01841465881846702, 0.27914669822772004, 0.0, 0.029516583729604803, 0.0, 0.0, 0.018864268719240455, 0.24394303159635272, 0.0, 0.5741603792214627, 0.3080365664801448, 0.6155081898538994, 0.2367816204152454, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17416434327376132, 0.0, 0.0, 0.0, 0.0, 0.16269692366253372, 0.0, 0.3491221627973697, 0.0, 0.0, 0.0, 0.0, 0.0, 0.896220207410521, 0.13858473312625733, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2148948115594729, 0.1029957040349639, 0.0, 0.10833979410008034, 0.0, 0.0, 0.23454757178184932, 0.0, 0.2155791117194733, 0.0, 0.22311080318652476, 0.0, 0.0, 0.0, 0.0, 0.07959294795619429, 0.0, 0.17163567622890405, 0.07283994445558169, 0.0, 0.0, 0.0, 0.08654379427684032, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16368166253985994, 0.0, 0.17071385720442764, 0.34758616988919516, 0.0, 0.0, 0.0, 0.0, 0.25336804558610515, 0.0, 0.032257457723339725, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2136279714073461, 0.0, 0.24003957209260046, 0.21303254632455026, 0.006511170502708404, 0.383310313899178, 0.0, 0.0, 0.0, 0.1337677376744651, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0646519260588245, 0.0, 0.0, 0.0, 0.31350938881953055, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20384728982176575, 0.0, 0.0, 0.0, 0.0, 0.05670575896106868, 0.0, 0.05964802423259749, 0.0, 0.0, 0.0, 0.4488563568162377, 0.11869016538841153, 0.0, 0.07667734536959822, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.040450967971474544, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09480431131127824, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0016369185703860613, 0.0, 0.0017218526009009176, 0.0, 0.0, 0.0, 0.0, 0.003426215245260554, 0.0, 0.002213436040060287, 0.0, 0.0, 0.0, 0.0, 0.028624781651490867, 0.0, 0.0, 0.0917221717112923, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03948493179664919, 0.0998678691104795, 0.0, 0.0, 0.0, 0.0, 0.0519314302968116, 0.019753641949088564, 0.0, 0.0, 0.08679325173985959, 0.0, 0.0, 0.44412542864463755, 0.0, 0.0, 0.0, 0.25440324223859473, 0.0, 0.06322962025433154, 0.0, 0.10055420420038351, 0.08043066558940987, 0.01930551218305079, 0.019941838639940274, 0.025537187307223392, 0.0, 0.2186623932992767, 0.06407227122111338, 0.0254835950299198, 0.0, 0.0, 0.6628636898477958, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5422666551724673, 0.6870145051652384, 0.0, 0.0, 0.1501651963322761, 0.019574736086580828, 0.0, 0.0, 0.03589870327691644, 0.0, 0.026565876114361182, 0.0, 0.0, 0.029264986204643254, 0.0, 0.0, 0.01893195304872942, 0.046727577005066426, 0.0, 0.0, 0.28025040572174376, 0.0, 0.018913093854322344, 0.0, 0.0, 0.0, 0.04894945277637971, 0.006583695531171352, 0.3875798367774556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3292155284261099, 0.04344067936293723, 0.0653720550702903, 0.0, 0.0, 0.22649528787365272, 0.018049730534704385, 0.14615138313733889, 0.0, 0.0, 0.0, 0.0, 0.20611785399916963, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31511052111518423, 0.0, 0.03672395965581389, 0.0, 0.0, 0.9552411806377301, 0.0, 0.0, 0.0, 0.3512720117094026, 0.0, 0.7814509194588117, 0.9900444949397926, 0.0, 0.2416698136762867, 0.0, 0.15594310090475377, 0.37345396038999507, 0.13378200524387487, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0037871796529251873, 0.0, 0.07132197093797825, 0.0, 0.0, 0.4038639203443338, 0.0, 0.007926901739731977, 0.0, 0.005121012178382578, 0.4483265473520345, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19545324009971515, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.015822792815906598, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2654026801406409, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005338269605792754, 0.3841199941370228, 0.003089715236949895, 0.0, 0.0, 0.0, 0.2702896727602311, 0.0061480462629685435, 0.0, 0.0077716018517988575, 0.0, 0.0, 0.5060334906800565, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5325221835704804, 0.4354711371945976, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4529112439588725, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.42175363431898494, 0.540090698333841, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1429447733494866, 0.0, 0.0, 0.17383910328410926, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7778438721037507, 0.7592283162924894, 0.27027978053916946, 0.9680808201913975, 0.0, 0.0, 0.0, 0.0, 0.23721687040615713, 0.0, 0.0, 0.0, 0.214724244927467, 0.0, 0.6713747276751851, 0.2691029964691732, 0.24957193666978766, 0.04174679102400021, 0.0, 0.0, 0.44623226966778873, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9739425217687773, 0.3878431688435761, 0.0, 0.0, 0.0, 0.0, 0.5905353658253105, 0.0, 0.41099451149099264, 0.46959062394023404, 0.38400872176268547, 0.0, 0.4974135902693747, 0.0, 0.0, 0.0, 0.9154557174508635, 0.2586557560688982, 0.09838729964211103, 0.4023736739495505, 0.0, 0.43229262167712557, 0.25909478937718255, 0.0, 0.0, 0.9527916935554207, 0.3993878193283669, 0.4377172055566821, 0.0, 0.0, 0.02448196261221554, 0.28590941544125414, 0.0, 0.4006023808751287, 0.03918308759508126, 0.0, 0.2882716435062163, 0.0, 0.0110856134215592, 0.37363494354124355, 0.049778285574341975, 0.0, 0.0, 0.9269077110105975, 0.31315811797299237, 0.0, 0.012303674452273154, 0.015429991708474198, 0.0, 0.0, 0.014446013487908171, 0.04123415495113678, 0.03371931705724562, 0.29538913191692134, 0.0, 0.3349006097039049, 0.23542836206424417, 0.23052114963877735, 0.31614042332280545, 0.0, 0.0, 0.11683083227872514, 0.0, 0.0, 0.0006114799040197484, 0.10975727273531571, 0.0, 0.004295508139252644, 0.05107901709661121, 0.0, 0.9334562674798996, 0.0, 0.0, 0.0, 0.0, 0.5880007983611341, 0.06450382436313898, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11800940272957328, 0.0, 0.1899751304440791, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.273744879534597, 0.0, 0.0, 0.2671580962806136, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3492510086210155, 0.0, 0.3080038714015672, 0.0, 0.0, 0.2221605109577772, 0.0, 0.0, 0.0, 0.0, 0.07999688285015112, 0.06742807554519747, 0.08634727349135116, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10258077598728532, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5012203954355052, 0.0, 0.0, 0.0, 0.08111247475296846, 0.0, 0.0, 0.12138201096876389, 0.0, 0.08982551378065248, 0.0, 0.0, 0.12126628140327211, 0.0, 0.0, 0.07844895363581271, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07837080617454226, 0.0, 0.0, 0.0, 0.20283344995989894, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1282379216751728, 0.033796057874619194, 0.0, 0.09653017040380268, 0.0, 0.08822574416521244, 0.01404236183038609, 0.056929725378038414, 0.0, 0.15526439596527059, 0.0, 0.0, 0.0, 0.03781410167223484, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2529010219858623, 0.3238608478009693, 0.0, 0.0, 0.1407409609998849, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.329852425046806, 0.0, 0.0, 0.33341239592531074, 0.45526487856119674, 0.0, 0.33690660829115365, 0.08120142522000469, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08802821410799472, 0.39029129939250945, 0.13688708765693952, 0.0, 0.08496391292272984, 0.0, 0.0, 0.5183827483305287, 0.703065773125918, 0.4814340077714492, 0.0, 0.0, 0.0, 0.12053001147739661, 0.0, 0.07320101959394086, 0.0, 0.0, 0.5105579893076974, 0.6674329003953465, 0.7892434941755087, 0.051355650714931346, 0.4403973256963498, 0.0, 0.01884360978410253, 0.0, 0.0, 0.42539452394686605, 0.1591995319925085, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17375879569486846, 0.0, 0.0, 0.0, 0.0, 0.1721016330265864, 0.0, 0.00044047585032663307, 0.1672932604423309, 0.18102660031449758, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004373654797423859, 0.0, 0.0, 0.08031885873943684, 0.0, 0.0, 0.12088873452345646, 0.0, 0.25447674137867604, 0.0, 0.20210883042048103, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05466434515545004, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.005119594240948603, 0.0, 0.2461616206228127, 0.0, 0.0, 0.40062152777610743, 0.0, 0.0, 0.0, 0.4450914546665199, 0.0, 0.0, 0.0, 0.25078704499066257, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6437873083636174, 0.0, 0.08986536930257488, 0.05459463157090123, 0.0, 0.0, 0.1617782592438168, 0.0, 0.0, 0.0, 0.0, 0.510293956173341, 0.0, 0.0, 0.0, 0.0, 0.0539939979224501, 0.06022554282071448, 0.0, 0.0, 0.0017903697912685446, 0.10539843894447092, 0.0, 0.007216901945678346, 0.0, 0.0, 0.0, 0.22684974207663636, 1.4564553082728662, 0.182720528082649, 0.06653876275957457, 0.0, 0.6274289004185675, 0.0, 0.5406773490882926, 0.27822503396119075, 0.09306814986560254, 0.29383387946651635, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6230315233142055, 0.9648450369390001, 0.5108864746688708, 0.0, 0.36840186712596623, 0.22805280632725022, 0.3227837297104921, 0.0, 0.0, 1.0240377781477865, 1.591691363735423, 0.0, 0.7314261723085571, 0.0, 0.0, 0.45960855697902075, 0.0, 0.43090812739194506, 0.0, 0.3151566241591431, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3316537279743774, 0.27121053456867833, 0.0, 0.0, 0.0, 0.4001441487163798, 0.5176883689695168, 0.709966180421066, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2820721974309868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03908614977726766, 0.3083419381268706, 0.39485756407874356, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11511559935873378, 0.014949071584157462, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03837527794969671, 0.5550679626138529, 0.0, 0.5726479000113842, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07921974732295421, 0.0, 0.0, 0.0, 0.0, 0.0035899619569867425, 0.0, 0.0, 0.2145099852146676, 0.0, 0.0, 0.0, 0.0, 0.21950879525087302, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09449503481586544, 0.21750142180635595, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32517302304866597, 0.0, 0.0, 0.21035924507266648, 0.0, 0.0, 0.0, 0.0, 0.23713929311152726, 0.21014969427312982, 0.0, 0.0, 0.0, 0.5438936968761621, 0.3401858622480347, 0.0, 0.0, 0.0016527476817863266, 0.0, 0.007935034693483254, 0.0, 0.0, 0.1293317927443745, 0.0, 0.0, 0.0, 0.14368792432790373, 0.0, 0.0, 0.0, 0.0, 0.35799313982296815, 0.29274964408302323, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029011045367568582, 0.0017598612427760815, 0.0, 0.0, 0.052226530139838453, 0.0, 0.0, 0.0, 0.0, 0.16473710872422428, 0.30447392294316244, 0.0, 0.0, 0.0, 0.01743076710707649, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0410977515599671, 0.0, 0.7547303898094697, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.30609022817115544, 0.0, 0.0, 0.0, 0.0, 0.2105854322132866, 0.5327502455990605, 0.13588517657689586, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24025222517683778, 0.0, 0.007535433506713796, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6979826303937671, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07410089446237557, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4744178097104391, 0.0, 0.0, 0.0, 0.0, 0.1876471424480227, 0.28765608703745393, 0.2182401932056186, 0.04951496463333951, 0.0, 0.12909838655126593, 0.0, 0.3498317042975124, 0.0, 0.37087394843503463, 0.47981991008621333, 1.1039610273729945, 0.4455015727565212, 0.05271863458630144, 0.19600051626620313, 0.0, 0.2316343353202091, 0.0, 0.0, 0.0, 0.4641150152741525, 0.15018757716392944, 0.21321672818601478, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21465382837602517, 0.0, 0.0, 0.0, 0.00020573734093944128, 0.0, 0.0, 0.0, 0.16929708918389524, 0.0160994805386141, 0.0, 0.049657622486024976, 0.0, 0.017886560545272906, 0.1659947360027911, 0.0, 0.0, 0.0, 0.0, 0.11420185948155097, 0.0, 0.07369142147184715, 0.0, 0.33489361550116375, 0.46496602729779546, 0.0036113530199273977, 0.044355883980523376, 0.08156217107736623, 0.0, 0.006501263051750628, 0.24089225482763127, 0.0, 0.0, 0.3861226254326548, 0.020506805168434235, 0.0, 0.24677384860885976, 0.0, 0.0, 0.002169816793370778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.041148887129618034, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9769895490432172, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5923828848790257, 0.0, 0.10196835358593148, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.328835975725113, 0.0, 0.0, 0.4036325198584592, 0.0, 0.0, 0.3602983928676083, 0.0, 0.0, 0.9557725494193282, 0.0, 0.43908662544955285, 0.0, 0.0, 0.46995823158461947, 0.0, 0.14454935060909507, 0.0, 0.010668331756011213, 0.6280409324984255, 0.03247332779409237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10592998533424139, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.33399686192793854, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7833052225131492, 0.0, 0.0, 0.0, 0.24187208135853017, 0.0, 0.071730719549714, 0.0, 0.11407352111288803, 0.0, 0.44957678307373006, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5736773783460691, 0.0692607726207939, 0.0, 0.0, 0.4731102083446558, 0.7389531951966185, 0.028778055517643567, 0.22717903301955947, 0.0, 0.1436855444728547, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.49542697237169275, 0.0, 0.3454532351491738, 0.11660950163380673, 0.0, 0.0, 0.0, 0.0, 0.027794605242432064, 0.0, 0.0, 0.0, 0.132905538815286, 0.0, 0.05497259939520882, 0.0, 0.0, 1.2625457513449383, 0.39900789022393385, 0.0, 0.0, 0.0, 0.0, 0.4114559732861708, 0.4741201455820112, 0.0, 0.21077985466978477, 0.0, 0.0, 0.7439578224938339, 0.42232266256074136, 0.4876343844944301, 0.6687496612887465, 0.115118039848854, 0.0, 0.0, 0.0, 0.0, 0.05260063632046659, 0.07759581613885312, 0.028401563276091994, 0.0, 0.056334062495133036, 0.17033944709766455, 0.9153107777932757, 0.0, 0.004924424218813803, 0.057509247607595904, 0.0, 0.7491964746840728, 0.05934710743113981, 0.0, 0.0, 0.0, 0.22238712275143577, 0.4319949206677921, 0.025917686578643146, 0.031803778192995576, 0.0, 0.6741550137516903, 0.009328571558732282, 0.0, 0.0, 0.0, 0.0, 0.5515037103010108, 0.6987172178395075, 0.0, 0.0, 0.0, 0.060174729085221354, 0.0, 0.0, 0.08734749351416564, 0.6636235071641303, 0.09580942583448827, 0.0, 0.0, 0.08996354325075087, 0.04525348827838765, 0.5824434635228624, 0.05819874866882126, 0.12005968761069685, 0.0, 0.0, 0.3313826265510977, 0.0, 0.058140773587614956, 0.6127791119711469, 0.0, 0.0, 0.15047559500471339, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6662085079556846, 0.3400843601648346, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22423528728211575, 0.0, 0.0, 0.0, 0.0, 0.3636963343220375, 0.5756271502974593, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.046502182852265775, 0.0, 0.04891501992848654, 0.0, 0.0, 0.0, 0.9407814186149676, 0.09733317875961926, 0.0, 0.11672934297033466, 0.0, 0.6385588104227404, 0.0, 0.022206283976929683, 0.09845615426665595, 0.03496357540242119, 0.0, 0.0, 0.0, 0.0, 0.03380456195194267, 0.18543528221865002, 0.12144811071150914, 0.0, 0.03755694741887004, 0.16907550573428723, 0.0, 0.0, 0.1443808645220955, 0.0, 0.1003230425739974, 0.12879502114342312, 0.0647357901808317, 0.0, 0.5084955858844, 0.08519692951707138, 0.007582866204885641, 0.0, 0.03198292312330168, 0.0, 0.1209623049539008, 0.0, 0.12387820451445683, 0.0, 0.0, 0.043058753609476905, 0.03493082633215086, 0.0, 0.0, 0.043777031505228374, 0.016261326799286477, 0.16693678030096587, 0.0, 0.0]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.004334271763144113, 0.19866796375858964, 0.05511378591134807, 0.37983318302160474, 0.0, 0.8329001018500983, 0.30166090609024687, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3289219868624648, 0.0, 0.15511617694464214, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18499887719318273, 0.0, 0.0, 0.0, 0.19259223593916178, 0.0, 0.0, 0.0638915620449496, 0.08125561754012361, 0.17659717140450376, 0.0, 0.0, 0.1525779960421776, 0.0, 0.0, 0.0, 0.0, 0.29196799055295863, 0.0, 0.0, 0.0, 0.5551667524029037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4594337414860906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3019846765891098, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18892258579898563, 0.0, 0.2395310548375412, 0.0, 0.359229579293753, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00028478282759787334, 0.0, 0.3432275013790356, 0.0, 0.0, 0.2972839943189292, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19540404365846636, 0.0, 0.0, 0.0, 0.0, 0.18546216890582629, 0.0, 0.0, 0.00916099623463154, 0.0, 0.034731738855626984, 0.4853088859188271, 0.0076713909171271105, 0.0, 0.0, 0.5640422262893099, 0.0, 0.5950501234938147, 0.040920156633969085, 0.0014920661060395996, 0.0, 0.08081663901361853, 0.8825202410318094, 0.0, 0.006218090636031004, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3280555235834662, 0.03812149119614576, 0.0, 0.05190957475021724, 0.0, 0.06033708819060236, 0.0, 0.10124291140603807, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5085302772239245, 0.0, 0.5334307954394755, 0.0, 0.0, 0.2328402544634388, 0.0, 0.005816161517311894, 1.5317318593263975, 0.0, 0.46738125332221536, 0.0, 0.09813163178688389, 0.4394739409933983, 0.0, 0.26102098784262384, 0.0, 0.0, 0.0, 0.0, 0.8804155352247423, 0.0, 0.0, 0.48240400321886606, 0.3763091458911055, 0.6151496795666793, 0.0, 0.27268296540705483, 0.0, 0.0014290584461454537, 0.0, 0.0, 0.0, 0.5294637260878591, 0.0, 0.0, 0.0, 0.31181862629226015, 0.0, 0.34152287293383227, 0.1986997482112381, 0.2527011428302912, 0.0, 0.434749031361829, 0.0, 0.4472075705110786, 0.4092092126159339, 0.2807873539680881, 0.17401521117970595, 0.0, 0.0, 0.43733948883443596, 0.5485693747724284, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0983266821553666, 0.05373620000037918, 0.49612300100963586, 0.0, 0.0, 1.075151264033199, 0.0, 0.18716105879611752, 0.03950202184626144, 0.0, 0.0, 0.7852572057826378, 0.0, 0.0, 0.08756438716142145, 0.27446263899702106, 0.0, 0.0, 0.07204260281080108, 0.0, 0.09291620627436281, 0.23270017215835156, 0.23824566618105675, 0.0, 0.0, 0.0, 0.13665872084048475, 0.0, 0.0, 0.0067937121060301624, 0.1164801427986044, 0.0, 0.5691621002508566, 0.4713388661713567, 0.41358181631025637, 0.0, 0.3128607440091297, 0.0, 0.0, 0.20424594336339066, 0.0, 0.0, 0.7442286193021344, 0.10553727794892508, 0.0, 0.30186901767997887, 0.0, 0.0, 0.0, 0.32291683563950796, 0.07758151598185183, 0.0, 0.347786535534979, 0.7360230359944353, 0.0, 0.0, 0.0, 0.8757273805535595, 0.41322710295268655, 0.0, 0.25679112297862333, 0.17774302673574222, 0.5841939760860391, 0.0, 0.0, 0.0, 0.13300779742001662, 0.16915583797139946, 0.0, 0.0, 0.0, 0.7164740353603845, 0.45156468002631484, 0.0, 0.27217311439601866, 0.7084784766971438, 0.06835326871026481, 0.0, 0.0, 0.0, 0.2861016237491002, 1.0700436562849107, 0.135740840434777, 0.2599664462430113, 0.45536369102376945, 0.0, 0.0, 0.0, 0.16460938932017066, 0.9424546774296569, 0.4980075807530193, 0.501649117240962, 0.9215918221852557, 0.0, 0.5227646022766553, 0.46865433734477785, 0.0, 0.1899494468105599, 0.0, 0.14204872822901377, 0.7891527088162923, 0.2800775160398023, 0.0, 0.0, 0.6038144125549446, 0.0, 0.4101280976499608, 0.15813547044885462, 0.4381740566617935, 0.0025678619479343042, 0.5913196381458786, 0.01581382625018507, 0.4317825799661969, 0.0, 0.5361217114844467, 0.16404576969544252, 0.0, 0.03623369485950333, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19327505078226082, 0.1125279795645968, 0.0, 0.38171505913646114, 0.0, 0.0012820843611261621, 0.0, 0.0, 0.017018867107690273, 0.0, 0.018573326277702022, 0.7755881641075008, 0.12996991545193906, 0.0, 0.18005632805213245, 0.0, 0.2451805301156947, 0.0, 0.3747092870507497, 0.0, 0.4781929115858312, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.35214721497251084, 0.0, 0.020304118651362432, 0.14466279308909658, 0.626862644216891, 0.0, 0.0, 1.5549351131665947, 0.30737844662289215, 0.0, 0.0, 0.0, 0.0, 0.009701873820892715, 0.2520412914553624, 0.018396624198184493, 0.0, 0.7982268230101296, 0.0, 0.9201682818000929, 0.0, 0.0, 0.7342011144064367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09396246898802936, 0.0, 0.5073258744317697, 0.22284199906817412, 0.10151898941699102, 0.03180992568768135, 0.0, 0.5543686635557524, 0.0, 0.0, 0.0, 0.22367207355552704, 0.0, 0.0, 0.0, 0.40880306935546484, 0.0, 0.42113696363931935, 0.0, 0.0, 0.0, 0.43326306412219423, 0.39232717474974355, 0.0, 0.0, 0.0, 0.013675206005982276, 0.0, 0.2603519242467926, 0.3502025254743841, 0.14312660068897712, 0.34775162340880994, 0.20310882214946477, 0.0, 0.27127891969267615, 0.0, 0.0, 0.020541404680713544, 0.0, 0.0, 0.1991870263338475, 0.0, 0.0, 0.2456237488004554, 0.12123860127246498, 0.2079074067296303, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24646978770136238, 0.15225808974571345, 0.0, 0.0, 0.46988488666249073, 0.16461741428636234, 0.4415386194506142, 0.05631807188893752, 0.0611318669096905, 0.0, 0.0, 0.0, 0.5215534136524774, 0.0, 0.0, 0.6274626509368973, 0.038256585847320265, 0.530070634494204, 0.0, 0.7877809268797783, 0.25601250351282806, 0.37534186876141573, 0.700013095645165, 0.0, 0.29431110179251513, 0.22882177649965688, 1.0569304890861846, 0.0, 0.0, 0.0, 0.0, 0.02833923205698933, 0.02572736738919585, 0.0, 0.1150475064446459, 0.24371977071087828, 0.0, 0.0, 0.044121908414131224, 0.0771055384425919, 0.09695789652483547, 0.0, 0.0, 0.0, 0.12020713596947674, 0.045249684273424934, 0.8721213827038133, 0.0, 0.11731035534021127, 0.37569616707373005, 0.0, 0.0, 0.9570606189270042, 0.9086284112098039, 0.20027308709305888, 0.4268041763647709, 0.0, 0.0, 0.015909944043088663, 0.0, 0.7658973441527888, 0.0, 0.19507759787979717, 0.3226660152512004, 0.23629991340839918, 0.0, 0.13848101841219138, 0.0, 0.0, 0.24578615843203896, 0.0, 0.0, 0.10167993256702677, 0.0, 0.0, 0.12538470338440244, 0.9934363459809055, 0.10613146591697438, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6421265863141966, 0.0, 0.5400344618364347, 0.025731716559651077, 0.0, 0.0, 0.0, 0.007521097208030019, 0.5455660054203588, 0.0, 1.1209603429913297, 0.0, 0.0, 0.5234607155600556, 0.0, 0.023977651748011766, 0.0, 0.0, 0.0, 0.27798322874225667, 0.0, 0.35612425891926536, 0.0, 0.7529913555346315, 0.6214420882570796, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12146506806205652, 0.0, 0.3210215267482459, 0.0, 0.0, 0.0, 0.33419799384234544, 0.0, 0.0, 0.15359727591834285, 0.19534099821264672, 0.525863863274946, 0.0, 0.0, 0.34569678733330644, 0.0, 0.0, 0.3415674397857982, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.523004359259986, 0.0, 0.22235180304591923, 0.0, 0.00635695661054767, 0.0, 0.0, 0.0843846185513356, 0.0, 0.0, 0.0, 0.8855039996037297, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27294552017018114, 0.0, 0.3412878895624823, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5864608505347954, 0.0, 0.10380099346078346, 0.02524889717437322, 0.0, 0.0, 0.38157075730498896, 0.0, 0.0, 0.0, 0.45469484904050655, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26459586877877683, 0.18314523505716396, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22372814141562178, 0.0, 0.0, 0.0, 0.6276845275284666, 0.18331203344516112, 0.25689720406507865, 0.04048914090414101, 0.0, 0.016969058333515752, 0.0, 0.5911567891086366, 0.37358991094373184, 0.21597413111529512, 0.09535966106843696, 0.021909623318208237, 0.49412659112391777, 0.39229708641560146, 0.0, 0.0, 0.5239905526116051, 0.22383442432789932, 0.0, 0.408761833081477, 0.7858251636352953, 0.0, 0.03095169444374481, 1.0134328993353359, 0.0, 0.5783663988186404, 0.023349871375665725, 0.4068090650141155, 0.3701047391436106, 0.7170357796952346, 0.31327392774306395, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.39350494784782397, 0.07595368484327951, 0.4868292236818003, 0.046986031631648606, 0.530207151960747, 0.01037806421927761, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05535788985307855, 0.7394134258901907, 0.17106635844034493, 0.9821443208953105, 0.0, 0.008962807708770178, 0.0, 0.0, 0.11897566020800357, 0.0, 0.0, 0.0, 1.2828090910806784, 0.0, 0.4691443493685695, 0.0, 0.07022467062008277, 0.18231155361607748, 0.41302392682414213, 0.0, 0.13696413696930718, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.423686950315378, 0.0, 0.5297732126841366, 0.0, 0.10086209606266386, 0.4105665706595916, 0.2899236467445781, 0.08479167779863508, 0.0, 1.1607169616195545, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44056670549109944, 0.0036426275414389976, 0.22268017654499572, 0.70259131988822, 0.021981713208965886, 0.0, 0.0, 0.0, 0.6644482698446481, 0.5559910462571956, 0.9081368976941899, 0.9545466439826781, 0.0, 0.5800820874802947, 0.6131061961157059, 0.0, 0.3387938943904664, 0.0, 0.41233232521209184, 0.6892320892052487, 0.9168247018477867, 0.7592095444656833, 0.0, 0.7080274090242662, 0.0, 0.0, 0.7409103227795685, 0.4891910517462003, 0.0, 0.0, 0.6996898878138225, 0.18201720925245757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.033060035104523045, 0.0, 0.0, 0.0, 0.0, 0.0010434833431631984, 0.0, 0.0, 0.0, 0.010921241238865733, 0.0, 0.015498170387323498, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.011618017340433275, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2104054739321471, 0.0, 0.0, 0.0, 0.051249741424478176, 0.0, 0.0, 0.0, 0.09744956100917274, 0.0, 0.0, 0.0, 0.0, 0.10766993925868745, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18951483497887683, 0.5969374604132631, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6248091001560899, 0.0, 0.0, 0.0, 0.0, 0.18617398114562853, 0.0530079909103574, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14076422137873648, 0.3823151552281139, 0.28535858102685935, 0.3054264047421474, 0.0, 0.0, 0.5425991952026914, 0.16566917168527906, 0.0, 0.0, 0.24572721112234908, 0.0, 0.0, 0.311993347128524, 0.0, 1.0231061248638629, 0.5939954507294103, 0.5983388707717968, 0.7851882761904205, 0.0, 0.28209866162610053, 0.46470151179975694, 0.0, 0.22767102275324697, 0.0, 0.0, 0.3351791998251741, 0.0, 0.0, 0.0, 0.3258354466053841, 0.29514851487698524, 0.25858133097678015, 0.1886151008053812, 0.5226293862659805, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0442888167727012, 0.0, 0.002505192641426779, 0.0, 0.0, 0.07664740890754863, 0.0, 0.0, 0.013363010227595206, 0.00048725362450601585, 0.002419244088482629, 0.026391726291740327, 0.0, 0.0, 0.03460717393330891, 0.0, 0.13624247986958654, 0.0, 0.0, 0.0, 0.0, 0.0, 0.012449069569846, 0.0, 0.016951747875799564, 0.0, 0.0197038621774241, 0.0, 0.033062191640471625, 0.07310509907314719, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06556034095953286, 0.0, 0.02434740964367002, 0.0, 0.0, 0.13592547532623306, 0.0, 0.030022610188286405, 0.03795734899490777, 0.008699370747195389, 0.0, 0.0, 0.18940737674761182, 0.16014434992779022, 0.0058393216511455045, 0.0, 0.3162824676834449, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14919154588027264, 0.0, 0.20315232851529888, 0.0, 0.27582528532656464, 0.0, 0.3962223404212856, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00142596300027198, 0.0, 0.008781597914028754, 0.2917830655969515, 0.0, 0.0, 0.3010196130390429, 1.085161420061463, 0.0, 0.8818413438369698, 0.0, 0.14807253735972709, 0.6682230613653689, 0.6738718955158736, 0.0, 0.2921120382906695, 0.0, 0.23016863424694362, 0.44343897402347887, 0.0, 0.0, 1.2859761704109314, 1.188418751121335, 0.0, 0.4620501506594876, 0.23396469855670338, 0.0, 0.03498671823904876, 0.0, 0.0, 0.3392611399043929, 0.20497564811318061, 0.0, 0.4183535169904413, 0.20649711391931772, 0.520902106226398, 0.0, 0.0, 0.16125806820737418, 0.5576988707246249, 0.0, 0.0, 0.0, 0.11391623120681071, 0.0, 0.0, 0.09151851725619714, 0.0, 0.0, 1.197254000111945, 0.0, 0.8775820846458859, 0.0, 0.5629797627532018, 0.6687057520979063, 0.341227000414515, 0.0, 0.25482576175079585, 0.0, 0.39537376259476137, 0.4437592920364036, 0.0, 0.0, 0.5927285333298421, 0.651986303075751, 0.0, 1.0434591895456948, 0.0, 0.0, 0.03501199088471498, 0.0, 0.0, 0.3395062050893736, 0.15619471223870085, 0.0, 0.41865571453083017, 0.20664627704903807, 0.48238135206809674, 0.08860575544817058, 0.0, 0.005695035181786341, 0.42497543210880456, 0.0, 0.23934194260454025, 0.30438882267274336, 0.2874361482000896, 0.0, 0.0, 0.6245971595264426, 0.0, 0.3639559852559372, 0.0, 0.0, 0.20575691959192335, 0.0, 0.5994751724692355, 0.0, 0.0, 0.0, 0.0, 0.002904710270589501, 0.0, 0.27722048222724693, 0.15720637186052522, 0.0, 0.40582979792580204, 0.3276141191929195, 0.0, 0.5216472712210337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.022828121623522435, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.111114554054197, 0.0, 0.0, 0.005523835481493179, 0.12589753624924738, 0.4223352609451343, 0.19512225997871732, 0.9646462752755526, 0.0, 0.0, 0.908234546074678, 0.0, 0.1303083320340461, 0.4180115467796097, 0.3502002628164635, 0.005797584702932196, 0.620011620521792, 0.6673813159226286, 0.0030737631986123407, 0.0, 0.42144642014638856, 1.0414378536891689, 0.6289622414694364, 1.5563606265339154, 0.08385396416867873, 0.3115994197854627, 0.7117829870894571, 0.6381078265340546, 0.0, 0.23989801450652898, 0.0, 0.5826228436020011, 0.8457142287971168, 0.0, 0.0, 0.0, 1.0193786877434905, 0.0, 0.0, 0.19971832516875276, 0.5533950636153777, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21472741909783344, 0.39082851888093567, 0.44716245502350144, 0.2879713896328549, 0.5511368948723377, 0.33565164359388877, 1.3517828371888283, 0.0, 0.09957607530690628, 0.0, 0.0, 0.26103163435011795, 0.3965287786994862, 0.6597151598792015, 0.0, 0.34286845579856556, 0.3900059867245693, 0.34423839922938515, 0.0, 1.2842745238771571, 0.3694211002080512, 0.0, 0.05489702502604951, 0.3645945046142821, 0.0, 0.0, 0.08041277613458127, 0.2893532857853331, 0.0, 0.5419495915870312, 0.70973704371772, 0.06597297072421819, 0.0, 0.0, 0.28417074423649047, 0.45673560467870195, 0.1772454725351981, 0.22541615615699262, 0.08077018346809645, 0.5662548477384789, 0.07678831671440492, 0.7573984424681688, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4826509895037858, 0.0, 0.7156459126461995, 0.0, 0.0, 0.0, 0.0, 0.0, 0.013563432420802306, 0.4559162518278489, 0.0, 0.0, 0.0, 0.0, 0.26262283944881243, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16505781512417061, 0.2933206286622639, 0.0, 0.0, 0.0, 0.0, 0.40289003757510067, 0.0, 0.0, 0.0, 0.6372941893353361, 0.0, 0.6237934507673457, 0.8070702584067075, 0.0, 0.0, 0.3379623279083573, 0.0, 0.46129991809862586, 0.7333015288992237, 0.21031442023566344, 0.0, 0.7041420713561054, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7760176053652288, 0.0, 1.0534236649773678, 0.0, 0.0, 0.8070780011372765, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4823716017908521, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6208306891807599, 0.0, 0.0, 0.01732988822073383, 0.2738833349341264, 0.10672374403860475, 0.0, 0.008043590060480383, 0.0, 0.055277084044920086, 0.0, 0.0, 0.17943961322559207, 0.0, 0.0, 0.0, 0.0, 0.0, 0.718108290096912, 0.0, 0.0, 0.0, 0.008728384689335622, 0.0, 0.1697763404331079, 0.11586384141065409, 0.0, 0.0, 0.0, 0.8848305575683707, 0.0, 0.8449968950182224, 0.0, 0.0, 0.0, 0.6706152313255382, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8308196053978146, 0.0, 0.9175002824131868, 0.7530109173431534, 0.022342425693822682, 0.0, 0.0035915524463436964, 0.15288943835905894, 0.0, 0.5199425421439203, 0.11917728725476327, 0.3521011644457409, 0.0, 0.822488739774635, 0.513543493422637, 0.2981570434312181, 0.0, 0.0, 1.2701086711578897, 0.0, 0.11247893732510689, 0.0, 0.039332390318575425, 0.0, 0.11102635670488926, 0.0, 0.15118325075382752, 0.0, 0.1757278339799435, 0.0, 0.2948633760880991, 0.15371975197149906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04453230950399372, 0.0, 0.05568267952698087, 0.0, 0.21714106205060016, 0.0, 0.0, 0.0, 0.0, 0.7213227431120439, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2701718137836067, 0.0, 0.06123281377737304, 0.4007297534572718, 0.0, 0.0, 0.02350606599699272, 0.0, 0.47270164239805296, 0.39554302818161685, 0.39843532224568856, 0.0, 0.0, 0.46004399190355705, 0.41242580548884994, 0.0, 0.15086754157289264, 0.0, 0.0, 0.5466072621606027, 0.18414300130678235, 0.2087681866233734, 0.0, 0.5313695523968773, 0.0, 0.0, 0.2807883504872339, 0.34802019073798685, 0.0, 0.09776175774612722, 0.1924014129464173, 0.0, 0.0, 0.0, 0.2995245510564702, 0.1439415371971276, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09612835370305864, 0.0, 0.07178793274997196, 0.0, 0.0, 0.0, 0.529229742886101, 0.0, 0.0, 0.5898615183638936, 0.0, 0.1996504875270556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07685007162501065, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4724449949223617, 0.0, 0.21985358976027652, 0.0, 0.0, 0.0, 0.6511036698044336, 0.5394783324223208, 0.9048355234024855, 0.0, 0.0, 0.0, 0.008134079103649166, 0.17236516549262873, 0.0, 0.7108281927774538, 0.0, 0.0, 0.0, 0.8245834715993663, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22989626507902333, 0.12442621872484774, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3037122713618223, 0.0, 0.0, 0.008259351424073042, 0.4378900919766154, 0.05086408498890661, 0.31974807102322866, 0.0, 0.0, 0.7960980638875322, 0.0689135689704732, 0.0, 0.0, 0.0, 0.20359294387478752, 0.9097633301509839, 0.0, 0.6841090251831579, 0.0, 0.6154584825649704, 0.7335150023327748, 1.015637287349907, 0.0, 0.0779165260149525, 1.1277817941657742, 0.0, 0.0, 0.3457097793442966, 0.6958114560471119, 0.22297907055084815, 0.02617735461213243, 0.8271866794310433, 0.0, 0.25383801660715655, 0.0, 0.6564805026462143, 0.4519424562793308, 0.8175733700968422, 0.26495100977979114, 0.0, 0.0, 0.0, 0.33910693050583907, 0.0, 0.0, 0.0, 0.4889218480481046, 0.0, 0.3925649791995639, 1.5627863234111485, 0.8201598086100989, 0.28474440170274185, 1.0514838770367962, 0.010290531779792767, 0.0, 0.0, 1.5282247448720891, 0.4202365445740981, 0.38631591015261757, 0.07827208426350975, 0.002001482371009478, 0.19978631068641475, 0.10840878806592323, 0.8849580765325739, 0.7025926608640433, 0.21468725597950544, 0.6515266028885637, 0.304659479667613, 0.0, 0.5203661079080213, 0.1989832785613875, 0.22866153178235926, 0.2129788116497342, 0.0511368043793991, 0.0, 0.06963236972450947, 0.0, 0.08093717687353573, 0.0, 0.3254291820176872, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4944791980843742, 0.5417407856384763, 0.0, 0.4343792686365096, 1.5442785077006684, 0.0, 0.13746522377571999, 0.0, 0.0, 0.0, 0.0, 0.01933245239450143, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44623451745418, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.30502005455201636, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.014872981553739924, 0.0, 0.0, 0.0007393802182031884, 0.0, 0.14653699929908884, 0.0, 0.0, 0.26188312990151436, 0.028159286104530473, 0.0, 0.4084686341089707, 0.9235151006259961, 0.5957064186534903, 0.0, 0.0, 0.5535709817494249, 0.0, 0.25891613288066156, 0.07783302925410085, 0.2939591160629263, 0.1987201643010643, 0.0, 0.09767541007114018, 0.4120929351702914, 0.22225830848448824, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13739476210353194, 0.0, 0.037597515302596925, 0.0, 0.0, 0.31874062595288627, 0.33536722163001637, 0.0, 0.0, 0.0, 0.48352996362981304, 0.0, 0.38851289261478805, 0.6830254018960756, 0.3364461001285706, 0.8253161071254982, 0.0, 0.2348841918025421, 0.0, 0.4205219693225024, 0.5314960091024892, 0.0, 0.0, 0.10178270195612651, 0.0, 0.0, 0.780835547454152, 0.5872223143240599, 0.2503853190515238, 0.0, 0.0, 0.6150976289535472, 0.0, 0.09445718365268194, 0.0, 0.0, 0.17331386223779208, 1.5139967025892487, 0.0, 0.0031631037123804793, 0.0, 0.0, 0.20592512324808152, 0.0, 0.03635874582185372, 0.0, 0.20018457152414249, 0.22068196040992705, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), 42), 42)),) diff --git a/test/test_parallel.jl b/test/test_parallel.jl index be31fa7fe..f359694f7 100644 --- a/test/test_parallel.jl +++ b/test/test_parallel.jl @@ -318,76 +318,76 @@ end =# - @repl io @finch_code begin - Ct .= 0 - for i = _ - for j = _ - for k = parallel(_) - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end - @repl io @finch begin - Ct .= 0 - for i = _ - for j = _ - for k = parallel(_) - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end - - @test Ct == CR - - @repl io @finch_code begin - Ct .= 0 - for i = _ - for k = parallel(_) - for j = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end - @repl io @finch begin - Ct .= 0 - for i = _ - for k = parallel(_) - for j = _ + # @repl io @finch_code begin + # Ct .= 0 + # for i = _ + # for j = _ + # for k = parallel(_) + # Ct[i, j] += A[i, k] * B[k, j] + # end + # end + # end + # end + # @repl io @finch begin + # Ct .= 0 + # for i = _ + # for j = _ + # for k = parallel(_) + # Ct[i, j] += A[i, k] * B[k, j] + # end + # end + # end + # end + + # @test Ct == CR + + # @repl io @finch_code begin + # Ct .= 0 + # for i = _ + # for k = parallel(_) + # for j = _ + # Ct[i, j] += A[i, k] * B[k, j] + # end + # end + # end + # end + # @repl io @finch begin + # Ct .= 0 + # for i = _ + # for k = parallel(_) + # for j = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end - - @test Ct == CR - - @repl io @finch_code begin - Ct .= 0 - for k = parallel(_) - for i = _ - for j = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end - @repl io @finch begin - Ct .= 0 - for k = parallel(_) - for i = _ - for j = _ + # Ct[i, j] += A[i, k] * B[k, j] + # end + # end + # end + # end + + # @test Ct == CR + + # @repl io @finch_code begin + # Ct .= 0 + # for k = parallel(_) + # for i = _ + # for j = _ + # Ct[i, j] += A[i, k] * B[k, j] + # end + # end + # end + # end + # @repl io @finch begin + # Ct .= 0 + # for k = parallel(_) + # for i = _ + # for j = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end + # Ct[i, j] += A[i, k] * B[k, j] + # end + # end + # end + # end - @test Ct == CR + # @test Ct == CR @test check_output("debug_parallel_spmms_atomics.txt", String(take!(io))) end From ec38b009678e9339908f43baad8f398b592ab770 Mon Sep 17 00:00:00 2001 From: teocollin1995 Date: Thu, 29 Feb 2024 09:51:50 -0500 Subject: [PATCH 26/41] old tests pass mod ae --- src/transforms/concurrent.jl | 27 +- .../debug_parallel_spmms_atomics.txt | 1378 +---------------- .../debug_parallel_spmms_no_atomics.txt | 12 +- 3 files changed, 25 insertions(+), 1392 deletions(-) diff --git a/src/transforms/concurrent.jl b/src/transforms/concurrent.jl index 9c3ba5988..050619c00 100644 --- a/src/transforms/concurrent.jl +++ b/src/transforms/concurrent.jl @@ -65,8 +65,21 @@ function ensure_concurrent(root, ctx) accs = map(agn -> (@capture agn assign(~lhs, ~op, ~rhs); lhs), agns) acc = first(accs) # The operation must be associative. - if !(isassociative(ctx.algebra, first(ops))) - throw(FinchConcurrencyError("Nonlocal assignments to $(root) are not associative")) + oper = first(ops) + if !(isassociative(ctx.algebra, oper)) + if (length(ops) == 1) + if (@capture(acc, access(~tns, ~mode, ~i...))) + injectivityIdp:: Vector{Bool} = is_injective(tns, ctx) + if !all(injectivityIdp) + throw(FinchConcurrencyError("Non-associative operations can only be parallelized in the case of a single injective acceses, but the injectivity is $(injectivity)")) + else + continue # We pass via a single assignment that is completely injective. + end + else + throw(FinchConcurrencyError("Assignment $(acc) is invalid!")) + end + end + throw(FinchConcurrencyError("Nonlocal assignments to $(root) via $(oper) are not associative")) end # If the acceses are different, then all acceses must be atomic. if !allequal(accs) @@ -81,11 +94,8 @@ function ensure_concurrent(root, ctx) #Since all operations/acceses are the same, a more fine grained analysis takes place: #Every access must be injective or they must all be atomic. if (@capture(acc, access(~tns, ~mode, ~i...))) - println("idxs:", i) locations_with_parallel_vars = [] injectivity:: Vector{Bool} = is_injective(tns, ctx) - println("injectivity:", injectivity) - println("region:", indicies_in_region) for loc in 1:length(i) if i[loc] in indicies_in_region push!(locations_with_parallel_vars, loc + 1) @@ -94,9 +104,6 @@ function ensure_concurrent(root, ctx) println("parvars:", locations_with_parallel_vars) if length(locations_with_parallel_vars) == 0 (below, overall) = is_atomic(acc.tns, ctx) - println("below:", below) - println("overall:", overall) - println("tns:", tns) if !below[1] throw(FinchConcurrencyError("Assignment $(acc) requires last level atomics!")) # FIXME: we could do atomic operations here. @@ -114,7 +121,9 @@ function ensure_concurrent(root, ctx) else throw(FinchConcurrencyError("Assignment $(acc) requires injectivity or atomics in at least places $(locations_with_parallel_vars), but does not have them, due to injectivity=$(injectivity) and atomics=$(below) ")) end - + else + throw(FinchConcurrencyError("Assignment $(acc) is invalid! ")) + end end end diff --git a/test/reference64/debug_parallel_spmms_atomics.txt b/test/reference64/debug_parallel_spmms_atomics.txt index 64065bc60..bab2dedbf 100644 --- a/test/reference64/debug_parallel_spmms_atomics.txt +++ b/test/reference64/debug_parallel_spmms_atomics.txt @@ -8,1381 +8,5 @@ julia> @finch begin end end end -(CR = Tensor(Dense{Int64}(Dense{Int64}(Element{0, Int64, Int64}([8294554698039956467, -2279941192816175426, 3589307988553427907, -7593990112949036348, -9044133075237715381, 5814921716775220834, 1984686205080786680, 5559296861321236943, -5768354944895451207, 1120323265964696336, -3846116119587858228, -262342919401545940, -2049971580522475001, -2211763620736824942, 5666645008031514269, -1327364040915398565, -2194547984037078177, -5969354033529683723, -1260706530325114884, -7513623401632354996, 8868380549151888102, 7623177491685914752, 2801115262965917591, 3283210314769761053, -4716892793561655300, -2288052069362467524, 6647432114356861726, -1808660770598102607, 3477321511136071709, -2083291106471311307, 1931983037678998792, -1543784239066540918, -8896434483004799611, 8304914340100503713, -1749149773188757073, -1368462329312938935, 8842032079864795141, -1273332777544346279, -8741471974913376683, -3678031711239952825, -6700798423721258528, -7371585820169692141, -8065605016636076675, -7672636988039838930, 8052062968846911257, -5715548372384509649, -8341867563147112022, -9154711993198778743, 2933732122345518678, -5605994647490154907, -2133692759629638928, -6818992290088315340, 992118422339879211, 796660569155974881, 5491138161645048288, 5593431438176231967, 4196491676969776537, -783602413421165030, -2343162328237456754, -2347667087918498914, -4136673636756609937, -6196315042773250978, -1680644584068137242, 629124823636772517, -8974230699676449460, -2521981898387533604, 102158584490734227, -476947301419400062, -3885248478543714173, 3838966950421206534, 4298966649781035557, -3553229965089205098, -2069070993183081526, 4114579515408933624, -2282975407414895203, -4010817463667493000, 2272132884598706492, -6575563091909465195, -2658398725032414884, -3364682623876156767, -7778027708949105160, -3298325222861527795, -7334123207334007089, -5452139065710288443, 1885820391848317025, -3168683330050685268, -4615465087923795216, -7125623111667442778, -136085712019972095, -4633575576292637172, -4443232576713801656, -8076496271736850097, -2991169373749732480, 3567928539132559690, -1520874962119149489, -6672722304684961988, -1342044052416051911, -4959055271284697717, 1765100301178932779, -5510766831019094681, 8762504261652914538, -1026280257437091520, -7740612711282779002, -75651066155007076, 1175917286708115796, 215650005689746159, 1074059239977842503, -3135540340322246212, 4487796223479468161, 117813528700745474, -8324379894325358325, 1757180236983103362, 6655766257549366197, -3777535527257508441, 114580098802359632, -6320944068319392490, 533238602716561034, -6831552431332570448, -8190494930775264353, 191156998276919113, -3859369208365892857, 2500343402209988606, 2031188468273843282, 1065023235612899838, -6585643968775483825, 2853372987952842246, -3176092365888706331, -4004089601980614520, 1294599066541705050, 7455638925896823104, -734522458797731096, -8477619822868967933, -7827075641126318775, 1658199605681625762, -900396499488497236, 3608798237042314711, 8142435028468432630, 8181648831838397358, 3699002468877240631, -7851053360339404453, -7285699680868015036, -8914039785447533926, 1660245175449796023, 5544688554457903268, 743884732810431664, -5193009945833911851, 4169874342607881648, -3280411169991606487, 134315025965011425, -3414457411597068721, -6053778541607745348, 4743624378245093802, 817546885620956986, 3060126976419944263, 6596746720844310770, -32670440557642426, 7773291265218164464, -2747139949208106021, 4787690020561098504, 6611779436841384171, 4004924413349104377, 4057890700771820801, 1547947635322075762, -4041605863834384811, 8083854711850129991, -3032246449125321576, -6935676039559832962, -7262552710344937689, 6638561143303018670, -2431956156442432310, -6852883101006975241, 8141551686256635351, -2793114698018293480, 2901351249282526336, -8590405837522545098, 1284768462277737195, -6960561302066832858, 2470921323386149221, -1293209798633367855, 4852470840893629285, 2821167647780664441, 6366973705476444977, 4226801472565080501, -9103879725305025059, 8176472583251538243, 8387452082259514660, -2736021226548995081, 6019809268550026078, 5843683665502852812, 3078561957169121216, -553913864285782311, -8396720008997848599, -7916910578423142081, 2474282350293529219, 3763454144318303849, -3143306749835985712, -608242219460478402, -989972312085529006, 7643836624016829132, -7758235694518870862, -8743465346336514685, 2719718679164977811, -5344475697054329836, -5382875460926617461, -2287520955119718235, 5089895164004774048, -7207379975876718081, -8499315421799027837, 5382094811866924412, 94858159835758548, 4714444885585399249, 2419486042431974568, 1178451709781345389, -3244272477430105521, -1047784102008514673, -5908281368045588844, -8819487786822738794, 7375554233921962988, 7117586722854956039, 7635043189795304941, 3647751477487297040, 8888119265583541163, 438773896985192780, 7323235085077979835, 6402386422456545962, 9119746976188580479, -339981380232968078, 7862094120031162190, 1928350441872024538, 5861817903497048633, 8789248006831377358, -3662518157867280773, 5246723151818488323, -4712120449265687255, 8916170145161342841, 6429160948844906067, -7340558410143580649, -2878118280097051778, -4708137013670504139, -6737935883573392882, -3286809900179080876, -8542648342686245264, 1705683826679995175, 1874888461382203165, -43385098015304382, -3541512226970701965, 7308519021589705414, 4657092760823067875, -8034153054673763206, 2270007119073554112, 8805059194979907611, -6506227936394196777, 6569593093608871545, -5455263039233081924, -4894608299203557538, 4907020166765653515, -3651987278181836016, 5370722016210637787, 1096862329635763807, -7546832585001031185, 1772274834989744506, -2797059347358140582, -3473640875567042896, 7692486032135901986, -8656979047320341319, 3769023647569885435, 982341113303111384, -3673687436306074461, -81446334802288730, 6604241365987180538, -8369021354568862340, -4372506992592134813, 4065316681210752413, 1563045780770436755, 7830981927612419729, -5732307671635230159, 7227897221307801531, 2010992442160439666, -1122916357391281896, 5028338562960665496, -4666933955791003754, -1636404242550753810, 1914395787243909596, 3867717114584627246, -5161185302939881190, 7944328755863357247, 3609664606705607460, -5315882602018566936, -5761904302177895735, -6809130468709054173, -4700880319524423632, -5613769913787470034, 5210287635986052957, -5731191730373361431, -9164866423631936276, -926712920787083296, 1908405553760652597, -2652471932491244161, -3697650070410053186, 815203688271104236, 2488007171374780339, 8330805294023136182, -3517636027632871239, 3868845882950791705, 735411088686162206, -2994223186984088280, -6607675160595665991, -2201949612928716154, -3192490547890152354, 8133430253359871171, 879836038470343844, -7736046093151852400, 5545981780264421978, -4341467717169434611, -5127462363124695999, 2949881086671151985, -8391405146023982934, 5904919608898826122, -2227073708090958904, 689136294291637577, -2886932334773361591, 7952202709403391192, 3153775940809706391, 1874908383608426604, 1075117585599875089, 8867274469205928536, -4375744716795996716, -3533998611034387740, 6384747161645763267, 451782236881133152, 2341915282050883711, 1031445492266793189, -1394365009673627432, -5123594722994514063, -5460177156375603901, 4157621169839366172, -5358704860857059836, 5278983455575550295, 1274050648147683138, 3126713394381709974, -3307644194743865067, -7750736059176508847, -618096002207417309, -8506818772582631348, 1513319371717577726, 7740551717965270481, -4426574321230828472, 1937385030182228455, -998535532730322164, 3697332573265195207, -9076677223602850225, 4002292324271769976, 5826441122634846875, 8171498939270188961, -8467159702287736726, 6509544541400722383, -7717347117135555451, -7966763369056639081, 8269356800200102793, -2896708088772065419, 8682479654349602266, -4175209269749908112, 2584299138910217097, -809247191664492467, 8398436003572149079, 3497234959772076571, -6205111019897946062, -1430118280471530840, 8661533972821968073, -8521448203938029843, -8360557201354951019, -3776479469046687040, -4394471295216041117, 5306288845692612157, 3056006891388602475, -1748363847809204170, 5697136015891952455, 5937714342893416629, -125618599919776279, 8260765207333016632, 6942153985967134169, 7697115243769897813, -2426405549678443871, 2055486786313550400, 2152367939828244370, -6718730947869040596, -4560975327865951570, 6821423707534902647, 8515150359172239136, -4729466015399015585, -842607049527928892, -4838398262675770925, 5471628285150179649, -4149591267856718041, -4506731485344480343, -5865996187231969021, -8376045608232065130, 2982368080335673248, 5791272695574713343, 6606369933841153328, -5715125400035016302, -4808947571611627235, 1880707490936852098, -1433671810791193193, -8438873097249883119, 8228406513569697614, -2860593376095425957, -4155754509347768111, -3859757355177839761, 3832546257082914463, -4987104937747488276, -2603264890552670585, -8828514093751435698, -244923882753137677, -5280549520179345692, -5294022225150090425, 2704134173475073295, 5822900001597655197, 8915743126126508984, -8404578397956455589, -2636964413867594330, 7773972734886365061, -3244423074490429851, 7188777215744005112, 2509236846677099113, 5975628922833554335, -6360937178477621110, -4434221168072131868, 5416863093579763768, -958253168694109934, -2618459887441939475, 4895482184605604162, -6140446091522181329, -6919984628986616591, 31268152280566262, 1462535678717326966, -1464133389559375653, 3504905418444023481, -6524409997977030579, 3385869113430274743, 4822730259655900816, 8191773831837416114, 5292449586294865386, -6090171990601960569, 5153832228516847759, 2644170584592807951, 7802797983750583734, -6167195480042020562, 2093757426299538692, 8787672015189632402, -5494401635969733668, -3638906070417731210, -3088615259430462125, -6966718357264845743, -7894833928827722438, 4456646817892110605, 4567444684714913404, 5715585842987564469, 7446569658716171357, 5563506788226812109, 7176060177395009647, 8237429551137486195, -7387886710033300740, 5898509503108719612, 7854733214036206904, 7248713092388111684, -962917874807733914, -3817171139749095979, -3598576780670027118, 2936479662060868207, 2074946433639930335, -4055715327921608745, 1618673209120928304, -4215039625426580007, 6527651964660508742, 2525116720861666747, -5087213503398874522, 4441054782473057136, 5191737829272025909, -4204370355553960444, -5494437721858174402, 4282313307494495995, 6997224429970917165, -2786762703765019577, -4090774704165674185, 4830810034714339608, 8550110279617460779, -1432899949838825034, 5070163724535877362, -9044587224043010993, -331828969708912678, -4045743947221240460, -5026588202134245205, 7387394859196808259, 8323953104565172936, -5528106662582682818, -7712553295838005157, 496614122408246046, -6261122541863392878, -4574015954428015586, -2197905781724515181, 2844546404849359771, -5279032238356719102, 8993546499667354710, 6573002144407406380, -4535089777605057592, 42079127602989245, -4203267462921212169, -5840775966360235406, 140468831591233090, -2372192320096247829, -8778251851052291231, -336668325564777739, 7264370331718102095, 6254063536340397718, 6123236786011580167, 7556731230735356441, 6110809143575471493, -3432908134227590300, -5783426087718219583, 1401578931289679630, 4860236125773274406, -7848223246551919396, -3797441023746850885, 8889006900515515775, -7001892991386329751, -504276022409278947, 4496720948204362966, -4394079210323560761, -2230295723647198700, 3251715494317547084, -5846550559678048111, 10531091634037382, 1081507583933014234, -6906271136708865836, 9084709507417847718, -6919794797543057983, -9036635487855904140, 2168389059779605725, -5402687853119908315, -5969294402598625914, -3065725471442083375, -8436847784886139522, 4499580243570143897, 4593663111924881459, 6242341792114758752, -2587473680774110753, -6346963533779961058, 1621775449938399197, -5304623462700880605, 313072979211750861, -8918803086819606236, -2901670726481028569, -3682526246592261951, 7548351179785347782, -5784090040902781223, 30695701285740113, -8511392528887732853, -212343505903814563, -1706280662728187023, -3965454636478785037, -485561088993170719, -7950090587677592836, -5540338441211352471, 5885515753065214812, -5731917489646869491, 319516077428049744, -910417023177818004, 2190841222023097499, -4456395002828951917, 1255785325280306590, -2775252394013648963, 232640318517196044, -3219784824083473065, 1045529630686363187, 8411759974186310596, -1094615808186632023, -6553950934895304754, -408316319763781313, -3176841451238048633, 4075371581935362359, 187643253600159831, -837428644143947467, -5461650288315529644, -1526919325465841362, -2954442387366988787, -4406407738182325204, 1829805892604809544, -126573444704897734, 7828995678619994488, -3305668970380320127, -1948177510863190427, -6060115724564481252, -8021616758837321162, 6960572855714557416, 350591236226749052, 2894293684535105120, -8270156129969398283, -7188224773617208772, -5046346848348099259, 1762604501393566217, -3917600212583329023, -5140095807187043821, 2237243525513954619, -5491471575519032800, 4589515224526221922, -7539760866426895222, -7037068932864253220, 8211831817367956277, -1395763541646935624, 1607573943448927879, -1505636040087400087, -122124503865255803, 4634165469973816801, -3146952822801268000, -5052196907548347629, -1241659820199679608, -6699837385241890808, 2464994060646676914, -3951993366216514883, 611342031781514911, -3565512073329093591, -8091157542284683695, -6357009554415832646, -1429579645206812482, -2061030198880877944, 8613279126438435103, -4699418513816477309, -8899719653184083570, -9156751533214451673, -8369179409893466386, -2174045754289880327, 1599071487304328536, -2221165333317956202, -7121959024856558834, 4693904663870910343, 3492234935112039157, -7267189198736873061, 4672240566207031262, 7155931176632835961, 3948405042281303031, 9221170186590954197, 4168657775701795991, 7842926999448825295, -1149692690864390610, -5151108606920029561, -526708427937813567, 7894348920840823806, 2111915680842160057, -4447152505108858331, 8128811137535223140, -2781073544192744865, -2613927713168968822, -1690346388484587737, 6876548642199495650, 1611707069120701764, 6836918745913798671, -3094017886170210818, 6236828316978813663, 1081329020158948822, -1186213594634875190, 6793406906590299321, -8809740130797831503, 1786353697273303450, 6840136804880913516, 7145347421754118327, 4462054547281554765, -5318572558201569928, -3303535985347873063, 4733051702192248506, -7326070061278184447, 8369329347074427304, 7927959850489965817, 8320087556329764783, 2193354433274004612, -7544733638699219370, -7014045369693366256, 2151577797033403336, 8933006192851897008, -5318774782760541624, -7315196304228305879, -3904941717348361503, 9005033294424616904, 3320013229488173382, -7213842621665824653, -6254056522832732416, 2745408013397436716, -7386682146393396764, -2984509115122706340, -5352396307474345222, 3274018835385278013, -7381234373720372311, 1918193944134468019, 5717967813067618971, 5454410947887301155, -97618650599649709, 2210650427815000690, -3970692241953874241, -5109866680064885784, -7925697423337014550, -8697893115030792754, -6824932659698348984, -5847467963116463090, 8615256658994433156, -1053728463713085330, -160713768715038702, -101318550931045248, -4343188737347009626, -3248115887011897910, -6402395057505262095, 1096182353871742512, 6753465784923287540, -6804624562896151215, -5837125201228162439, 1382647607087451163, 4277582916411384127, 4693186594773602005, 7683280651461172993, 267398271524978993, -8596377037167186490, -5819935517185918536, 1124318629146026182, -5042061127034683796, 77826962194866506, -2250556505242295363, 5236257964961817301, -2333821165930122393, -5301093680979268405, -1710088636309852808, -667839113832134276, 3176520658028215542, 4801050178364021757, -1931748694707043520, 2827614563385783085, -5357590726796636164, -7591311695961610974, -4482998109962336100, 5492795781228717163, 7071585097437485537, -8256511212370819639, -1033296134836724593, 545588205163843946, 4841490740364333020, 1431879702182751667, 7158281449455708963, 604852328893362626, -4732035416621109281, -8696787544095760574, 3710000897335207322, -6140563005407990027, -1485868397268390778, -5634048999810817231, 9055394178316974534, -6992655989971692377, -8379075168281811025, -4177712831863022584, 8557193642835830463, 8727652050309847405, 9101228003095798318, 342276935468733528, 2125454917839578029, -6956409807454930954, -6799943977472325249, 6504154235262509479, -8539888869393801574, -5278083227692286949, -485507237784893599, -8938331974819664179, 6277782500598935942, -430858978908780091, 423142523572608281, -7912724908260959867, 7024984236779840316, 9072978020563012791, 5909231403474564040, -6092798456170918434, -5371271227702978749, 7600418820403680403, -7817342174481767324, -1208233401998943632, -8125475038879897011, 921842133729814488, -5930943891786904273, 750759186909135111, -8474550839788589774, -38695762770562065, -3748349612018398917, 3390897881502099515, 4060669248005398560, 3947749429396924301, 1523483650689135774, 723627418186446678, -2048471960624520038, 3259321852545717832, 809625161299679418, 4172940743163814057, -5255239287699671123, 1962512671155703256, -2146694811129990436, 8523918060091283685, 3909214533264395110, 9013974636356443615, -4965640563133462743, 336600851691663085, -4857027692605061116, -1042125884295943823, -8997397798520175525, 8011258720552881883, -7678416752233649575, 882133936434857313, -8532741990298826278, 1500822475052167126, -7722457738688111658, -2412923846393933191, -8786465162638587173, -8467916395796496473, 4112408740757711666, -7436389022937243099, 4121258431372096232, 2981774707645685279, 6192549078600663801, 3593326712426288406, -4937266943212939580, 4383598015781351388, 3500367667777625099, 4265445979313189893, -7722445123572687019, -8089758488900180117, -1183512982463252734, 5100791319698432343, -7864317229507846364, -8316242451608839418, 941076088028934556, -7375280543745950464, 4092634805284438777, -218945203279289748, 2642739844500348337, -4868857381080662703, 6947840098331849963, 1316005834143845078, 7112945344492306472, 3837608633821605687, 6612953847286164681, 7369116975816483029, 8203800728707370162, 745264072414834480, 3621821338405982457, 1787248701645224414, -8725499828321224652, 5759223232994807872, -6809468993514024728, -5106996447345046008, -1716125143705151606, 8920889292959459674, 1543487363196534528, -1422401727934476138, 5860260653618727672, -3906452349894177628, -4013308462155976136, 6372558017689448063, -781237135359215281, -5144054286467933144, 4282535083589780594, 2396107973253839261, 7365801472716975191, 7316827559627905107, 575866959481419500, 1909520162061294283, -8121086638470045648, 7666955699783671898, 6764014194441244928, -1317946468755875228, -7324167591413870675, -4954190638318189280, -7486335486492237873, 5332744067378770001, -323186611794603812, -3198678866318261509, 2068713640950114482, 3069353812861597238, -6467069238341544841, 9193181258034790848, -7348692611442398875, 8747396694909907999, 3662292962193528123, -6592283124932139589, -5440340727297120619, -2150708159681829289, 5154899013155084974, 300931462916846710, 267306129028303629, -6124402025857570481, -2380862100557754478, -8322782998950903402, 2203849044199742240, 7189962897065300181, -8196293205269926822, -6129722503598130442, -5717855583525242650, -7975313698385058299, -4394814386818113299, 8439719004326965297, -1853466123124981772, -8251721808467378698, 1332718692995289516, -3809748939990651052, 1711930554606737283, 6833741922071233626, -4746950157081688732, -5467758056403617718, -45553055250825220, 1156758914636241803, 5948193078099675785, -5962488332994723134, 7740792189484702658, -6863363731893569278, 1789243812814554167, -2471776969995239390, -6732014630508503900, 1844130485483900815, -200568493491779112, -436077017430881927, 3919223787046752168, 8021529304731123514, -8610751941045982309, -6256790461359078051, 1135953594877785960, -8649939117570278886, 512081662839873769, 281686122159629418, -5413101347049893607, -5127982072271321180, 8829245259139364789, -4992060981889383422, -7011762443625431546, -8956140975323702261, -2270955087903718521, -5175011738133382439, 657640191311126730, 4091251227200427343, -6376895040745033169, -8508555100273529430, -1796050355685702518, -7479868720901504471, -5693370525191439017, -3124825009832723230, 774528893311273039, 9094157038382657252, 8134250295867635801, -926102615299587563, 2769802780729386319, -1298828413415974516, -5875668061957414574, -8567687956511688734, 233394549322687598, -5895936930699961627, 1506589231432092810, 673454251841598024, -3864419293898015851, 8769089921809615643, -1256885168795612395, 3806027142330471271, 2628293344092275199, 865800620207458536, -1382327376923515606, 5206767734543250343, 756017486055271922, 4850772404988320878, 625442543634124181, -4369974630687344896, -3695576970140377038, -9168146533523609146, -7491269378073904551, 590139486766072594, -528353216840969278, 2439540592134774917, 4441888984435367795, -4462545664660870614, 747570505408124171, -4473619033861261733, -3324092939983153226, -3873689014480318940, 5182336296753675920, 7873764258453728801, -7707472075484813175, -3499584067824619030, -4363669762455143317, -999194618656210599, -5956207405289502258, 6088854365980969717, 884915936130810611, -3403372171423376387, 295363824065805385, 2286099348201328420, -1009241209628196304, 389365988436719678, 6366665261248409318, -3000897104692751348, -8801031179767441413, 3082863725940309590, 116072542729193868, 298868359587831624, 2632026018652181729, -1838284396540890431, 2082973454121984783, 8141066170324930012, -3279079705355382969, 474704650168943363, 6226317328107536369, 4825910540062605953, 5945263003255050778, 4504821081943907717, 4368580867379439264, -2818720317675853613, -4361067299114656414, 5008345756066421481, 8031101549735632146, -4148573144730325996, -6371332763708233005, -7239302400229886016, -2014395882539237498, -4557361942559936912, 4849766911099362137, -4114671162324339357, 4721514747018921326, -5805803238004189414, 7552698164482785756, -2922840131454980906, -1669191079305453102, -2531215509889715468, 5439356077135540601, -6343114842632758846, 2629942975255414574, 8286884461927020068, -7871488877533307791, 2862083316722898491, 7087387006969898480, 606711885235407217, 1693734614856232642, 217812560108109734, -5192024600182825344, -8478414091738455841, -3883421583894329607, -3369084816838402991, -5907051089772642916, 2483299219641833672, 4013666645553606665, -602318766852464546, -1077903559315031146, 770082142730356829, 3993899725793039928, -1229458295801142802, -7427564167209533319, 5744627202631096538, -4307622145389755129, -3235672070839353056, 1509870615572337394, 5155510312138930465, -347833235362661169, 2884411256285248683, -7487719631604369919, -1423783742145509702, 1173199934709978722, 1326657929459911373, -1585920494862835341, 3047872656379971433, -7641609213374676823, 2590250378075021977, -6472628529171104197, -6927900969806126702, 1747954734382651024, -6152543370889567078, 754358163957577809, -8351318808938792381, 326825291789732117, 5557618892685483060, -5849777647240212801, 5760837234435517008, -3843804261769104675, 7222778241614397433, 8864895893229875687, -8422456700173688630, 7273523800189460156, 492179030368810476, -2391480277429268284, 750834839931384475, 8278665001739515818, -4982482698709692101, 6475385556371811030, -7853095560331657104, -5848657393720385028, 4753865672451948336, 5512849629924609485, 5116641493098583451, 2815226095414166430, -8494854239959616675, 1782078395145329791, -5158653085431633500, -4657046649979588160, -111873088748600590, -1939359841773274182, -1393657311545381938, 3519568563701362857, 612692445395799226, 2590166644063810226, 2784744666920505647, -6483266022223056305, -3130119144388962152, -5935204981350286860, 3106025523692912745, 1881736877774620439, 8193576216936208758, -975280572085523442, -1541414951107285938, 9036817538786496170, 3121172592683938345, -2312993974902646780, 2918043619159089576, -5557011336181423922, -7232783249999228981, -6808261010130612619, -1024226312373348323, 390267185930883049, -433773452758753890, -1382188157026655723, 5552684775601009220, 7423416825822047242, 5921594515673978074, 1623161230277289138, -8635996496859796366, -8341198799787506612, 3684274307140230103, -3525979106511607914, -8150260350424184478, -8532800934409415517, -4825284869295363913, 6096824428633248996, -6934839419233550764, -3952569066269370263, 8829949667617343402, -1084935265649891560, 4888155050469376768, 7759001841431655476, -632465181939387254, 6823471927599469521, 5123512777902473827, 2294694572406052559, 7293379777634816638, -3954484737852232932, -2604163955193706319, 5302199851468118708, 7941997818865972731, -2944316522978960643, -114533323212471318, 5143101534135716130, 5503830823786557143, 4293836402769053661, 2443793899823007245, -8071123656826297050, 5347773595699610761, -8929372395762077376, -1585177283667380717, 2914214588282404436, 1504725386427480254, -1023403796257129121, -3815055356083271397, -1602177549551322433, -5218135579937239946, -8682427831710675231, 6708818568356231300, 1460617358915420542, 8419233541028365779, -2203822834983361938, -1931612997367313039, -7090136942616851123, 6159601980531272771, -2924982422417083368, 8625733557184675609, 455806705506487484, -4175122711639362245, 9183344182512950169, -9205269537311193262, 1180206716364896655, -5105075516890051179, -7015458375405687643, 7461146559025422960, 9217651932099188075, -2566722736742416809, 461436019440732543, -1600352722337213990, 3717854620828942012, -1025875194482804295, 2086135012014834367, -4704994046889660330, 5403589599609442036, 8946573654584661369, -5851412813291557272, -6114186204370949459, 8846115909828536457, 2516480883147209491, -4896484736258034480, -5906029717909633600, 6265789318254371860, 5901987565094300772, -5134657975554973139, 3754493426391366020, -1024841823846166871, -375837918500718563, 951082404374829235, 4968059706062408597, 551360151702058730, -897839361899024578, 8423280353089141563, -3067730695236925986, -3026133068307276139, -347944654449501921, -940860396850113768, -8480884751044675527, 809962066770662957, 5570805929138081955, -8536365026315448451, -1785006368005680537, -7539890532479137853, -1685625021416486080, -495084654998941506, -7199283939338655440, -6322523877276066390, -1924280359267481057, 3386811195096545218, 4340173080453476318, 6364546987214926734, -5539307997095767096, 4788361980582625532, 3661405512672161742, 4604494546812057752, 8370694602000383875, 5751823553944575080, -80732473868442682, -5068975410524126635, 1331105462545369438, 598972586912857703, 5802402952647492833, 7351347543334195739, 4629965513871560492, -4477065353550525982, 4293618117058312116, -6815898000427288159, 846705003859041619, 3186171236091860712, 4576063879771282323, -1518436754082451324, 7445306181558445577, -89593885154150055, 1614218553588509528, 818189339834939969, -6927299680575465663, 774958765598804809, 4184480648866898818, 709459366790959167, -4626091224208877513, 4645906675380526157, -6375925064930762469, -8825007961980179238, -7325276889309215544, -3027372533955547264, -1927195262342876859, -667359508884563370, -5415417686542208967, -5074170138512727390, -5893063287029739857, 2536729896110987882, -6272080088435360542, 8951868953695015582, 7657733672058879951, -3591774230959004874, -4098576984620957257, -7954501087248739387, 4278808274080018333, -4189589147412854906, 3828103683445085006, 9074562452350853598, 4059407993900385140, -5997554768177503082, -4636925930469952744, 5080884309044199817, 1665616659663714146, 7970275004708093640, -3515425865023497791, -6360788715005919459, 7681345674226937024, -1591754913526476693, 5278190882276400205, -8713532464964466486, -2461950230538602509, -2727563323241331517, -287882604865952548, -4998482287525601156, -1649942588236592323, -8334141899698381045, -7269267742813065958, -7465996355516162442, -8367728504152794794, -3459103132137325384, -1442198878028866612, 1345426515571720162, 957338003967035704, -2303816575022567080, 1208712301355977128, -8664278389558935051, 2585968968163383394, -7442461843337218072, -5180740110988816831, -8127690790899584447, 1997488320728279352, 4286740531879912040, 8274874197080548026, -4090772764543241414, -4179221920081656990, 1240571758916158831, 5831155452761097247, 4491312469535288412, -2214189452237794995, 7803610570916068138, -7512765815705388819, 4495939759546582316, 5919234342593647532, 2228366347447295854, 1200108966100871600, 5690160104032373911, 7608341886840415982, -3591711374593353612, -4138862006196247025, 3035941869393087219, 6865636581281765649, -1005446072170419096, 7567108779417572888, 7837517685344243063, -150544188122666775, 4151631287228471306, 4526501527929220747, 4226079951478001946, 1202356483128737661, -2739082484678542864, 9014315043463709342, 5433171088527550481, -675011903020846570, -2390268965994021074, -6400528939907285297, 6150357763280260129, -3017666321637668155, -8521816736249195554, 9201474057859856959, 7787251696844674920, 5459333673413767625, 1426920414208397410, -6429487967293043397, -5257783894738967233, -4284393545900291341, 4495860121982827476, -46895423979592336, 1296883116656120401, 5786280337555694459, -4666319220415667626, -3461086543927012398, -7466201980694565103, -1140264047004134064, 1788452594610260380, 2122482110897982437, -967561019628217055, -3085653831748559619, 8968205811622157951, 2548019779744265006, 3102188766046202682, -2248855211814195250, 1840990658819753196, -2774269581294831808, 7736515481348219928, 9018202947188024121, 665256893255762772, 5335232103275708859, -6147769550004725594, 3101116076125687634, 8997815652593752671, -991039277422269440, 7401069779267872655, -4265706085782567959, 3543936723168736598, -156641789358572940, -3787937288235758175, 8493545078498008813, -1246104920785264932, -8472321413018125528, 2488827515048085824, 8921536292508501002, 6738563439579654225, -200494991427853633, 1522770512287049875, 27967913645549852, 4522774353626005250, 1256679544378049641, 3405255849140860312, 7600273242978473381, 23575511431754301, -4672409883425447422, -1889984186866827497, 7296992012812133386, -4352477371763479278, -7044820154857814072, -12882897692051401, 3386197820290517830, 3757006914775894255, -1373125215551940593, -3417240353472760107, 4545004743879531724, -8452197784793964824, 4011326474920807008, 5525699117455073819, -3509792888780752488, -2678176774927838959, -7865242219225730860, 910114598761973557, 8729218338529719741, 2193454523997047762, -7768649955433311043, -59570399940716217, 5379873663944752595, 6958753457463799369, -6834288079848933917, 6017726407627186015, -5605007233816630810, -2133202062587357392, 6308144618868189880, 2410467815773232712, 3362613551949800205, -8338291721789685875, 6806446490174013722, 3617871453764871716, -8089650650345025368, 3404255987694622585, 2202469573791039532, 8917069822569678336, 3673380902626594473, 2006086046514863996, 124547239434762347, -6699895425011329664, -654980885606504113, 5693921821332933733, 6240465266111347301, -5116742469232271276, -7234779267632071457, 2252310932068953919, -4826663343385305810, -5138935515462782395, 4689492763043291304, 8050868810895092300, 962693406226418360, -4449695870065690339, -8090037331985041074, 3267588726403168015, -818610592836939733, 7132156710085247201, 8105498990887613566, 5292883430792218720, -8967672561525703489, -3060374723375263315, 6471936150048936450, 2172367360780066734, -1827028870686942816, 8184252284225033604, 12627831469234390, -7044530554455258102, 4876415032581521430, -3432957251328609060, 2824204544680857114, -6957079231530010699, 8190949275851966633, 6823755481099456679, -5876393354565011558, -53970842360164026, 3853564448249494149, -2972682942843227938, -2348220370393093578, -6728559394063198303, -428422563929318788, -1957417017065146130, -4576719719265522168, 8053316042690501278, 3310213367865201347, -4112824968274046397, 9181248053861701240, 5060815935519305174, 7032513404456678609, 177101472299265594, 9016686722828226635, -3992609091501539892, 3143581933428900547, 8128180822245920683, -2491463316461667999, 2330203500336038282, -5110918847855557615, -7491970226199025008, -4282477307488025506, -7781771132730950018, 110713113935466601, 5587248837089220356, 1255960974818918754, 8698965655282249228, 1142240120158884473, -5140871044598154651, 4242316612159154748, 3196934947642219001, 4142985180027536009, 2284684766136520859, 7816460186487161689, 5634691966513170702, 826997164884838579, 3671534939283556119, -844031886846999857, -1657668728488381095, 8601048722354210748, 1874055730116185503, -1085772457483182900, -2379097533368203544, -5332523084927766221, -5720827504987796707, -500660857826907077, 4907278821539746137, 1612608063453637092, 999864768533873242, 697789296164832681, 7245427910569743072, 1915079413800755968, -5131813309895086474, 8603554651152580284, 7004256889621974285, -8841849929405732104, 6266043455441667211, 4281933208146509394, 589626416538186847, -9110023954929925113, 6228236764400239770, -9097851054913215828, -5615926735483961873, -3816309666573504094, -6658235192728664890, -3489437372181895819, 6473906457060472482, -3937193548061835672, -3330600485619962728, -1144571853544535461, -3951778588605513599, 4357554689713104672, -4357398228254444450, 4271030972656924912, -3244690036564156625, 8156367274598166522, -3931250004521385041, -2911389906840280156, 2346135012548426971, 576993460546804143, 7755992082919279476, 5029888512237914138, 4169682438101948249, 3117687678292024900, 1389717223270727909, 2970221911793514584, 5050422048466027618, -9167054139502708775, -4740218251362552892, -3553211067591049806, 2581209126211751705, 6210955990385848062, 4029216681594316343, 4757775271400889122, -3976277041015824707, -4679861032853884697, 4796453839497959957, -6840455779837473580, -9128818347027882259, 903574838146320940, 1535682736054934768, 9203128279744177178, 7825465624445881366, 4729623009342607951, -8445010477853746168, 2779359132169173177, -7787638646415434082, 8630307791021786349, 7678698831967593045, 8924323017326743858, -7838933716625602894, -5363993515335776073, -4758848622545323715, 8165749912610324377, 3890814894726346511, -224522875182829871, -8504675575833067, -3136726367779306378, 180991206201918487, 1734914536475617191, -8026633819492051296, 585377375399552857, -4057686706863967291, -8792006564640315718, 5133949230062027221, 966490915736029700, -6856276960559046469, -3209050650471783039, 1997946309212720291, -2694844664018723792, 3040950680047421026, 664257877741578415, -1549762200498106454, -6557905093166641386, -8211748983442216867, 454695318135322844, 8098973132628461804, -5374114151749928624, 250875467351983359, 8620562681172610875, 7000258589713572687, -1664130791612438228, 7543643719287184369, -7801214284011511231, 7582532710654096211, -1305082352635692836, 467279306749204029, -4699785433075779598, 6850508823342814093, -6352453380479010935, 4359866734038908518, 5902667197491083031, 7491369333420527577, 368394965541002310, 6196741845111984131, 6216658244935918994, -2752843053616425955, -1148561512128619591, -6370429481649296125, -3234284230884801704, 4606987715801616028, -2718306068765596780, 6914318796004499819, -5955316532302996313, -296482199804435617, -1622236069462721855, 3501158302851784486, -572523975562305942, 7098284566686338285, 2060918062386840664, -1036304409717708042, 2037141206169921799, -9157679456705931543, 5921174993872226438, 2258376583953503577, 1380384900532319897, 5150863500031027649, 4491459583774403100, -8799333906252164078, -7436299637009861037, -8897605254734354534, -33573020224461376, -598118414029620053, -1036032722062113417, 3112711594643544824, -6413355946478926157, -4306076522754702353, 8624135096108717536, -1391526975651603912, -2546415741280369889, 248708739663316717, -4076449748166029713, -5531141162888212301, 9157140210067052907, -7152812193245389267, -8753601697609765711, -4020732460633455383, 7187437046903224286, -5055160253822539475, 5740244605347500833, -683871540398120655, 7898025549943690712, -1290240967206721704, -1743125062461769548, 6422263519987998930, 6839574880723343706, 5874745018847963481, 5228066245330305137, -977796713401175104, -2638646963020434633, 1031149875050997514, -5269507848698839757, -5537344948493036939, 7386325726715884105, 5044850892597083588, 396022206904815266, -4634210581742012041, 5016832958586948828, 3037314680921923855, -7714084903984746866, -1202569377564993821, -7401114300118604435, 7704534374415376277, 2156604305649768794, 2817748268707172365, 1053569788744816184, -4301201223533542269, -1599613411082562407, -4955672137856541273, -6243615707262612649, 1630246511914211374, 8743683296570668073, 1389080168999368683, -5264898573472638830, -5277151964454990744, 8278880058128573084, 5988807441639222597, 4766863221614704793, 5359524312828082327, 4466911741370325898, 4190251645054681054, 6844747556036323011, 2787084668216008586, -8842753752665197773, 7811869791363827446, 1947986319779991562, 2595675121194158456, 1928698732085290081, 3445100354674624654, 4698092473852175334, -8389240440663659562, 4037095003311488799, 3612199949675998165, 7475295921963138980, 643461511745356493, 2759701459090278254, 8039108320664086624, -4789457556455813773, -3046417913880116144, 4604279469796709200, 3091999775913123966, 2525308934924979894, 4788231701303947795, -8804124782913533732, -7810151231409358469, 3914487398198805513, 7405176402717547027, -4088208378638131629, 8185598939756282511, -4923220187259011432, -4205676137230147531, 1212255400888206837, -2732932430502287969, 6968133671527913135, 6774264180253840475, 5058260994715711882, -8130125491347080982, 1149156941701589453, -6010198640283435488, 1449319895462962850, -2281107511056733355, -466571451550039668, 6685982507464898108, -3312513759151219649]), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for i = _ - for j = _ - for k = parallel(_) - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = ((ex.bodies[1]).bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_locks = Ct_lvl_2.lvl.locks - Ct_lvl_4 = Ct_lvl_3.lvl - Ct_lvl_3_val = Ct_lvl_3.lvl.val - A_lvl = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - A_lvl.shape[2] == B_lvl.shape[1] || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl.shape[2]) != $(B_lvl.shape[1]))")) - @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - result = nothing - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_locks, pos_stop) - @inbounds for idx = 1:pos_stop - Ct_lvl_2_locks[idx] = make_lock(eltype(Vector{Base.Threads.SpinLock})) - end - Finch.resize_if_smaller!(Ct_lvl_3_val, pos_stop) - Finch.fill_range!(Ct_lvl_3_val, 0, 1, pos_stop) - for i_4 = 1:A_lvl.shape[1] - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_stop = min(B_lvl.shape[2], B_lvl_i_stop) - if phase_stop >= 1 - if B_lvl_tbl2[B_lvl_q] < 1 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 - Ct_lvl_3atomicArraysAcc = get_lock(CPU(1), Ct_lvl_2_locks, Ct_lvl_2_q, eltype(Vector{Base.Threads.SpinLock})) - aquire_lock!(CPU(1), Ct_lvl_3atomicArraysAcc) - locksArray = Ct_lvl_2_locks - val = Ct_lvl_3_val - Ct_lvl_3_val = (Finch).moveto(Ct_lvl_3_val, CPU(Threads.nthreads())) - B_lvl_ptr_2 = B_lvl_ptr - B_lvl_tbl1_2 = B_lvl_tbl1 - B_lvl_tbl1 = (Finch).moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2_2 = B_lvl_tbl2 - val_2 = B_lvl_val - B_lvl_val = (Finch).moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr_2 = A_lvl_ptr - A_lvl_ptr = (Finch).moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1_2 = A_lvl_tbl1 - A_lvl_tbl1 = (Finch).moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2_2 = A_lvl_tbl2 - A_lvl_tbl2 = (Finch).moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - val_3 = A_lvl_val - A_lvl_val = (Finch).moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_6 = 1:Threads.nthreads() - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - phase_start_6 = max(1, 1 + fld(A_lvl.shape[2] * (-1 + i_6), Threads.nthreads())) - phase_stop_7 = min(A_lvl.shape[2], A_lvl_i_stop, B_lvl_i_stop_2, fld(A_lvl.shape[2] * i_6, Threads.nthreads())) - if phase_stop_7 >= phase_start_6 - k = phase_start_6 - if A_lvl_tbl2[A_lvl_q] < phase_start_6 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, phase_start_6, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < phase_start_6 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, phase_start_6, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_7 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_8 = min(B_lvl_i_2, phase_stop_7, A_lvl_i) - if A_lvl_i == phase_stop_8 && B_lvl_i_2 == phase_stop_8 - B_lvl_2_val_2 = B_lvl_val[B_lvl_q_2] - A_lvl_q_3 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_3 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_3 = 0 - end - phase_stop_9 = min(i_4, A_lvl_i_stop_3) - if phase_stop_9 >= i_4 - if A_lvl_tbl1[A_lvl_q] < i_4 - A_lvl_q_3 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_3 = A_lvl_tbl1[A_lvl_q_3] - if A_lvl_i_3 < phase_stop_9 - A_lvl_2_val = A_lvl_val[A_lvl_q_3] - Ct_lvl_3_val[Ct_lvl_2_q] += B_lvl_2_val_2 * A_lvl_2_val - A_lvl_q_3 += 1 - else - phase_stop_11 = min(A_lvl_i_3, phase_stop_9) - if A_lvl_i_3 == phase_stop_11 - A_lvl_2_val = A_lvl_val[A_lvl_q_3] - Ct_lvl_3_val[Ct_lvl_2_q] += B_lvl_2_val_2 * A_lvl_2_val - A_lvl_q_3 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_8 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_8 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_8 + 1 - end - end - end - Ct_lvl_2_locks = locksArray - Ct_lvl_3_val = val - B_lvl_ptr = B_lvl_ptr_2 - B_lvl_tbl1 = B_lvl_tbl1_2 - B_lvl_tbl2 = B_lvl_tbl2_2 - B_lvl_val = val_2 - A_lvl_ptr = A_lvl_ptr_2 - A_lvl_tbl1 = A_lvl_tbl1_2 - A_lvl_tbl2 = A_lvl_tbl2_2 - A_lvl_val = val_3 - release_lock!(CPU(1), Ct_lvl_3atomicArraysAcc) - B_lvl_q = B_lvl_q_step - else - phase_stop_23 = min(B_lvl_i, phase_stop) - if B_lvl_i == phase_stop_23 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_23 - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 - Ct_lvl_3atomicArraysAcc_2 = get_lock(CPU(1), Ct_lvl_2_locks, Ct_lvl_2_q_2, eltype(Vector{Base.Threads.SpinLock})) - aquire_lock!(CPU(1), Ct_lvl_3atomicArraysAcc_2) - locksArray_2 = Ct_lvl_2_locks - val_4 = Ct_lvl_3_val - Ct_lvl_3_val = (Finch).moveto(Ct_lvl_3_val, CPU(Threads.nthreads())) - B_lvl_ptr_3 = B_lvl_ptr - B_lvl_tbl1_3 = B_lvl_tbl1 - B_lvl_tbl1 = (Finch).moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2_3 = B_lvl_tbl2 - val_5 = B_lvl_val - B_lvl_val = (Finch).moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr_3 = A_lvl_ptr - A_lvl_ptr = (Finch).moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1_3 = A_lvl_tbl1 - A_lvl_tbl1 = (Finch).moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2_3 = A_lvl_tbl2 - A_lvl_tbl2 = (Finch).moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - val_6 = A_lvl_val - A_lvl_val = (Finch).moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_8 = 1:Threads.nthreads() - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - phase_start_26 = max(1, 1 + fld(A_lvl.shape[2] * (-1 + i_8), Threads.nthreads())) - phase_stop_28 = min(A_lvl.shape[2], A_lvl_i_stop, B_lvl_i_stop_2, fld(A_lvl.shape[2] * i_8, Threads.nthreads())) - if phase_stop_28 >= phase_start_26 - k = phase_start_26 - if A_lvl_tbl2[A_lvl_q] < phase_start_26 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, phase_start_26, A_lvl_q, A_lvl_q_stop - 1) - end - if B_lvl_tbl1[B_lvl_q] < phase_start_26 - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, phase_start_26, B_lvl_q, B_lvl_q_step - 1) - end - while k <= phase_stop_28 - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - phase_stop_29 = min(B_lvl_i_2, A_lvl_i, phase_stop_28) - if A_lvl_i == phase_stop_29 && B_lvl_i_2 == phase_stop_29 - B_lvl_2_val_8 = B_lvl_val[B_lvl_q_2] - A_lvl_q_9 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_9 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_9 = 0 - end - phase_stop_30 = min(i_4, A_lvl_i_stop_9) - if phase_stop_30 >= i_4 - if A_lvl_tbl1[A_lvl_q] < i_4 - A_lvl_q_9 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_9 = A_lvl_tbl1[A_lvl_q_9] - if A_lvl_i_9 < phase_stop_30 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_9] - Ct_lvl_3_val[Ct_lvl_2_q_2] += B_lvl_2_val_8 * A_lvl_2_val_2 - A_lvl_q_9 += 1 - else - phase_stop_32 = min(A_lvl_i_9, phase_stop_30) - if A_lvl_i_9 == phase_stop_32 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_9] - Ct_lvl_3_val[Ct_lvl_2_q_2] += B_lvl_2_val_8 * A_lvl_2_val_2 - A_lvl_q_9 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - B_lvl_q_2 += 1 - elseif B_lvl_i_2 == phase_stop_29 - B_lvl_q_2 += 1 - elseif A_lvl_i == phase_stop_29 - A_lvl_q = A_lvl_q_step - end - k = phase_stop_29 + 1 - end - end - end - Ct_lvl_2_locks = locksArray_2 - Ct_lvl_3_val = val_4 - B_lvl_ptr = B_lvl_ptr_3 - B_lvl_tbl1 = B_lvl_tbl1_3 - B_lvl_tbl2 = B_lvl_tbl2_3 - B_lvl_val = val_5 - A_lvl_ptr = A_lvl_ptr_3 - A_lvl_tbl1 = A_lvl_tbl1_3 - A_lvl_tbl2 = A_lvl_tbl2_3 - A_lvl_val = val_6 - release_lock!(CPU(1), Ct_lvl_3atomicArraysAcc_2) - B_lvl_q = B_lvl_q_step - end - break - end - end - end - end - resize!(Ct_lvl_2_locks, A_lvl.shape[1] * B_lvl.shape[2]) - resize!(Ct_lvl_3_val, A_lvl.shape[1] * B_lvl.shape[2]) - result = (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}((AtomicLevel){Vector{Base.Threads.SpinLock}, ElementLevel{0, Int64, Int64, Vector{Int64}}}(Ct_lvl_4, Ct_lvl_2_locks), A_lvl.shape[1]), B_lvl.shape[2])),) - result -end -julia> @finch begin - Ct .= 0 - for i = _ - for j = _ - for k = parallel(_) - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Atomic([Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0)], Element{0, Int64, Int64}([6890327428561110798, -2279941192816175426, 3589307988553427907, -4232640767906270886, -9044133075237715381, 5814921716775220834, 1984686205080786680, 9061086397927623712, -7305334761889522293, 1120323265964696336, -3846116119587858228, -262342919401545940, 4465099781639392863, -2211763620736824942, 5666645008031514269, -1327364040915398565, -2194547984037078177, -5969354033529683723, -1260706530325114884, -7513623401632354996, 8868380549151888102, -7688252827115482380, 2801115262965917591, 3283210314769761053, -4716892793561655300, -2288052069362467524, 6647432114356861726, -1808660770598102607, 3477321511136071709, -541321933842117820, 1931983037678998792, -1543784239066540918, -8896434483004799611, 8304914340100503713, -1749149773188757073, -1368462329312938935, 2773257519917319869, -1273332777544346279, -8741471974913376683, -3678031711239952825, -6700798423721258528, -7371585820169692141, -5070095379162361771, -7672636988039838930, 8513184466457123138, -5715548372384509649, -8341867563147112022, -9154711993198778743, 7839807884227327651, -5605994647490154907, -2133692759629638928, -6818992290088315340, 992118422339879211, 796660569155974881, 5491138161645048288, 5593431438176231967, 4196491676969776537, -783602413421165030, -7505548251537004776, -4894434821428678410, -4136673636756609937, -6196315042773250978, -1680644584068137242, 629124823636772517, -8974230699676449460, -2521981898387533604, 102158584490734227, -476947301419400062, -3885248478543714173, 3838966950421206534, 4298966649781035557, -3553229965089205098, -2069070993183081526, 4114579515408933624, -2282975407414895203, -4010817463667493000, 2272132884598706492, -6575563091909465195, -2658398725032414884, -3364682623876156767, -7778027708949105160, -3298325222861527795, -7334123207334007089, -2620178568527066666, 1885820391848317025, -1809689919395848308, -4615465087923795216, -7125623111667442778, -136085712019972095, -4633575576292637172, -4443232576713801656, -8076496271736850097, -2991169373749732480, 3567928539132559690, -1520874962119149489, -6672722304684961988, -1342044052416051911, -4959055271284697717, 1765100301178932779, -5510766831019094681, 8762504261652914538, -1026280257437091520, -7740612711282779002, -75651066155007076, 1175917286708115796, 215650005689746159, 1074059239977842503, -3135540340322246212, -8651473182625612144, 117813528700745474, -8324379894325358325, 1757180236983103362, 6655766257549366197, -3777535527257508441, 114580098802359632, 5255671476731356193, 533238602716561034, -6831552431332570448, -3069975939161138528, 191156998276919113, -3859369208365892857, 2500343402209988606, 2031188468273843282, 6084801927996304684, -6585643968775483825, 2853372987952842246, -3176092365888706331, -4004089601980614520, 1294599066541705050, 7455638925896823104, -734522458797731096, -8477619822868967933, -7827075641126318775, 1658199605681625762, -900396499488497236, 3608798237042314711, 8142435028468432630, 8181648831838397358, 3699002468877240631, -7851053360339404453, -7285699680868015036, -8914039785447533926, 1660245175449796023, 5544688554457903268, 743884732810431664, -5193009945833911851, 4169874342607881648, -3280411169991606487, 740109633387393617, -3414457411597068721, -6053778541607745348, 4743624378245093802, 817546885620956986, 3060126976419944263, 6596746720844310770, -32670440557642426, 7773291265218164464, -2747139949208106021, 4787690020561098504, 6611779436841384171, 4004924413349104377, 4057890700771820801, 1547947635322075762, -4041605863834384811, 8083854711850129991, -3032246449125321576, -6935676039559832962, -7262552710344937689, 6638561143303018670, 8629138486666825214, -6852883101006975241, 8141551686256635351, -1364452382653690930, 2901351249282526336, -8590405837522545098, 1284768462277737195, -6960561302066832858, -5680943179817551408, 6191855644274592326, 4852470840893629285, 2821167647780664441, -2016944790852979054, 4226801472565080501, -8299844357481969923, 8176472583251538243, 8387452082259514660, -2580531537330522609, 6019809268550026078, 7383985014565391283, 3078561957169121216, -553913864285782311, -8396720008997848599, -7916910578423142081, 2474282350293529219, 3763454144318303849, 1017553452432181156, -608242219460478402, -989972312085529006, 7424117444770982588, -7758235694518870862, -8743465346336514685, 2719718679164977811, -5344475697054329836, -5382875460926617461, -2287520955119718235, -755851979808619677, -7207379975876718081, -8499315421799027837, 5382094811866924412, 94858159835758548, -8518410356026546738, 2419486042431974568, 1178451709781345389, -2891412715490904712, -1047784102008514673, 2301585637633828788, -8819487786822738794, -5301481819882246180, -5718432348353176905, 7635043189795304941, 3647751477487297040, 8888119265583541163, -8758976751002095265, 7323235085077979835, 6402386422456545962, 9119746976188580479, -339981380232968078, 7862094120031162190, 1928350441872024538, 5861817903497048633, 8789248006831377358, -2427109916992032365, 5246723151818488323, -4712120449265687255, 8916170145161342841, 6429160948844906067, -7340558410143580649, -2878118280097051778, -4708137013670504139, -6737935883573392882, -3286809900179080876, -8542648342686245264, 1705683826679995175, 1874888461382203165, -43385098015304382, -3541512226970701965, -1758477137358473977, 4657092760823067875, -8034153054673763206, 2270007119073554112, 8805059194979907611, -6506227936394196777, 6569593093608871545, 534087455402064133, -1153532872034890610, 4907020166765653515, -2968567846914676056, 5370722016210637787, 1096862329635763807, -7546832585001031185, 1772274834989744506, -2797059347358140582, -3473640875567042896, 7692486032135901986, -8656979047320341319, 2917526022556381111, -6833526356477474527, 9200461546197610548, 3108314503145315700, 6604241365987180538, -4358386518056275218, 1534771724291309767, 4065316681210752413, 1563045780770436755, 7106755852532509365, -5732307671635230159, 7227897221307801531, 2010992442160439666, -1122916357391281896, 5028338562960665496, 8636061262223520406, -1636404242550753810, 1914395787243909596, 3867717114584627246, -2522618580544469737, 7944328755863357247, 3609664606705607460, -5315882602018566936, -5761904302177895735, -2120387842794615300, -4700880319524423632, -5613769913787470034, 5210287635986052957, -8856939431749312928, -9164866423631936276, -926712920787083296, 1908405553760652597, -2652471932491244161, -3697650070410053186, 815203688271104236, 2488007171374780339, 8330805294023136182, -3517636027632871239, 3868845882950791705, 735411088686162206, -2994223186984088280, -6607675160595665991, -2201949612928716154, -3192490547890152354, 8133430253359871171, 879836038470343844, -7736046093151852400, 5545981780264421978, -4341467717169434611, -5127462363124695999, 2949881086671151985, -8391405146023982934, 5904919608898826122, -9144440787076319032, 689136294291637577, -2886932334773361591, 7952202709403391192, 3153775940809706391, 1874908383608426604, 1075117585599875089, 8867274469205928536, -4375744716795996716, -3533998611034387740, -5232750331483954024, 451782236881133152, 2341915282050883711, 8172151985369103604, -1394365009673627432, -5123594722994514063, -5460177156375603901, 4157621169839366172, -5358704860857059836, 5278983455575550295, 1274050648147683138, 3126713394381709974, -3307644194743865067, -7750736059176508847, -618096002207417309, -8506818772582631348, 1513319371717577726, 7740551717965270481, -4426574321230828472, 1937385030182228455, -998535532730322164, 3697332573265195207, -9076677223602850225, 4002292324271769976, 5826441122634846875, 8171498939270188961, -8467159702287736726, 6509544541400722383, -7717347117135555451, -7966763369056639081, 8269356800200102793, -2896708088772065419, 8682479654349602266, -4175209269749908112, 2584299138910217097, -809247191664492467, 1381803024218819472, 3497234959772076571, -6205111019897946062, -1430118280471530840, 8661533972821968073, -8521448203938029843, -8360557201354951019, -3776479469046687040, -4394471295216041117, 5306288845692612157, 3056006891388602475, -1748363847809204170, -6319814303782099420, 5937714342893416629, -125618599919776279, 8260765207333016632, 6942153985967134169, 7697115243769897813, -2426405549678443871, 2055486786313550400, 2152367939828244370, -6718730947869040596, -4560975327865951570, 6821423707534902647, 8515150359172239136, -4729466015399015585, -842607049527928892, -4838398262675770925, 5471628285150179649, -4149591267856718041, -4506731485344480343, -5865996187231969021, -8376045608232065130, 2982368080335673248, 5791272695574713343, 6606369933841153328, -5715125400035016302, -5237618934643538603, 1880707490936852098, -1433671810791193193, -8438873097249883119, 8228406513569697614, -2860593376095425957, -5920168085197321213, -3859757355177839761, 3832546257082914463, -4987104937747488276, -2603264890552670585, -8828514093751435698, -244923882753137677, -5280549520179345692, -5294022225150090425, -4914073045333139109, 5822900001597655197, 8915743126126508984, -8404578397956455589, 2599159074559944807, 7773972734886365061, -3244423074490429851, 1719119174990683945, 2509236846677099113, 5975628922833554335, -6360937178477621110, -788292733667908831, 2887872776624158549, -958253168694109934, 9117330869091396073, 4895482184605604162, 8676150951179744132, -6919984628986616591, 31268152280566262, 1462535678717326966, -1464133389559375653, 3504905418444023481, -6524409997977030579, 3385869113430274743, 4822730259655900816, 8191773831837416114, 5292449586294865386, -6090171990601960569, 5153832228516847759, 2644170584592807951, 7802797983750583734, -6167195480042020562, 2093757426299538692, 8787672015189632402, -5494401635969733668, -3638906070417731210, -3088615259430462125, -4475354658711362928, -7894833928827722438, 4456646817892110605, 4567444684714913404, 5715585842987564469, 7446569658716171357, 5563506788226812109, 7176060177395009647, 8237429551137486195, -7387886710033300740, -4980471763119016240, 7854733214036206904, 7248713092388111684, 5492092011839391750, -3817171139749095979, -7591207862802500651, 2936479662060868207, 2074946433639930335, -4055715327921608745, 1618673209120928304, -4215039625426580007, 6527651964660508742, -946321883275317281, 8374897552708527590, 4441054782473057136, 9127500922246554397, 3323925318704755300, 2416160300810132023, 4282313307494495995, 6997224429970917165, -2786762703765019577, -4090774704165674185, 4830810034714339608, 8550110279617460779, -1452738064384684260, -1691755765315614452, -9044587224043010993, -331828969708912678, -4045743947221240460, -7878105855686105689, 7387394859196808259, 8323953104565172936, -5528106662582682818, -7712553295838005157, 496614122408246046, -6261122541863392878, -4574015954428015586, -2197905781724515181, 2844546404849359771, -5279032238356719102, -6151382023751130250, 6573002144407406380, -4535089777605057592, 42079127602989245, -4203267462921212169, -5840775966360235406, 140468831591233090, -2372192320096247829, -8778251851052291231, -336668325564777739, 7264370331718102095, 3269765099837152788, 6123236786011580167, 7556731230735356441, 6110809143575471493, -3432908134227590300, -5783426087718219583, 1401578931289679630, 4860236125773274406, -7848223246551919396, -3797441023746850885, 8889006900515515775, -7001892991386329751, 9169859588556767138, 4496720948204362966, -4394079210323560761, -2230295723647198700, 3251715494317547084, -2818810727613465063, 10531091634037382, -6574515964090834616, -6906271136708865836, 9084709507417847718, -6919794797543057983, -9036635487855904140, 2168389059779605725, -5402687853119908315, -5969294402598625914, 3563984170435069944, -8436847784886139522, 1775253521704649335, 4593663111924881459, 6242341792114758752, -2587473680774110753, -6346963533779961058, 1621775449938399197, -5304623462700880605, 313072979211750861, -8918803086819606236, -2901670726481028569, -6132641914007411370, -6913751109500873694, -8862304034844263207, 30695701285740113, 6531539235367993259, -212343505903814563, -1706280662728187023, -3965454636478785037, -485561088993170719, 3976101665252002352, -5540338441211352471, 3564596801867213806, 6489487755314610587, 7702696907271101121, -8075065241346516127, 2190841222023097499, -4456395002828951917, 1255785325280306590, -2775252394013648963, 232640318517196044, -3219784824083473065, 1045529630686363187, 8411759974186310596, -4280691422928558213, -6553950934895304754, -408316319763781313, -3176841451238048633, 4075371581935362359, 187643253600159831, -837428644143947467, -5461650288315529644, -1526919325465841362, -2954442387366988787, 7714770874831818628, 1829805892604809544, -126573444704897734, 7828995678619994488, -3305668970380320127, -1948177510863190427, -6060115724564481252, -8021616758837321162, 6960572855714557416, 350591236226749052, 2894293684535105120, -8270156129969398283, 7618756952854194106, -5046346848348099259, 1762604501393566217, -3917600212583329023, -5140095807187043821, 2237243525513954619, -5491471575519032800, 4589515224526221922, -7539760866426895222, -7037068932864253220, 8211831817367956277, -1395763541646935624, 1607573943448927879, 8307931152337609179, -122124503865255803, 4634165469973816801, -3146952822801268000, -5052196907548347629, -1241659820199679608, -6699837385241890808, 2464994060646676914, -3951993366216514883, 611342031781514911, -3565512073329093591, -8091157542284683695, -6357009554415832646, -1429579645206812482, -2061030198880877944, 8613279126438435103, -4699418513816477309, -8899719653184083570, -9156751533214451673, -5327098450373659624, -2174045754289880327, 1599071487304328536, -2682796231144983368, -7121959024856558834, 4693904663870910343, 3492234935112039157, -7267189198736873061, 4672240566207031262, 7155931176632835961, 3948405042281303031, 9221170186590954197, 4168657775701795991, 7842926999448825295, -1149692690864390610, -5151108606920029561, -526708427937813567, 7894348920840823806, 2111915680842160057, -4447152505108858331, 8128811137535223140, -2781073544192744865, -2613927713168968822, -1690346388484587737, 6876548642199495650, 1611707069120701764, 6836918745913798671, -3094017886170210818, 6236828316978813663, -4536180127083931974, -1186213594634875190, 6793406906590299321, -8809740130797831503, 1786353697273303450, 6840136804880913516, 1376610386836637095, 4462054547281554765, -5318572558201569928, -3303535985347873063, 4733051702192248506, -7326070061278184447, 8369329347074427304, 7927959850489965817, 8320087556329764783, 2193354433274004612, -7544733638699219370, -5231604408646172461, 2151577797033403336, -3630615961126938570, -5318774782760541624, -7315196304228305879, -3904941717348361503, -6824525496817478056, 859605577905401788, -7213842621665824653, -6254056522832732416, -5652298361345862312, -7386682146393396764, 949839117091538378, -5352396307474345222, 738640210310170633, -7381234373720372311, 1918193944134468019, 5717967813067618971, 5454410947887301155, -97618650599649709, 2210650427815000690, -5660617011352148361, 5801341024158453384, 3277777267460406186, 5781246772573631342, -6824932659698348984, 4244535381631023936, 8615256658994433156, -1053728463713085330, -160713768715038702, -101318550931045248, -4343188737347009626, 4269206809854913114, -6402395057505262095, 1096182353871742512, 6753465784923287540, -6804624562896151215, -3902070491272084583, 1382647607087451163, 1869154773113262999, 4693186594773602005, 7683280651461172993, 267398271524978993, -8596377037167186490, -5819935517185918536, 1124318629146026182, -5042061127034683796, 77826962194866506, -2250556505242295363, 5236257964961817301, -2333821165930122393, -5301093680979268405, -1710088636309852808, -667839113832134276, 3176520658028215542, 4801050178364021757, -1931748694707043520, 2827614563385783085, -5357590726796636164, -7591311695961610974, 1315476336959596848, 5492795781228717163, -1878896769451716867, -8256511212370819639, -1033296134836724593, 545588205163843946, 4841490740364333020, 1431879702182751667, 7158281449455708963, -7631448564431039156, -4732035416621109281, -8696787544095760574, -8265442421376384490, -6140563005407990027, -1485868397268390778, -923688304585298905, 9055394178316974534, -6992655989971692377, -8379075168281811025, -4177712831863022584, 8557193642835830463, 8727652050309847405, 9101228003095798318, 342276935468733528, 2125454917839578029, -7795473510618373167, -6799943977472325249, 6504154235262509479, -8539888869393801574, -5278083227692286949, -485507237784893599, -8938331974819664179, 6277782500598935942, 6795697188417154749, 423142523572608281, -4218034603490236356, 7024984236779840316, 9072978020563012791, 5909231403474564040, -6092798456170918434, -6988933892553991393, 1982250600826180234, -7817342174481767324, -1208233401998943632, -8125475038879897011, 921842133729814488, -5930943891786904273, -4278998845352686820, -8474550839788589774, -38695762770562065, -3748349612018398917, 3390897881502099515, 4060669248005398560, 3947749429396924301, 1523483650689135774, 723627418186446678, 2599267814863891732, 3259321852545717832, 809625161299679418, -8011810762692538519, -5255239287699671123, 1962512671155703256, -2146694811129990436, 8523918060091283685, 3909214533264395110, 9013974636356443615, -4965640563133462743, 336600851691663085, -4857027692605061116, 2414966089177146081, -8031994595006148723, 8011258720552881883, -4841567232898172341, -6017736734984315879, -2350389121251217143, 1500822475052167126, -7722457738688111658, -2412923846393933191, -8786465162638587173, -8467916395796496473, -9201545908010918829, -7436389022937243099, 4121258431372096232, 2981774707645685279, 6192549078600663801, 2239507141855735662, -4937266943212939580, 4383598015781351388, 3500367667777625099, 4265445979313189893, -7722445123572687019, -8089758488900180117, 6045165134377421808, 5100791319698432343, -7864317229507846364, -8316242451608839418, 941076088028934556, -7375280543745950464, 4092634805284438777, -218945203279289748, 2642739844500348337, -4868857381080662703, 6947840098331849963, 1316005834143845078, 7112945344492306472, 3837608633821605687, 6612953847286164681, -2708905474413822518, 8203800728707370162, -667665333115193729, 2298297173892577820, 1787248701645224414, -8725499828321224652, 5759223232994807872, -6809468993514024728, -5106996447345046008, -1716125143705151606, 8920889292959459674, 1543487363196534528, -1422401727934476138, -6875173367096606369, -3906452349894177628, -4013308462155976136, 6372558017689448063, -781237135359215281, -5144054286467933144, 4282535083589780594, 2396107973253839261, 7365801472716975191, 7316827559627905107, 575866959481419500, 1909520162061294283, -8121086638470045648, 2859638368248538054, 6764014194441244928, -1317946468755875228, -7324167591413870675, -4954190638318189280, -7486335486492237873, 5332744067378770001, -323186611794603812, -3198678866318261509, 2068713640950114482, 3069353812861597238, -6467069238341544841, 9193181258034790848, -7348692611442398875, 8747396694909907999, 3662292962193528123, -6592283124932139589, -5440340727297120619, -2150708159681829289, 5154899013155084974, 300931462916846710, 267306129028303629, -6124402025857570481, -2380862100557754478, -8322782998950903402, 2203849044199742240, 7189962897065300181, -8196293205269926822, -6129722503598130442, -5717855583525242650, 5602953333822323107, -4394814386818113299, 8439719004326965297, -1853466123124981772, -8251721808467378698, -6468265281388358912, -3809748939990651052, 1711930554606737283, -8930806179946901186, 1128073246959904379, -5467758056403617718, -45553055250825220, 1156758914636241803, 5948193078099675785, -5962488332994723134, 7740792189484702658, -6863363731893569278, 1789243812814554167, -2471776969995239390, -6732014630508503900, 1844130485483900815, -200568493491779112, -436077017430881927, 3919223787046752168, 8021529304731123514, -8610751941045982309, 2491900769970361038, 1135953594877785960, -8649939117570278886, 512081662839873769, 281686122159629418, -5413101347049893607, -5127982072271321180, 8829245259139364789, -4992060981889383422, -7011762443625431546, -8956140975323702261, -2270955087903718521, -5175011738133382439, 657640191311126730, 4091251227200427343, -6376895040745033169, -8508555100273529430, -1796050355685702518, -7479868720901504471, -5693370525191439017, -3124825009832723230, 774528893311273039, 9094157038382657252, -2594721374980053369, -926102615299587563, 2769802780729386319, -1298828413415974516, -5875668061957414574, -8567687956511688734, 233394549322687598, 5134640738553506267, 1506589231432092810, 673454251841598024, -3864419293898015851, -4546733640323423295, -1256885168795612395, -2343815280982982225, 2628293344092275199, 865800620207458536, -1382327376923515606, 5206767734543250343, 756017486055271922, 4850772404988320878, -663553206968607637, -5509160184204113214, -3695576970140377038, -9168146533523609146, -7491269378073904551, -6267617133518579094, -528353216840969278, 2439540592134774917, 4441888984435367795, -4462545664660870614, 747570505408124171, 401797950445292427, -3324092939983153226, -3873689014480318940, 5182336296753675920, 7873764258453728801, 7014262476081928616, -3499584067824619030, 1344877861478481526, 5469107153228227900, -5956207405289502258, 6088854365980969717, 884915936130810611, -3403372171423376387, 295363824065805385, -5062502498413589220, -1009241209628196304, 389365988436719678, 3103943042928171802, -3000897104692751348, -6712447631233122461, 3082863725940309590, 116072542729193868, 298868359587831624, 2907319611001266877, -1838284396540890431, 2082973454121984783, -5161203116080320320, 7282860745056959634, 474704650168943363, 6226317328107536369, 4825910540062605953, 5945263003255050778, 4504821081943907717, -7598018404869471239, -2818720317675853613, -4361067299114656414, 5008345756066421481, -8849124832622501767, -4148573144730325996, -6526827364186854224, -7239302400229886016, -2014395882539237498, -4557361942559936912, 861107001019165001, -4114671162324339357, 4721514747018921326, -5805803238004189414, 7552698164482785756, 7497316560639380357, -1669191079305453102, -2531215509889715468, 5439356077135540601, 2911737040468451421, 2629942975255414574, 8286884461927020068, -7871488877533307791, 2862083316722898491, 7087387006969898480, 606711885235407217, 1693734614856232642, 217812560108109734, -5192024600182825344, -8478414091738455841, -3883421583894329607, -3369084816838402991, -5907051089772642916, 2483299219641833672, 7172282743255780479, -602318766852464546, -1077903559315031146, 770082142730356829, 3993899725793039928, -1229458295801142802, -7427564167209533319, 5744627202631096538, -4307622145389755129, -8430207265372188331, 1509870615572337394, 5155510312138930465, -347833235362661169, 7129984587994260576, -7487719631604369919, -1423783742145509702, 1173199934709978722, 1326657929459911373, -1585920494862835341, -3975994624345999391, -8976387390288710492, 2590250378075021977, -1426734627869002447, -6927900969806126702, 1747954734382651024, -6152543370889567078, 754358163957577809, -8351318808938792381, 326825291789732117, 5557618892685483060, -5849777647240212801, 5760837234435517008, -3843804261769104675, 7222778241614397433, 8864895893229875687, -8422456700173688630, 7273523800189460156, 492179030368810476, -2391480277429268284, 750834839931384475, 8278665001739515818, -4982482698709692101, 6475385556371811030, -7853095560331657104, -5848657393720385028, -3364380733318459954, -8546827743546458805, 5116641493098583451, 2815226095414166430, -8494854239959616675, 1782078395145329791, -5158653085431633500, -4657046649979588160, -111873088748600590, -1939359841773274182, -1393657311545381938, -7275447868482485976, 612692445395799226, 2590166644063810226, 2784744666920505647, -6483266022223056305, -3130119144388962152, -5935204981350286860, 6746183148444015223, 1881736877774620439, 8193576216936208758, -975280572085523442, -1541414951107285938, 8720882032155484537, 3121172592683938345, -2312993974902646780, -6748613446494416376, -5557011336181423922, -7232783249999228981, -6808261010130612619, -1024226312373348323, 390267185930883049, -433773452758753890, -1382188157026655723, 5552684775601009220, 7423416825822047242, 5921594515673978074, 1623161230277289138, -8635996496859796366, -8341198799787506612, 3684274307140230103, -3525979106511607914, -8150260350424184478, -8532800934409415517, -2289292315123368766, 6096824428633248996, -6934839419233550764, -3952569066269370263, 8829949667617343402, 5864957961624401730, 4888155050469376768, 7759001841431655476, -632465181939387254, 6823471927599469521, 5123512777902473827, 2294694572406052559, 7293379777634816638, -3954484737852232932, -2604163955193706319, 5302199851468118708, 7941997818865972731, -2944316522978960643, -114533323212471318, 5143101534135716130, 5503830823786557143, 4293836402769053661, 2443793899823007245, 4664151635658311636, 5347773595699610761, -8929372395762077376, -1585177283667380717, 2914214588282404436, 1504725386427480254, -1023403796257129121, -3815055356083271397, -1602177549551322433, 4464340290292481424, 2596283952846398759, 6708818568356231300, 1460617358915420542, 8419233541028365779, -2203822834983361938, -1931612997367313039, -7090136942616851123, 6159601980531272771, -2924982422417083368, 8625733557184675609, 4966400309055554077, -8420955481265415186, 9183344182512950169, -9205269537311193262, 1180206716364896655, 5649332854950898528, -7015458375405687643, 7461146559025422960, 9217651932099188075, 4216402007961329410, 461436019440732543, -1600352722337213990, 3717854620828942012, -1025875194482804295, 2086135012014834367, -4704994046889660330, 5403589599609442036, 372037190386320350, -5851412813291557272, -5170328938926897777, 8846115909828536457, 2516480883147209491, -4896484736258034480, -5906029717909633600, 6265789318254371860, -4184972177002461374, 2969877626312101119, 3754493426391366020, -5988933217627427307, -506504264594884287, -2306219102686063308, 4968059706062408597, 551360151702058730, -897839361899024578, 8423280353089141563, -3067730695236925986, -3026133068307276139, -347944654449501921, -940860396850113768, -8480884751044675527, 809962066770662957, 5570805929138081955, -8536365026315448451, -1785006368005680537, -7539890532479137853, -1685625021416486080, -495084654998941506, -7199283939338655440, -6322523877276066390, -1924280359267481057, 3386811195096545218, 4340173080453476318, 6364546987214926734, -2912796951270685079, 8400259745492783989, 3661405512672161742, 4604494546812057752, 8370694602000383875, 5751823553944575080, -80732473868442682, -5068975410524126635, 1331105462545369438, 598972586912857703, 5802402952647492833, 7351347543334195739, 4629965513871560492, -4477065353550525982, 4293618117058312116, -6815898000427288159, 846705003859041619, 3186171236091860712, 4576063879771282323, -1518436754082451324, 7445306181558445577, -89593885154150055, 2904823363991754002, 818189339834939969, -6927299680575465663, 774958765598804809, 4184480648866898818, 709459366790959167, -4626091224208877513, -4003719419553378414, -6375925064930762469, -8825007961980179238, -7325276889309215544, -3027372533955547264, -1927195262342876859, -667359508884563370, -5415417686542208967, -3784508763376007847, -5893063287029739857, 2536729896110987882, -6272080088435360542, 8951868953695015582, 7657733672058879951, -3591774230959004874, 4601441236653546432, -7954501087248739387, 4278808274080018333, -4189589147412854906, 3828103683445085006, 9074562452350853598, 4059407993900385140, -5997554768177503082, -4636925930469952744, 5080884309044199817, 1665616659663714146, 7970275004708093640, -3515425865023497791, -6360788715005919459, 7681345674226937024, -1591754913526476693, 5278190882276400205, -8713532464964466486, -2461950230538602509, -2727563323241331517, -287882604865952548, -4998482287525601156, -1649942588236592323, -8334141899698381045, -7269267742813065958, -7465996355516162442, -8367728504152794794, -3459103132137325384, -1442198878028866612, 1345426515571720162, 957338003967035704, -2303816575022567080, 1208712301355977128, -8664278389558935051, -6574363558896842278, -7442461843337218072, -5180740110988816831, -6146405288281139548, 1997488320728279352, 7990081663600268439, 8274874197080548026, -386791932584511903, -4179221920081656990, 1240571758916158831, -1588596297266368324, 4491312469535288412, -2214189452237794995, 7803610570916068138, -5640046785458659998, -7392020203068829438, 5919234342593647532, 2228366347447295854, -8249544441613091232, -3099994497127353743, -8712297251007557648, -8444081228236190486, -4138862006196247025, 3035941869393087219, 6865636581281765649, -1005446072170419096, 7567108779417572888, 7837517685344243063, 7670447677317119573, 4151631287228471306, 4526501527929220747, 4226079951478001946, 1202356483128737661, -2739082484678542864, 4391123101800491274, 5433171088527550481, -675011903020846570, -2390268965994021074, -6400528939907285297, 6150357763280260129, -3017666321637668155, -1053021560348986776, 9201474057859856959, 7787251696844674920, 5459333673413767625, 1426920414208397410, -6429487967293043397, -5257783894738967233, -4284393545900291341, 4495860121982827476, -46895423979592336, 1296883116656120401, 5786280337555694459, -4666319220415667626, -3461086543927012398, -7466201980694565103, -1140264047004134064, 1788452594610260380, 2122482110897982437, -5293404697371027017, -3085653831748559619, 8968205811622157951, 2548019779744265006, 3102188766046202682, -2248855211814195250, 1840990658819753196, -2774269581294831808, 7736515481348219928, -7581335344458835462, 665256893255762772, 5335232103275708859, -6147769550004725594, 3101116076125687634, 8997815652593752671, -991039277422269440, 7401069779267872655, -4265706085782567959, 3543936723168736598, -156641789358572940, -4629238417234483327, 8493545078498008813, -1246104920785264932, -8472321413018125528, 2488827515048085824, 8921536292508501002, 6738563439579654225, -200494991427853633, 1522770512287049875, 27967913645549852, 4522774353626005250, 1256679544378049641, 3405255849140860312, 7600273242978473381, 23575511431754301, -4672409883425447422, -1889984186866827497, 7296992012812133386, 7613921948614865957, -7044820154857814072, -12882897692051401, 3386197820290517830, 3757006914775894255, -1373125215551940593, -3417240353472760107, 4545004743879531724, -8452197784793964824, 4011326474920807008, 5525699117455073819, -3509792888780752488, 7747786058626772811, -7865242219225730860, 910114598761973557, 8729218338529719741, 2193454523997047762, 4953648112241098125, -59570399940716217, -6891932827762610950, 688729686249553424, -6834288079848933917, 6017726407627186015, -5605007233816630810, -2133202062587357392, 6308144618868189880, 2410467815773232712, 3362613551949800205, -8338291721789685875, 6806446490174013722, 3617871453764871716, -8089650650345025368, 3404255987694622585, 2202469573791039532, -7038901024420444641, 7326487216627937675, 2006086046514863996, -4848829373502046379, -6687748984161091542, -4704499280845394759, 5693921821332933733, 6240465266111347301, -5116742469232271276, -7234779267632071457, 2252310932068953919, -8595127224043306421, -5138935515462782395, 4689492763043291304, 8050868810895092300, 962693406226418360, -4449695870065690339, 8935126896712982994, 3267588726403168015, -818610592836939733, 7132156710085247201, 8105498990887613566, 5292883430792218720, -8967672561525703489, -3060374723375263315, 6471936150048936450, 2172367360780066734, -1827028870686942816, 8184252284225033604, 12627831469234390, -2395062585798175981, 4876415032581521430, -3432957251328609060, 2824204544680857114, -6957079231530010699, 1714026339693802571, 6823755481099456679, 1364401565068280193, -53970842360164026, 3853564448249494149, -2972682942843227938, -2348220370393093578, -6728559394063198303, -428422563929318788, -1957417017065146130, -4576719719265522168, 8053316042690501278, 3310213367865201347, -4112824968274046397, 9181248053861701240, 5060815935519305174, 7032513404456678609, 177101472299265594, 9016686722828226635, -3992609091501539892, 3143581933428900547, 8128180822245920683, -2491463316461667999, 2330203500336038282, -5110918847855557615, -7491970226199025008, -4282477307488025506, -7781771132730950018, 110713113935466601, 5587248837089220356, 1255960974818918754, 8698965655282249228, 1142240120158884473, -5140871044598154651, 4242316612159154748, 3196934947642219001, 4142985180027536009, 2284684766136520859, 7816460186487161689, 5634691966513170702, 826997164884838579, 3671534939283556119, -844031886846999857, -1657668728488381095, 8601048722354210748, -4666584954286161010, -1085772457483182900, -2379097533368203544, -5332523084927766221, -5720827504987796707, -500660857826907077, 4907278821539746137, 1612608063453637092, 999864768533873242, -7685650682105223826, 7245427910569743072, 1915079413800755968, -5131813309895086474, 8603554651152580284, -3652229143877557486, -8841849929405732104, 6266043455441667211, 4281933208146509394, 589626416538186847, 5635303622841263125, -8667555342721547899, -9097851054913215828, -5615926735483961873, -3816309666573504094, -6658235192728664890, -3489437372181895819, 6473906457060472482, 4084129016480245043, -4883048595868761561, -1144571853544535461, -3951778588605513599, 4357554689713104672, -4357398228254444450, 1145204610306466049, -3244690036564156625, 8156367274598166522, -3931250004521385041, -2911389906840280156, 2346135012548426971, 576993460546804143, 7755992082919279476, 5029888512237914138, 4169682438101948249, 3117687678292024900, 2812443196596217794, 2970221911793514584, 5050422048466027618, -9167054139502708775, -4740218251362552892, -3553211067591049806, 2581209126211751705, 6210955990385848062, 4029216681594316343, 4757775271400889122, 2168566460174157610, -4679861032853884697, 4796453839497959957, -6840455779837473580, -9128818347027882259, 903574838146320940, 1535682736054934768, 9203128279744177178, 7825465624445881366, 4729623009342607951, -8445010477853746168, 2779359132169173177, -7787638646415434082, 8630307791021786349, 7678698831967593045, 8924323017326743858, -7838933716625602894, -5363993515335776073, -4758848622545323715, 8165749912610324377, 3890814894726346511, -224522875182829871, -8504675575833067, -3136726367779306378, 1730973323036014299, 1734914536475617191, -8026633819492051296, 585377375399552857, 4964974511298566884, -8792006564640315718, 5133949230062027221, 966490915736029700, -6856276960559046469, -3209050650471783039, 1997946309212720291, -2694844664018723792, 3040950680047421026, 664257877741578415, -1549762200498106454, -6557905093166641386, -8211748983442216867, 454695318135322844, 8098973132628461804, -5374114151749928624, 250875467351983359, 8620562681172610875, 7000258589713572687, -1664130791612438228, 7543643719287184369, -7801214284011511231, 7582532710654096211, -1305082352635692836, 467279306749204029, -4699785433075779598, 6850508823342814093, -6352453380479010935, 4359866734038908518, 5902667197491083031, 7491369333420527577, 368394965541002310, 6196741845111984131, 6216658244935918994, -2752843053616425955, -1148561512128619591, -6370429481649296125, -3234284230884801704, 4606987715801616028, -2718306068765596780, 6914318796004499819, -5955316532302996313, -296482199804435617, 3919412655103512781, 6269319759630105643, -572523975562305942, 7098284566686338285, 2060918062386840664, -224632482533677750, 2037141206169921799, 1111659287311468957, 845168212116422988, 2258376583953503577, 1380384900532319897, 5150863500031027649, 4491459583774403100, -8799333906252164078, -7436299637009861037, -8897605254734354534, -33573020224461376, -598118414029620053, -1036032722062113417, 3112711594643544824, -6413355946478926157, 260077946076331348, 8624135096108717536, -1391526975651603912, -2546415741280369889, 6725196710923716083, 1498135459392738623, -5531141162888212301, 9157140210067052907, -7152812193245389267, -8753601697609765711, 4234813085864327843, 7187437046903224286, -5055160253822539475, 5740244605347500833, -683871540398120655, 7898025549943690712, -1290240967206721704, -1743125062461769548, 6422263519987998930, 6839574880723343706, 5874745018847963481, 5228066245330305137, -977796713401175104, -2638646963020434633, 1031149875050997514, -5269507848698839757, -5537344948493036939, 952640385806733361, 5044850892597083588, 396022206904815266, -4634210581742012041, 5016832958586948828, 3037314680921923855, -7714084903984746866, -1202569377564993821, -7401114300118604435, 7704534374415376277, 2156604305649768794, 2817748268707172365, 1053569788744816184, -4301201223533542269, -1599613411082562407, -4955672137856541273, -6243615707262612649, 1630246511914211374, 8743683296570668073, 1389080168999368683, -5264898573472638830, -5277151964454990744, 8278880058128573084, 5988807441639222597, 4766863221614704793, 5359524312828082327, 4466911741370325898, 4190251645054681054, 6844747556036323011, -794352884304297490, 4270533900276389769, 7811869791363827446, 1947986319779991562, 2595675121194158456, 1928698732085290081, 3445100354674624654, 4698092473852175334, 2325570931244996584, -5209475154473419273, 3612199949675998165, 7475295921963138980, 643461511745356493, 2759701459090278254, -189151161835056444, -4789457556455813773, -3046417913880116144, -8433861090395941960, 3091999775913123966, 5879136492948900995, 4788231701303947795, -8804124782913533732, 792440245580090219, 3914487398198805513, 7405176402717547027, -4088208378638131629, 8185598939756282511, 1102615283913532604, -4205676137230147531, 1212255400888206837, -2732932430502287969, 6968133671527913135, 6774264180253840475, 5058260994715711882, -8130125491347080982, 1149156941701589453, -6010198640283435488, 1449319895462962850, -2281107511056733355, -466571451550039668, 6685982507464898108, -299126195897750697])), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for i = _ - for k = parallel(_) - for j = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = ((ex.bodies[1]).bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_locks = Ct_lvl_2.lvl.locks - Ct_lvl_4 = Ct_lvl_3.lvl - Ct_lvl_3_val = Ct_lvl_3.lvl.val - A_lvl = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - A_lvl.shape[2] == B_lvl.shape[1] || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl.shape[2]) != $(B_lvl.shape[1]))")) - @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - @warn "Performance Warning: non-concordant traversal of A[i, k] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - @warn "Performance Warning: non-concordant traversal of B[k, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - result = nothing - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_locks, pos_stop) - @inbounds for idx = 1:pos_stop - Ct_lvl_2_locks[idx] = make_lock(eltype(Vector{Base.Threads.SpinLock})) - end - Finch.resize_if_smaller!(Ct_lvl_3_val, pos_stop) - Finch.fill_range!(Ct_lvl_3_val, 0, 1, pos_stop) - for i_4 = 1:A_lvl.shape[1] - locksArray = Ct_lvl_2_locks - Ct_lvl_2_locks = (Finch).moveto(Ct_lvl_2_locks, CPU(Threads.nthreads())) - val = Ct_lvl_3_val - Ct_lvl_3_val = (Finch).moveto(Ct_lvl_3_val, CPU(Threads.nthreads())) - B_lvl_ptr_2 = B_lvl_ptr - B_lvl_ptr = (Finch).moveto(B_lvl_ptr, CPU(Threads.nthreads())) - B_lvl_tbl1_2 = B_lvl_tbl1 - B_lvl_tbl1 = (Finch).moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2_2 = B_lvl_tbl2 - B_lvl_tbl2 = (Finch).moveto(B_lvl_tbl2, CPU(Threads.nthreads())) - val_2 = B_lvl_val - B_lvl_val = (Finch).moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr_2 = A_lvl_ptr - A_lvl_ptr = (Finch).moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1_2 = A_lvl_tbl1 - A_lvl_tbl1 = (Finch).moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2_2 = A_lvl_tbl2 - A_lvl_tbl2 = (Finch).moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - val_3 = A_lvl_val - A_lvl_val = (Finch).moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_5 = 1:Threads.nthreads() - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - phase_start_2 = max(1, 1 + fld(A_lvl.shape[2] * (i_5 + -1), Threads.nthreads())) - phase_stop_2 = min(A_lvl.shape[2], A_lvl_i_stop, fld(A_lvl.shape[2] * i_5, Threads.nthreads())) - if phase_stop_2 >= phase_start_2 - if A_lvl_tbl2[A_lvl_q] < phase_start_2 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, phase_start_2, A_lvl_q, A_lvl_q_stop - 1) - end - while true - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - if A_lvl_i < phase_stop_2 - A_lvl_q_3 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_3 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_3 = 0 - end - phase_stop_4 = min(i_4, A_lvl_i_stop_3) - if phase_stop_4 >= i_4 - if A_lvl_tbl1[A_lvl_q] < i_4 - A_lvl_q_3 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_3 = A_lvl_tbl1[A_lvl_q_3] - if A_lvl_i_3 < phase_stop_4 - A_lvl_2_val = A_lvl_val[A_lvl_q_3] - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_stop_6 = min(B_lvl.shape[2], B_lvl_i_stop) - if phase_stop_6 >= 1 - if B_lvl_tbl2[B_lvl_q] < 1 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_6 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 - Ct_lvl_3atomicArraysAcc = get_lock(CPU(Threads.nthreads()), Ct_lvl_2_locks, Ct_lvl_2_q, eltype(Vector{Base.Threads.SpinLock})) - aquire_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc) - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_8 = min(A_lvl_i, B_lvl_i_stop_2) - if phase_stop_8 >= A_lvl_i - if B_lvl_tbl1[B_lvl_q] < A_lvl_i - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, A_lvl_i, B_lvl_q, B_lvl_q_step - 1) - end - while true - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - if B_lvl_i_2 < phase_stop_8 - B_lvl_2_val = B_lvl_val[B_lvl_q_2] - Ct_lvl_3_val[Ct_lvl_2_q] = A_lvl_2_val * B_lvl_2_val + Ct_lvl_3_val[Ct_lvl_2_q] - B_lvl_q_2 += 1 - else - phase_stop_10 = min(B_lvl_i_2, phase_stop_8) - if B_lvl_i_2 == phase_stop_10 - B_lvl_2_val = B_lvl_val[B_lvl_q_2] - Ct_lvl_3_val[Ct_lvl_2_q] += A_lvl_2_val * B_lvl_2_val - B_lvl_q_2 += 1 - end - break - end - end - end - release_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc) - B_lvl_q = B_lvl_q_step - else - phase_stop_12 = min(B_lvl_i, phase_stop_6) - if B_lvl_i == phase_stop_12 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_12 - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 - Ct_lvl_3atomicArraysAcc_2 = get_lock(CPU(Threads.nthreads()), Ct_lvl_2_locks, Ct_lvl_2_q_2, eltype(Vector{Base.Threads.SpinLock})) - aquire_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_2) - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_13 = min(A_lvl_i, B_lvl_i_stop_2) - if phase_stop_13 >= A_lvl_i - if B_lvl_tbl1[B_lvl_q] < A_lvl_i - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, A_lvl_i, B_lvl_q, B_lvl_q_step - 1) - end - while true - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - if B_lvl_i_2 < phase_stop_13 - B_lvl_2_val_2 = B_lvl_val[B_lvl_q_2] - Ct_lvl_3_val[Ct_lvl_2_q_2] = A_lvl_2_val * B_lvl_2_val_2 + Ct_lvl_3_val[Ct_lvl_2_q_2] - B_lvl_q_2 += 1 - else - phase_stop_15 = min(B_lvl_i_2, phase_stop_13) - if B_lvl_i_2 == phase_stop_15 - B_lvl_2_val_2 = B_lvl_val[B_lvl_q_2] - Ct_lvl_3_val[Ct_lvl_2_q_2] += A_lvl_2_val * B_lvl_2_val_2 - B_lvl_q_2 += 1 - end - break - end - end - end - release_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_2) - B_lvl_q = B_lvl_q_step - end - break - end - end - end - A_lvl_q_3 += 1 - else - phase_stop_18 = min(A_lvl_i_3, phase_stop_4) - if A_lvl_i_3 == phase_stop_18 - A_lvl_2_val = A_lvl_val[A_lvl_q_3] - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_stop_19 = min(B_lvl.shape[2], B_lvl_i_stop) - if phase_stop_19 >= 1 - if B_lvl_tbl2[B_lvl_q] < 1 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_19 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - Ct_lvl_2_q_3 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 - Ct_lvl_3atomicArraysAcc_3 = get_lock(CPU(Threads.nthreads()), Ct_lvl_2_locks, Ct_lvl_2_q_3, eltype(Vector{Base.Threads.SpinLock})) - aquire_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_3) - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_21 = min(A_lvl_i, B_lvl_i_stop_3) - if phase_stop_21 >= A_lvl_i - if B_lvl_tbl1[B_lvl_q] < A_lvl_i - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, A_lvl_i, B_lvl_q, B_lvl_q_step - 1) - end - while true - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - if B_lvl_i_3 < phase_stop_21 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] - Ct_lvl_3_val[Ct_lvl_2_q_3] = A_lvl_2_val * B_lvl_2_val_3 + Ct_lvl_3_val[Ct_lvl_2_q_3] - B_lvl_q_3 += 1 - else - phase_stop_23 = min(B_lvl_i_3, phase_stop_21) - if B_lvl_i_3 == phase_stop_23 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] - Ct_lvl_3_val[Ct_lvl_2_q_3] += A_lvl_2_val * B_lvl_2_val_3 - B_lvl_q_3 += 1 - end - break - end - end - end - release_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_3) - B_lvl_q = B_lvl_q_step - else - phase_stop_25 = min(B_lvl_i, phase_stop_19) - if B_lvl_i == phase_stop_25 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_25 - Ct_lvl_2_q_4 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 - Ct_lvl_3atomicArraysAcc_4 = get_lock(CPU(Threads.nthreads()), Ct_lvl_2_locks, Ct_lvl_2_q_4, eltype(Vector{Base.Threads.SpinLock})) - aquire_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_4) - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_26 = min(A_lvl_i, B_lvl_i_stop_3) - if phase_stop_26 >= A_lvl_i - if B_lvl_tbl1[B_lvl_q] < A_lvl_i - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, A_lvl_i, B_lvl_q, B_lvl_q_step - 1) - end - while true - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - if B_lvl_i_3 < phase_stop_26 - B_lvl_2_val_4 = B_lvl_val[B_lvl_q_3] - Ct_lvl_3_val[Ct_lvl_2_q_4] = A_lvl_2_val * B_lvl_2_val_4 + Ct_lvl_3_val[Ct_lvl_2_q_4] - B_lvl_q_3 += 1 - else - phase_stop_28 = min(B_lvl_i_3, phase_stop_26) - if B_lvl_i_3 == phase_stop_28 - B_lvl_2_val_4 = B_lvl_val[B_lvl_q_3] - Ct_lvl_3_val[Ct_lvl_2_q_4] += A_lvl_2_val * B_lvl_2_val_4 - B_lvl_q_3 += 1 - end - break - end - end - end - release_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_4) - B_lvl_q = B_lvl_q_step - end - break - end - end - end - A_lvl_q_3 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - else - phase_stop_32 = min(A_lvl_i, phase_stop_2) - if A_lvl_i == phase_stop_32 - A_lvl_q_3 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_3 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_3 = 0 - end - phase_stop_33 = min(i_4, A_lvl_i_stop_3) - if phase_stop_33 >= i_4 - if A_lvl_tbl1[A_lvl_q] < i_4 - A_lvl_q_3 = Finch.scansearch(A_lvl_tbl1, i_4, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_3 = A_lvl_tbl1[A_lvl_q_3] - if A_lvl_i_3 < phase_stop_33 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_3] - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_stop_35 = min(B_lvl.shape[2], B_lvl_i_stop) - if phase_stop_35 >= 1 - if B_lvl_tbl2[B_lvl_q] < 1 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_35 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - Ct_lvl_2_q_5 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 - Ct_lvl_3atomicArraysAcc_5 = get_lock(CPU(Threads.nthreads()), Ct_lvl_2_locks, Ct_lvl_2_q_5, eltype(Vector{Base.Threads.SpinLock})) - aquire_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_5) - B_lvl_q_4 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_4 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_4 = 0 - end - phase_stop_37 = min(phase_stop_32, B_lvl_i_stop_4) - if phase_stop_37 >= phase_stop_32 - if B_lvl_tbl1[B_lvl_q] < phase_stop_32 - B_lvl_q_4 = Finch.scansearch(B_lvl_tbl1, phase_stop_32, B_lvl_q, B_lvl_q_step - 1) - end - while true - B_lvl_i_4 = B_lvl_tbl1[B_lvl_q_4] - if B_lvl_i_4 < phase_stop_37 - B_lvl_2_val_5 = B_lvl_val[B_lvl_q_4] - Ct_lvl_3_val[Ct_lvl_2_q_5] = A_lvl_2_val_2 * B_lvl_2_val_5 + Ct_lvl_3_val[Ct_lvl_2_q_5] - B_lvl_q_4 += 1 - else - phase_stop_39 = min(B_lvl_i_4, phase_stop_37) - if B_lvl_i_4 == phase_stop_39 - B_lvl_2_val_5 = B_lvl_val[B_lvl_q_4] - Ct_lvl_3_val[Ct_lvl_2_q_5] += A_lvl_2_val_2 * B_lvl_2_val_5 - B_lvl_q_4 += 1 - end - break - end - end - end - release_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_5) - B_lvl_q = B_lvl_q_step - else - phase_stop_41 = min(B_lvl_i, phase_stop_35) - if B_lvl_i == phase_stop_41 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_41 - Ct_lvl_2_q_6 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 - Ct_lvl_3atomicArraysAcc_6 = get_lock(CPU(Threads.nthreads()), Ct_lvl_2_locks, Ct_lvl_2_q_6, eltype(Vector{Base.Threads.SpinLock})) - aquire_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_6) - B_lvl_q_4 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_4 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_4 = 0 - end - phase_stop_42 = min(phase_stop_32, B_lvl_i_stop_4) - if phase_stop_42 >= phase_stop_32 - if B_lvl_tbl1[B_lvl_q] < phase_stop_32 - B_lvl_q_4 = Finch.scansearch(B_lvl_tbl1, phase_stop_32, B_lvl_q, B_lvl_q_step - 1) - end - while true - B_lvl_i_4 = B_lvl_tbl1[B_lvl_q_4] - if B_lvl_i_4 < phase_stop_42 - B_lvl_2_val_6 = B_lvl_val[B_lvl_q_4] - Ct_lvl_3_val[Ct_lvl_2_q_6] = A_lvl_2_val_2 * B_lvl_2_val_6 + Ct_lvl_3_val[Ct_lvl_2_q_6] - B_lvl_q_4 += 1 - else - phase_stop_44 = min(B_lvl_i_4, phase_stop_42) - if B_lvl_i_4 == phase_stop_44 - B_lvl_2_val_6 = B_lvl_val[B_lvl_q_4] - Ct_lvl_3_val[Ct_lvl_2_q_6] += A_lvl_2_val_2 * B_lvl_2_val_6 - B_lvl_q_4 += 1 - end - break - end - end - end - release_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_6) - B_lvl_q = B_lvl_q_step - end - break - end - end - end - A_lvl_q_3 += 1 - else - phase_stop_47 = min(A_lvl_i_3, phase_stop_33) - if A_lvl_i_3 == phase_stop_47 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_3] - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_stop_48 = min(B_lvl.shape[2], B_lvl_i_stop) - if phase_stop_48 >= 1 - if B_lvl_tbl2[B_lvl_q] < 1 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_48 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - Ct_lvl_2_q_7 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 - Ct_lvl_3atomicArraysAcc_7 = get_lock(CPU(Threads.nthreads()), Ct_lvl_2_locks, Ct_lvl_2_q_7, eltype(Vector{Base.Threads.SpinLock})) - aquire_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_7) - B_lvl_q_5 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_5 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_5 = 0 - end - phase_stop_50 = min(phase_stop_32, B_lvl_i_stop_5) - if phase_stop_50 >= phase_stop_32 - if B_lvl_tbl1[B_lvl_q] < phase_stop_32 - B_lvl_q_5 = Finch.scansearch(B_lvl_tbl1, phase_stop_32, B_lvl_q, B_lvl_q_step - 1) - end - while true - B_lvl_i_5 = B_lvl_tbl1[B_lvl_q_5] - if B_lvl_i_5 < phase_stop_50 - B_lvl_2_val_7 = B_lvl_val[B_lvl_q_5] - Ct_lvl_3_val[Ct_lvl_2_q_7] = A_lvl_2_val_2 * B_lvl_2_val_7 + Ct_lvl_3_val[Ct_lvl_2_q_7] - B_lvl_q_5 += 1 - else - phase_stop_52 = min(B_lvl_i_5, phase_stop_50) - if B_lvl_i_5 == phase_stop_52 - B_lvl_2_val_7 = B_lvl_val[B_lvl_q_5] - Ct_lvl_3_val[Ct_lvl_2_q_7] += A_lvl_2_val_2 * B_lvl_2_val_7 - B_lvl_q_5 += 1 - end - break - end - end - end - release_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_7) - B_lvl_q = B_lvl_q_step - else - phase_stop_54 = min(B_lvl_i, phase_stop_48) - if B_lvl_i == phase_stop_54 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_54 - Ct_lvl_2_q_8 = (Ct_lvl_q - 1) * A_lvl.shape[1] + i_4 - Ct_lvl_3atomicArraysAcc_8 = get_lock(CPU(Threads.nthreads()), Ct_lvl_2_locks, Ct_lvl_2_q_8, eltype(Vector{Base.Threads.SpinLock})) - aquire_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_8) - B_lvl_q_5 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_5 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_5 = 0 - end - phase_stop_55 = min(phase_stop_32, B_lvl_i_stop_5) - if phase_stop_55 >= phase_stop_32 - if B_lvl_tbl1[B_lvl_q] < phase_stop_32 - B_lvl_q_5 = Finch.scansearch(B_lvl_tbl1, phase_stop_32, B_lvl_q, B_lvl_q_step - 1) - end - while true - B_lvl_i_5 = B_lvl_tbl1[B_lvl_q_5] - if B_lvl_i_5 < phase_stop_55 - B_lvl_2_val_8 = B_lvl_val[B_lvl_q_5] - Ct_lvl_3_val[Ct_lvl_2_q_8] = A_lvl_2_val_2 * B_lvl_2_val_8 + Ct_lvl_3_val[Ct_lvl_2_q_8] - B_lvl_q_5 += 1 - else - phase_stop_57 = min(B_lvl_i_5, phase_stop_55) - if B_lvl_i_5 == phase_stop_57 - B_lvl_2_val_8 = B_lvl_val[B_lvl_q_5] - Ct_lvl_3_val[Ct_lvl_2_q_8] += A_lvl_2_val_2 * B_lvl_2_val_8 - B_lvl_q_5 += 1 - end - break - end - end - end - release_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_8) - B_lvl_q = B_lvl_q_step - end - break - end - end - end - A_lvl_q_3 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - end - break - end - end - end - end - Ct_lvl_2_locks = locksArray - Ct_lvl_3_val = val - B_lvl_ptr = B_lvl_ptr_2 - B_lvl_tbl1 = B_lvl_tbl1_2 - B_lvl_tbl2 = B_lvl_tbl2_2 - B_lvl_val = val_2 - A_lvl_ptr = A_lvl_ptr_2 - A_lvl_tbl1 = A_lvl_tbl1_2 - A_lvl_tbl2 = A_lvl_tbl2_2 - A_lvl_val = val_3 - end - resize!(Ct_lvl_2_locks, A_lvl.shape[1] * B_lvl.shape[2]) - resize!(Ct_lvl_3_val, A_lvl.shape[1] * B_lvl.shape[2]) - result = (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}((AtomicLevel){Vector{Base.Threads.SpinLock}, ElementLevel{0, Int64, Int64, Vector{Int64}}}(Ct_lvl_4, Ct_lvl_2_locks), A_lvl.shape[1]), B_lvl.shape[2])),) - result -end -julia> @finch begin - Ct .= 0 - for i = _ - for k = parallel(_) - for j = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Atomic([Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0)], Element{0, Int64, Int64}([8294554698039956467, -2279941192816175426, 3589307988553427907, -7593990112949036348, -9044133075237715381, 5814921716775220834, 1984686205080786680, 5559296861321236943, -5768354944895451207, 1120323265964696336, -3846116119587858228, -262342919401545940, -2049971580522475001, -2211763620736824942, 5666645008031514269, -1327364040915398565, -2194547984037078177, -5969354033529683723, -1260706530325114884, -7513623401632354996, 8868380549151888102, 7623177491685914752, 2801115262965917591, 3283210314769761053, -4716892793561655300, -2288052069362467524, 6647432114356861726, -1808660770598102607, 3477321511136071709, -2083291106471311307, 1931983037678998792, -1543784239066540918, -8896434483004799611, 8304914340100503713, -1749149773188757073, -1368462329312938935, 8842032079864795141, -1273332777544346279, -8741471974913376683, -3678031711239952825, -6700798423721258528, -7371585820169692141, -8065605016636076675, -7672636988039838930, 8052062968846911257, -5715548372384509649, -8341867563147112022, -9154711993198778743, 2933732122345518678, -5605994647490154907, -2133692759629638928, -6818992290088315340, 992118422339879211, 796660569155974881, 5491138161645048288, 5593431438176231967, 4196491676969776537, -783602413421165030, -2343162328237456754, -2347667087918498914, -4136673636756609937, -6196315042773250978, -1680644584068137242, 629124823636772517, -8974230699676449460, -2521981898387533604, 102158584490734227, -476947301419400062, -3885248478543714173, 3838966950421206534, 4298966649781035557, -3553229965089205098, -2069070993183081526, 4114579515408933624, -2282975407414895203, -4010817463667493000, 2272132884598706492, -6575563091909465195, -2658398725032414884, -3364682623876156767, -7778027708949105160, -3298325222861527795, -7334123207334007089, -5452139065710288443, 1885820391848317025, -3168683330050685268, -4615465087923795216, -7125623111667442778, -136085712019972095, -4633575576292637172, -4443232576713801656, -8076496271736850097, -2991169373749732480, 3567928539132559690, -1520874962119149489, -6672722304684961988, -1342044052416051911, -4959055271284697717, 1765100301178932779, -5510766831019094681, 8762504261652914538, -1026280257437091520, -7740612711282779002, -75651066155007076, 1175917286708115796, 215650005689746159, 1074059239977842503, -3135540340322246212, 4487796223479468161, 117813528700745474, -8324379894325358325, 1757180236983103362, 6655766257549366197, -3777535527257508441, 114580098802359632, -6320944068319392490, 533238602716561034, -6831552431332570448, -8190494930775264353, 191156998276919113, -3859369208365892857, 2500343402209988606, 2031188468273843282, 1065023235612899838, -6585643968775483825, 2853372987952842246, -3176092365888706331, -4004089601980614520, 1294599066541705050, 7455638925896823104, -734522458797731096, -8477619822868967933, -7827075641126318775, 1658199605681625762, -900396499488497236, 3608798237042314711, 8142435028468432630, 8181648831838397358, 3699002468877240631, -7851053360339404453, -7285699680868015036, -8914039785447533926, 1660245175449796023, 5544688554457903268, 743884732810431664, -5193009945833911851, 4169874342607881648, -3280411169991606487, 134315025965011425, -3414457411597068721, -6053778541607745348, 4743624378245093802, 817546885620956986, 3060126976419944263, 6596746720844310770, -32670440557642426, 7773291265218164464, -2747139949208106021, 4787690020561098504, 6611779436841384171, 4004924413349104377, 4057890700771820801, 1547947635322075762, -4041605863834384811, 8083854711850129991, -3032246449125321576, -6935676039559832962, -7262552710344937689, 6638561143303018670, -2431956156442432310, -6852883101006975241, 8141551686256635351, -2793114698018293480, 2901351249282526336, -8590405837522545098, 1284768462277737195, -6960561302066832858, 2470921323386149221, -1293209798633367855, 4852470840893629285, 2821167647780664441, 6366973705476444977, 4226801472565080501, -9103879725305025059, 8176472583251538243, 8387452082259514660, -2736021226548995081, 6019809268550026078, 5843683665502852812, 3078561957169121216, -553913864285782311, -8396720008997848599, -7916910578423142081, 2474282350293529219, 3763454144318303849, -3143306749835985712, -608242219460478402, -989972312085529006, 7643836624016829132, -7758235694518870862, -8743465346336514685, 2719718679164977811, -5344475697054329836, -5382875460926617461, -2287520955119718235, 5089895164004774048, -7207379975876718081, -8499315421799027837, 5382094811866924412, 94858159835758548, 4714444885585399249, 2419486042431974568, 1178451709781345389, -3244272477430105521, -1047784102008514673, -5908281368045588844, -8819487786822738794, 7375554233921962988, 7117586722854956039, 7635043189795304941, 3647751477487297040, 8888119265583541163, 438773896985192780, 7323235085077979835, 6402386422456545962, 9119746976188580479, -339981380232968078, 7862094120031162190, 1928350441872024538, 5861817903497048633, 8789248006831377358, -3662518157867280773, 5246723151818488323, -4712120449265687255, 8916170145161342841, 6429160948844906067, -7340558410143580649, -2878118280097051778, -4708137013670504139, -6737935883573392882, -3286809900179080876, -8542648342686245264, 1705683826679995175, 1874888461382203165, -43385098015304382, -3541512226970701965, 7308519021589705414, 4657092760823067875, -8034153054673763206, 2270007119073554112, 8805059194979907611, -6506227936394196777, 6569593093608871545, -5455263039233081924, -4894608299203557538, 4907020166765653515, -3651987278181836016, 5370722016210637787, 1096862329635763807, -7546832585001031185, 1772274834989744506, -2797059347358140582, -3473640875567042896, 7692486032135901986, -8656979047320341319, 3769023647569885435, 982341113303111384, -3673687436306074461, -81446334802288730, 6604241365987180538, -8369021354568862340, -4372506992592134813, 4065316681210752413, 1563045780770436755, 7830981927612419729, -5732307671635230159, 7227897221307801531, 2010992442160439666, -1122916357391281896, 5028338562960665496, -4666933955791003754, -1636404242550753810, 1914395787243909596, 3867717114584627246, -5161185302939881190, 7944328755863357247, 3609664606705607460, -5315882602018566936, -5761904302177895735, -6809130468709054173, -4700880319524423632, -5613769913787470034, 5210287635986052957, -5731191730373361431, -9164866423631936276, -926712920787083296, 1908405553760652597, -2652471932491244161, -3697650070410053186, 815203688271104236, 2488007171374780339, 8330805294023136182, -3517636027632871239, 3868845882950791705, 735411088686162206, -2994223186984088280, -6607675160595665991, -2201949612928716154, -3192490547890152354, 8133430253359871171, 879836038470343844, -7736046093151852400, 5545981780264421978, -4341467717169434611, -5127462363124695999, 2949881086671151985, -8391405146023982934, 5904919608898826122, -2227073708090958904, 689136294291637577, -2886932334773361591, 7952202709403391192, 3153775940809706391, 1874908383608426604, 1075117585599875089, 8867274469205928536, -4375744716795996716, -3533998611034387740, 6384747161645763267, 451782236881133152, 2341915282050883711, 1031445492266793189, -1394365009673627432, -5123594722994514063, -5460177156375603901, 4157621169839366172, -5358704860857059836, 5278983455575550295, 1274050648147683138, 3126713394381709974, -3307644194743865067, -7750736059176508847, -618096002207417309, -8506818772582631348, 1513319371717577726, 7740551717965270481, -4426574321230828472, 1937385030182228455, -998535532730322164, 3697332573265195207, -9076677223602850225, 4002292324271769976, 5826441122634846875, 8171498939270188961, -8467159702287736726, 6509544541400722383, -7717347117135555451, -7966763369056639081, 8269356800200102793, -2896708088772065419, 8682479654349602266, -4175209269749908112, 2584299138910217097, -809247191664492467, 8398436003572149079, 3497234959772076571, -6205111019897946062, -1430118280471530840, 8661533972821968073, -8521448203938029843, -8360557201354951019, -3776479469046687040, -4394471295216041117, 5306288845692612157, 3056006891388602475, -1748363847809204170, 5697136015891952455, 5937714342893416629, -125618599919776279, 8260765207333016632, 6942153985967134169, 7697115243769897813, -2426405549678443871, 2055486786313550400, 2152367939828244370, -6718730947869040596, -4560975327865951570, 6821423707534902647, 8515150359172239136, -4729466015399015585, -842607049527928892, -4838398262675770925, 5471628285150179649, -4149591267856718041, -4506731485344480343, -5865996187231969021, -8376045608232065130, 2982368080335673248, 5791272695574713343, 6606369933841153328, -5715125400035016302, -4808947571611627235, 1880707490936852098, -1433671810791193193, -8438873097249883119, 8228406513569697614, -2860593376095425957, -4155754509347768111, -3859757355177839761, 3832546257082914463, -4987104937747488276, -2603264890552670585, -8828514093751435698, -244923882753137677, -5280549520179345692, -5294022225150090425, 2704134173475073295, 5822900001597655197, 8915743126126508984, -8404578397956455589, -2636964413867594330, 7773972734886365061, -3244423074490429851, 7188777215744005112, 2509236846677099113, 5975628922833554335, -6360937178477621110, -4434221168072131868, 5416863093579763768, -958253168694109934, -2618459887441939475, 4895482184605604162, -6140446091522181329, -6919984628986616591, 31268152280566262, 1462535678717326966, -1464133389559375653, 3504905418444023481, -6524409997977030579, 3385869113430274743, 4822730259655900816, 8191773831837416114, 5292449586294865386, -6090171990601960569, 5153832228516847759, 2644170584592807951, 7802797983750583734, -6167195480042020562, 2093757426299538692, 8787672015189632402, -5494401635969733668, -3638906070417731210, -3088615259430462125, -6966718357264845743, -7894833928827722438, 4456646817892110605, 4567444684714913404, 5715585842987564469, 7446569658716171357, 5563506788226812109, 7176060177395009647, 8237429551137486195, -7387886710033300740, 5898509503108719612, 7854733214036206904, 7248713092388111684, -962917874807733914, -3817171139749095979, -3598576780670027118, 2936479662060868207, 2074946433639930335, -4055715327921608745, 1618673209120928304, -4215039625426580007, 6527651964660508742, 2525116720861666747, -5087213503398874522, 4441054782473057136, 5191737829272025909, -4204370355553960444, -5494437721858174402, 4282313307494495995, 6997224429970917165, -2786762703765019577, -4090774704165674185, 4830810034714339608, 8550110279617460779, -1432899949838825034, 5070163724535877362, -9044587224043010993, -331828969708912678, -4045743947221240460, -5026588202134245205, 7387394859196808259, 8323953104565172936, -5528106662582682818, -7712553295838005157, 496614122408246046, -6261122541863392878, -4574015954428015586, -2197905781724515181, 2844546404849359771, -5279032238356719102, 8993546499667354710, 6573002144407406380, -4535089777605057592, 42079127602989245, -4203267462921212169, -5840775966360235406, 140468831591233090, -2372192320096247829, -8778251851052291231, -336668325564777739, 7264370331718102095, 6254063536340397718, 6123236786011580167, 7556731230735356441, 6110809143575471493, -3432908134227590300, -5783426087718219583, 1401578931289679630, 4860236125773274406, -7848223246551919396, -3797441023746850885, 8889006900515515775, -7001892991386329751, -504276022409278947, 4496720948204362966, -4394079210323560761, -2230295723647198700, 3251715494317547084, -5846550559678048111, 10531091634037382, 1081507583933014234, -6906271136708865836, 9084709507417847718, -6919794797543057983, -9036635487855904140, 2168389059779605725, -5402687853119908315, -5969294402598625914, -3065725471442083375, -8436847784886139522, 4499580243570143897, 4593663111924881459, 6242341792114758752, -2587473680774110753, -6346963533779961058, 1621775449938399197, -5304623462700880605, 313072979211750861, -8918803086819606236, -2901670726481028569, -3682526246592261951, 7548351179785347782, -5784090040902781223, 30695701285740113, -8511392528887732853, -212343505903814563, -1706280662728187023, -3965454636478785037, -485561088993170719, -7950090587677592836, -5540338441211352471, 5885515753065214812, -5731917489646869491, 319516077428049744, -910417023177818004, 2190841222023097499, -4456395002828951917, 1255785325280306590, -2775252394013648963, 232640318517196044, -3219784824083473065, 1045529630686363187, 8411759974186310596, -1094615808186632023, -6553950934895304754, -408316319763781313, -3176841451238048633, 4075371581935362359, 187643253600159831, -837428644143947467, -5461650288315529644, -1526919325465841362, -2954442387366988787, -4406407738182325204, 1829805892604809544, -126573444704897734, 7828995678619994488, -3305668970380320127, -1948177510863190427, -6060115724564481252, -8021616758837321162, 6960572855714557416, 350591236226749052, 2894293684535105120, -8270156129969398283, -7188224773617208772, -5046346848348099259, 1762604501393566217, -3917600212583329023, -5140095807187043821, 2237243525513954619, -5491471575519032800, 4589515224526221922, -7539760866426895222, -7037068932864253220, 8211831817367956277, -1395763541646935624, 1607573943448927879, -1505636040087400087, -122124503865255803, 4634165469973816801, -3146952822801268000, -5052196907548347629, -1241659820199679608, -6699837385241890808, 2464994060646676914, -3951993366216514883, 611342031781514911, -3565512073329093591, -8091157542284683695, -6357009554415832646, -1429579645206812482, -2061030198880877944, 8613279126438435103, -4699418513816477309, -8899719653184083570, -9156751533214451673, -8369179409893466386, -2174045754289880327, 1599071487304328536, -2221165333317956202, -7121959024856558834, 4693904663870910343, 3492234935112039157, -7267189198736873061, 4672240566207031262, 7155931176632835961, 3948405042281303031, 9221170186590954197, 4168657775701795991, 7842926999448825295, -1149692690864390610, -5151108606920029561, -526708427937813567, 7894348920840823806, 2111915680842160057, -4447152505108858331, 8128811137535223140, -2781073544192744865, -2613927713168968822, -1690346388484587737, 6876548642199495650, 1611707069120701764, 6836918745913798671, -3094017886170210818, 6236828316978813663, 1081329020158948822, -1186213594634875190, 6793406906590299321, -8809740130797831503, 1786353697273303450, 6840136804880913516, 7145347421754118327, 4462054547281554765, -5318572558201569928, -3303535985347873063, 4733051702192248506, -7326070061278184447, 8369329347074427304, 7927959850489965817, 8320087556329764783, 2193354433274004612, -7544733638699219370, -7014045369693366256, 2151577797033403336, 8933006192851897008, -5318774782760541624, -7315196304228305879, -3904941717348361503, 9005033294424616904, 3320013229488173382, -7213842621665824653, -6254056522832732416, 2745408013397436716, -7386682146393396764, -2984509115122706340, -5352396307474345222, 3274018835385278013, -7381234373720372311, 1918193944134468019, 5717967813067618971, 5454410947887301155, -97618650599649709, 2210650427815000690, -3970692241953874241, -5109866680064885784, -7925697423337014550, -8697893115030792754, -6824932659698348984, -5847467963116463090, 8615256658994433156, -1053728463713085330, -160713768715038702, -101318550931045248, -4343188737347009626, -3248115887011897910, -6402395057505262095, 1096182353871742512, 6753465784923287540, -6804624562896151215, -5837125201228162439, 1382647607087451163, 4277582916411384127, 4693186594773602005, 7683280651461172993, 267398271524978993, -8596377037167186490, -5819935517185918536, 1124318629146026182, -5042061127034683796, 77826962194866506, -2250556505242295363, 5236257964961817301, -2333821165930122393, -5301093680979268405, -1710088636309852808, -667839113832134276, 3176520658028215542, 4801050178364021757, -1931748694707043520, 2827614563385783085, -5357590726796636164, -7591311695961610974, -4482998109962336100, 5492795781228717163, 7071585097437485537, -8256511212370819639, -1033296134836724593, 545588205163843946, 4841490740364333020, 1431879702182751667, 7158281449455708963, 604852328893362626, -4732035416621109281, -8696787544095760574, 3710000897335207322, -6140563005407990027, -1485868397268390778, -5634048999810817231, 9055394178316974534, -6992655989971692377, -8379075168281811025, -4177712831863022584, 8557193642835830463, 8727652050309847405, 9101228003095798318, 342276935468733528, 2125454917839578029, -6956409807454930954, -6799943977472325249, 6504154235262509479, -8539888869393801574, -5278083227692286949, -485507237784893599, -8938331974819664179, 6277782500598935942, -430858978908780091, 423142523572608281, -7912724908260959867, 7024984236779840316, 9072978020563012791, 5909231403474564040, -6092798456170918434, -5371271227702978749, 7600418820403680403, -7817342174481767324, -1208233401998943632, -8125475038879897011, 921842133729814488, -5930943891786904273, 750759186909135111, -8474550839788589774, -38695762770562065, -3748349612018398917, 3390897881502099515, 4060669248005398560, 3947749429396924301, 1523483650689135774, 723627418186446678, -2048471960624520038, 3259321852545717832, 809625161299679418, 4172940743163814057, -5255239287699671123, 1962512671155703256, -2146694811129990436, 8523918060091283685, 3909214533264395110, 9013974636356443615, -4965640563133462743, 336600851691663085, -4857027692605061116, -1042125884295943823, -8997397798520175525, 8011258720552881883, -7678416752233649575, 882133936434857313, -8532741990298826278, 1500822475052167126, -7722457738688111658, -2412923846393933191, -8786465162638587173, -8467916395796496473, 4112408740757711666, -7436389022937243099, 4121258431372096232, 2981774707645685279, 6192549078600663801, 3593326712426288406, -4937266943212939580, 4383598015781351388, 3500367667777625099, 4265445979313189893, -7722445123572687019, -8089758488900180117, -1183512982463252734, 5100791319698432343, -7864317229507846364, -8316242451608839418, 941076088028934556, -7375280543745950464, 4092634805284438777, -218945203279289748, 2642739844500348337, -4868857381080662703, 6947840098331849963, 1316005834143845078, 7112945344492306472, 3837608633821605687, 6612953847286164681, 7369116975816483029, 8203800728707370162, 745264072414834480, 3621821338405982457, 1787248701645224414, -8725499828321224652, 5759223232994807872, -6809468993514024728, -5106996447345046008, -1716125143705151606, 8920889292959459674, 1543487363196534528, -1422401727934476138, 5860260653618727672, -3906452349894177628, -4013308462155976136, 6372558017689448063, -781237135359215281, -5144054286467933144, 4282535083589780594, 2396107973253839261, 7365801472716975191, 7316827559627905107, 575866959481419500, 1909520162061294283, -8121086638470045648, 7666955699783671898, 6764014194441244928, -1317946468755875228, -7324167591413870675, -4954190638318189280, -7486335486492237873, 5332744067378770001, -323186611794603812, -3198678866318261509, 2068713640950114482, 3069353812861597238, -6467069238341544841, 9193181258034790848, -7348692611442398875, 8747396694909907999, 3662292962193528123, -6592283124932139589, -5440340727297120619, -2150708159681829289, 5154899013155084974, 300931462916846710, 267306129028303629, -6124402025857570481, -2380862100557754478, -8322782998950903402, 2203849044199742240, 7189962897065300181, -8196293205269926822, -6129722503598130442, -5717855583525242650, -7975313698385058299, -4394814386818113299, 8439719004326965297, -1853466123124981772, -8251721808467378698, 1332718692995289516, -3809748939990651052, 1711930554606737283, 6833741922071233626, -4746950157081688732, -5467758056403617718, -45553055250825220, 1156758914636241803, 5948193078099675785, -5962488332994723134, 7740792189484702658, -6863363731893569278, 1789243812814554167, -2471776969995239390, -6732014630508503900, 1844130485483900815, -200568493491779112, -436077017430881927, 3919223787046752168, 8021529304731123514, -8610751941045982309, -6256790461359078051, 1135953594877785960, -8649939117570278886, 512081662839873769, 281686122159629418, -5413101347049893607, -5127982072271321180, 8829245259139364789, -4992060981889383422, -7011762443625431546, -8956140975323702261, -2270955087903718521, -5175011738133382439, 657640191311126730, 4091251227200427343, -6376895040745033169, -8508555100273529430, -1796050355685702518, -7479868720901504471, -5693370525191439017, -3124825009832723230, 774528893311273039, 9094157038382657252, 8134250295867635801, -926102615299587563, 2769802780729386319, -1298828413415974516, -5875668061957414574, -8567687956511688734, 233394549322687598, -5895936930699961627, 1506589231432092810, 673454251841598024, -3864419293898015851, 8769089921809615643, -1256885168795612395, 3806027142330471271, 2628293344092275199, 865800620207458536, -1382327376923515606, 5206767734543250343, 756017486055271922, 4850772404988320878, 625442543634124181, -4369974630687344896, -3695576970140377038, -9168146533523609146, -7491269378073904551, 590139486766072594, -528353216840969278, 2439540592134774917, 4441888984435367795, -4462545664660870614, 747570505408124171, -4473619033861261733, -3324092939983153226, -3873689014480318940, 5182336296753675920, 7873764258453728801, -7707472075484813175, -3499584067824619030, -4363669762455143317, -999194618656210599, -5956207405289502258, 6088854365980969717, 884915936130810611, -3403372171423376387, 295363824065805385, 2286099348201328420, -1009241209628196304, 389365988436719678, 6366665261248409318, -3000897104692751348, -8801031179767441413, 3082863725940309590, 116072542729193868, 298868359587831624, 2632026018652181729, -1838284396540890431, 2082973454121984783, 8141066170324930012, -3279079705355382969, 474704650168943363, 6226317328107536369, 4825910540062605953, 5945263003255050778, 4504821081943907717, 4368580867379439264, -2818720317675853613, -4361067299114656414, 5008345756066421481, 8031101549735632146, -4148573144730325996, -6371332763708233005, -7239302400229886016, -2014395882539237498, -4557361942559936912, 4849766911099362137, -4114671162324339357, 4721514747018921326, -5805803238004189414, 7552698164482785756, -2922840131454980906, -1669191079305453102, -2531215509889715468, 5439356077135540601, -6343114842632758846, 2629942975255414574, 8286884461927020068, -7871488877533307791, 2862083316722898491, 7087387006969898480, 606711885235407217, 1693734614856232642, 217812560108109734, -5192024600182825344, -8478414091738455841, -3883421583894329607, -3369084816838402991, -5907051089772642916, 2483299219641833672, 4013666645553606665, -602318766852464546, -1077903559315031146, 770082142730356829, 3993899725793039928, -1229458295801142802, -7427564167209533319, 5744627202631096538, -4307622145389755129, -3235672070839353056, 1509870615572337394, 5155510312138930465, -347833235362661169, 2884411256285248683, -7487719631604369919, -1423783742145509702, 1173199934709978722, 1326657929459911373, -1585920494862835341, 3047872656379971433, -7641609213374676823, 2590250378075021977, -6472628529171104197, -6927900969806126702, 1747954734382651024, -6152543370889567078, 754358163957577809, -8351318808938792381, 326825291789732117, 5557618892685483060, -5849777647240212801, 5760837234435517008, -3843804261769104675, 7222778241614397433, 8864895893229875687, -8422456700173688630, 7273523800189460156, 492179030368810476, -2391480277429268284, 750834839931384475, 8278665001739515818, -4982482698709692101, 6475385556371811030, -7853095560331657104, -5848657393720385028, 4753865672451948336, 5512849629924609485, 5116641493098583451, 2815226095414166430, -8494854239959616675, 1782078395145329791, -5158653085431633500, -4657046649979588160, -111873088748600590, -1939359841773274182, -1393657311545381938, 3519568563701362857, 612692445395799226, 2590166644063810226, 2784744666920505647, -6483266022223056305, -3130119144388962152, -5935204981350286860, 3106025523692912745, 1881736877774620439, 8193576216936208758, -975280572085523442, -1541414951107285938, 9036817538786496170, 3121172592683938345, -2312993974902646780, 2918043619159089576, -5557011336181423922, -7232783249999228981, -6808261010130612619, -1024226312373348323, 390267185930883049, -433773452758753890, -1382188157026655723, 5552684775601009220, 7423416825822047242, 5921594515673978074, 1623161230277289138, -8635996496859796366, -8341198799787506612, 3684274307140230103, -3525979106511607914, -8150260350424184478, -8532800934409415517, -4825284869295363913, 6096824428633248996, -6934839419233550764, -3952569066269370263, 8829949667617343402, -1084935265649891560, 4888155050469376768, 7759001841431655476, -632465181939387254, 6823471927599469521, 5123512777902473827, 2294694572406052559, 7293379777634816638, -3954484737852232932, -2604163955193706319, 5302199851468118708, 7941997818865972731, -2944316522978960643, -114533323212471318, 5143101534135716130, 5503830823786557143, 4293836402769053661, 2443793899823007245, -8071123656826297050, 5347773595699610761, -8929372395762077376, -1585177283667380717, 2914214588282404436, 1504725386427480254, -1023403796257129121, -3815055356083271397, -1602177549551322433, -5218135579937239946, -8682427831710675231, 6708818568356231300, 1460617358915420542, 8419233541028365779, -2203822834983361938, -1931612997367313039, -7090136942616851123, 6159601980531272771, -2924982422417083368, 8625733557184675609, 455806705506487484, -4175122711639362245, 9183344182512950169, -9205269537311193262, 1180206716364896655, -5105075516890051179, -7015458375405687643, 7461146559025422960, 9217651932099188075, -2566722736742416809, 461436019440732543, -1600352722337213990, 3717854620828942012, -1025875194482804295, 2086135012014834367, -4704994046889660330, 5403589599609442036, 8946573654584661369, -5851412813291557272, -6114186204370949459, 8846115909828536457, 2516480883147209491, -4896484736258034480, -5906029717909633600, 6265789318254371860, 5901987565094300772, -5134657975554973139, 3754493426391366020, -1024841823846166871, -375837918500718563, 951082404374829235, 4968059706062408597, 551360151702058730, -897839361899024578, 8423280353089141563, -3067730695236925986, -3026133068307276139, -347944654449501921, -940860396850113768, -8480884751044675527, 809962066770662957, 5570805929138081955, -8536365026315448451, -1785006368005680537, -7539890532479137853, -1685625021416486080, -495084654998941506, -7199283939338655440, -6322523877276066390, -1924280359267481057, 3386811195096545218, 4340173080453476318, 6364546987214926734, -5539307997095767096, 4788361980582625532, 3661405512672161742, 4604494546812057752, 8370694602000383875, 5751823553944575080, -80732473868442682, -5068975410524126635, 1331105462545369438, 598972586912857703, 5802402952647492833, 7351347543334195739, 4629965513871560492, -4477065353550525982, 4293618117058312116, -6815898000427288159, 846705003859041619, 3186171236091860712, 4576063879771282323, -1518436754082451324, 7445306181558445577, -89593885154150055, 1614218553588509528, 818189339834939969, -6927299680575465663, 774958765598804809, 4184480648866898818, 709459366790959167, -4626091224208877513, 4645906675380526157, -6375925064930762469, -8825007961980179238, -7325276889309215544, -3027372533955547264, -1927195262342876859, -667359508884563370, -5415417686542208967, -5074170138512727390, -5893063287029739857, 2536729896110987882, -6272080088435360542, 8951868953695015582, 7657733672058879951, -3591774230959004874, -4098576984620957257, -7954501087248739387, 4278808274080018333, -4189589147412854906, 3828103683445085006, 9074562452350853598, 4059407993900385140, -5997554768177503082, -4636925930469952744, 5080884309044199817, 1665616659663714146, 7970275004708093640, -3515425865023497791, -6360788715005919459, 7681345674226937024, -1591754913526476693, 5278190882276400205, -8713532464964466486, -2461950230538602509, -2727563323241331517, -287882604865952548, -4998482287525601156, -1649942588236592323, -8334141899698381045, -7269267742813065958, -7465996355516162442, -8367728504152794794, -3459103132137325384, -1442198878028866612, 1345426515571720162, 957338003967035704, -2303816575022567080, 1208712301355977128, -8664278389558935051, 2585968968163383394, -7442461843337218072, -5180740110988816831, -8127690790899584447, 1997488320728279352, 4286740531879912040, 8274874197080548026, -4090772764543241414, -4179221920081656990, 1240571758916158831, 5831155452761097247, 4491312469535288412, -2214189452237794995, 7803610570916068138, -7512765815705388819, 4495939759546582316, 5919234342593647532, 2228366347447295854, 1200108966100871600, 5690160104032373911, 7608341886840415982, -3591711374593353612, -4138862006196247025, 3035941869393087219, 6865636581281765649, -1005446072170419096, 7567108779417572888, 7837517685344243063, -150544188122666775, 4151631287228471306, 4526501527929220747, 4226079951478001946, 1202356483128737661, -2739082484678542864, 9014315043463709342, 5433171088527550481, -675011903020846570, -2390268965994021074, -6400528939907285297, 6150357763280260129, -3017666321637668155, -8521816736249195554, 9201474057859856959, 7787251696844674920, 5459333673413767625, 1426920414208397410, -6429487967293043397, -5257783894738967233, -4284393545900291341, 4495860121982827476, -46895423979592336, 1296883116656120401, 5786280337555694459, -4666319220415667626, -3461086543927012398, -7466201980694565103, -1140264047004134064, 1788452594610260380, 2122482110897982437, -967561019628217055, -3085653831748559619, 8968205811622157951, 2548019779744265006, 3102188766046202682, -2248855211814195250, 1840990658819753196, -2774269581294831808, 7736515481348219928, 9018202947188024121, 665256893255762772, 5335232103275708859, -6147769550004725594, 3101116076125687634, 8997815652593752671, -991039277422269440, 7401069779267872655, -4265706085782567959, 3543936723168736598, -156641789358572940, -3787937288235758175, 8493545078498008813, -1246104920785264932, -8472321413018125528, 2488827515048085824, 8921536292508501002, 6738563439579654225, -200494991427853633, 1522770512287049875, 27967913645549852, 4522774353626005250, 1256679544378049641, 3405255849140860312, 7600273242978473381, 23575511431754301, -4672409883425447422, -1889984186866827497, 7296992012812133386, -4352477371763479278, -7044820154857814072, -12882897692051401, 3386197820290517830, 3757006914775894255, -1373125215551940593, -3417240353472760107, 4545004743879531724, -8452197784793964824, 4011326474920807008, 5525699117455073819, -3509792888780752488, -2678176774927838959, -7865242219225730860, 910114598761973557, 8729218338529719741, 2193454523997047762, -7768649955433311043, -59570399940716217, 5379873663944752595, 6958753457463799369, -6834288079848933917, 6017726407627186015, -5605007233816630810, -2133202062587357392, 6308144618868189880, 2410467815773232712, 3362613551949800205, -8338291721789685875, 6806446490174013722, 3617871453764871716, -8089650650345025368, 3404255987694622585, 2202469573791039532, 8917069822569678336, 3673380902626594473, 2006086046514863996, 124547239434762347, -6699895425011329664, -654980885606504113, 5693921821332933733, 6240465266111347301, -5116742469232271276, -7234779267632071457, 2252310932068953919, -4826663343385305810, -5138935515462782395, 4689492763043291304, 8050868810895092300, 962693406226418360, -4449695870065690339, -8090037331985041074, 3267588726403168015, -818610592836939733, 7132156710085247201, 8105498990887613566, 5292883430792218720, -8967672561525703489, -3060374723375263315, 6471936150048936450, 2172367360780066734, -1827028870686942816, 8184252284225033604, 12627831469234390, -7044530554455258102, 4876415032581521430, -3432957251328609060, 2824204544680857114, -6957079231530010699, 8190949275851966633, 6823755481099456679, -5876393354565011558, -53970842360164026, 3853564448249494149, -2972682942843227938, -2348220370393093578, -6728559394063198303, -428422563929318788, -1957417017065146130, -4576719719265522168, 8053316042690501278, 3310213367865201347, -4112824968274046397, 9181248053861701240, 5060815935519305174, 7032513404456678609, 177101472299265594, 9016686722828226635, -3992609091501539892, 3143581933428900547, 8128180822245920683, -2491463316461667999, 2330203500336038282, -5110918847855557615, -7491970226199025008, -4282477307488025506, -7781771132730950018, 110713113935466601, 5587248837089220356, 1255960974818918754, 8698965655282249228, 1142240120158884473, -5140871044598154651, 4242316612159154748, 3196934947642219001, 4142985180027536009, 2284684766136520859, 7816460186487161689, 5634691966513170702, 826997164884838579, 3671534939283556119, -844031886846999857, -1657668728488381095, 8601048722354210748, 1874055730116185503, -1085772457483182900, -2379097533368203544, -5332523084927766221, -5720827504987796707, -500660857826907077, 4907278821539746137, 1612608063453637092, 999864768533873242, 697789296164832681, 7245427910569743072, 1915079413800755968, -5131813309895086474, 8603554651152580284, 7004256889621974285, -8841849929405732104, 6266043455441667211, 4281933208146509394, 589626416538186847, -9110023954929925113, 6228236764400239770, -9097851054913215828, -5615926735483961873, -3816309666573504094, -6658235192728664890, -3489437372181895819, 6473906457060472482, -3937193548061835672, -3330600485619962728, -1144571853544535461, -3951778588605513599, 4357554689713104672, -4357398228254444450, 4271030972656924912, -3244690036564156625, 8156367274598166522, -3931250004521385041, -2911389906840280156, 2346135012548426971, 576993460546804143, 7755992082919279476, 5029888512237914138, 4169682438101948249, 3117687678292024900, 1389717223270727909, 2970221911793514584, 5050422048466027618, -9167054139502708775, -4740218251362552892, -3553211067591049806, 2581209126211751705, 6210955990385848062, 4029216681594316343, 4757775271400889122, -3976277041015824707, -4679861032853884697, 4796453839497959957, -6840455779837473580, -9128818347027882259, 903574838146320940, 1535682736054934768, 9203128279744177178, 7825465624445881366, 4729623009342607951, -8445010477853746168, 2779359132169173177, -7787638646415434082, 8630307791021786349, 7678698831967593045, 8924323017326743858, -7838933716625602894, -5363993515335776073, -4758848622545323715, 8165749912610324377, 3890814894726346511, -224522875182829871, -8504675575833067, -3136726367779306378, 180991206201918487, 1734914536475617191, -8026633819492051296, 585377375399552857, -4057686706863967291, -8792006564640315718, 5133949230062027221, 966490915736029700, -6856276960559046469, -3209050650471783039, 1997946309212720291, -2694844664018723792, 3040950680047421026, 664257877741578415, -1549762200498106454, -6557905093166641386, -8211748983442216867, 454695318135322844, 8098973132628461804, -5374114151749928624, 250875467351983359, 8620562681172610875, 7000258589713572687, -1664130791612438228, 7543643719287184369, -7801214284011511231, 7582532710654096211, -1305082352635692836, 467279306749204029, -4699785433075779598, 6850508823342814093, -6352453380479010935, 4359866734038908518, 5902667197491083031, 7491369333420527577, 368394965541002310, 6196741845111984131, 6216658244935918994, -2752843053616425955, -1148561512128619591, -6370429481649296125, -3234284230884801704, 4606987715801616028, -2718306068765596780, 6914318796004499819, -5955316532302996313, -296482199804435617, -1622236069462721855, 3501158302851784486, -572523975562305942, 7098284566686338285, 2060918062386840664, -1036304409717708042, 2037141206169921799, -9157679456705931543, 5921174993872226438, 2258376583953503577, 1380384900532319897, 5150863500031027649, 4491459583774403100, -8799333906252164078, -7436299637009861037, -8897605254734354534, -33573020224461376, -598118414029620053, -1036032722062113417, 3112711594643544824, -6413355946478926157, -4306076522754702353, 8624135096108717536, -1391526975651603912, -2546415741280369889, 248708739663316717, -4076449748166029713, -5531141162888212301, 9157140210067052907, -7152812193245389267, -8753601697609765711, -4020732460633455383, 7187437046903224286, -5055160253822539475, 5740244605347500833, -683871540398120655, 7898025549943690712, -1290240967206721704, -1743125062461769548, 6422263519987998930, 6839574880723343706, 5874745018847963481, 5228066245330305137, -977796713401175104, -2638646963020434633, 1031149875050997514, -5269507848698839757, -5537344948493036939, 7386325726715884105, 5044850892597083588, 396022206904815266, -4634210581742012041, 5016832958586948828, 3037314680921923855, -7714084903984746866, -1202569377564993821, -7401114300118604435, 7704534374415376277, 2156604305649768794, 2817748268707172365, 1053569788744816184, -4301201223533542269, -1599613411082562407, -4955672137856541273, -6243615707262612649, 1630246511914211374, 8743683296570668073, 1389080168999368683, -5264898573472638830, -5277151964454990744, 8278880058128573084, 5988807441639222597, 4766863221614704793, 5359524312828082327, 4466911741370325898, 4190251645054681054, 6844747556036323011, 2787084668216008586, -8842753752665197773, 7811869791363827446, 1947986319779991562, 2595675121194158456, 1928698732085290081, 3445100354674624654, 4698092473852175334, -8389240440663659562, 4037095003311488799, 3612199949675998165, 7475295921963138980, 643461511745356493, 2759701459090278254, 8039108320664086624, -4789457556455813773, -3046417913880116144, 4604279469796709200, 3091999775913123966, 2525308934924979894, 4788231701303947795, -8804124782913533732, -7810151231409358469, 3914487398198805513, 7405176402717547027, -4088208378638131629, 8185598939756282511, -4923220187259011432, -4205676137230147531, 1212255400888206837, -2732932430502287969, 6968133671527913135, 6774264180253840475, 5058260994715711882, -8130125491347080982, 1149156941701589453, -6010198640283435488, 1449319895462962850, -2281107511056733355, -466571451550039668, 6685982507464898108, -3312513759151219649])), 42), 42)),) -julia> @finch_code begin - Ct .= 0 - for k = parallel(_) - for i = _ - for j = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -quote - Ct_lvl = ((ex.bodies[1]).bodies[1]).tns.bind.lvl - Ct_lvl_2 = Ct_lvl.lvl - Ct_lvl_3 = Ct_lvl_2.lvl - Ct_lvl_2_locks = Ct_lvl_2.lvl.locks - Ct_lvl_4 = Ct_lvl_3.lvl - Ct_lvl_3_val = Ct_lvl_3.lvl.val - A_lvl = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl - A_lvl_ptr = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.ptr - A_lvl_tbl1 = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[1] - A_lvl_tbl2 = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[1]).tns.bind.lvl.tbl[2] - A_lvl_val = A_lvl.lvl.val - B_lvl = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl - B_lvl_ptr = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.ptr - B_lvl_tbl1 = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[1] - B_lvl_tbl2 = (((ex.bodies[1]).bodies[2]).body.body.body.rhs.args[2]).tns.bind.lvl.tbl[2] - B_lvl_val = B_lvl.lvl.val - A_lvl.shape[2] == B_lvl.shape[1] || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl.shape[2]) != $(B_lvl.shape[1]))")) - @warn "Performance Warning: non-concordant traversal of Ct[i, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - @warn "Performance Warning: non-concordant traversal of B[k, j] (hint: most arrays prefer column major or first index fast, run in fast mode to ignore this warning)" - result = nothing - pos_stop = A_lvl.shape[1] * B_lvl.shape[2] - Finch.resize_if_smaller!(Ct_lvl_2_locks, pos_stop) - @inbounds for idx = 1:pos_stop - Ct_lvl_2_locks[idx] = make_lock(eltype(Vector{Base.Threads.SpinLock})) - end - Finch.resize_if_smaller!(Ct_lvl_3_val, pos_stop) - Finch.fill_range!(Ct_lvl_3_val, 0, 1, pos_stop) - locksArray = Ct_lvl_2_locks - Ct_lvl_2_locks = (Finch).moveto(Ct_lvl_2_locks, CPU(Threads.nthreads())) - val = Ct_lvl_3_val - Ct_lvl_3_val = (Finch).moveto(Ct_lvl_3_val, CPU(Threads.nthreads())) - B_lvl_ptr = (Finch).moveto(B_lvl_ptr, CPU(Threads.nthreads())) - B_lvl_tbl1 = (Finch).moveto(B_lvl_tbl1, CPU(Threads.nthreads())) - B_lvl_tbl2 = (Finch).moveto(B_lvl_tbl2, CPU(Threads.nthreads())) - B_lvl_val = (Finch).moveto(B_lvl_val, CPU(Threads.nthreads())) - A_lvl_ptr = (Finch).moveto(A_lvl_ptr, CPU(Threads.nthreads())) - A_lvl_tbl1 = (Finch).moveto(A_lvl_tbl1, CPU(Threads.nthreads())) - A_lvl_tbl2 = (Finch).moveto(A_lvl_tbl2, CPU(Threads.nthreads())) - A_lvl_val = (Finch).moveto(A_lvl_val, CPU(Threads.nthreads())) - Threads.@threads for i_4 = 1:Threads.nthreads() - A_lvl_q = A_lvl_ptr[1] - A_lvl_q_stop = A_lvl_ptr[1 + 1] - if A_lvl_q < A_lvl_q_stop - A_lvl_i_stop = A_lvl_tbl2[A_lvl_q_stop - 1] - else - A_lvl_i_stop = 0 - end - phase_start_2 = max(1, 1 + fld(A_lvl.shape[2] * (i_4 + -1), Threads.nthreads())) - phase_stop_2 = min(A_lvl.shape[2], A_lvl_i_stop, fld(A_lvl.shape[2] * i_4, Threads.nthreads())) - if phase_stop_2 >= phase_start_2 - if A_lvl_tbl2[A_lvl_q] < phase_start_2 - A_lvl_q = Finch.scansearch(A_lvl_tbl2, phase_start_2, A_lvl_q, A_lvl_q_stop - 1) - end - while true - A_lvl_i = A_lvl_tbl2[A_lvl_q] - A_lvl_q_step = A_lvl_q - if A_lvl_tbl2[A_lvl_q] == A_lvl_i - A_lvl_q_step = Finch.scansearch(A_lvl_tbl2, A_lvl_i + 1, A_lvl_q, A_lvl_q_stop - 1) - end - if A_lvl_i < phase_stop_2 - A_lvl_q_3 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_3 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_3 = 0 - end - phase_stop_4 = min(A_lvl.shape[1], A_lvl_i_stop_3) - if phase_stop_4 >= 1 - if A_lvl_tbl1[A_lvl_q] < 1 - A_lvl_q_3 = Finch.scansearch(A_lvl_tbl1, 1, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_3 = A_lvl_tbl1[A_lvl_q_3] - if A_lvl_i_3 < phase_stop_4 - A_lvl_2_val = A_lvl_val[A_lvl_q_3] - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_stop_6 = min(B_lvl.shape[2], B_lvl_i_stop) - if phase_stop_6 >= 1 - if B_lvl_tbl2[B_lvl_q] < 1 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_6 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - Ct_lvl_2_q = (Ct_lvl_q - 1) * A_lvl.shape[1] + A_lvl_i_3 - Ct_lvl_3atomicArraysAcc = get_lock(CPU(Threads.nthreads()), Ct_lvl_2_locks, Ct_lvl_2_q, eltype(Vector{Base.Threads.SpinLock})) - aquire_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc) - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_8 = min(A_lvl_i, B_lvl_i_stop_2) - if phase_stop_8 >= A_lvl_i - if B_lvl_tbl1[B_lvl_q] < A_lvl_i - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, A_lvl_i, B_lvl_q, B_lvl_q_step - 1) - end - while true - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - if B_lvl_i_2 < phase_stop_8 - B_lvl_2_val = B_lvl_val[B_lvl_q_2] - Ct_lvl_3_val[Ct_lvl_2_q] = A_lvl_2_val * B_lvl_2_val + Ct_lvl_3_val[Ct_lvl_2_q] - B_lvl_q_2 += 1 - else - phase_stop_10 = min(B_lvl_i_2, phase_stop_8) - if B_lvl_i_2 == phase_stop_10 - B_lvl_2_val = B_lvl_val[B_lvl_q_2] - Ct_lvl_3_val[Ct_lvl_2_q] += A_lvl_2_val * B_lvl_2_val - B_lvl_q_2 += 1 - end - break - end - end - end - release_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc) - B_lvl_q = B_lvl_q_step - else - phase_stop_12 = min(B_lvl_i, phase_stop_6) - if B_lvl_i == phase_stop_12 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_12 - Ct_lvl_2_q_2 = (Ct_lvl_q - 1) * A_lvl.shape[1] + A_lvl_i_3 - Ct_lvl_3atomicArraysAcc_2 = get_lock(CPU(Threads.nthreads()), Ct_lvl_2_locks, Ct_lvl_2_q_2, eltype(Vector{Base.Threads.SpinLock})) - aquire_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_2) - B_lvl_q_2 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_2 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_2 = 0 - end - phase_stop_13 = min(A_lvl_i, B_lvl_i_stop_2) - if phase_stop_13 >= A_lvl_i - if B_lvl_tbl1[B_lvl_q] < A_lvl_i - B_lvl_q_2 = Finch.scansearch(B_lvl_tbl1, A_lvl_i, B_lvl_q, B_lvl_q_step - 1) - end - while true - B_lvl_i_2 = B_lvl_tbl1[B_lvl_q_2] - if B_lvl_i_2 < phase_stop_13 - B_lvl_2_val_2 = B_lvl_val[B_lvl_q_2] - Ct_lvl_3_val[Ct_lvl_2_q_2] = A_lvl_2_val * B_lvl_2_val_2 + Ct_lvl_3_val[Ct_lvl_2_q_2] - B_lvl_q_2 += 1 - else - phase_stop_15 = min(B_lvl_i_2, phase_stop_13) - if B_lvl_i_2 == phase_stop_15 - B_lvl_2_val_2 = B_lvl_val[B_lvl_q_2] - Ct_lvl_3_val[Ct_lvl_2_q_2] += A_lvl_2_val * B_lvl_2_val_2 - B_lvl_q_2 += 1 - end - break - end - end - end - release_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_2) - B_lvl_q = B_lvl_q_step - end - break - end - end - end - A_lvl_q_3 += 1 - else - phase_stop_18 = min(A_lvl_i_3, phase_stop_4) - if A_lvl_i_3 == phase_stop_18 - A_lvl_2_val = A_lvl_val[A_lvl_q_3] - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_stop_19 = min(B_lvl.shape[2], B_lvl_i_stop) - if phase_stop_19 >= 1 - if B_lvl_tbl2[B_lvl_q] < 1 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_19 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - Ct_lvl_2_q_3 = (Ct_lvl_q - 1) * A_lvl.shape[1] + phase_stop_18 - Ct_lvl_3atomicArraysAcc_3 = get_lock(CPU(Threads.nthreads()), Ct_lvl_2_locks, Ct_lvl_2_q_3, eltype(Vector{Base.Threads.SpinLock})) - aquire_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_3) - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_21 = min(A_lvl_i, B_lvl_i_stop_3) - if phase_stop_21 >= A_lvl_i - if B_lvl_tbl1[B_lvl_q] < A_lvl_i - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, A_lvl_i, B_lvl_q, B_lvl_q_step - 1) - end - while true - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - if B_lvl_i_3 < phase_stop_21 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] - Ct_lvl_3_val[Ct_lvl_2_q_3] = A_lvl_2_val * B_lvl_2_val_3 + Ct_lvl_3_val[Ct_lvl_2_q_3] - B_lvl_q_3 += 1 - else - phase_stop_23 = min(B_lvl_i_3, phase_stop_21) - if B_lvl_i_3 == phase_stop_23 - B_lvl_2_val_3 = B_lvl_val[B_lvl_q_3] - Ct_lvl_3_val[Ct_lvl_2_q_3] += A_lvl_2_val * B_lvl_2_val_3 - B_lvl_q_3 += 1 - end - break - end - end - end - release_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_3) - B_lvl_q = B_lvl_q_step - else - phase_stop_25 = min(B_lvl_i, phase_stop_19) - if B_lvl_i == phase_stop_25 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_25 - Ct_lvl_2_q_4 = (Ct_lvl_q - 1) * A_lvl.shape[1] + phase_stop_18 - Ct_lvl_3atomicArraysAcc_4 = get_lock(CPU(Threads.nthreads()), Ct_lvl_2_locks, Ct_lvl_2_q_4, eltype(Vector{Base.Threads.SpinLock})) - aquire_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_4) - B_lvl_q_3 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_3 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_3 = 0 - end - phase_stop_26 = min(A_lvl_i, B_lvl_i_stop_3) - if phase_stop_26 >= A_lvl_i - if B_lvl_tbl1[B_lvl_q] < A_lvl_i - B_lvl_q_3 = Finch.scansearch(B_lvl_tbl1, A_lvl_i, B_lvl_q, B_lvl_q_step - 1) - end - while true - B_lvl_i_3 = B_lvl_tbl1[B_lvl_q_3] - if B_lvl_i_3 < phase_stop_26 - B_lvl_2_val_4 = B_lvl_val[B_lvl_q_3] - Ct_lvl_3_val[Ct_lvl_2_q_4] = A_lvl_2_val * B_lvl_2_val_4 + Ct_lvl_3_val[Ct_lvl_2_q_4] - B_lvl_q_3 += 1 - else - phase_stop_28 = min(B_lvl_i_3, phase_stop_26) - if B_lvl_i_3 == phase_stop_28 - B_lvl_2_val_4 = B_lvl_val[B_lvl_q_3] - Ct_lvl_3_val[Ct_lvl_2_q_4] += A_lvl_2_val * B_lvl_2_val_4 - B_lvl_q_3 += 1 - end - break - end - end - end - release_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_4) - B_lvl_q = B_lvl_q_step - end - break - end - end - end - A_lvl_q_3 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - else - phase_stop_32 = min(A_lvl_i, phase_stop_2) - if A_lvl_i == phase_stop_32 - A_lvl_q_3 = A_lvl_q - if A_lvl_q < A_lvl_q_step - A_lvl_i_stop_3 = A_lvl_tbl1[A_lvl_q_step - 1] - else - A_lvl_i_stop_3 = 0 - end - phase_stop_33 = min(A_lvl.shape[1], A_lvl_i_stop_3) - if phase_stop_33 >= 1 - if A_lvl_tbl1[A_lvl_q] < 1 - A_lvl_q_3 = Finch.scansearch(A_lvl_tbl1, 1, A_lvl_q, A_lvl_q_step - 1) - end - while true - A_lvl_i_3 = A_lvl_tbl1[A_lvl_q_3] - if A_lvl_i_3 < phase_stop_33 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_3] - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_stop_35 = min(B_lvl.shape[2], B_lvl_i_stop) - if phase_stop_35 >= 1 - if B_lvl_tbl2[B_lvl_q] < 1 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_35 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - Ct_lvl_2_q_5 = (Ct_lvl_q - 1) * A_lvl.shape[1] + A_lvl_i_3 - Ct_lvl_3atomicArraysAcc_5 = get_lock(CPU(Threads.nthreads()), Ct_lvl_2_locks, Ct_lvl_2_q_5, eltype(Vector{Base.Threads.SpinLock})) - aquire_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_5) - B_lvl_q_4 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_4 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_4 = 0 - end - phase_stop_37 = min(phase_stop_32, B_lvl_i_stop_4) - if phase_stop_37 >= phase_stop_32 - if B_lvl_tbl1[B_lvl_q] < phase_stop_32 - B_lvl_q_4 = Finch.scansearch(B_lvl_tbl1, phase_stop_32, B_lvl_q, B_lvl_q_step - 1) - end - while true - B_lvl_i_4 = B_lvl_tbl1[B_lvl_q_4] - if B_lvl_i_4 < phase_stop_37 - B_lvl_2_val_5 = B_lvl_val[B_lvl_q_4] - Ct_lvl_3_val[Ct_lvl_2_q_5] = A_lvl_2_val_2 * B_lvl_2_val_5 + Ct_lvl_3_val[Ct_lvl_2_q_5] - B_lvl_q_4 += 1 - else - phase_stop_39 = min(B_lvl_i_4, phase_stop_37) - if B_lvl_i_4 == phase_stop_39 - B_lvl_2_val_5 = B_lvl_val[B_lvl_q_4] - Ct_lvl_3_val[Ct_lvl_2_q_5] += A_lvl_2_val_2 * B_lvl_2_val_5 - B_lvl_q_4 += 1 - end - break - end - end - end - release_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_5) - B_lvl_q = B_lvl_q_step - else - phase_stop_41 = min(B_lvl_i, phase_stop_35) - if B_lvl_i == phase_stop_41 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_41 - Ct_lvl_2_q_6 = (Ct_lvl_q - 1) * A_lvl.shape[1] + A_lvl_i_3 - Ct_lvl_3atomicArraysAcc_6 = get_lock(CPU(Threads.nthreads()), Ct_lvl_2_locks, Ct_lvl_2_q_6, eltype(Vector{Base.Threads.SpinLock})) - aquire_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_6) - B_lvl_q_4 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_4 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_4 = 0 - end - phase_stop_42 = min(phase_stop_32, B_lvl_i_stop_4) - if phase_stop_42 >= phase_stop_32 - if B_lvl_tbl1[B_lvl_q] < phase_stop_32 - B_lvl_q_4 = Finch.scansearch(B_lvl_tbl1, phase_stop_32, B_lvl_q, B_lvl_q_step - 1) - end - while true - B_lvl_i_4 = B_lvl_tbl1[B_lvl_q_4] - if B_lvl_i_4 < phase_stop_42 - B_lvl_2_val_6 = B_lvl_val[B_lvl_q_4] - Ct_lvl_3_val[Ct_lvl_2_q_6] = A_lvl_2_val_2 * B_lvl_2_val_6 + Ct_lvl_3_val[Ct_lvl_2_q_6] - B_lvl_q_4 += 1 - else - phase_stop_44 = min(B_lvl_i_4, phase_stop_42) - if B_lvl_i_4 == phase_stop_44 - B_lvl_2_val_6 = B_lvl_val[B_lvl_q_4] - Ct_lvl_3_val[Ct_lvl_2_q_6] += A_lvl_2_val_2 * B_lvl_2_val_6 - B_lvl_q_4 += 1 - end - break - end - end - end - release_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_6) - B_lvl_q = B_lvl_q_step - end - break - end - end - end - A_lvl_q_3 += 1 - else - phase_stop_47 = min(A_lvl_i_3, phase_stop_33) - if A_lvl_i_3 == phase_stop_47 - A_lvl_2_val_2 = A_lvl_val[A_lvl_q_3] - B_lvl_q = B_lvl_ptr[1] - B_lvl_q_stop = B_lvl_ptr[1 + 1] - if B_lvl_q < B_lvl_q_stop - B_lvl_i_stop = B_lvl_tbl2[B_lvl_q_stop - 1] - else - B_lvl_i_stop = 0 - end - phase_stop_48 = min(B_lvl.shape[2], B_lvl_i_stop) - if phase_stop_48 >= 1 - if B_lvl_tbl2[B_lvl_q] < 1 - B_lvl_q = Finch.scansearch(B_lvl_tbl2, 1, B_lvl_q, B_lvl_q_stop - 1) - end - while true - B_lvl_i = B_lvl_tbl2[B_lvl_q] - B_lvl_q_step = B_lvl_q - if B_lvl_tbl2[B_lvl_q] == B_lvl_i - B_lvl_q_step = Finch.scansearch(B_lvl_tbl2, B_lvl_i + 1, B_lvl_q, B_lvl_q_stop - 1) - end - if B_lvl_i < phase_stop_48 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + B_lvl_i - Ct_lvl_2_q_7 = (Ct_lvl_q - 1) * A_lvl.shape[1] + phase_stop_47 - Ct_lvl_3atomicArraysAcc_7 = get_lock(CPU(Threads.nthreads()), Ct_lvl_2_locks, Ct_lvl_2_q_7, eltype(Vector{Base.Threads.SpinLock})) - aquire_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_7) - B_lvl_q_5 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_5 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_5 = 0 - end - phase_stop_50 = min(phase_stop_32, B_lvl_i_stop_5) - if phase_stop_50 >= phase_stop_32 - if B_lvl_tbl1[B_lvl_q] < phase_stop_32 - B_lvl_q_5 = Finch.scansearch(B_lvl_tbl1, phase_stop_32, B_lvl_q, B_lvl_q_step - 1) - end - while true - B_lvl_i_5 = B_lvl_tbl1[B_lvl_q_5] - if B_lvl_i_5 < phase_stop_50 - B_lvl_2_val_7 = B_lvl_val[B_lvl_q_5] - Ct_lvl_3_val[Ct_lvl_2_q_7] = A_lvl_2_val_2 * B_lvl_2_val_7 + Ct_lvl_3_val[Ct_lvl_2_q_7] - B_lvl_q_5 += 1 - else - phase_stop_52 = min(B_lvl_i_5, phase_stop_50) - if B_lvl_i_5 == phase_stop_52 - B_lvl_2_val_7 = B_lvl_val[B_lvl_q_5] - Ct_lvl_3_val[Ct_lvl_2_q_7] += A_lvl_2_val_2 * B_lvl_2_val_7 - B_lvl_q_5 += 1 - end - break - end - end - end - release_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_7) - B_lvl_q = B_lvl_q_step - else - phase_stop_54 = min(B_lvl_i, phase_stop_48) - if B_lvl_i == phase_stop_54 - Ct_lvl_q = (1 - 1) * B_lvl.shape[2] + phase_stop_54 - Ct_lvl_2_q_8 = (Ct_lvl_q - 1) * A_lvl.shape[1] + phase_stop_47 - Ct_lvl_3atomicArraysAcc_8 = get_lock(CPU(Threads.nthreads()), Ct_lvl_2_locks, Ct_lvl_2_q_8, eltype(Vector{Base.Threads.SpinLock})) - aquire_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_8) - B_lvl_q_5 = B_lvl_q - if B_lvl_q < B_lvl_q_step - B_lvl_i_stop_5 = B_lvl_tbl1[B_lvl_q_step - 1] - else - B_lvl_i_stop_5 = 0 - end - phase_stop_55 = min(phase_stop_32, B_lvl_i_stop_5) - if phase_stop_55 >= phase_stop_32 - if B_lvl_tbl1[B_lvl_q] < phase_stop_32 - B_lvl_q_5 = Finch.scansearch(B_lvl_tbl1, phase_stop_32, B_lvl_q, B_lvl_q_step - 1) - end - while true - B_lvl_i_5 = B_lvl_tbl1[B_lvl_q_5] - if B_lvl_i_5 < phase_stop_55 - B_lvl_2_val_8 = B_lvl_val[B_lvl_q_5] - Ct_lvl_3_val[Ct_lvl_2_q_8] = A_lvl_2_val_2 * B_lvl_2_val_8 + Ct_lvl_3_val[Ct_lvl_2_q_8] - B_lvl_q_5 += 1 - else - phase_stop_57 = min(B_lvl_i_5, phase_stop_55) - if B_lvl_i_5 == phase_stop_57 - B_lvl_2_val_8 = B_lvl_val[B_lvl_q_5] - Ct_lvl_3_val[Ct_lvl_2_q_8] += A_lvl_2_val_2 * B_lvl_2_val_8 - B_lvl_q_5 += 1 - end - break - end - end - end - release_lock!(CPU(Threads.nthreads()), Ct_lvl_3atomicArraysAcc_8) - B_lvl_q = B_lvl_q_step - end - break - end - end - end - A_lvl_q_3 += 1 - end - break - end - end - end - A_lvl_q = A_lvl_q_step - end - break - end - end - end - end - resize!(locksArray, A_lvl.shape[1] * B_lvl.shape[2]) - resize!(val, A_lvl.shape[1] * B_lvl.shape[2]) - result = (Ct = Tensor((DenseLevel){Int64}((DenseLevel){Int64}((AtomicLevel){Vector{Base.Threads.SpinLock}, ElementLevel{0, Int64, Int64, Vector{Int64}}}(Ct_lvl_4, locksArray), A_lvl.shape[1]), B_lvl.shape[2])),) - result -end -julia> @finch begin - Ct .= 0 - for k = parallel(_) - for i = _ - for j = _ - Ct[i, j] += A[i, k] * B[k, j] - end - end - end - end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Atomic([Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0), Base.Threads.SpinLock(0)], Element{0, Int64, Int64}([8294554698039956467, -2279941192816175426, 3589307988553427907, -7593990112949036348, -9044133075237715381, 5814921716775220834, 1984686205080786680, 5559296861321236943, -5768354944895451207, 1120323265964696336, -3846116119587858228, -262342919401545940, -2049971580522475001, -2211763620736824942, 5666645008031514269, -1327364040915398565, -2194547984037078177, -5969354033529683723, -1260706530325114884, -7513623401632354996, 8868380549151888102, 7623177491685914752, 2801115262965917591, 3283210314769761053, -4716892793561655300, -2288052069362467524, 6647432114356861726, -1808660770598102607, 3477321511136071709, -2083291106471311307, 1931983037678998792, -1543784239066540918, -8896434483004799611, 8304914340100503713, -1749149773188757073, -1368462329312938935, 8842032079864795141, -1273332777544346279, -8741471974913376683, -3678031711239952825, -6700798423721258528, -7371585820169692141, -8065605016636076675, -7672636988039838930, 8052062968846911257, -5715548372384509649, -8341867563147112022, -9154711993198778743, 2933732122345518678, -5605994647490154907, -2133692759629638928, -6818992290088315340, 992118422339879211, 796660569155974881, 5491138161645048288, 5593431438176231967, 4196491676969776537, -783602413421165030, -2343162328237456754, -2347667087918498914, -4136673636756609937, -6196315042773250978, -1680644584068137242, 629124823636772517, -8974230699676449460, -2521981898387533604, 102158584490734227, -476947301419400062, -3885248478543714173, 3838966950421206534, 4298966649781035557, -3553229965089205098, -2069070993183081526, 4114579515408933624, -2282975407414895203, -4010817463667493000, 2272132884598706492, -6575563091909465195, -2658398725032414884, -3364682623876156767, -7778027708949105160, -3298325222861527795, -7334123207334007089, -5452139065710288443, 1885820391848317025, -3168683330050685268, -4615465087923795216, -7125623111667442778, -136085712019972095, -4633575576292637172, -4443232576713801656, -8076496271736850097, -2991169373749732480, 3567928539132559690, -1520874962119149489, -6672722304684961988, -1342044052416051911, -4959055271284697717, 1765100301178932779, -5510766831019094681, 8762504261652914538, -1026280257437091520, -7740612711282779002, -75651066155007076, 1175917286708115796, 215650005689746159, 1074059239977842503, -3135540340322246212, 4487796223479468161, 117813528700745474, -8324379894325358325, 1757180236983103362, 6655766257549366197, -3777535527257508441, 114580098802359632, -6320944068319392490, 533238602716561034, -6831552431332570448, -8190494930775264353, 191156998276919113, -3859369208365892857, 2500343402209988606, 2031188468273843282, 1065023235612899838, -6585643968775483825, 2853372987952842246, -3176092365888706331, -4004089601980614520, 1294599066541705050, 7455638925896823104, -734522458797731096, -8477619822868967933, -7827075641126318775, 1658199605681625762, -900396499488497236, 3608798237042314711, 8142435028468432630, 8181648831838397358, 3699002468877240631, -7851053360339404453, -7285699680868015036, -8914039785447533926, 1660245175449796023, 5544688554457903268, 743884732810431664, -5193009945833911851, 4169874342607881648, -3280411169991606487, 134315025965011425, -3414457411597068721, -6053778541607745348, 4743624378245093802, 817546885620956986, 3060126976419944263, 6596746720844310770, -32670440557642426, 7773291265218164464, -2747139949208106021, 4787690020561098504, 6611779436841384171, 4004924413349104377, 4057890700771820801, 1547947635322075762, -4041605863834384811, 8083854711850129991, -3032246449125321576, -6935676039559832962, -7262552710344937689, 6638561143303018670, -2431956156442432310, -6852883101006975241, 8141551686256635351, -2793114698018293480, 2901351249282526336, -8590405837522545098, 1284768462277737195, -6960561302066832858, 2470921323386149221, -1293209798633367855, 4852470840893629285, 2821167647780664441, 6366973705476444977, 4226801472565080501, -9103879725305025059, 8176472583251538243, 8387452082259514660, -2736021226548995081, 6019809268550026078, 5843683665502852812, 3078561957169121216, -553913864285782311, -8396720008997848599, -7916910578423142081, 2474282350293529219, 3763454144318303849, -3143306749835985712, -608242219460478402, -989972312085529006, 7643836624016829132, -7758235694518870862, -8743465346336514685, 2719718679164977811, -5344475697054329836, -5382875460926617461, -2287520955119718235, 5089895164004774048, -7207379975876718081, -8499315421799027837, 5382094811866924412, 94858159835758548, 4714444885585399249, 2419486042431974568, 1178451709781345389, -3244272477430105521, -1047784102008514673, -5908281368045588844, -8819487786822738794, 7375554233921962988, 7117586722854956039, 7635043189795304941, 3647751477487297040, 8888119265583541163, 438773896985192780, 7323235085077979835, 6402386422456545962, 9119746976188580479, -339981380232968078, 7862094120031162190, 1928350441872024538, 5861817903497048633, 8789248006831377358, -3662518157867280773, 5246723151818488323, -4712120449265687255, 8916170145161342841, 6429160948844906067, -7340558410143580649, -2878118280097051778, -4708137013670504139, -6737935883573392882, -3286809900179080876, -8542648342686245264, 1705683826679995175, 1874888461382203165, -43385098015304382, -3541512226970701965, 7308519021589705414, 4657092760823067875, -8034153054673763206, 2270007119073554112, 8805059194979907611, -6506227936394196777, 6569593093608871545, -5455263039233081924, -4894608299203557538, 4907020166765653515, -3651987278181836016, 5370722016210637787, 1096862329635763807, -7546832585001031185, 1772274834989744506, -2797059347358140582, -3473640875567042896, 7692486032135901986, -8656979047320341319, 3769023647569885435, 982341113303111384, -3673687436306074461, -81446334802288730, 6604241365987180538, -8369021354568862340, -4372506992592134813, 4065316681210752413, 1563045780770436755, 7830981927612419729, -5732307671635230159, 7227897221307801531, 2010992442160439666, -1122916357391281896, 5028338562960665496, -4666933955791003754, -1636404242550753810, 1914395787243909596, 3867717114584627246, -5161185302939881190, 7944328755863357247, 3609664606705607460, -5315882602018566936, -5761904302177895735, -6809130468709054173, -4700880319524423632, -5613769913787470034, 5210287635986052957, -5731191730373361431, -9164866423631936276, -926712920787083296, 1908405553760652597, -2652471932491244161, -3697650070410053186, 815203688271104236, 2488007171374780339, 8330805294023136182, -3517636027632871239, 3868845882950791705, 735411088686162206, -2994223186984088280, -6607675160595665991, -2201949612928716154, -3192490547890152354, 8133430253359871171, 879836038470343844, -7736046093151852400, 5545981780264421978, -4341467717169434611, -5127462363124695999, 2949881086671151985, -8391405146023982934, 5904919608898826122, -2227073708090958904, 689136294291637577, -2886932334773361591, 7952202709403391192, 3153775940809706391, 1874908383608426604, 1075117585599875089, 8867274469205928536, -4375744716795996716, -3533998611034387740, 6384747161645763267, 451782236881133152, 2341915282050883711, 1031445492266793189, -1394365009673627432, -5123594722994514063, -5460177156375603901, 4157621169839366172, -5358704860857059836, 5278983455575550295, 1274050648147683138, 3126713394381709974, -3307644194743865067, -7750736059176508847, -618096002207417309, -8506818772582631348, 1513319371717577726, 7740551717965270481, -4426574321230828472, 1937385030182228455, -998535532730322164, 3697332573265195207, -9076677223602850225, 4002292324271769976, 5826441122634846875, 8171498939270188961, -8467159702287736726, 6509544541400722383, -7717347117135555451, -7966763369056639081, 8269356800200102793, -2896708088772065419, 8682479654349602266, -4175209269749908112, 2584299138910217097, -809247191664492467, 8398436003572149079, 3497234959772076571, -6205111019897946062, -1430118280471530840, 8661533972821968073, -8521448203938029843, -8360557201354951019, -3776479469046687040, -4394471295216041117, 5306288845692612157, 3056006891388602475, -1748363847809204170, 5697136015891952455, 5937714342893416629, -125618599919776279, 8260765207333016632, 6942153985967134169, 7697115243769897813, -2426405549678443871, 2055486786313550400, 2152367939828244370, -6718730947869040596, -4560975327865951570, 6821423707534902647, 8515150359172239136, -4729466015399015585, -842607049527928892, -4838398262675770925, 5471628285150179649, -4149591267856718041, -4506731485344480343, -5865996187231969021, -8376045608232065130, 2982368080335673248, 5791272695574713343, 6606369933841153328, -5715125400035016302, -4808947571611627235, 1880707490936852098, -1433671810791193193, -8438873097249883119, 8228406513569697614, -2860593376095425957, -4155754509347768111, -3859757355177839761, 3832546257082914463, -4987104937747488276, -2603264890552670585, -8828514093751435698, -244923882753137677, -5280549520179345692, -5294022225150090425, 2704134173475073295, 5822900001597655197, 8915743126126508984, -8404578397956455589, -2636964413867594330, 7773972734886365061, -3244423074490429851, 7188777215744005112, 2509236846677099113, 5975628922833554335, -6360937178477621110, -4434221168072131868, 5416863093579763768, -958253168694109934, -2618459887441939475, 4895482184605604162, -6140446091522181329, -6919984628986616591, 31268152280566262, 1462535678717326966, -1464133389559375653, 3504905418444023481, -6524409997977030579, 3385869113430274743, 4822730259655900816, 8191773831837416114, 5292449586294865386, -6090171990601960569, 5153832228516847759, 2644170584592807951, 7802797983750583734, -6167195480042020562, 2093757426299538692, 8787672015189632402, -5494401635969733668, -3638906070417731210, -3088615259430462125, -6966718357264845743, -7894833928827722438, 4456646817892110605, 4567444684714913404, 5715585842987564469, 7446569658716171357, 5563506788226812109, 7176060177395009647, 8237429551137486195, -7387886710033300740, 5898509503108719612, 7854733214036206904, 7248713092388111684, -962917874807733914, -3817171139749095979, -3598576780670027118, 2936479662060868207, 2074946433639930335, -4055715327921608745, 1618673209120928304, -4215039625426580007, 6527651964660508742, 2525116720861666747, -5087213503398874522, 4441054782473057136, 5191737829272025909, -4204370355553960444, -5494437721858174402, 4282313307494495995, 6997224429970917165, -2786762703765019577, -4090774704165674185, 4830810034714339608, 8550110279617460779, -1432899949838825034, 5070163724535877362, -9044587224043010993, -331828969708912678, -4045743947221240460, -5026588202134245205, 7387394859196808259, 8323953104565172936, -5528106662582682818, -7712553295838005157, 496614122408246046, -6261122541863392878, -4574015954428015586, -2197905781724515181, 2844546404849359771, -5279032238356719102, 8993546499667354710, 6573002144407406380, -4535089777605057592, 42079127602989245, -4203267462921212169, -5840775966360235406, 140468831591233090, -2372192320096247829, -8778251851052291231, -336668325564777739, 7264370331718102095, 6254063536340397718, 6123236786011580167, 7556731230735356441, 6110809143575471493, -3432908134227590300, -5783426087718219583, 1401578931289679630, 4860236125773274406, -7848223246551919396, -3797441023746850885, 8889006900515515775, -7001892991386329751, -504276022409278947, 4496720948204362966, -4394079210323560761, -2230295723647198700, 3251715494317547084, -5846550559678048111, 10531091634037382, 1081507583933014234, -6906271136708865836, 9084709507417847718, -6919794797543057983, -9036635487855904140, 2168389059779605725, -5402687853119908315, -5969294402598625914, -3065725471442083375, -8436847784886139522, 4499580243570143897, 4593663111924881459, 6242341792114758752, -2587473680774110753, -6346963533779961058, 1621775449938399197, -5304623462700880605, 313072979211750861, -8918803086819606236, -2901670726481028569, -3682526246592261951, 7548351179785347782, -5784090040902781223, 30695701285740113, -8511392528887732853, -212343505903814563, -1706280662728187023, -3965454636478785037, -485561088993170719, -7950090587677592836, -5540338441211352471, 5885515753065214812, -5731917489646869491, 319516077428049744, -910417023177818004, 2190841222023097499, -4456395002828951917, 1255785325280306590, -2775252394013648963, 232640318517196044, -3219784824083473065, 1045529630686363187, 8411759974186310596, -1094615808186632023, -6553950934895304754, -408316319763781313, -3176841451238048633, 4075371581935362359, 187643253600159831, -837428644143947467, -5461650288315529644, -1526919325465841362, -2954442387366988787, -4406407738182325204, 1829805892604809544, -126573444704897734, 7828995678619994488, -3305668970380320127, -1948177510863190427, -6060115724564481252, -8021616758837321162, 6960572855714557416, 350591236226749052, 2894293684535105120, -8270156129969398283, -7188224773617208772, -5046346848348099259, 1762604501393566217, -3917600212583329023, -5140095807187043821, 2237243525513954619, -5491471575519032800, 4589515224526221922, -7539760866426895222, -7037068932864253220, 8211831817367956277, -1395763541646935624, 1607573943448927879, -1505636040087400087, -122124503865255803, 4634165469973816801, -3146952822801268000, -5052196907548347629, -1241659820199679608, -6699837385241890808, 2464994060646676914, -3951993366216514883, 611342031781514911, -3565512073329093591, -8091157542284683695, -6357009554415832646, -1429579645206812482, -2061030198880877944, 8613279126438435103, -4699418513816477309, -8899719653184083570, -9156751533214451673, -8369179409893466386, -2174045754289880327, 1599071487304328536, -2221165333317956202, -7121959024856558834, 4693904663870910343, 3492234935112039157, -7267189198736873061, 4672240566207031262, 7155931176632835961, 3948405042281303031, 9221170186590954197, 4168657775701795991, 7842926999448825295, -1149692690864390610, -5151108606920029561, -526708427937813567, 7894348920840823806, 2111915680842160057, -4447152505108858331, 8128811137535223140, -2781073544192744865, -2613927713168968822, -1690346388484587737, 6876548642199495650, 1611707069120701764, 6836918745913798671, -3094017886170210818, 6236828316978813663, 1081329020158948822, -1186213594634875190, 6793406906590299321, -8809740130797831503, 1786353697273303450, 6840136804880913516, 7145347421754118327, 4462054547281554765, -5318572558201569928, -3303535985347873063, 4733051702192248506, -7326070061278184447, 8369329347074427304, 7927959850489965817, 8320087556329764783, 2193354433274004612, -7544733638699219370, -7014045369693366256, 2151577797033403336, 8933006192851897008, -5318774782760541624, -7315196304228305879, -3904941717348361503, 9005033294424616904, 3320013229488173382, -7213842621665824653, -6254056522832732416, 2745408013397436716, -7386682146393396764, -2984509115122706340, -5352396307474345222, 3274018835385278013, -7381234373720372311, 1918193944134468019, 5717967813067618971, 5454410947887301155, -97618650599649709, 2210650427815000690, -3970692241953874241, -5109866680064885784, -7925697423337014550, -8697893115030792754, -6824932659698348984, -5847467963116463090, 8615256658994433156, -1053728463713085330, -160713768715038702, -101318550931045248, -4343188737347009626, -3248115887011897910, -6402395057505262095, 1096182353871742512, 6753465784923287540, -6804624562896151215, -5837125201228162439, 1382647607087451163, 4277582916411384127, 4693186594773602005, 7683280651461172993, 267398271524978993, -8596377037167186490, -5819935517185918536, 1124318629146026182, -5042061127034683796, 77826962194866506, -2250556505242295363, 5236257964961817301, -2333821165930122393, -5301093680979268405, -1710088636309852808, -667839113832134276, 3176520658028215542, 4801050178364021757, -1931748694707043520, 2827614563385783085, -5357590726796636164, -7591311695961610974, -4482998109962336100, 5492795781228717163, 7071585097437485537, -8256511212370819639, -1033296134836724593, 545588205163843946, 4841490740364333020, 1431879702182751667, 7158281449455708963, 604852328893362626, -4732035416621109281, -8696787544095760574, 3710000897335207322, -6140563005407990027, -1485868397268390778, -5634048999810817231, 9055394178316974534, -6992655989971692377, -8379075168281811025, -4177712831863022584, 8557193642835830463, 8727652050309847405, 9101228003095798318, 342276935468733528, 2125454917839578029, -6956409807454930954, -6799943977472325249, 6504154235262509479, -8539888869393801574, -5278083227692286949, -485507237784893599, -8938331974819664179, 6277782500598935942, -430858978908780091, 423142523572608281, -7912724908260959867, 7024984236779840316, 9072978020563012791, 5909231403474564040, -6092798456170918434, -5371271227702978749, 7600418820403680403, -7817342174481767324, -1208233401998943632, -8125475038879897011, 921842133729814488, -5930943891786904273, 750759186909135111, -8474550839788589774, -38695762770562065, -3748349612018398917, 3390897881502099515, 4060669248005398560, 3947749429396924301, 1523483650689135774, 723627418186446678, -2048471960624520038, 3259321852545717832, 809625161299679418, 4172940743163814057, -5255239287699671123, 1962512671155703256, -2146694811129990436, 8523918060091283685, 3909214533264395110, 9013974636356443615, -4965640563133462743, 336600851691663085, -4857027692605061116, -1042125884295943823, -8997397798520175525, 8011258720552881883, -7678416752233649575, 882133936434857313, -8532741990298826278, 1500822475052167126, -7722457738688111658, -2412923846393933191, -8786465162638587173, -8467916395796496473, 4112408740757711666, -7436389022937243099, 4121258431372096232, 2981774707645685279, 6192549078600663801, 3593326712426288406, -4937266943212939580, 4383598015781351388, 3500367667777625099, 4265445979313189893, -7722445123572687019, -8089758488900180117, -1183512982463252734, 5100791319698432343, -7864317229507846364, -8316242451608839418, 941076088028934556, -7375280543745950464, 4092634805284438777, -218945203279289748, 2642739844500348337, -4868857381080662703, 6947840098331849963, 1316005834143845078, 7112945344492306472, 3837608633821605687, 6612953847286164681, 7369116975816483029, 8203800728707370162, 745264072414834480, 3621821338405982457, 1787248701645224414, -8725499828321224652, 5759223232994807872, -6809468993514024728, -5106996447345046008, -1716125143705151606, 8920889292959459674, 1543487363196534528, -1422401727934476138, 5860260653618727672, -3906452349894177628, -4013308462155976136, 6372558017689448063, -781237135359215281, -5144054286467933144, 4282535083589780594, 2396107973253839261, 7365801472716975191, 7316827559627905107, 575866959481419500, 1909520162061294283, -8121086638470045648, 7666955699783671898, 6764014194441244928, -1317946468755875228, -7324167591413870675, -4954190638318189280, -7486335486492237873, 5332744067378770001, -323186611794603812, -3198678866318261509, 2068713640950114482, 3069353812861597238, -6467069238341544841, 9193181258034790848, -7348692611442398875, 8747396694909907999, 3662292962193528123, -6592283124932139589, -5440340727297120619, -2150708159681829289, 5154899013155084974, 300931462916846710, 267306129028303629, -6124402025857570481, -2380862100557754478, -8322782998950903402, 2203849044199742240, 7189962897065300181, -8196293205269926822, -6129722503598130442, -5717855583525242650, -7975313698385058299, -4394814386818113299, 8439719004326965297, -1853466123124981772, -8251721808467378698, 1332718692995289516, -3809748939990651052, 1711930554606737283, 6833741922071233626, -4746950157081688732, -5467758056403617718, -45553055250825220, 1156758914636241803, 5948193078099675785, -5962488332994723134, 7740792189484702658, -6863363731893569278, 1789243812814554167, -2471776969995239390, -6732014630508503900, 1844130485483900815, -200568493491779112, -436077017430881927, 3919223787046752168, 8021529304731123514, -8610751941045982309, -6256790461359078051, 1135953594877785960, -8649939117570278886, 512081662839873769, 281686122159629418, -5413101347049893607, -5127982072271321180, 8829245259139364789, -4992060981889383422, -7011762443625431546, -8956140975323702261, -2270955087903718521, -5175011738133382439, 657640191311126730, 4091251227200427343, -6376895040745033169, -8508555100273529430, -1796050355685702518, -7479868720901504471, -5693370525191439017, -3124825009832723230, 774528893311273039, 9094157038382657252, 8134250295867635801, -926102615299587563, 2769802780729386319, -1298828413415974516, -5875668061957414574, -8567687956511688734, 233394549322687598, -5895936930699961627, 1506589231432092810, 673454251841598024, -3864419293898015851, 8769089921809615643, -1256885168795612395, 3806027142330471271, 2628293344092275199, 865800620207458536, -1382327376923515606, 5206767734543250343, 756017486055271922, 4850772404988320878, 625442543634124181, -4369974630687344896, -3695576970140377038, -9168146533523609146, -7491269378073904551, 590139486766072594, -528353216840969278, 2439540592134774917, 4441888984435367795, -4462545664660870614, 747570505408124171, -4473619033861261733, -3324092939983153226, -3873689014480318940, 5182336296753675920, 7873764258453728801, -7707472075484813175, -3499584067824619030, -4363669762455143317, -999194618656210599, -5956207405289502258, 6088854365980969717, 884915936130810611, -3403372171423376387, 295363824065805385, 2286099348201328420, -1009241209628196304, 389365988436719678, 6366665261248409318, -3000897104692751348, -8801031179767441413, 3082863725940309590, 116072542729193868, 298868359587831624, 2632026018652181729, -1838284396540890431, 2082973454121984783, 8141066170324930012, -3279079705355382969, 474704650168943363, 6226317328107536369, 4825910540062605953, 5945263003255050778, 4504821081943907717, 4368580867379439264, -2818720317675853613, -4361067299114656414, 5008345756066421481, 8031101549735632146, -4148573144730325996, -6371332763708233005, -7239302400229886016, -2014395882539237498, -4557361942559936912, 4849766911099362137, -4114671162324339357, 4721514747018921326, -5805803238004189414, 7552698164482785756, -2922840131454980906, -1669191079305453102, -2531215509889715468, 5439356077135540601, -6343114842632758846, 2629942975255414574, 8286884461927020068, -7871488877533307791, 2862083316722898491, 7087387006969898480, 606711885235407217, 1693734614856232642, 217812560108109734, -5192024600182825344, -8478414091738455841, -3883421583894329607, -3369084816838402991, -5907051089772642916, 2483299219641833672, 4013666645553606665, -602318766852464546, -1077903559315031146, 770082142730356829, 3993899725793039928, -1229458295801142802, -7427564167209533319, 5744627202631096538, -4307622145389755129, -3235672070839353056, 1509870615572337394, 5155510312138930465, -347833235362661169, 2884411256285248683, -7487719631604369919, -1423783742145509702, 1173199934709978722, 1326657929459911373, -1585920494862835341, 3047872656379971433, -7641609213374676823, 2590250378075021977, -6472628529171104197, -6927900969806126702, 1747954734382651024, -6152543370889567078, 754358163957577809, -8351318808938792381, 326825291789732117, 5557618892685483060, -5849777647240212801, 5760837234435517008, -3843804261769104675, 7222778241614397433, 8864895893229875687, -8422456700173688630, 7273523800189460156, 492179030368810476, -2391480277429268284, 750834839931384475, 8278665001739515818, -4982482698709692101, 6475385556371811030, -7853095560331657104, -5848657393720385028, 4753865672451948336, 5512849629924609485, 5116641493098583451, 2815226095414166430, -8494854239959616675, 1782078395145329791, -5158653085431633500, -4657046649979588160, -111873088748600590, -1939359841773274182, -1393657311545381938, 3519568563701362857, 612692445395799226, 2590166644063810226, 2784744666920505647, -6483266022223056305, -3130119144388962152, -5935204981350286860, 3106025523692912745, 1881736877774620439, 8193576216936208758, -975280572085523442, -1541414951107285938, 9036817538786496170, 3121172592683938345, -2312993974902646780, 2918043619159089576, -5557011336181423922, -7232783249999228981, -6808261010130612619, -1024226312373348323, 390267185930883049, -433773452758753890, -1382188157026655723, 5552684775601009220, 7423416825822047242, 5921594515673978074, 1623161230277289138, -8635996496859796366, -8341198799787506612, 3684274307140230103, -3525979106511607914, -8150260350424184478, -8532800934409415517, -4825284869295363913, 6096824428633248996, -6934839419233550764, -3952569066269370263, 8829949667617343402, -1084935265649891560, 4888155050469376768, 7759001841431655476, -632465181939387254, 6823471927599469521, 5123512777902473827, 2294694572406052559, 7293379777634816638, -3954484737852232932, -2604163955193706319, 5302199851468118708, 7941997818865972731, -2944316522978960643, -114533323212471318, 5143101534135716130, 5503830823786557143, 4293836402769053661, 2443793899823007245, -8071123656826297050, 5347773595699610761, -8929372395762077376, -1585177283667380717, 2914214588282404436, 1504725386427480254, -1023403796257129121, -3815055356083271397, -1602177549551322433, -5218135579937239946, -8682427831710675231, 6708818568356231300, 1460617358915420542, 8419233541028365779, -2203822834983361938, -1931612997367313039, -7090136942616851123, 6159601980531272771, -2924982422417083368, 8625733557184675609, 455806705506487484, -4175122711639362245, 9183344182512950169, -9205269537311193262, 1180206716364896655, -5105075516890051179, -7015458375405687643, 7461146559025422960, 9217651932099188075, -2566722736742416809, 461436019440732543, -1600352722337213990, 3717854620828942012, -1025875194482804295, 2086135012014834367, -4704994046889660330, 5403589599609442036, 8946573654584661369, -5851412813291557272, -6114186204370949459, 8846115909828536457, 2516480883147209491, -4896484736258034480, -5906029717909633600, 6265789318254371860, 5901987565094300772, -5134657975554973139, 3754493426391366020, -1024841823846166871, -375837918500718563, 951082404374829235, 4968059706062408597, 551360151702058730, -897839361899024578, 8423280353089141563, -3067730695236925986, -3026133068307276139, -347944654449501921, -940860396850113768, -8480884751044675527, 809962066770662957, 5570805929138081955, -8536365026315448451, -1785006368005680537, -7539890532479137853, -1685625021416486080, -495084654998941506, -7199283939338655440, -6322523877276066390, -1924280359267481057, 3386811195096545218, 4340173080453476318, 6364546987214926734, -5539307997095767096, 4788361980582625532, 3661405512672161742, 4604494546812057752, 8370694602000383875, 5751823553944575080, -80732473868442682, -5068975410524126635, 1331105462545369438, 598972586912857703, 5802402952647492833, 7351347543334195739, 4629965513871560492, -4477065353550525982, 4293618117058312116, -6815898000427288159, 846705003859041619, 3186171236091860712, 4576063879771282323, -1518436754082451324, 7445306181558445577, -89593885154150055, 1614218553588509528, 818189339834939969, -6927299680575465663, 774958765598804809, 4184480648866898818, 709459366790959167, -4626091224208877513, 4645906675380526157, -6375925064930762469, -8825007961980179238, -7325276889309215544, -3027372533955547264, -1927195262342876859, -667359508884563370, -5415417686542208967, -5074170138512727390, -5893063287029739857, 2536729896110987882, -6272080088435360542, 8951868953695015582, 7657733672058879951, -3591774230959004874, -4098576984620957257, -7954501087248739387, 4278808274080018333, -4189589147412854906, 3828103683445085006, 9074562452350853598, 4059407993900385140, -5997554768177503082, -4636925930469952744, 5080884309044199817, 1665616659663714146, 7970275004708093640, -3515425865023497791, -6360788715005919459, 7681345674226937024, -1591754913526476693, 5278190882276400205, -8713532464964466486, -2461950230538602509, -2727563323241331517, -287882604865952548, -4998482287525601156, -1649942588236592323, -8334141899698381045, -7269267742813065958, -7465996355516162442, -8367728504152794794, -3459103132137325384, -1442198878028866612, 1345426515571720162, 957338003967035704, -2303816575022567080, 1208712301355977128, -8664278389558935051, 2585968968163383394, -7442461843337218072, -5180740110988816831, -8127690790899584447, 1997488320728279352, 4286740531879912040, 8274874197080548026, -4090772764543241414, -4179221920081656990, 1240571758916158831, 5831155452761097247, 4491312469535288412, -2214189452237794995, 7803610570916068138, -7512765815705388819, 4495939759546582316, 5919234342593647532, 2228366347447295854, 1200108966100871600, 5690160104032373911, 7608341886840415982, -3591711374593353612, -4138862006196247025, 3035941869393087219, 6865636581281765649, -1005446072170419096, 7567108779417572888, 7837517685344243063, -150544188122666775, 4151631287228471306, 4526501527929220747, 4226079951478001946, 1202356483128737661, -2739082484678542864, 9014315043463709342, 5433171088527550481, -675011903020846570, -2390268965994021074, -6400528939907285297, 6150357763280260129, -3017666321637668155, -8521816736249195554, 9201474057859856959, 7787251696844674920, 5459333673413767625, 1426920414208397410, -6429487967293043397, -5257783894738967233, -4284393545900291341, 4495860121982827476, -46895423979592336, 1296883116656120401, 5786280337555694459, -4666319220415667626, -3461086543927012398, -7466201980694565103, -1140264047004134064, 1788452594610260380, 2122482110897982437, -967561019628217055, -3085653831748559619, 8968205811622157951, 2548019779744265006, 3102188766046202682, -2248855211814195250, 1840990658819753196, -2774269581294831808, 7736515481348219928, 9018202947188024121, 665256893255762772, 5335232103275708859, -6147769550004725594, 3101116076125687634, 8997815652593752671, -991039277422269440, 7401069779267872655, -4265706085782567959, 3543936723168736598, -156641789358572940, -3787937288235758175, 8493545078498008813, -1246104920785264932, -8472321413018125528, 2488827515048085824, 8921536292508501002, 6738563439579654225, -200494991427853633, 1522770512287049875, 27967913645549852, 4522774353626005250, 1256679544378049641, 3405255849140860312, 7600273242978473381, 23575511431754301, -4672409883425447422, -1889984186866827497, 7296992012812133386, -4352477371763479278, -7044820154857814072, -12882897692051401, 3386197820290517830, 3757006914775894255, -1373125215551940593, -3417240353472760107, 4545004743879531724, -8452197784793964824, 4011326474920807008, 5525699117455073819, -3509792888780752488, -2678176774927838959, -7865242219225730860, 910114598761973557, 8729218338529719741, 2193454523997047762, -7768649955433311043, -59570399940716217, 5379873663944752595, 6958753457463799369, -6834288079848933917, 6017726407627186015, -5605007233816630810, -2133202062587357392, 6308144618868189880, 2410467815773232712, 3362613551949800205, -8338291721789685875, 6806446490174013722, 3617871453764871716, -8089650650345025368, 3404255987694622585, 2202469573791039532, 8917069822569678336, 3673380902626594473, 2006086046514863996, 124547239434762347, -6699895425011329664, -654980885606504113, 5693921821332933733, 6240465266111347301, -5116742469232271276, -7234779267632071457, 2252310932068953919, -4826663343385305810, -5138935515462782395, 4689492763043291304, 8050868810895092300, 962693406226418360, -4449695870065690339, -8090037331985041074, 3267588726403168015, -818610592836939733, 7132156710085247201, 8105498990887613566, 5292883430792218720, -8967672561525703489, -3060374723375263315, 6471936150048936450, 2172367360780066734, -1827028870686942816, 8184252284225033604, 12627831469234390, -7044530554455258102, 4876415032581521430, -3432957251328609060, 2824204544680857114, -6957079231530010699, 8190949275851966633, 6823755481099456679, -5876393354565011558, -53970842360164026, 3853564448249494149, -2972682942843227938, -2348220370393093578, -6728559394063198303, -428422563929318788, -1957417017065146130, -4576719719265522168, 8053316042690501278, 3310213367865201347, -4112824968274046397, 9181248053861701240, 5060815935519305174, 7032513404456678609, 177101472299265594, 9016686722828226635, -3992609091501539892, 3143581933428900547, 8128180822245920683, -2491463316461667999, 2330203500336038282, -5110918847855557615, -7491970226199025008, -4282477307488025506, -7781771132730950018, 110713113935466601, 5587248837089220356, 1255960974818918754, 8698965655282249228, 1142240120158884473, -5140871044598154651, 4242316612159154748, 3196934947642219001, 4142985180027536009, 2284684766136520859, 7816460186487161689, 5634691966513170702, 826997164884838579, 3671534939283556119, -844031886846999857, -1657668728488381095, 8601048722354210748, 1874055730116185503, -1085772457483182900, -2379097533368203544, -5332523084927766221, -5720827504987796707, -500660857826907077, 4907278821539746137, 1612608063453637092, 999864768533873242, 697789296164832681, 7245427910569743072, 1915079413800755968, -5131813309895086474, 8603554651152580284, 7004256889621974285, -8841849929405732104, 6266043455441667211, 4281933208146509394, 589626416538186847, -9110023954929925113, 6228236764400239770, -9097851054913215828, -5615926735483961873, -3816309666573504094, -6658235192728664890, -3489437372181895819, 6473906457060472482, -3937193548061835672, -3330600485619962728, -1144571853544535461, -3951778588605513599, 4357554689713104672, -4357398228254444450, 4271030972656924912, -3244690036564156625, 8156367274598166522, -3931250004521385041, -2911389906840280156, 2346135012548426971, 576993460546804143, 7755992082919279476, 5029888512237914138, 4169682438101948249, 3117687678292024900, 1389717223270727909, 2970221911793514584, 5050422048466027618, -9167054139502708775, -4740218251362552892, -3553211067591049806, 2581209126211751705, 6210955990385848062, 4029216681594316343, 4757775271400889122, -3976277041015824707, -4679861032853884697, 4796453839497959957, -6840455779837473580, -9128818347027882259, 903574838146320940, 1535682736054934768, 9203128279744177178, 7825465624445881366, 4729623009342607951, -8445010477853746168, 2779359132169173177, -7787638646415434082, 8630307791021786349, 7678698831967593045, 8924323017326743858, -7838933716625602894, -5363993515335776073, -4758848622545323715, 8165749912610324377, 3890814894726346511, -224522875182829871, -8504675575833067, -3136726367779306378, 180991206201918487, 1734914536475617191, -8026633819492051296, 585377375399552857, -4057686706863967291, -8792006564640315718, 5133949230062027221, 966490915736029700, -6856276960559046469, -3209050650471783039, 1997946309212720291, -2694844664018723792, 3040950680047421026, 664257877741578415, -1549762200498106454, -6557905093166641386, -8211748983442216867, 454695318135322844, 8098973132628461804, -5374114151749928624, 250875467351983359, 8620562681172610875, 7000258589713572687, -1664130791612438228, 7543643719287184369, -7801214284011511231, 7582532710654096211, -1305082352635692836, 467279306749204029, -4699785433075779598, 6850508823342814093, -6352453380479010935, 4359866734038908518, 5902667197491083031, 7491369333420527577, 368394965541002310, 6196741845111984131, 6216658244935918994, -2752843053616425955, -1148561512128619591, -6370429481649296125, -3234284230884801704, 4606987715801616028, -2718306068765596780, 6914318796004499819, -5955316532302996313, -296482199804435617, -1622236069462721855, 3501158302851784486, -572523975562305942, 7098284566686338285, 2060918062386840664, -1036304409717708042, 2037141206169921799, -9157679456705931543, 5921174993872226438, 2258376583953503577, 1380384900532319897, 5150863500031027649, 4491459583774403100, -8799333906252164078, -7436299637009861037, -8897605254734354534, -33573020224461376, -598118414029620053, -1036032722062113417, 3112711594643544824, -6413355946478926157, -4306076522754702353, 8624135096108717536, -1391526975651603912, -2546415741280369889, 248708739663316717, -4076449748166029713, -5531141162888212301, 9157140210067052907, -7152812193245389267, -8753601697609765711, -4020732460633455383, 7187437046903224286, -5055160253822539475, 5740244605347500833, -683871540398120655, 7898025549943690712, -1290240967206721704, -1743125062461769548, 6422263519987998930, 6839574880723343706, 5874745018847963481, 5228066245330305137, -977796713401175104, -2638646963020434633, 1031149875050997514, -5269507848698839757, -5537344948493036939, 7386325726715884105, 5044850892597083588, 396022206904815266, -4634210581742012041, 5016832958586948828, 3037314680921923855, -7714084903984746866, -1202569377564993821, -7401114300118604435, 7704534374415376277, 2156604305649768794, 2817748268707172365, 1053569788744816184, -4301201223533542269, -1599613411082562407, -4955672137856541273, -6243615707262612649, 1630246511914211374, 8743683296570668073, 1389080168999368683, -5264898573472638830, -5277151964454990744, 8278880058128573084, 5988807441639222597, 4766863221614704793, 5359524312828082327, 4466911741370325898, 4190251645054681054, 6844747556036323011, 2787084668216008586, -8842753752665197773, 7811869791363827446, 1947986319779991562, 2595675121194158456, 1928698732085290081, 3445100354674624654, 4698092473852175334, -8389240440663659562, 4037095003311488799, 3612199949675998165, 7475295921963138980, 643461511745356493, 2759701459090278254, 8039108320664086624, -4789457556455813773, -3046417913880116144, 4604279469796709200, 3091999775913123966, 2525308934924979894, 4788231701303947795, -8804124782913533732, -7810151231409358469, 3914487398198805513, 7405176402717547027, -4088208378638131629, 8185598939756282511, -4923220187259011432, -4205676137230147531, 1212255400888206837, -2732932430502287969, 6968133671527913135, 6774264180253840475, 5058260994715711882, -8130125491347080982, 1149156941701589453, -6010198640283435488, 1449319895462962850, -2281107511056733355, -466571451550039668, 6685982507464898108, -3312513759151219649])), 42), 42)),) +(CR = Tensor(Dense{Int64}(Dense{Int64}(Element{0, Int64, Int64}([58967469340405789, 5142707357825427615, -5331727457459160065, 5242499761252357098, 5268305231152052113, -48006391275476856, -5701573533990910234, -1320922415910570474, -2445645916682044463, -8791657129390210138, 4021080065407546830, 4608245416018265464, -4158821957181619631, 1153007287831588097, 1505191833967509795, 95813485489439955, -684975457031293460, 2506133012667805723, -5791620393512169582, 255402303967106736, -2870838739784614548, 4900988720054912060, -234434144823053353, -8366411395169066026, -6773056994894007350, -1723486128138565653, -8674306036333782252, -8246283747579121390, 102829598633968342, 7424671641961025381, 4216815936905844587, -3265588574452885760, 1268231312653761636, 6402427171020710397, -5583750917728367517, -4338054220785554968, -2121694181022466981, -4248639054900892396, 1345293636296970091, 7899552372293409430, -5134941874053416118, -8011966950954376062, -4739552975085050169, 7301228083771062471, -5613447189988138238, 7482328350141172978, 6832667438051813815, 3760556556354044916, -901124715365031902, -1170824734813174669, -4730144016387726314, 8661559955017057451, -1939187148561275150, 2687541843792979757, 4990108601364128378, -3183914484429117315, -4580429928888520157, 3077787239899247576, 7595112144975040502, 1388857776112308393, -8148029164262993135, 8125895977363490838, 7369355898815497476, 1911092462522817116, 1506698950034102146, 1501498168125560247, 8921755955290728310, 3229224417309765124, 5260685857836745416, 1708114453199187899, -3746733135024705590, -4458588656479000876, 335071822730605779, 6836089666916414072, -7045293632546539556, -6840992433036326620, -4863694151822598508, -6299154574672976774, -4306662365437540296, 3934342417942518240, 7281050565866431452, -6512287163053175773, 461581835360275049, -7508690928343000086, 6078050254989890816, -1845158412189509464, 125317407211246683, -813848507407310035, -5855955244632526767, -3248157952732901608, -4671861216716082072, 5337817134405980372, 7406646089587665672, 6540007087054613708, 272886854732296424, -7848457806264713962, -4210977064761865901, 6076025197071222797, -1799477730505010857, 6488337350431680702, 8141824171847414038, 5195710963528558840, 2811988423846270358, -1695036899354689855, -5969794012980004341, -8962580212158714352, -8537118050112641896, 565452316888745586, -5451347606266712864, 2354295336529914389, -6721154736628642269, 1979316787450919367, 364245499579422027, -9138356265014766704, -1807021279543515711, 3437920905526466381, -918033755942728562, -618400450497120816, -4225506098545445980, 2432442643985297366, 1151537357416939834, -7672510367933824430, 8974972672167957184, 6715113640657470426, 3912779267401903284, -4162637666554362682, -7492637048165614064, -5949683571988799165, 6276732319694160964, -5408755942669470774, 8068422555857741452, -6063896609261275773, -2621494888627618097, 5875573785430539365, -1104906371048679859, 645759944948097709, -8760668080185568837, -7925255654594944866, -5074246770250953411, -5526135351589134003, -843055606667833163, -4868551172731813814, -7398271341363064548, -608504271002235467, 4777821776425524152, 2501748561008313154, 2382027267409043730, 2417659514202437422, -6658521162357710603, -4640291829847861048, -3526548078605549552, 2534061598322774702, -1487577811428911188, 6175706566208765790, -6210388607001632708, -4631379063813975160, -5433634467787320817, -7009918376020126257, 1889515589766699000, -8701788517104616320, -2766327771641755895, 3838503485928933716, -5484772526753816213, 1834368480223774035, -5820635416640709649, -2635096845467248926, 4489326843919468235, 158375320092821363, 1005641200836364645, 2465728730137875847, 5676230364011721195, -1064468742706301592, 5659463190547850349, -5082448621143802122, 7824814442800290573, 6170612690290667421, 1395902594425079002, 208224045551570714, 7329545069053054898, -6538054197735535332, 7833463026162103320, -1562176914783807114, 5369544752951691006, -8066198064779704267, 6092189910248494449, -5360286620836007209, 1919878198655525702, 4703089377319140501, -157731634785883442, 6215254445290380520, 4889982260829080451, -227944961803152248, 3108538606307153646, 5165210206812121981, -2170264503117054628, 5630076066244632428, 8595357789141395420, 535297742612841498, -6723868894194213387, -1529251071442320899, 5654594417558435271, -7479019265371857941, 8849970866956341322, 5979245258205201332, -4255072507759281168, -1823050975871930944, 411636654843139388, 2921172669996573696, 7283387142844757248, -2737859175580979693, -5101254462042270365, -5602918308615528255, 5254558401405229869, 5738640441443553638, 4151807409014127444, -6701961806117907904, -655622613881539097, -5550409413353335463, -8050855937352902212, 1417923761424187005, 7102291370733423931, -5162235532907387723, -6294701267904048158, 7529662111623965742, -5427830753773474706, -8217350165289987859, 5479401785336068538, -609698825899544648, 5135051890792797764, -2989918111620852380, 510348488490530919, 5178522806716113335, 3667456398575297839, -1610545291546551814, 5081676941741771787, 2394543514980077239, 6443945739477617958, 8988362271769824147, 9185628953638783087, 5339332292369137538, -3837837775225205044, -5666020349635323693, -6755407893008335851, -5047807641072865733, -7231965109372480282, -2511002988037927207, -6072848403180683434, -905973641253168618, 5303915966776258376, -8096797217152773111, -6861352286482947410, -6363355236842684256, -6346729199908036991, 5883671929861384990, -346471475327478426, -7267895285349055217, 3892593334949866843, -978163169550181212, 2327474145814087411, 6068648223928583469, -4635521207708021122, 6963162944380396610, -3828542491152209940, -6599844903906164800, 4548788474794148339, -8638063208088182808, -7995796479464370628, 4150497568021469379, 7859542411956683785, -8548575102426099476, -6380508845891390387, 6240201801208262059, 7634349650429292385, 5000744576080843873, 1493905373601425090, 1877673115696151481, -951017073476576781, -835022372928452077, 3874108001757742828, -2652591758715121895, -5378164148569780472, 8347777307601722560, 5084346830961402361, -1954720027147063927, -930955525520233686, -6195730305205615997, -4165564006786352944, 1389232204882381496, -309187913919784223, -7079539459263676918, 3760321667049378492, -2219517263703321294, -7950664608523217742, 7906489294802267066, -8918526918922021744, -1557292738275326244, 3897189425647953067, 2288546641152952505, 7673479967218628641, 4074786638771815781, -8086374921630398742, -5862983883490912572, 3479410637121792430, -6178239814020313157, 2528572580673103058, 5857676346721880338, 9136509321356555029, -7933778574662753262, 9093799375880756951, -9090118149780621056, -8333682709346147070, -314822824442209841, 6658881823293531979, 5782776689018710809, 6920693363473194821, -903399088089001126, -1792414612755877019, 4627200830756780383, 2165576632605953482, 3267771587081825132, -4017854722999733193, 1347169022824081989, -7902073688330889512, 319237872357528647, 4655671869267787268, 7060985027896212227, -5124980064478747305, 3429394095172947443, -5593055246620909428, -1193150631481907529, 1078347211558432213, -133109816610116969, 1118404171917689754, 4992979279197787829, 9021163440080333968, -6587972153347922570, -64516456414361549, 889512782045866710, -3192902900509310112, -1922698183371590175, 640921355006524526, 1597505901609458249, 3114171873861990994, 6836014270033033976, -9117137390444989025, 3615922505148093643, 1486284486162848259, 2462710824750192668, -5489410515731937951, 2296381915541278435, 6390328055723179921, 3699933408395722959, 2754134350709790036, -8977537863504939977, -2218663843963039414, -8367387477099157194, -2003899044084041587, 1416062064184708089, 7341456056299636365, -6356298348625742107, -2514840444539793794, -1751270967797477960, -7422169497874721010, 5168751861395605077, -9133158678130136826, 3158059433377686770, 2949651267826076419, -3508724828345570744, 4666396748478475367, -8824949906698892273, 926623425232914161, 7698557959965426464, 8823308989284314009, -7889646024647503145, 2301074881638794949, -466702170302662398, -2406453121204138567, 994235604104786204, -5297429852707730943, -5967029720303741996, 57608175838716882, 2756596772804254366, 2355760801711762260, 8345761298382455353, 4134133269992103557, 990002121115370197, 6472561921550716535, 9138066976575774038, 5609348747723285947, 4160919444798981258, -5196042774181566359, -559276409901013098, -2030732242346941439, 1103755083314138193, -3941795647570523503, -5304842337825916966, 1421557605684702708, -1363314264969705255, 6236797391535176660, 7815677244722667521, 2919879501421373833, -3533265316125537344, 5638635089295011361, -585821682783959846, -7088570176471902277, -1793742575488709577, -1648806487688235927, 7808671454246390024, -3956096974570884297, 664334732565513906, 5107671692003593427, 977989666888034938, 6142707601066782555, -3142575876671729362, 7897179449516444784, -2577854663665751083, -7090662995169978175, -1789805741518688507, -284095508745959274, -5919094014412153808, -174175015235308083, -2007937958406732842, 6789932033789540049, -8137849211103224893, -8164223249291986003, -3141982941894099483, 701239251908293589, 4091789553549612520, -434310042637538618, -8569643806692901729, 677573262584280635, -4209509970696404494, -8376587710476184664, -4159572351490770396, 2610846251256528295, 5627998158985401956, 9201397444945583681, -7376746943386348389, -9048001192692769720, 3938046277892808973, -4396738699592774041, -268695293476929557, -4104319912297254713, 6697693265008048501, 1852868612698279117, -9053489464925698300, -334933667180184490, 1253961019344119550, -4254872592884695261, 7974028379762354164, 5644113724893657771, -8332039981597206512, 5566793045311461751, -5290169534189330757, 5795613046259964571, -2893901828585056899, -310141481540910641, -2776463290064029534, -8135820149462496214, 8862013429212201092, 4150686723198227748, -3437531697071252566, -7184020040115501234, 86267402369297065, -931818719380677741, 4705228216857907179, 3774667626094818547, -2205246101079305030, -85393847969154131, 8005153496511422223, -6214938318334214525, -1439161923090752929, 6046400731117456665, -2941648737645296038, -6512231915976168917, -2659507165138583311, -8632499147144120859, 7362210258249511140, -7540364570227628217, 2009930085690773981, -4353238823378510256, 5932361995046040923, 1820381525462123225, -5968592866148263683, -3226311489676139504, -5383872573127059339, 6277535075067165067, -7344301183271006262, 6057362048019087343, -6426429367804311576, 6791998424372177178, 7336676899096679560, -5185131003427512116, 6319774777919117632, -6736366943270397662, 4187299401326804984, -3198086542839910624, 7646455521733605053, 8707856128514437267, -1761373587605130485, 7585752195077394202, 2879837969268460854, 5335141520394053653, 2627691182600514754, 8691390822707111976, 6849069435317401809, -1289734143886934949, 1505858276400674738, -6657471336980251923, 6463726602913312413, -7278881024523126588, 3145878964266965008, 829233430835372840, 941051845325413733, -7032899529842472906, -1258481461172996938, -7501225688104601093, -7367353886802105604, -5480549700172327282, -8948554212503119831, -3565758302470373308, -3141030702177646067, -8896234603580218473, -7333929947719680007, 1993145379471832839, -5719610586709540922, 8977410301440598800, 2962438073232366095, 1595472449462097011, -2534256102475972654, -5121287100162200940, 6341269131926092614, 6010479086043454724, -2091887304287538846, -4964436224790844948, 3880196948837544848, 942603566896401981, 2212368050568808947, -1605670863042282390, -3810746141394282242, 93432901646613503, -4197477849483737074, -3654468935144026965, 3520953219670267391, 7454983552191712355, 5033796966469914331, -8889818770118419734, 990503402450237050, 1954876056159559234, -5614243040577710886, -6941357312890476789, -4523371179214236606, 2246889753874005225, 4733992336446777490, 4929957422189396120, -7302503038984534408, 1403080759643984409, -9197644332470949134, 1404773353629371200, -4861679925231264423, 1679744278173752423, -9200033690956964252, -209001078412774468, -4330311534316887605, -126759049197309768, 6365349493517508660, -3580620094307142362, -1668212259496888466, 1452786344565558785, -3848794211906727768, -5439350359290075844, 6431285608196001903, 180094301703181384, 2591669037941285193, 761507837306087659, 6385064471137291541, -3433124447154048350, 4276862421784431261, 767722052770009058, -5236734193686308068, -7896874102229398339, -8992620459771317266, 2319748528521294175, 4196659764827666800, -9076001242885295418, -2242184611824072227, 7417546318259179482, -8309907524323077157, 8182826235099426423, -3603067016003879961, 2632781529836687190, 8101977888467358173, 4416383315160690185, 7146768447126379728, -1157786774169910947, -7690797128767669596, 7359757518671846833, -6191533550943221743, -8980228885370236361, 5939619554227654871, -7656161786287368637, -1926662091272181571, 1269795207148602768, -2334983347495168652, -2603209255063012985, 8637696603608733426, 881964663159006379, 2791054751255411067, -800204857420518301, -9059280932539555655, 2724707304831166518, 919420442824774737, 3651275779142760782, 3126438445612443297, 7756104387112788560, -7610933223941223106, -9133603770186598605, -4367270868518935495, -57994288044172502, -8098247718702855112, -8252909963904964069, -3205129304055729034, -7866076912921066370, 1366012217080590455, -5510278075865015681, 4368007615042484610, 5979445014941371181, -1359463917006213797, -1302027846046777313, 8893443280280393551, 206216681108740798, 840208027986673966, -598774232462587139, 3874757210445771051, 1171732984408338532, -8882967561061086258, 179777861391055558, -7526699346573104251, -6419781152660115581, 6864073564245596838, 3076629251638675978, 5887443827816895264, -7094703302928180523, -7901535766141608475, 7174286670580129392, -6894136092019337366, 2763128753701309102, -64420457123110918, 4866041457564409628, 5332656920894233357, 6940004783259361027, 7598180581182686182, 1242627583414413356, -2383328232341321553, -7710647584842912700, 3150084352205882226, -3824822099244128310, 2977248190535522093, 8018741559672936154, 1905344037520382515, -6473613977284015471, 969509683121409900, -8697004919335173141, -5102471836525192362, -3496901334575495844, -1690288581384634167, 811418032645897139, 4650322435883094271, -7339605446237245354, 1076745450682861489, 5880526420502344770, 7431007185349400703, 2741015141034090666, 7624759206175739002, -3166267054848748466, -7670710653843728373, 4668546338112883184, -1868108138959823252, -6208185337380906250, 8895980462975003261, -6706748815868285996, 2337382577887540617, 2505570701308562853, 1830009614588068331, 8309572665957471391, -1667906027995985607, 3136063239032120463, -6953100541592605356, -4539925398251353471, -1291642892996011970, 3662725535021784848, -6195173903903639707, 5964443550164293570, 3032966782008106288, 8223567238768866437, -3869781360632050006, 4195525506645379722, 6565028048656475264, -3456161801307047731, -6666658862519554194, -2484814397321584456, 759873414808929566, 6826934831384050763, 5585656557470819659, 7494086507240420398, -4465930619864559227, 8490873673229066230, 4192814715196317603, 7076315582281270220, 1353420732544214542, -3995926470060910743, -2200202223330999759, 7792551406793397515, 1242162250390617144, -2937079513730481434, -7195219972028458207, 6226027089395802356, -2249381273792217285, 7434936785496543279, -8319090652161266211, -4145270318865268170, 2871329419701441762, -2144505798569213249, 1792706062326503655, -6016709538297735363, 1963754505319547192, 1634719037422475814, 565867509585437641, 2747814509391933575, -6163563430325439704, 1428591251954559123, -9105169208376789446, 1796619537658310897, 6705186488286507825, 5388411898322910297, 1226387389628235074, 2554307858045347834, 662766578030112589, -5692693856318656562, 7082093171911045875, -7606142401425891146, 2797224813503171320, -4167089572973329156, -5386647781429911577, 2812332956112486774, 4578560676339332186, 491518271194968500, 4962568423117332848, 6622898230836609523, 2858142403792576222, -1372166339803239152, 3708668552206460743, 2380870933803665884, 3144618128022416339, -4459202708347622583, -2444875316143267547, -2018585212796653814, 4721396044193348290, 6464723796681884204, 2420084667346520226, 3471428062823143929, -8391050026706820951, -5703015192177318682, 1062911342841734437, 2003442077008473863, -4097664328088354511, 46506022104281364, -4253920002322958218, -4099945002708812994, 7689445787428005840, 8286016506390616782, -9095107395606410592, 4749457061668947502, -1901844654070106656, -7721173428180214815, 2728968950813732753, -2240915907757144169, -4598716440952918346, -5421285625871303796, 3978649556719604480, -371657550400750050, -903359709279007746, 3874893983130389248, 5704631209561833909, -6477652763922045356, 8869613398072161010, -5159434629908275390, 5969926287547845096, -4461195767394379341, 4156472644174827490, -1791688875513355807, 8254253662051982558, -1894218458072760817, 348633870408940791, -1685066724440052836, 6978787668857905394, -6589866969604850530, 3763764112199248436, 3815553502655770117, -2852222782316796421, 488593270306330881, 3187253528688135144, 8275539721113290785, 6871618309883175523, -2014168299919584231, 9042170216638706280, 2277548909089637666, 6284651711592268434, -3172502799098159517, 5361047329579472243, 365637983094825399, 237425876499249866, -2615437677849144519, 3431727703926553751, -8332375001888484993, 2401118310244645519, -4130088925808356780, 1271954335753251176, -3096187822785505134, 2981200719490846931, -1634903499184785647, -4025778661111542438, 7616095337933607380, 1138122180487301161, 8902813068089604052, -4953391006434883821, 7243153908702257630, -3245282268410426427, 5257960912800779797, -7169130972127095025, 5215845678366621692, 7647464286431859979, -8768783733249656696, 4596393956592105514, -7563346952452813140, 4415256701335641223, -5063436829557323927, -6652870448933937548, -8454523541353585205, -8501104356649330676, 6845171179347026, -335988232343909328, -1239059646114133603, -3224163008425645192, 8025361160215353186, 989220152880928549, 2751049543485459568, -7639660156939620817, -2819773777852110221, 6461097854352851897, 4847619707139702249, -4164925315503238676, 6814923199816827242, -8633063086793753398, -4285960299287682939, -8158394920674699460, 7569699390196228284, 7885787681173378790, -8143837408220338908, -2495849870024996066, -1376190871347343289, -389667084389113345, 5465330198219552878, -1088954169071916110, -8218968432056270828, -1562536222419825513, -1184846931565096212, -5728227363848371028, -1007023083548917164, -6440899240999113873, -4014697416223624718, -6833707106001305789, -3181829392997160528, -1801229595645776383, 8644096499437988332, 1043901739579059538, -5205726832632041456, 1307595407075261244, 2113689981198589347, -5793956467402012888, -9172959562743937907, 5183254380017472721, -4687047436502192439, -1676602862037910880, -990598221614416551, -3344331618603763990, 8025262133946967306, -5947258523973516287, -4046619778318496571, 5575996242002254658, -476707780369474396, -862676361358432704, 6557778172358977090, -2641326400484418957, 2755395605279365646, -5137026478988175000, 6797594547898426231, -2513958311128860816, 3033291382339889108, 8794532688378939729, -4362364154052433451, -4529450887944169355, 2632644103548413624, -6653058643911235386, -5409977330214213611, 201328456639385688, 6562856257691016697, 6054918616159473673, 573722165850421913, -3396846358848107378, -5713423205923677089, -7415502108882766092, -2863968382207636015, -924835687073549427, -7196497647060044944, -4226017448288641709, -1773555011208506129, 8298346417607376905, -8504674859690394076, 4810148939430986846, -3526537804463727491, 1082686704460323971, -5938787319587550602, 1947879891109859505, -4707781109733740696, -5434274282436193787, 2181565590133624767, 2574482051963240631, 1901146986018025478, -6447994522655380863, -2400372888409163319, 2172821874729376697, -9097323297547192307, 6879537851859190079, 6019109329891067080, 8440220268283934084, 1410349199936177170, -4183505784335168311, -3765604449998184466, 6606218565465773902, -3603122167826072194, 4164572481082446548, 8693250559450165340, 8946746349731729952, -5320844937775659299, 8684343285546075083, -3335639410491438267, 5811935655122768246, 6930911148674138033, 5487765482444959072, -3072650201143566536, 8321189535986965940, -4264398939254649200, 312907700335661874, -6283819131906957556, 2650597602004567092, 4536448556644482282, 2840970389667970362, 8871721553530723767, 3655487029807192670, -4239918370642360140, 3333502399670295411, -2754884697560138890, 6070500107267966173, -2889591349193936334, 5496020895828231135, -2396288588014216996, 7550688471360938907, -8249850759022790847, -5342555261215039677, 8775561998431704710, 6514187816294857591, 8697306237941240989, 7117451556454525196, -953061442463818571, 366303689704737580, 5671157900478900477, 7276632873547185771, -3953971908732352497, -1553727222199190136, 6601160893122087200, 7185152531488136995, 8966765971258413005, -2978551344238447250, -3416980356525374493, 6531853491593516399, -953536864899893124, -651700633556216548, 2811802532959676338, 1235719832771873271, -8487537666983943265, 687076969505579940, -1222296721601005672, -7112956707060388856, 6960401143059374016, 209168322485133257, 6863758972653547633, -7309895791067138113, 2845807572158682535, -6678155361726231304, 5801161193032901083, -6888581491290186793, -1441701334471451699, 1352958755078909375, 2417007030635681357, -8295107741313292366, -1605816245752099178, 1413966057701020596, -6222473542797223847, -8818093535751503476, -1589463553758388889, -5967115068135446201, 7697765708433974881, -2120729594845694433, -2471325277807883383, 1543316595588681549, -2953175509889892042, 4203292335273009520, -3058564195235443753, -8335947337576391182, 1071472081605117011, -1988228075170531996, 4582900505456543488, -8074729452954429293, -4769543134675251115, -8207589965612165762, 88640171235966974, -5167245425714665004, 6265311312355009621, 6496689183089065143, 8456534587405107257, -7766133016465247675, 6390513528886555012, 1216295371024649969, 2620142263164673337, -520079992712650245, -3553614308152857187, -6106628477442828446, 6882992994842131718, 3988014632141918208, -3259834091749517893, -6930471537394511544, 5304088511870051272, 8809909242122304298, 5245402866757106882, 2617091773970971722, 7111039206284629298, 4024411620595098216, 6536034723625213254, -579696817267751819, 909588474506256294, 5782101391530084561, 8993381405812500621, -8444158382373497133, -8701361425868957769, 1464634778537339302, 977521382607431659, 945954993808824393, -4614892633280062242, -3686786209392648056, 4298678679989116446, -4991005345084721497, 7202939167085495426, -3660410171522446673, 2800756945145771037, -7314078082073883576, 1566690574688183201, -3252377491834861195, -3528284199872997740, 7876887255114925769, 700978568808731054, 3803916299687175589, -5284520238857486386, -599662755718308132, -6580345462391161713, 6176318364253508557, -3594046521462368878, -7233474662900986966, 6355964777725646501, 6828832609039365593, 7562287463904653675, 2204546503972280474, 1869428483348394197, -7899929067605274838, -2383396151508976181, 8034087690199444385, 6874579810316536103, -6322382198234196208, 419275890943205365, -2085191372359300136, 5968798043155413735, -932031527176042585, 5388040523880484165, 461898528989928788, -715232068671645835, -8922639211447036143, -8096761305114316435, -3236211103310384351, 1881372113605023414, -1299323824700098773, 802652669520091095, 3315821290064046847, -106668578356189489, 4789137723587264111, 6397360589563042444, -5867838763030934202, 4227726615246448429, -2363229771169064955, 8578256947165841317, -5464373471248156816, 5548944336303535157, -5355044020475243347, 3676430678461429314, -4768626005601993394, 2380131140151434870, 5437300138618156115, -7373103434222585094, -7452511698541287132, -4521413833680549874, 1220269175615329491, -1914786582125376409, -4049844884170203564, 3739741816004650354, 3621743510991860970, 5104772173040729097, -1548009457453359434, -4576051620962433191, 6377135805777077304, 6979106950948880009, -2380951584843222971, 5002207812641585452, 8189105840492627008, -6199160587100232813, -3566296034962102375, -8042033280474226881, -5182960368819580170, 5613775420589438520, -1222213379744870959, 4825982155993584608, 1423206941916750439, 8119484250756329319, 3371135931259577992, 6075240640593029716, -2769038362977197555, -8814303763468003659, -5425110414160475152, -7692672686402470317, -6689542600856091604, 3682547288916981278, -1341093330931039881, 4690985846902990935, -1339325514993398094, -3391373635601748144, 1530650715520836187, -1687078732855929375, 3899533754553663923, 5987256195417381450, 4453235719108719488, 7827361674146291946, 9080646909953745170, 5274858176102302656, -5036197188828637567, -5049743599049738538, -3135434789178982889, -7628235580207541707, 6107114114033971382, -6114226849494918697, 5608838685413906197, -6937723657624255390, -7628251819894810732, 8022986931915008492, -7803338383647201975, -4034506131329034669, -718205102283194908, -193090188392439114, 37688476794436295, 6881875099211276822, 3042875580237928259, 8333182904601069437, 6493178119212924351, 5489293159001936004, -7022746238570093509, -4851772331184139427, -8311070650180564963, 3151316680217980373, -1345740359004803008, -4409174343064693862, 237911443534010819, 6126092043724567397, -611424561779931068, -1781982713468976035, 528395772810729688, -2675698531295076874, 8819775925321195224, -3069240014955522872, 8481671990631875994, -277984080292007044, 5140928494543443213, -8108883700641941361, 7356059136793280543, 3070297771191717458, -2771341269100490479, -1560508472353715353, -3474929014059437374, -1153199058162723268, 917853139525712508, 8640432636158491898, 6142339080951662770, 548500631279072898, -8476461135833169521, -4159617197626914084, 515247442687049151, -495524747625072704, -3012110547803670449, -7139662792587166763, -2045975340627033456, 7013354974400730627, 2018827032791947220, 7272038956969969761, 2636684762019771146, -1519577440702518433, -5206631380400671531, 1872280434308661803, 6845381779697338689, 249283871118870088, -4763695291379630245, -5028845377738508518, -7595638397745233180, -3296686077530734107, -9158935744830782795, -5929163766596689976, -8602173387728804886, 3212530697688790264, -2060641572282546200, 7774850380288338285, -8479082499152402438, -3659853246459095226, -7890489876545413350, 2310067672364823259, 5201688981041001082, -6624388990655398765, -4389531103896176765, 52303247201000527, -8963857887641190169, -2848719959401633529, -3492218922314025130, -286212841672118091, 6910911913900626552, -1882354033803954871, 5820380727734432268, 2161994346861990987, 8718513119608858979, -1718799960342158339, -5408887878435090773, -1118093215141611672, -2973058307952805745, 395950358530398942, 5228623685861287169, 789892986164753323, -2760959544132612701, -6509692211634624430, -1892637355773941004, 7464174069274133469, -494308735716426025, 192694623364458368, -7958701601452647620, -5698710533445328948, 5389447359793475284, -805180685206572879, 1507783624888228878, 263344715666591935, 1627393022376576485, -5977173528886582534, 2574037316724380660, 1197606705413881456, -2788676460612274512, -808343510873783459, 4860372902494825466, -7802831002227596824, -418926244575491428, 1384915479728165915, 8999680755334162144, -5017111661076017152, -8902012704874753224, -412280634688081171, 5763303617454769689, 6409060471768061987, -682567425579225761, -6673689309647796728, 4502906861034943858, 5751510914246891034, -3062588794736509002, 2023441953176497986, 1176663289903805889, 19066332409231330, -2141436333730702223, -4962344573037512508, 2033421198094997997, 6439896758054084763, -1914013744102585566, -3649762519635490226, 7228569678463459752, -2122296582948870452, 8958305905298651395, 8685967909928334596, -6159589761515752868, 6019402949700270982, -1925106525277225907, -1233266517125243409, -4094399085858737637, 7126688776378958289, -8458772095150964871, -1628931507826109808, 5007169845838577593, 6170186393582489586, 5363880204635331277, 5426845801798282786, 8403983493059014222, 7250306732447222493, 49764315851444995, -4146054035365756848, 6888160479482890842, 3100347670844132010, -6452694280124617575, 5274515630686863809, 3796493736459237226, 3146660665331545612, -621692155346727674, -5781650776524841727, -880154863219841030, 8240791672929978685, -1914279322475867787, 7486312447824331892, 8292490824586221033, -3068066203950082435, -2040533818122778178, 7397972830626842888, 8565456981697309760, -6988004813806901209, -1999858210661194391, -5323087492694189775, -404302209387747756, 5000031344786784350, 7123524111185735993, -3261476719680960728, 8864680976073618342, 1214431866277418213, -7922798610471932221, -3722788362240960255, -5274917483910181702, -8992279812668277748, 11490095067696953, -5835188705649475583, 7611275692147973057, -4777574693678933850, -4196023041142175725, 4463715560632029143, 8147722374472085671, -6302519681642041808, 3675960383438397332, -1149342947900415269, -6305199318707248530, 7816471621865250478, 7590065164808789473, 68381567132431240, 8241277432268636808, 2231515552009814468, 5763543485375680439, 7019085888699791015, -6879003465314359071, 1215628934640958892, 2637538407895454082, 7036902977572565924, -1043533918098090845, -7883156043574364781, 5061617047158189164, 5630407922324029092, 2800741708007510770, 8907188385545252090, 8036053608526509543, -6713148625006999814, -5203656980978211317, -7703821088782296905, -8545968355997121529, 4519774148965026980, -6560896651282582071, -45041637629860839, -6417147820478336473, 6713766319854365148, 8280737982575981141, 1013222882614485738, -6292640116513406829, 4341568350497348361, 3979287792925554148, -2811350520035191921, 7132113570102824029, 5716577319696818398, 1440334695107980156, -3145772670532559398, -1101672529325269094, -3594412454256533354, -2688208402943401854, -8260984540465995358, 6719534606121913635, 399536542483779658, 5806349038723267782, 7092389643419728600, 438363416345474241, 2137997681264461578, 1627845736495452252, -8841714518078737894, -2170547882785264756, -8644295224122625285, -5735882682188317957, -6493781268785023122, -65259049722235826, -2998149469953139504, -1491138851807147078, 3731025498425415543, 6139844565409490713, -1466547245974677516, -836985274427260844, 2786434068456474292, 8355700705723074138, -2917075977423804898, -1774988485943174504, -3433579803896489261, -3563152976223416255, 318554123974045443, 3452661287914442324, -5877221641014741523, -14268412093834117, 412853550659603603, -7980226404446528085, -4675773162082250069, 6952468424161020848, 2182477561695899233, 3755311030860332745, 47007405410932570, 3508582496680007300, -5777967608717124884, 5720078822638953693, -1654617319563547434, 3722906771839508256, -259172855764717178, -2234736509203163973, -8819466437244322414, 2092390386181953027, -5240863053439929547, 3513999820682997953, 3007865057458433815, 7226068936531822277, -591716371689805096, 1594693593601976128, 6536416984429402245, 102041162514542643, -6836179597586192692, 5190957116191949965, -2039666818149945289, -2450285801444142718, 63725461539385751, 2178107521092776615, 5563612399806651953, 2320321386595208002, -3719748083013969744, 3531533530874937104, -7392036372578777597, -3192348546060145520, 8568352012342931363, 9189608786151678952, 8573698754902722991, 7270539740383667246, -8490267571687330120, 7296285322202855583, 6644975184157470662, -1213218372099563369, -5471284161952390360, 4224226043575825523, 3450412705468284216, 7967401056248354679, 4858873986677985261, -1977269735354932724, 8473335322510121062, 299568138270148054, 5482997470842081420, 1355354729498386115, -6456176600429406489, 2427352668133766750, -1065011388908608348, -9202847638461612480, -1963160589789087636, 8480472720877400443, 3862330665958996039, -5791715685903940711, 7055976627572140028, -1059607121612676299, -7113158698803905104, -5332671839764465476, 7204246165484730587, 8276361729345344810, 9212977978571588741, 164935868094673898, 3294883572992056611, -8563881052911790316, 2459435713528751163, 7132102031657489574, 8325203804324313283, -6175013805707547416, 3171232015557313652, -9057633924184559186, -5511376752014162896, 669146928622106862, 907526703932058493, 5773598360690101264, -856676496944032646, 2753346084280310299, 5732138906555671375, 6527547582929330110, -9022778869087722706, 6133852001629085818, 3534201459490879154, -4635634806457417273, 2566197503021713127, 7831735166832749418, -6959178460206262056, 5342080630447021037, -5747917326892506646, -8531722148789092285, -4938743501696860908, 6975291072496129042, -4249829653789984665, -5850700133867370844, 4098816286744347575, 7885226298432869359, 7737661233777847867, 5355741857524352614, 8354026372279519577, -8705810084805165111, 2770015493051705423, 7342498002984883493, -7626615261219007420, 7873011338503914218, -7731411287846605798, 6689383473212002574, 1519209578276578205, -4101297036741953037, -1260237904293269858, 9883589859155429, -2018978708318736134, 9091074285216369972, 5144503478358324607, 4795623716270814214, 4293109009137256604, -2973347797927693629, 8489469641259771420, -3507877713132029445, -6512930947875638075, 2652229314524243965, 8612156788688797094, -5693114194000097908, -3488613360329886577, 4781662348138107183, -1950658930239048392, -4387908346585091923, 2191359768179452965, 9005226624727408235, 3328141205967449479, -2750509248272419161, 3354752180643334067, -3331240045569682907, 7789086071910252890, 8288153186154327356, 943183579624686465, -7702660541449044859, -2498450955359575913, -5696447838444716185, 7944026220203115472, 5622170245767812952, -76029556719692857, -8422720363470160202, -6128410831731299810, 1555743971114536406, -158634539301878855, -1055843658232973058, 6400591850307887020, -5520347365038650901, 6437704707762853058, 1651459750605859265, -4233101102144377186, -261904004265557278, 884918022678954036, 1857093075341298995, 7888968573750865301, 1806960097324242158, -4433350978261803007, -8540745341597740928, 438691352160538300, 155621796284382829, 5414267442257703676, 2843923225258448600, -3344245226195854688, 8131440449427375515, 3294048054342089438, -105835271247302022, 1266851160630930562, -401267563700688107, 3381753213177409256, 2881224016808024124, -870245686583860074, -1433638587903850612, 6790365917617356259, 6175586364154317778, 483702631646957156, 4338345020513320997, 3394210510728162061, -4600356528891829931, -651751792282353779, 5271418655338654615, 2494964057028321586, 1066323153992293110, 9183275581065689638, -2744399531146519554, -4498315925925368044, -7172065340864079715, 1814299786324921820, 5779442993767954086, 6832680254317099633, 1906578459510410922, 9220813437269109394, 4049326021830120864, -9015285113924542228, 566587196685399813, 7449295481030611708, -8214163677469037343, 5983973895981932602, -6154613609832240516, -8317829142721443501, -7830757364846718219, -3228950478819117773, 3721082271038057509, 8967476639555514829, -7562588608331788208, -5549848538738490397, 7156878508910117585, -4461310012346918904, -6710255377428479457, 4850009706005822603, 5485805683935757733, 5437811436986587311, -7092053553995290622, -1474055569577131147, 6535916784293750951, 8220107473328775945, -3434846670464881650, -6373618148984230396, 46502049185066278, 8290761409987693980, 7079762139835440296, 7215324406236041168, -6130832891326918705, 8115673698119591656, -8341584904652414050, 1156785767746010738, -566263493300889614, 6617372360668475723, -1474847155507435663, 5354402066513942386, -7761802620137706980, -8689492697976498537, -3282195350118920145, -5650166597333362245, 4902519631665973609, 4374985093573945032, -8618840377861263415, 2407969310632922947, 7803456239164919710, -5379249359013096455, 1221742894685007499, -8139913836342603674, 8587451955404758085, 5064847110710843241, -1585870436545733535, -1408813848212370814, 3204585782038570693, -5968338001140896441, 2398286792278968298, -5051742545918310125, 8883842717176141072, -679418600539279356, 5993048123059078305, -973782766008356227, 250758896609063322, 4044485075956143044, 8460843426290944489, -4530969686658735979, 2984642338854464618, 7337446939565758040, -2204806015354953619, 2387454742822944693, 7722353347557888137, 12932652591227622, 8400327537550472366, -5932787118003094088, -2972533930388915052, -7171094087750758446, 6743051705783615597, 2833262283773705740, 6134734210875305321, -4168955224815442748, 533864012766291569, 3631521924626528257, 5750519840403613602, 3262085623901833270, -1145043787013170431, 3878711658442029123, 6962197453188735916, 114102595709003150, -3340944863871297154, -3767387802004375038, -5204269366940244460, 725931748303290484, 9185110844563478718, -4502482306140437786, 2198540747953447696, 6340083044340941911, -2076551500218680374, -7948760407995782121, -548375891538329476, -4613012764187100356, 2739309748229481729, 4011355408402675193, 8009383781422613736, 2558113407593475904, 4907359590275798486, 6910566880149758652, 3576736579321814860, -165572955791601643, 5363087575526861923, -563304869650972709, -3268656857588619422, 1116516995287583715, 6696426220762656024, 1938740449392373175, -3923973375889931824, 4611904728486478843, 5377423516013080017, 8019626239597876319, 6017798894877345070, 1252881686488275935, 1839361815056067414, 5144686405932481158, -2762175018905322090, 745979355578731260, -5106464706983322678, 7903260197812632470, -2376078148733798684, -1100284360268841374, -2890698364123713314, 6092336096823809647, 1828670925731441754, -3746034563696928549, -1092787293428445271, 7953251726855208012, -3186317149184232330]), 42), 42)),) diff --git a/test/reference64/debug_parallel_spmms_no_atomics.txt b/test/reference64/debug_parallel_spmms_no_atomics.txt index ab9aa50d2..33893584b 100644 --- a/test/reference64/debug_parallel_spmms_no_atomics.txt +++ b/test/reference64/debug_parallel_spmms_no_atomics.txt @@ -8,7 +8,7 @@ julia> @finch begin end end end -(CR = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.004334271763144113, 0.19866796375858964, 0.05511378591134807, 0.37983318302160474, 0.0, 0.8329001018500983, 0.30166090609024687, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3289219868624648, 0.0, 0.15511617694464214, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18499887719318273, 0.0, 0.0, 0.0, 0.19259223593916178, 0.0, 0.0, 0.0638915620449496, 0.08125561754012361, 0.17659717140450376, 0.0, 0.0, 0.1525779960421776, 0.0, 0.0, 0.0, 0.0, 0.29196799055295863, 0.0, 0.0, 0.0, 0.5551667524029037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4594337414860906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3019846765891098, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18892258579898563, 0.0, 0.2395310548375412, 0.0, 0.359229579293753, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00028478282759787334, 0.0, 0.3432275013790356, 0.0, 0.0, 0.2972839943189292, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19540404365846636, 0.0, 0.0, 0.0, 0.0, 0.18546216890582629, 0.0, 0.0, 0.00916099623463154, 0.0, 0.034731738855626984, 0.4853088859188271, 0.0076713909171271105, 0.0, 0.0, 0.5640422262893099, 0.0, 0.5950501234938147, 0.040920156633969085, 0.0014920661060395996, 0.0, 0.08081663901361853, 0.8825202410318094, 0.0, 0.006218090636031004, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3280555235834662, 0.03812149119614576, 0.0, 0.05190957475021724, 0.0, 0.06033708819060236, 0.0, 0.10124291140603807, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5085302772239245, 0.0, 0.5334307954394755, 0.0, 0.0, 0.2328402544634388, 0.0, 0.005816161517311894, 1.5317318593263975, 0.0, 0.46738125332221536, 0.0, 0.09813163178688389, 0.4394739409933983, 0.0, 0.26102098784262384, 0.0, 0.0, 0.0, 0.0, 0.8804155352247423, 0.0, 0.0, 0.48240400321886606, 0.3763091458911055, 0.6151496795666793, 0.0, 0.27268296540705483, 0.0, 0.0014290584461454537, 0.0, 0.0, 0.0, 0.5294637260878591, 0.0, 0.0, 0.0, 0.31181862629226015, 0.0, 0.34152287293383227, 0.1986997482112381, 0.2527011428302912, 0.0, 0.434749031361829, 0.0, 0.4472075705110786, 0.4092092126159339, 0.2807873539680881, 0.17401521117970595, 0.0, 0.0, 0.43733948883443596, 0.5485693747724284, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0983266821553666, 0.05373620000037918, 0.49612300100963586, 0.0, 0.0, 1.075151264033199, 0.0, 0.18716105879611752, 0.03950202184626144, 0.0, 0.0, 0.7852572057826378, 0.0, 0.0, 0.08756438716142145, 0.27446263899702106, 0.0, 0.0, 0.07204260281080108, 0.0, 0.09291620627436281, 0.23270017215835156, 0.23824566618105675, 0.0, 0.0, 0.0, 0.13665872084048475, 0.0, 0.0, 0.0067937121060301624, 0.1164801427986044, 0.0, 0.5691621002508566, 0.4713388661713567, 0.41358181631025637, 0.0, 0.3128607440091297, 0.0, 0.0, 0.20424594336339066, 0.0, 0.0, 0.7442286193021344, 0.10553727794892508, 0.0, 0.30186901767997887, 0.0, 0.0, 0.0, 0.32291683563950796, 0.07758151598185183, 0.0, 0.347786535534979, 0.7360230359944353, 0.0, 0.0, 0.0, 0.8757273805535595, 0.41322710295268655, 0.0, 0.25679112297862333, 0.17774302673574222, 0.5841939760860391, 0.0, 0.0, 0.0, 0.13300779742001662, 0.16915583797139946, 0.0, 0.0, 0.0, 0.7164740353603845, 0.45156468002631484, 0.0, 0.27217311439601866, 0.7084784766971438, 0.06835326871026481, 0.0, 0.0, 0.0, 0.2861016237491002, 1.0700436562849107, 0.135740840434777, 0.2599664462430113, 0.45536369102376945, 0.0, 0.0, 0.0, 0.16460938932017066, 0.9424546774296569, 0.4980075807530193, 0.501649117240962, 0.9215918221852557, 0.0, 0.5227646022766553, 0.46865433734477785, 0.0, 0.1899494468105599, 0.0, 0.14204872822901377, 0.7891527088162923, 0.2800775160398023, 0.0, 0.0, 0.6038144125549446, 0.0, 0.4101280976499608, 0.15813547044885462, 0.4381740566617935, 0.0025678619479343042, 0.5913196381458786, 0.01581382625018507, 0.4317825799661969, 0.0, 0.5361217114844467, 0.16404576969544252, 0.0, 0.03623369485950333, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19327505078226082, 0.1125279795645968, 0.0, 0.38171505913646114, 0.0, 0.0012820843611261621, 0.0, 0.0, 0.017018867107690273, 0.0, 0.018573326277702022, 0.7755881641075008, 0.12996991545193906, 0.0, 0.18005632805213245, 0.0, 0.2451805301156947, 0.0, 0.3747092870507497, 0.0, 0.4781929115858312, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.35214721497251084, 0.0, 0.020304118651362432, 0.14466279308909658, 0.626862644216891, 0.0, 0.0, 1.5549351131665947, 0.30737844662289215, 0.0, 0.0, 0.0, 0.0, 0.009701873820892715, 0.2520412914553624, 0.018396624198184493, 0.0, 0.7982268230101296, 0.0, 0.9201682818000929, 0.0, 0.0, 0.7342011144064367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09396246898802936, 0.0, 0.5073258744317697, 0.22284199906817412, 0.10151898941699102, 0.03180992568768135, 0.0, 0.5543686635557524, 0.0, 0.0, 0.0, 0.22367207355552704, 0.0, 0.0, 0.0, 0.40880306935546484, 0.0, 0.42113696363931935, 0.0, 0.0, 0.0, 0.43326306412219423, 0.39232717474974355, 0.0, 0.0, 0.0, 0.013675206005982276, 0.0, 0.2603519242467926, 0.3502025254743841, 0.14312660068897712, 0.34775162340880994, 0.20310882214946477, 0.0, 0.27127891969267615, 0.0, 0.0, 0.020541404680713544, 0.0, 0.0, 0.1991870263338475, 0.0, 0.0, 0.2456237488004554, 0.12123860127246498, 0.2079074067296303, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24646978770136238, 0.15225808974571345, 0.0, 0.0, 0.46988488666249073, 0.16461741428636234, 0.4415386194506142, 0.05631807188893752, 0.0611318669096905, 0.0, 0.0, 0.0, 0.5215534136524774, 0.0, 0.0, 0.6274626509368973, 0.038256585847320265, 0.530070634494204, 0.0, 0.7877809268797783, 0.25601250351282806, 0.37534186876141573, 0.700013095645165, 0.0, 0.29431110179251513, 0.22882177649965688, 1.0569304890861846, 0.0, 0.0, 0.0, 0.0, 0.02833923205698933, 0.02572736738919585, 0.0, 0.1150475064446459, 0.24371977071087828, 0.0, 0.0, 0.044121908414131224, 0.0771055384425919, 0.09695789652483547, 0.0, 0.0, 0.0, 0.12020713596947674, 0.045249684273424934, 0.8721213827038133, 0.0, 0.11731035534021127, 0.37569616707373005, 0.0, 0.0, 0.9570606189270042, 0.9086284112098039, 0.20027308709305888, 0.4268041763647709, 0.0, 0.0, 0.015909944043088663, 0.0, 0.7658973441527888, 0.0, 0.19507759787979717, 0.3226660152512004, 0.23629991340839918, 0.0, 0.13848101841219138, 0.0, 0.0, 0.24578615843203896, 0.0, 0.0, 0.10167993256702677, 0.0, 0.0, 0.12538470338440244, 0.9934363459809055, 0.10613146591697438, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6421265863141966, 0.0, 0.5400344618364347, 0.025731716559651077, 0.0, 0.0, 0.0, 0.007521097208030019, 0.5455660054203588, 0.0, 1.1209603429913297, 0.0, 0.0, 0.5234607155600556, 0.0, 0.023977651748011766, 0.0, 0.0, 0.0, 0.27798322874225667, 0.0, 0.35612425891926536, 0.0, 0.7529913555346315, 0.6214420882570796, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12146506806205652, 0.0, 0.3210215267482459, 0.0, 0.0, 0.0, 0.33419799384234544, 0.0, 0.0, 0.15359727591834285, 0.19534099821264672, 0.525863863274946, 0.0, 0.0, 0.34569678733330644, 0.0, 0.0, 0.3415674397857982, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.523004359259986, 0.0, 0.22235180304591923, 0.0, 0.00635695661054767, 0.0, 0.0, 0.0843846185513356, 0.0, 0.0, 0.0, 0.8855039996037297, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27294552017018114, 0.0, 0.3412878895624823, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5864608505347954, 0.0, 0.10380099346078346, 0.02524889717437322, 0.0, 0.0, 0.38157075730498896, 0.0, 0.0, 0.0, 0.45469484904050655, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26459586877877683, 0.18314523505716396, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22372814141562178, 0.0, 0.0, 0.0, 0.6276845275284666, 0.18331203344516112, 0.25689720406507865, 0.04048914090414101, 0.0, 0.016969058333515752, 0.0, 0.5911567891086366, 0.37358991094373184, 0.21597413111529512, 0.09535966106843696, 0.021909623318208237, 0.49412659112391777, 0.39229708641560146, 0.0, 0.0, 0.5239905526116051, 0.22383442432789932, 0.0, 0.408761833081477, 0.7858251636352953, 0.0, 0.03095169444374481, 1.0134328993353359, 0.0, 0.5783663988186404, 0.023349871375665725, 0.4068090650141155, 0.3701047391436106, 0.7170357796952346, 0.31327392774306395, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.39350494784782397, 0.07595368484327951, 0.4868292236818003, 0.046986031631648606, 0.530207151960747, 0.01037806421927761, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05535788985307855, 0.7394134258901907, 0.17106635844034493, 0.9821443208953105, 0.0, 0.008962807708770178, 0.0, 0.0, 0.11897566020800357, 0.0, 0.0, 0.0, 1.2828090910806784, 0.0, 0.4691443493685695, 0.0, 0.07022467062008277, 0.18231155361607748, 0.41302392682414213, 0.0, 0.13696413696930718, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.423686950315378, 0.0, 0.5297732126841366, 0.0, 0.10086209606266386, 0.4105665706595916, 0.2899236467445781, 0.08479167779863508, 0.0, 1.1607169616195545, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44056670549109944, 0.0036426275414389976, 0.22268017654499572, 0.70259131988822, 0.021981713208965886, 0.0, 0.0, 0.0, 0.6644482698446481, 0.5559910462571956, 0.9081368976941899, 0.9545466439826781, 0.0, 0.5800820874802947, 0.6131061961157059, 0.0, 0.3387938943904664, 0.0, 0.41233232521209184, 0.6892320892052487, 0.9168247018477867, 0.7592095444656833, 0.0, 0.7080274090242662, 0.0, 0.0, 0.7409103227795685, 0.4891910517462003, 0.0, 0.0, 0.6996898878138225, 0.18201720925245757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.033060035104523045, 0.0, 0.0, 0.0, 0.0, 0.0010434833431631984, 0.0, 0.0, 0.0, 0.010921241238865733, 0.0, 0.015498170387323498, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.011618017340433275, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2104054739321471, 0.0, 0.0, 0.0, 0.051249741424478176, 0.0, 0.0, 0.0, 0.09744956100917274, 0.0, 0.0, 0.0, 0.0, 0.10766993925868745, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18951483497887683, 0.5969374604132631, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6248091001560899, 0.0, 0.0, 0.0, 0.0, 0.18617398114562853, 0.0530079909103574, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14076422137873648, 0.3823151552281139, 0.28535858102685935, 0.3054264047421474, 0.0, 0.0, 0.5425991952026914, 0.16566917168527906, 0.0, 0.0, 0.24572721112234908, 0.0, 0.0, 0.311993347128524, 0.0, 1.0231061248638629, 0.5939954507294103, 0.5983388707717968, 0.7851882761904205, 0.0, 0.28209866162610053, 0.46470151179975694, 0.0, 0.22767102275324697, 0.0, 0.0, 0.3351791998251741, 0.0, 0.0, 0.0, 0.3258354466053841, 0.29514851487698524, 0.25858133097678015, 0.1886151008053812, 0.5226293862659805, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0442888167727012, 0.0, 0.002505192641426779, 0.0, 0.0, 0.07664740890754863, 0.0, 0.0, 0.013363010227595206, 0.00048725362450601585, 0.002419244088482629, 0.026391726291740327, 0.0, 0.0, 0.03460717393330891, 0.0, 0.13624247986958654, 0.0, 0.0, 0.0, 0.0, 0.0, 0.012449069569846, 0.0, 0.016951747875799564, 0.0, 0.0197038621774241, 0.0, 0.033062191640471625, 0.07310509907314719, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06556034095953286, 0.0, 0.02434740964367002, 0.0, 0.0, 0.13592547532623306, 0.0, 0.030022610188286405, 0.03795734899490777, 0.008699370747195389, 0.0, 0.0, 0.18940737674761182, 0.16014434992779022, 0.0058393216511455045, 0.0, 0.3162824676834449, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14919154588027264, 0.0, 0.20315232851529888, 0.0, 0.27582528532656464, 0.0, 0.3962223404212856, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00142596300027198, 0.0, 0.008781597914028754, 0.2917830655969515, 0.0, 0.0, 0.3010196130390429, 1.085161420061463, 0.0, 0.8818413438369698, 0.0, 0.14807253735972709, 0.6682230613653689, 0.6738718955158736, 0.0, 0.2921120382906695, 0.0, 0.23016863424694362, 0.44343897402347887, 0.0, 0.0, 1.2859761704109314, 1.188418751121335, 0.0, 0.4620501506594876, 0.23396469855670338, 0.0, 0.03498671823904876, 0.0, 0.0, 0.3392611399043929, 0.20497564811318061, 0.0, 0.4183535169904413, 0.20649711391931772, 0.520902106226398, 0.0, 0.0, 0.16125806820737418, 0.5576988707246249, 0.0, 0.0, 0.0, 0.11391623120681071, 0.0, 0.0, 0.09151851725619714, 0.0, 0.0, 1.197254000111945, 0.0, 0.8775820846458859, 0.0, 0.5629797627532018, 0.6687057520979063, 0.341227000414515, 0.0, 0.25482576175079585, 0.0, 0.39537376259476137, 0.4437592920364036, 0.0, 0.0, 0.5927285333298421, 0.651986303075751, 0.0, 1.0434591895456948, 0.0, 0.0, 0.03501199088471498, 0.0, 0.0, 0.3395062050893736, 0.15619471223870085, 0.0, 0.41865571453083017, 0.20664627704903807, 0.48238135206809674, 0.08860575544817058, 0.0, 0.005695035181786341, 0.42497543210880456, 0.0, 0.23934194260454025, 0.30438882267274336, 0.2874361482000896, 0.0, 0.0, 0.6245971595264426, 0.0, 0.3639559852559372, 0.0, 0.0, 0.20575691959192335, 0.0, 0.5994751724692355, 0.0, 0.0, 0.0, 0.0, 0.002904710270589501, 0.0, 0.27722048222724693, 0.15720637186052522, 0.0, 0.40582979792580204, 0.3276141191929195, 0.0, 0.5216472712210337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.022828121623522435, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.111114554054197, 0.0, 0.0, 0.005523835481493179, 0.12589753624924738, 0.4223352609451343, 0.19512225997871732, 0.9646462752755526, 0.0, 0.0, 0.908234546074678, 0.0, 0.1303083320340461, 0.4180115467796097, 0.3502002628164635, 0.005797584702932196, 0.620011620521792, 0.6673813159226286, 0.0030737631986123407, 0.0, 0.42144642014638856, 1.0414378536891689, 0.6289622414694364, 1.5563606265339154, 0.08385396416867873, 0.3115994197854627, 0.7117829870894571, 0.6381078265340546, 0.0, 0.23989801450652898, 0.0, 0.5826228436020011, 0.8457142287971168, 0.0, 0.0, 0.0, 1.0193786877434905, 0.0, 0.0, 0.19971832516875276, 0.5533950636153777, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21472741909783344, 0.39082851888093567, 0.44716245502350144, 0.2879713896328549, 0.5511368948723377, 0.33565164359388877, 1.3517828371888283, 0.0, 0.09957607530690628, 0.0, 0.0, 0.26103163435011795, 0.3965287786994862, 0.6597151598792015, 0.0, 0.34286845579856556, 0.3900059867245693, 0.34423839922938515, 0.0, 1.2842745238771571, 0.3694211002080512, 0.0, 0.05489702502604951, 0.3645945046142821, 0.0, 0.0, 0.08041277613458127, 0.2893532857853331, 0.0, 0.5419495915870312, 0.70973704371772, 0.06597297072421819, 0.0, 0.0, 0.28417074423649047, 0.45673560467870195, 0.1772454725351981, 0.22541615615699262, 0.08077018346809645, 0.5662548477384789, 0.07678831671440492, 0.7573984424681688, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4826509895037858, 0.0, 0.7156459126461995, 0.0, 0.0, 0.0, 0.0, 0.0, 0.013563432420802306, 0.4559162518278489, 0.0, 0.0, 0.0, 0.0, 0.26262283944881243, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16505781512417061, 0.2933206286622639, 0.0, 0.0, 0.0, 0.0, 0.40289003757510067, 0.0, 0.0, 0.0, 0.6372941893353361, 0.0, 0.6237934507673457, 0.8070702584067075, 0.0, 0.0, 0.3379623279083573, 0.0, 0.46129991809862586, 0.7333015288992237, 0.21031442023566344, 0.0, 0.7041420713561054, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7760176053652288, 0.0, 1.0534236649773678, 0.0, 0.0, 0.8070780011372765, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4823716017908521, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6208306891807599, 0.0, 0.0, 0.01732988822073383, 0.2738833349341264, 0.10672374403860475, 0.0, 0.008043590060480383, 0.0, 0.055277084044920086, 0.0, 0.0, 0.17943961322559207, 0.0, 0.0, 0.0, 0.0, 0.0, 0.718108290096912, 0.0, 0.0, 0.0, 0.008728384689335622, 0.0, 0.1697763404331079, 0.11586384141065409, 0.0, 0.0, 0.0, 0.8848305575683707, 0.0, 0.8449968950182224, 0.0, 0.0, 0.0, 0.6706152313255382, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8308196053978146, 0.0, 0.9175002824131868, 0.7530109173431534, 0.022342425693822682, 0.0, 0.0035915524463436964, 0.15288943835905894, 0.0, 0.5199425421439203, 0.11917728725476327, 0.3521011644457409, 0.0, 0.822488739774635, 0.513543493422637, 0.2981570434312181, 0.0, 0.0, 1.2701086711578897, 0.0, 0.11247893732510689, 0.0, 0.039332390318575425, 0.0, 0.11102635670488926, 0.0, 0.15118325075382752, 0.0, 0.1757278339799435, 0.0, 0.2948633760880991, 0.15371975197149906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04453230950399372, 0.0, 0.05568267952698087, 0.0, 0.21714106205060016, 0.0, 0.0, 0.0, 0.0, 0.7213227431120439, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2701718137836067, 0.0, 0.06123281377737304, 0.4007297534572718, 0.0, 0.0, 0.02350606599699272, 0.0, 0.47270164239805296, 0.39554302818161685, 0.39843532224568856, 0.0, 0.0, 0.46004399190355705, 0.41242580548884994, 0.0, 0.15086754157289264, 0.0, 0.0, 0.5466072621606027, 0.18414300130678235, 0.2087681866233734, 0.0, 0.5313695523968773, 0.0, 0.0, 0.2807883504872339, 0.34802019073798685, 0.0, 0.09776175774612722, 0.1924014129464173, 0.0, 0.0, 0.0, 0.2995245510564702, 0.1439415371971276, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09612835370305864, 0.0, 0.07178793274997196, 0.0, 0.0, 0.0, 0.529229742886101, 0.0, 0.0, 0.5898615183638936, 0.0, 0.1996504875270556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07685007162501065, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4724449949223617, 0.0, 0.21985358976027652, 0.0, 0.0, 0.0, 0.6511036698044336, 0.5394783324223208, 0.9048355234024855, 0.0, 0.0, 0.0, 0.008134079103649166, 0.17236516549262873, 0.0, 0.7108281927774538, 0.0, 0.0, 0.0, 0.8245834715993663, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22989626507902333, 0.12442621872484774, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3037122713618223, 0.0, 0.0, 0.008259351424073042, 0.4378900919766154, 0.05086408498890661, 0.31974807102322866, 0.0, 0.0, 0.7960980638875322, 0.0689135689704732, 0.0, 0.0, 0.0, 0.20359294387478752, 0.9097633301509839, 0.0, 0.6841090251831579, 0.0, 0.6154584825649704, 0.7335150023327748, 1.015637287349907, 0.0, 0.0779165260149525, 1.1277817941657742, 0.0, 0.0, 0.3457097793442966, 0.6958114560471119, 0.22297907055084815, 0.02617735461213243, 0.8271866794310433, 0.0, 0.25383801660715655, 0.0, 0.6564805026462143, 0.4519424562793308, 0.8175733700968422, 0.26495100977979114, 0.0, 0.0, 0.0, 0.33910693050583907, 0.0, 0.0, 0.0, 0.4889218480481046, 0.0, 0.3925649791995639, 1.5627863234111485, 0.8201598086100989, 0.28474440170274185, 1.0514838770367962, 0.010290531779792767, 0.0, 0.0, 1.5282247448720891, 0.4202365445740981, 0.38631591015261757, 0.07827208426350975, 0.002001482371009478, 0.19978631068641475, 0.10840878806592323, 0.8849580765325739, 0.7025926608640433, 0.21468725597950544, 0.6515266028885637, 0.304659479667613, 0.0, 0.5203661079080213, 0.1989832785613875, 0.22866153178235926, 0.2129788116497342, 0.0511368043793991, 0.0, 0.06963236972450947, 0.0, 0.08093717687353573, 0.0, 0.3254291820176872, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4944791980843742, 0.5417407856384763, 0.0, 0.4343792686365096, 1.5442785077006684, 0.0, 0.13746522377571999, 0.0, 0.0, 0.0, 0.0, 0.01933245239450143, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44623451745418, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.30502005455201636, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.014872981553739924, 0.0, 0.0, 0.0007393802182031884, 0.0, 0.14653699929908884, 0.0, 0.0, 0.26188312990151436, 0.028159286104530473, 0.0, 0.4084686341089707, 0.9235151006259961, 0.5957064186534903, 0.0, 0.0, 0.5535709817494249, 0.0, 0.25891613288066156, 0.07783302925410085, 0.2939591160629263, 0.1987201643010643, 0.0, 0.09767541007114018, 0.4120929351702914, 0.22225830848448824, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13739476210353194, 0.0, 0.037597515302596925, 0.0, 0.0, 0.31874062595288627, 0.33536722163001637, 0.0, 0.0, 0.0, 0.48352996362981304, 0.0, 0.38851289261478805, 0.6830254018960756, 0.3364461001285706, 0.8253161071254982, 0.0, 0.2348841918025421, 0.0, 0.4205219693225024, 0.5314960091024892, 0.0, 0.0, 0.10178270195612651, 0.0, 0.0, 0.780835547454152, 0.5872223143240599, 0.2503853190515238, 0.0, 0.0, 0.6150976289535472, 0.0, 0.09445718365268194, 0.0, 0.0, 0.17331386223779208, 1.5139967025892487, 0.0, 0.0031631037123804793, 0.0, 0.0, 0.20592512324808152, 0.0, 0.03635874582185372, 0.0, 0.20018457152414249, 0.22068196040992705, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), 42), 42)),) +(CR = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.01855804465451247, 0.0, 0.0, 0.03641425883740431, 0.0568080930379847, 0.10109716846875504, 0.0, 0.0, 0.0, 0.0, 0.005424838537552436, 0.0, 0.0, 0.5251896042062963, 0.0, 0.0, 0.0, 0.00515342598991506, 0.045980273053842245, 0.0, 0.4033688458623361, 0.0510673466163073, 0.0, 0.0, 0.02134197385615031, 0.01687808266981965, 0.0, 0.4932447371732914, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7178045198025068, 0.2106682695954306, 0.0, 0.3115118572371521, 0.5170963380295581, 0.39595498771521426, 0.1432663403816299, 0.5698542189659496, 0.0, 0.0, 0.0, 0.5317966816929195, 0.0, 0.5315818882594147, 0.8168445783005969, 0.0, 0.0, 0.0, 0.01222733860627223, 0.0, 0.716756885645577, 0.0, 0.8217284580618865, 0.48234209517721377, 0.15545502627894098, 0.04826321760798536, 0.0, 0.0, 0.1394038038151463, 0.0, 0.056802678199824076, 0.0, 0.0, 0.0, 0.3128541399180126, 0.0, 0.0, 0.596593418834028, 0.0, 0.2846892571697076, 0.0, 0.0, 0.0, 0.23365792107187477, 0.0, 0.0, 0.4584793374366712, 0.7152510496888798, 0.0, 0.0, 0.0, 0.8190896825195866, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11127793558853107, 0.0, 0.5789217135796446, 0.0, 0.0, 0.6429712972008511, 0.0, 0.0, 0.661506988212563, 0.7629272979371657, 0.0, 0.4234710523361336, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4257443064600869, 0.0, 0.20425497460318195, 0.0, 0.5184318202957809, 0.5906121758765186, 0.0, 0.9091367634018797, 0.0, 0.30652125262867885, 0.0, 0.7954054080966687, 0.0, 0.0, 0.0, 1.0559083316811368, 0.0, 0.04427154393293609, 0.8228955354751877, 0.46658038808648383, 0.0, 0.02688606839966265, 0.0, 0.0, 0.6276611460113729, 0.22522673327345408, 0.0, 0.12308651028821192, 0.3657688390111318, 0.0, 0.046115245088609334, 0.0, 0.5342436705087195, 0.0, 0.1923886832463953, 0.07621763959827882, 0.0, 0.0, 0.0, 0.6725528112574624, 0.7483589153917343, 0.0, 0.0, 0.0, 0.0, 0.38949567271561986, 0.16492548861911044, 0.10519585180914466, 0.8853743380662012, 0.957787822214843, 0.0, 0.05459549529270359, 0.25656057396140347, 0.14167223917141744, 0.03949155262056029, 0.0, 0.0, 0.2703834370419471, 0.0, 0.723362221877522, 0.0, 0.0, 0.0, 0.7883757417725614, 0.0, 0.03340589062163017, 0.18896261922152233, 0.0, 0.0, 0.8122657251866786, 0.029607718570353176, 0.0, 0.008213735995679807, 0.0, 0.08605746445745502, 0.0, 0.3070376563830936, 0.10398717208817806, 0.0, 0.0, 0.0, 0.383984202548332, 0.0, 0.0, 0.3036396360576457, 0.0, 0.0, 0.0, 0.0, 0.11965354383371518, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04825455862354496, 0.3335108938296942, 0.0, 0.0, 0.0, 0.0, 0.04121745447265487, 0.30594446336043757, 0.0, 0.33550494159326405, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029116195807012437, 0.0, 0.0, 0.0, 0.0, 0.0, 0.020041236855252602, 0.0, 0.4850188795993097, 0.0, 0.16403823255879735, 0.0, 0.60023572778736, 0.0, 0.1787344157826609, 0.0, 0.0, 0.17233073276918714, 0.17532212882841147, 0.6209016656456683, 0.5984929062073807, 0.8843163905991084, 0.3337919143714591, 0.0, 1.0919707374354302, 0.8166713304287454, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8330317657834686, 0.27201200741148646, 0.0, 0.8995473587201992, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6388227016456749, 0.0, 0.3682672817259989, 0.0, 0.5422113050459496, 0.0, 0.028602469161704683, 0.0, 0.0, 0.3611222515381231, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.031337192831751, 0.0, 0.0, 0.7687924758178234, 0.012617011188267763, 0.0, 0.0, 0.37315715294884366, 0.0, 0.0, 0.0, 0.0, 0.6888779809403613, 0.121001715761302, 0.0, 0.0, 0.3680175749172942, 0.47420475938210593, 0.0, 0.7604201795169553, 0.0, 0.11917670920609563, 0.0, 0.20848198246903302, 0.24926285864223433, 0.0, 0.5553692000145817, 0.4169252107806106, 0.16597755096800731, 0.7334771026528798, 0.0, 0.0, 0.09908991746260937, 0.0, 0.14652270264303283, 0.006759647910977647, 0.0, 0.9351545954529237, 1.2960299208884896, 0.0, 0.0, 0.21191619141709428, 0.0, 0.0, 0.0, 0.01204540426582532, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06493914883934329, 0.7726981572397796, 0.0, 0.4370686273737238, 0.1778273534538074, 0.055209023869020324, 0.0, 0.0, 0.0, 0.05709969797354255, 0.0, 0.0, 0.0, 0.0, 0.44808598581285264, 0.0, 0.0, 0.0, 0.21141909545938053, 0.13390642572615394, 0.0, 0.0, 0.0, 0.25844994675864025, 0.0, 0.51617125876173, 0.2544268105667549, 0.0, 0.17576058376064335, 0.29087109088619356, 0.0, 0.0, 0.3286889977164017, 0.0, 0.0644707079973061, 0.0, 0.018682819036845075, 0.008522941045952347, 0.0, 0.0, 0.2520720928277996, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.146066293561638, 0.08856351358209161, 0.0, 0.0, 0.0, 0.1407746062228793, 0.5246446552397386, 0.0, 0.0, 0.0, 0.3279179855015388, 0.46137944574560436, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14330339619658897, 0.11500988018505275, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7444467047874328, 0.0, 0.0, 0.40713437972280675, 0.0, 0.0, 0.0, 0.5717679971406524, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4877440937322302, 0.6991654372087778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2369682176872117, 0.0, 0.0, 0.6757556051622259, 0.0, 0.0, 0.0, 0.576368321209737, 0.04986303698751877, 0.0, 0.5384684335273707, 0.0, 0.21524971756673417, 0.4963922980972075, 0.0, 0.0, 0.0, 0.0, 0.18940210229325644, 0.5277692784584271, 0.7718932464687741, 0.7210929692294604, 0.0, 0.0, 0.0, 0.0, 0.48286176484120297, 0.8517937989915767, 0.3931693184679991, 0.0, 0.0, 0.06755455710060922, 0.0, 0.026695131792948763, 1.4844324548606433, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4524914530619723, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4694831016582333, 0.0, 0.42831526212260856, 0.6074590079807168, 0.30066361967157035, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6129938591206631, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6008436638333436, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.43882326364474644, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8591062832739853, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6928708028466394, 0.2819039698547807, 0.08752108546971657, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05246236611269018, 0.0, 0.0, 0.5428804251437249, 0.022819504909203123, 0.3729965675892053, 0.0, 0.5741583158437262, 0.0, 0.1935811346150516, 0.0, 0.5023321549740235, 0.2611826745866744, 0.0, 0.056899028261467276, 0.37961815387770637, 0.22527271986010186, 0.05171423855571594, 0.058968538904135746, 0.0, 0.02892983665470066, 0.003313037290954743, 0.0, 0.0, 0.15785301822506514, 0.0, 0.0, 0.07773433689527456, 0.1049811110510813, 0.0, 0.02912372760696772, 0.0, 0.3114315285072337, 0.5703037753007745, 0.0, 0.04813466284828647, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02241933195791073, 0.0, 0.0, 0.0, 0.0, 0.23199999736075347, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1927795141790272, 0.2407119020891451, 0.0, 0.21960445663579467, 0.5770903406753464, 0.15415530724008072, 0.23155572792080611, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3142922871488459, 0.0, 0.0, 0.0, 0.0, 0.3042889785067072, 0.0, 0.5129566600174419, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3746354155106774, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4789154917746846, 0.17517544375428362, 0.0, 0.0, 0.0, 0.2637662382252967, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2102700997979013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.126545263019808, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.332133943612647, 0.0, 0.0, 0.0, 0.06184093060913505, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3212574037659458, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24673989573277713, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3017167941185386, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6233354196759152, 0.0, 0.0, 0.0, 0.5447611694646652, 0.0, 0.0, 0.216176776357065, 0.0, 0.19855221622967104, 0.8686764576101142, 0.16350923987929902, 0.0, 0.0, 0.02334951098786776, 0.17107621812888604, 0.48682879160279025, 0.7109808359466632, 0.6651558420918936, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6192268761337199, 0.31206921876898447, 0.0, 0.0, 0.24595989001208304, 0.11068536977374843, 0.0, 0.6618395820988949, 0.11362642836904417, 0.0, 0.0, 0.23765422406147768, 0.0, 0.0, 0.8073352785417658, 0.0, 0.0, 0.48485062583878286, 1.055137179889336, 0.2671063045394923, 0.0, 0.8476204266733893, 0.473385026956602, 0.5030912229948215, 0.0, 0.0, 0.0, 0.17678971866264329, 0.4076988147485064, 0.0, 0.6776909084507561, 0.13779930009477406, 0.5691281649873949, 0.16622169517158358, 0.433469475882236, 0.818379113845578, 0.9106844436778354, 0.0, 0.499393081506665, 0.0, 0.5725309586159512, 0.6160013948015824, 0.5125607980557373, 0.2778645861379971, 0.0, 0.0, 0.0, 0.0, 0.0, 0.58929804834674, 0.0, 0.8046233984476477, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3967677816937078, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11707526901952116, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.383435421983313, 0.11707115655719894, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07864429232511502, 0.0, 0.0, 0.3002587300128159, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2266804769859352, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24215921984980293, 0.09852579316681935, 0.030588729804574537, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18874358875246125, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3978422171614565, 0.1936032919321414, 0.0, 0.0, 0.2542147176776134, 0.0, 0.0, 0.0, 0.11057553114503467, 0.0, 6.012518808232222e-5, 0.0008825884581384356, 0.6460696181307314, 0.0, 0.0, 0.06879188140017427, 0.0, 0.0, 0.04716298956935701, 0.1540138997690347, 0.1854894997474166, 0.003124358567077274, 0.35109153378778224, 0.0, 0.0, 0.016293742009993128, 0.0, 0.0, 0.3747805868672189, 0.025859295570033313, 0.214029422856965, 0.003742959361061961, 0.0002933458280023473, 0.0, 0.0, 0.0, 0.030501494612752977, 0.0, 0.6996784734474946, 0.0, 0.0, 0.05616866413207192, 0.0, 0.0018184995370819535, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.020171782722387992, 0.0, 0.0, 0.33279196588498333, 0.0, 0.0, 0.6323890570808377, 0.0, 0.0, 0.0, 0.03594525644730097, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004527887543653786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17039388977135247, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6309056496928738, 0.0, 0.0, 0.0, 0.0, 0.260280820884557, 0.0, 0.0, 0.5107183088816271, 0.7967464980324664, 0.14485492608681305, 0.0, 0.009558078807310686, 0.754701551784825, 0.0, 0.0, 0.0, 0.0, 0.7598764239846039, 0.0, 0.029177780358136646, 0.10253044625069853, 0.03763219091970284, 0.8115624154017409, 0.0, 0.5779584654853126, 0.7162312164421211, 0.0, 0.0, 0.9107472399622886, 0.7029540573396418, 0.0, 1.0969174796040306, 0.0, 0.0, 0.0, 0.0, 0.0038591832437520454, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15366266383288085, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.558080611304664, 0.0, 0.0, 0.0, 0.0, 0.30736701150515244, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04311886842935436, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32751189175201845, 0.0, 0.20963216887545572, 0.1760259950046517, 0.0, 0.23753864749234863, 0.24093292162050975, 0.024684548149881243, 0.4936183719527589, 0.7064246796060082, 0.0, 0.06677453327599289, 0.8542035190842152, 0.0, 0.025534429812218047, 0.011379900282647532, 0.039800411165778926, 0.013727111201321645, 0.27843394547131894, 0.24161261590501448, 0.2499939278392831, 0.0, 0.0, 0.3450248607837782, 0.0, 0.0, 0.15272914557490577, 0.10495111476871369, 0.0, 0.0, 0.0, 0.18866875753074405, 0.0, 0.2225813946448797, 0.0, 0.0, 0.3661590836002555, 0.0, 0.0, 0.0, 0.8998957690359772, 0.30889178773893766, 0.6078813570942335, 0.0, 0.6840699471933163, 0.0, 0.0, 0.0, 0.36308986165522683, 0.752528074611531, 0.7191770460546526, 0.49508503625401296, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7784554319844289, 0.16352298326175332, 0.0, 0.042948548224867954, 0.375190336410357, 0.0, 0.6830715485727474, 0.6403864588932121, 0.7831097846364896, 0.46112164648188003, 0.14556009485746954, 0.0, 0.0, 0.0, 0.8585580212631712, 0.0, 0.253359163441029, 0.0, 0.0, 0.0, 0.45902026051340783, 0.0, 0.0, 0.0, 0.0, 0.166881895984427, 0.0, 0.0, 0.837727301005, 0.0, 0.0, 0.7629510291223568, 0.0, 0.34201996071392393, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3670598185817387, 0.0, 0.9533138689466589, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8365046398061449, 0.0, 0.9590136929209965, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.801491142663501, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16957493050977235, 0.0, 0.2507477829737011, 0.0, 0.0, 0.11532054524043628, 0.07735685692161769, 0.5247858743947099, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02100484631395434, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8201592179395716, 0.0, 0.0, 0.04562437343117348, 0.0, 0.22915724847477928, 0.0, 0.0, 0.7159205767218768, 0.0, 0.0, 0.0, 0.0, 0.29228977882295926, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17928588753235497, 0.10348218971035608, 0.8147006956016374, 0.08438351505236888, 0.0, 0.0, 0.0, 0.1070859593707194, 0.7148756921758321, 0.0, 0.8195717571774336, 0.12249576952187838, 0.0, 0.2397374334824377, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05225556550152024, 0.0, 0.0, 0.0, 0.1707240047839942, 0.0, 0.11920584928810601, 0.0, 0.14514911616615112, 0.4284534617057244, 0.04403067305952579, 0.0, 0.012688229227290206, 0.3654383338493288, 0.04642776495318284, 0.0, 0.0, 0.31371261026073766, 0.1364760956744218, 0.5008825042361101, 0.0, 0.04802625911306818, 0.021403808257108425, 0.0, 0.12191697007589085, 0.33632693219045084, 0.49073784844916374, 0.5066599946239788, 0.0, 0.0, 0.033354950181247504, 0.0, 0.15690710970564234, 0.3397139005999492, 0.4535410643500978, 0.0, 0.0, 0.49050280987387757, 0.0, 0.0, 0.45491953624514714, 0.0, 0.0, 0.33864218894794285, 0.0, 0.0, 0.041024172335819876, 0.0, 0.0, 0.0, 0.36175943329836924, 0.0, 0.39749358702806525, 0.0, 0.5595492530984049, 0.0, 0.0, 0.2573403608635483, 0.17262354625512744, 0.0, 0.0, 0.0, 0.3776391490751126, 0.0, 0.0, 0.1445911005474468, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.45961437114556436, 0.08073146338811468, 0.0, 0.0, 0.0, 0.5680662673212686, 0.0, 0.14301647595845865, 0.4278925860448857, 0.2624303541096862, 0.0, 0.5619603114708978, 0.5488835922357254, 0.0, 0.10445139145624531, 0.9180806504163392, 0.5113694952971799, 0.0, 0.4737323723594051, 0.4474251824766889, 0.10616343839228443, 0.0, 0.02745363380188561, 0.0, 0.28312699798757224, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6983886824821985, 0.38943652344243257, 1.2223890565530993, 0.05586381199212052, 0.0, 0.07686093310040262, 0.10701921729681718, 0.0, 0.4467721663826107, 0.0, 0.5122035249872549, 1.008045581843232, 0.10571972464185753, 0.6235175832869809, 0.0, 0.0, 0.0, 0.0, 0.7054625658357997, 0.0, 0.0, 0.17326833225856653, 0.0, 0.0, 0.0, 1.0813156328128786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0927477810868, 0.0, 0.599657110852462, 0.22383250773975968, 0.19685563542122056, 0.0, 0.05605157239206448, 0.41837305013296433, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18996852120778085, 0.0, 0.28856245320282303, 0.0, 0.0, 0.0, 0.26772611418599673, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1616947156362974, 0.0, 0.0, 0.0, 0.0, 0.36168541397352055, 0.0, 0.0, 0.0, 0.1573219565054934, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13761515434984456, 0.07943022011077468, 0.0, 0.21912413885604493, 0.0, 0.0, 0.40654019224262405, 0.0, 0.0, 0.022840701875983912, 0.0, 0.09402454628178203, 0.5332211799090736, 0.14433851006651358, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.043396172364084024, 0.04011000425692938, 0.0, 0.0, 0.0, 0.13104327726482687, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10232284486723907, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10523174379677519, 0.0, 0.10079612361252216, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04415728315159431, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11805369977437472, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6523402818477722, 0.04871612610613401, 0.0, 0.19287524873967893, 0.0, 0.3592812200503388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.050401634126662875, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8285325211040351, 0.0, 0.0, 0.0, 0.42701794948426475, 0.33826599655789313, 0.0, 0.0, 0.0063200711569476415, 0.0, 0.0, 0.4430530345512502, 0.0, 0.6935424923816391, 0.9428504267370209, 0.42746265456576077, 0.0025457381888520196, 0.0, 0.1593559778661365, 0.0, 0.8273232796667221, 0.04988580847200336, 0.9484876902255591, 0.5784846962232053, 0.0, 0.4437739313478008, 0.0, 0.0, 0.29414816951171024, 0.0, 0.022355194883774517, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02069724212749366, 0.0, 0.0, 0.0, 0.0, 0.7860463101009033, 0.0, 0.0, 0.0, 0.8499064420418566, 0.0, 0.014821364995218649, 0.0, 0.004694386740689857, 0.25038082548050006, 0.5774089497757802, 0.0, 0.0, 0.0, 0.0, 0.006270331329794731, 0.6139069964758506, 0.8351435200462407, 1.0242327730345495, 0.0, 0.029307532281045708, 0.0, 0.0, 0.0, 0.5726801471740839, 0.4962238989829506, 0.0, 0.07225356949876899, 0.10746103390935668, 0.0, 0.0, 0.8346013157058231, 0.0, 0.0, 0.12871551917858068, 0.0, 0.0, 0.05722051841888945, 0.0, 0.08248659071056784, 0.08634381582594033, 0.0, 0.14691645141749232, 0.0, 0.0, 0.0, 0.12530859946217338, 0.0, 0.10215231917559951, 0.07032216186532725, 0.0, 0.8790426858900641, 0.10792096194290268, 0.054388076691659265, 0.0, 0.0, 0.0, 0.05001396409640395, 0.114742650990913, 0.28339886512623463, 0.15677327627325063, 0.0, 0.03258480102579557, 0.09096085908673467, 0.0, 0.0, 0.15530131741375458, 0.4726591715297998, 0.7751806988017736, 0.0, 0.51208607063286, 0.0, 0.0, 0.8142774797804637, 0.037795557638802935, 0.0, 0.03542525158598919, 0.07905092197782795, 0.0, 0.0, 0.1322231578644953, 0.0, 0.0, 0.008286484320060336, 0.670492082894006, 0.0, 0.0, 0.2274177128809876, 0.20430769763068007, 0.27374263149272277, 0.0, 0.0, 0.0, 0.0, 0.22105379716709922, 0.08605636125516496, 0.023058224273634728, 0.03343036365050954, 0.7905997431838073, 0.031091378094046798, 0.32331562706461314, 0.0, 0.048595513480849374, 0.0, 0.6695135011372569, 0.01079155413526415, 0.7675661133629853, 0.01950494389053299, 0.0, 0.06609079415505228, 0.15915608286937477, 0.0, 0.17610090955799163, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05278940542005462, 0.0, 0.04363140001862599, 0.3747258422202424, 0.18235409289517635]), 42), 42)),) julia> @finch_code begin Ct .= 0 for i = parallel(_) @@ -246,7 +246,7 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.004334271763144113, 0.19866796375858964, 0.05511378591134807, 0.37983318302160474, 0.0, 0.8329001018500983, 0.30166090609024687, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3289219868624648, 0.0, 0.15511617694464214, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18499887719318273, 0.0, 0.0, 0.0, 0.19259223593916178, 0.0, 0.0, 0.0638915620449496, 0.08125561754012361, 0.17659717140450376, 0.0, 0.0, 0.1525779960421776, 0.0, 0.0, 0.0, 0.0, 0.29196799055295863, 0.0, 0.0, 0.0, 0.5551667524029037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4594337414860906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3019846765891098, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18892258579898563, 0.0, 0.2395310548375412, 0.0, 0.359229579293753, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00028478282759787334, 0.0, 0.3432275013790356, 0.0, 0.0, 0.2972839943189292, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19540404365846636, 0.0, 0.0, 0.0, 0.0, 0.18546216890582629, 0.0, 0.0, 0.00916099623463154, 0.0, 0.034731738855626984, 0.4853088859188271, 0.0076713909171271105, 0.0, 0.0, 0.5640422262893099, 0.0, 0.5950501234938147, 0.040920156633969085, 0.0014920661060395996, 0.0, 0.08081663901361853, 0.8825202410318094, 0.0, 0.006218090636031004, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3280555235834662, 0.03812149119614576, 0.0, 0.05190957475021724, 0.0, 0.06033708819060236, 0.0, 0.10124291140603807, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5085302772239245, 0.0, 0.5334307954394755, 0.0, 0.0, 0.2328402544634388, 0.0, 0.005816161517311894, 1.5317318593263975, 0.0, 0.46738125332221536, 0.0, 0.09813163178688389, 0.4394739409933983, 0.0, 0.26102098784262384, 0.0, 0.0, 0.0, 0.0, 0.8804155352247423, 0.0, 0.0, 0.48240400321886606, 0.3763091458911055, 0.6151496795666793, 0.0, 0.27268296540705483, 0.0, 0.0014290584461454537, 0.0, 0.0, 0.0, 0.5294637260878591, 0.0, 0.0, 0.0, 0.31181862629226015, 0.0, 0.34152287293383227, 0.1986997482112381, 0.2527011428302912, 0.0, 0.434749031361829, 0.0, 0.4472075705110786, 0.4092092126159339, 0.2807873539680881, 0.17401521117970595, 0.0, 0.0, 0.43733948883443596, 0.5485693747724284, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0983266821553666, 0.05373620000037918, 0.49612300100963586, 0.0, 0.0, 1.075151264033199, 0.0, 0.18716105879611752, 0.03950202184626144, 0.0, 0.0, 0.7852572057826378, 0.0, 0.0, 0.08756438716142145, 0.27446263899702106, 0.0, 0.0, 0.07204260281080108, 0.0, 0.09291620627436281, 0.23270017215835156, 0.23824566618105675, 0.0, 0.0, 0.0, 0.13665872084048475, 0.0, 0.0, 0.0067937121060301624, 0.1164801427986044, 0.0, 0.5691621002508566, 0.4713388661713567, 0.41358181631025637, 0.0, 0.3128607440091297, 0.0, 0.0, 0.20424594336339066, 0.0, 0.0, 0.7442286193021344, 0.10553727794892508, 0.0, 0.30186901767997887, 0.0, 0.0, 0.0, 0.32291683563950796, 0.07758151598185183, 0.0, 0.347786535534979, 0.7360230359944353, 0.0, 0.0, 0.0, 0.8757273805535595, 0.41322710295268655, 0.0, 0.25679112297862333, 0.17774302673574222, 0.5841939760860391, 0.0, 0.0, 0.0, 0.13300779742001662, 0.16915583797139946, 0.0, 0.0, 0.0, 0.7164740353603845, 0.45156468002631484, 0.0, 0.27217311439601866, 0.7084784766971438, 0.06835326871026481, 0.0, 0.0, 0.0, 0.2861016237491002, 1.0700436562849107, 0.135740840434777, 0.2599664462430113, 0.45536369102376945, 0.0, 0.0, 0.0, 0.16460938932017066, 0.9424546774296569, 0.4980075807530193, 0.501649117240962, 0.9215918221852557, 0.0, 0.5227646022766553, 0.46865433734477785, 0.0, 0.1899494468105599, 0.0, 0.14204872822901377, 0.7891527088162923, 0.2800775160398023, 0.0, 0.0, 0.6038144125549446, 0.0, 0.4101280976499608, 0.15813547044885462, 0.4381740566617935, 0.0025678619479343042, 0.5913196381458786, 0.01581382625018507, 0.4317825799661969, 0.0, 0.5361217114844467, 0.16404576969544252, 0.0, 0.03623369485950333, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19327505078226082, 0.1125279795645968, 0.0, 0.38171505913646114, 0.0, 0.0012820843611261621, 0.0, 0.0, 0.017018867107690273, 0.0, 0.018573326277702022, 0.7755881641075008, 0.12996991545193906, 0.0, 0.18005632805213245, 0.0, 0.2451805301156947, 0.0, 0.3747092870507497, 0.0, 0.4781929115858312, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.35214721497251084, 0.0, 0.020304118651362432, 0.14466279308909658, 0.626862644216891, 0.0, 0.0, 1.5549351131665947, 0.30737844662289215, 0.0, 0.0, 0.0, 0.0, 0.009701873820892715, 0.2520412914553624, 0.018396624198184493, 0.0, 0.7982268230101296, 0.0, 0.9201682818000929, 0.0, 0.0, 0.7342011144064367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09396246898802936, 0.0, 0.5073258744317697, 0.22284199906817412, 0.10151898941699102, 0.03180992568768135, 0.0, 0.5543686635557524, 0.0, 0.0, 0.0, 0.22367207355552704, 0.0, 0.0, 0.0, 0.40880306935546484, 0.0, 0.42113696363931935, 0.0, 0.0, 0.0, 0.43326306412219423, 0.39232717474974355, 0.0, 0.0, 0.0, 0.013675206005982276, 0.0, 0.2603519242467926, 0.3502025254743841, 0.14312660068897712, 0.34775162340880994, 0.20310882214946477, 0.0, 0.27127891969267615, 0.0, 0.0, 0.020541404680713544, 0.0, 0.0, 0.1991870263338475, 0.0, 0.0, 0.2456237488004554, 0.12123860127246498, 0.2079074067296303, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24646978770136238, 0.15225808974571345, 0.0, 0.0, 0.46988488666249073, 0.16461741428636234, 0.4415386194506142, 0.05631807188893752, 0.0611318669096905, 0.0, 0.0, 0.0, 0.5215534136524774, 0.0, 0.0, 0.6274626509368973, 0.038256585847320265, 0.530070634494204, 0.0, 0.7877809268797783, 0.25601250351282806, 0.37534186876141573, 0.700013095645165, 0.0, 0.29431110179251513, 0.22882177649965688, 1.0569304890861846, 0.0, 0.0, 0.0, 0.0, 0.02833923205698933, 0.02572736738919585, 0.0, 0.1150475064446459, 0.24371977071087828, 0.0, 0.0, 0.044121908414131224, 0.0771055384425919, 0.09695789652483547, 0.0, 0.0, 0.0, 0.12020713596947674, 0.045249684273424934, 0.8721213827038133, 0.0, 0.11731035534021127, 0.37569616707373005, 0.0, 0.0, 0.9570606189270042, 0.9086284112098039, 0.20027308709305888, 0.4268041763647709, 0.0, 0.0, 0.015909944043088663, 0.0, 0.7658973441527888, 0.0, 0.19507759787979717, 0.3226660152512004, 0.23629991340839918, 0.0, 0.13848101841219138, 0.0, 0.0, 0.24578615843203896, 0.0, 0.0, 0.10167993256702677, 0.0, 0.0, 0.12538470338440244, 0.9934363459809055, 0.10613146591697438, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6421265863141966, 0.0, 0.5400344618364347, 0.025731716559651077, 0.0, 0.0, 0.0, 0.007521097208030019, 0.5455660054203588, 0.0, 1.1209603429913297, 0.0, 0.0, 0.5234607155600556, 0.0, 0.023977651748011766, 0.0, 0.0, 0.0, 0.27798322874225667, 0.0, 0.35612425891926536, 0.0, 0.7529913555346315, 0.6214420882570796, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12146506806205652, 0.0, 0.3210215267482459, 0.0, 0.0, 0.0, 0.33419799384234544, 0.0, 0.0, 0.15359727591834285, 0.19534099821264672, 0.525863863274946, 0.0, 0.0, 0.34569678733330644, 0.0, 0.0, 0.3415674397857982, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.523004359259986, 0.0, 0.22235180304591923, 0.0, 0.00635695661054767, 0.0, 0.0, 0.0843846185513356, 0.0, 0.0, 0.0, 0.8855039996037297, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27294552017018114, 0.0, 0.3412878895624823, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5864608505347954, 0.0, 0.10380099346078346, 0.02524889717437322, 0.0, 0.0, 0.38157075730498896, 0.0, 0.0, 0.0, 0.45469484904050655, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26459586877877683, 0.18314523505716396, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22372814141562178, 0.0, 0.0, 0.0, 0.6276845275284666, 0.18331203344516112, 0.25689720406507865, 0.04048914090414101, 0.0, 0.016969058333515752, 0.0, 0.5911567891086366, 0.37358991094373184, 0.21597413111529512, 0.09535966106843696, 0.021909623318208237, 0.49412659112391777, 0.39229708641560146, 0.0, 0.0, 0.5239905526116051, 0.22383442432789932, 0.0, 0.408761833081477, 0.7858251636352953, 0.0, 0.03095169444374481, 1.0134328993353359, 0.0, 0.5783663988186404, 0.023349871375665725, 0.4068090650141155, 0.3701047391436106, 0.7170357796952346, 0.31327392774306395, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.39350494784782397, 0.07595368484327951, 0.4868292236818003, 0.046986031631648606, 0.530207151960747, 0.01037806421927761, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05535788985307855, 0.7394134258901907, 0.17106635844034493, 0.9821443208953105, 0.0, 0.008962807708770178, 0.0, 0.0, 0.11897566020800357, 0.0, 0.0, 0.0, 1.2828090910806784, 0.0, 0.4691443493685695, 0.0, 0.07022467062008277, 0.18231155361607748, 0.41302392682414213, 0.0, 0.13696413696930718, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.423686950315378, 0.0, 0.5297732126841366, 0.0, 0.10086209606266386, 0.4105665706595916, 0.2899236467445781, 0.08479167779863508, 0.0, 1.1607169616195545, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44056670549109944, 0.0036426275414389976, 0.22268017654499572, 0.70259131988822, 0.021981713208965886, 0.0, 0.0, 0.0, 0.6644482698446481, 0.5559910462571956, 0.9081368976941899, 0.9545466439826781, 0.0, 0.5800820874802947, 0.6131061961157059, 0.0, 0.3387938943904664, 0.0, 0.41233232521209184, 0.6892320892052487, 0.9168247018477867, 0.7592095444656833, 0.0, 0.7080274090242662, 0.0, 0.0, 0.7409103227795685, 0.4891910517462003, 0.0, 0.0, 0.6996898878138225, 0.18201720925245757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.033060035104523045, 0.0, 0.0, 0.0, 0.0, 0.0010434833431631984, 0.0, 0.0, 0.0, 0.010921241238865733, 0.0, 0.015498170387323498, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.011618017340433275, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2104054739321471, 0.0, 0.0, 0.0, 0.051249741424478176, 0.0, 0.0, 0.0, 0.09744956100917274, 0.0, 0.0, 0.0, 0.0, 0.10766993925868745, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18951483497887683, 0.5969374604132631, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6248091001560899, 0.0, 0.0, 0.0, 0.0, 0.18617398114562853, 0.0530079909103574, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14076422137873648, 0.3823151552281139, 0.28535858102685935, 0.3054264047421474, 0.0, 0.0, 0.5425991952026914, 0.16566917168527906, 0.0, 0.0, 0.24572721112234908, 0.0, 0.0, 0.311993347128524, 0.0, 1.0231061248638629, 0.5939954507294103, 0.5983388707717968, 0.7851882761904205, 0.0, 0.28209866162610053, 0.46470151179975694, 0.0, 0.22767102275324697, 0.0, 0.0, 0.3351791998251741, 0.0, 0.0, 0.0, 0.3258354466053841, 0.29514851487698524, 0.25858133097678015, 0.1886151008053812, 0.5226293862659805, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0442888167727012, 0.0, 0.002505192641426779, 0.0, 0.0, 0.07664740890754863, 0.0, 0.0, 0.013363010227595206, 0.00048725362450601585, 0.002419244088482629, 0.026391726291740327, 0.0, 0.0, 0.03460717393330891, 0.0, 0.13624247986958654, 0.0, 0.0, 0.0, 0.0, 0.0, 0.012449069569846, 0.0, 0.016951747875799564, 0.0, 0.0197038621774241, 0.0, 0.033062191640471625, 0.07310509907314719, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06556034095953286, 0.0, 0.02434740964367002, 0.0, 0.0, 0.13592547532623306, 0.0, 0.030022610188286405, 0.03795734899490777, 0.008699370747195389, 0.0, 0.0, 0.18940737674761182, 0.16014434992779022, 0.0058393216511455045, 0.0, 0.3162824676834449, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14919154588027264, 0.0, 0.20315232851529888, 0.0, 0.27582528532656464, 0.0, 0.3962223404212856, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00142596300027198, 0.0, 0.008781597914028754, 0.2917830655969515, 0.0, 0.0, 0.3010196130390429, 1.085161420061463, 0.0, 0.8818413438369698, 0.0, 0.14807253735972709, 0.6682230613653689, 0.6738718955158736, 0.0, 0.2921120382906695, 0.0, 0.23016863424694362, 0.44343897402347887, 0.0, 0.0, 1.2859761704109314, 1.188418751121335, 0.0, 0.4620501506594876, 0.23396469855670338, 0.0, 0.03498671823904876, 0.0, 0.0, 0.3392611399043929, 0.20497564811318061, 0.0, 0.4183535169904413, 0.20649711391931772, 0.520902106226398, 0.0, 0.0, 0.16125806820737418, 0.5576988707246249, 0.0, 0.0, 0.0, 0.11391623120681071, 0.0, 0.0, 0.09151851725619714, 0.0, 0.0, 1.197254000111945, 0.0, 0.8775820846458859, 0.0, 0.5629797627532018, 0.6687057520979063, 0.341227000414515, 0.0, 0.25482576175079585, 0.0, 0.39537376259476137, 0.4437592920364036, 0.0, 0.0, 0.5927285333298421, 0.651986303075751, 0.0, 1.0434591895456948, 0.0, 0.0, 0.03501199088471498, 0.0, 0.0, 0.3395062050893736, 0.15619471223870085, 0.0, 0.41865571453083017, 0.20664627704903807, 0.48238135206809674, 0.08860575544817058, 0.0, 0.005695035181786341, 0.42497543210880456, 0.0, 0.23934194260454025, 0.30438882267274336, 0.2874361482000896, 0.0, 0.0, 0.6245971595264426, 0.0, 0.3639559852559372, 0.0, 0.0, 0.20575691959192335, 0.0, 0.5994751724692355, 0.0, 0.0, 0.0, 0.0, 0.002904710270589501, 0.0, 0.27722048222724693, 0.15720637186052522, 0.0, 0.40582979792580204, 0.3276141191929195, 0.0, 0.5216472712210337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.022828121623522435, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.111114554054197, 0.0, 0.0, 0.005523835481493179, 0.12589753624924738, 0.4223352609451343, 0.19512225997871732, 0.9646462752755526, 0.0, 0.0, 0.908234546074678, 0.0, 0.1303083320340461, 0.4180115467796097, 0.3502002628164635, 0.005797584702932196, 0.620011620521792, 0.6673813159226286, 0.0030737631986123407, 0.0, 0.42144642014638856, 1.0414378536891689, 0.6289622414694364, 1.5563606265339154, 0.08385396416867873, 0.3115994197854627, 0.7117829870894571, 0.6381078265340546, 0.0, 0.23989801450652898, 0.0, 0.5826228436020011, 0.8457142287971168, 0.0, 0.0, 0.0, 1.0193786877434905, 0.0, 0.0, 0.19971832516875276, 0.5533950636153777, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21472741909783344, 0.39082851888093567, 0.44716245502350144, 0.2879713896328549, 0.5511368948723377, 0.33565164359388877, 1.3517828371888283, 0.0, 0.09957607530690628, 0.0, 0.0, 0.26103163435011795, 0.3965287786994862, 0.6597151598792015, 0.0, 0.34286845579856556, 0.3900059867245693, 0.34423839922938515, 0.0, 1.2842745238771571, 0.3694211002080512, 0.0, 0.05489702502604951, 0.3645945046142821, 0.0, 0.0, 0.08041277613458127, 0.2893532857853331, 0.0, 0.5419495915870312, 0.70973704371772, 0.06597297072421819, 0.0, 0.0, 0.28417074423649047, 0.45673560467870195, 0.1772454725351981, 0.22541615615699262, 0.08077018346809645, 0.5662548477384789, 0.07678831671440492, 0.7573984424681688, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4826509895037858, 0.0, 0.7156459126461995, 0.0, 0.0, 0.0, 0.0, 0.0, 0.013563432420802306, 0.4559162518278489, 0.0, 0.0, 0.0, 0.0, 0.26262283944881243, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16505781512417061, 0.2933206286622639, 0.0, 0.0, 0.0, 0.0, 0.40289003757510067, 0.0, 0.0, 0.0, 0.6372941893353361, 0.0, 0.6237934507673457, 0.8070702584067075, 0.0, 0.0, 0.3379623279083573, 0.0, 0.46129991809862586, 0.7333015288992237, 0.21031442023566344, 0.0, 0.7041420713561054, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7760176053652288, 0.0, 1.0534236649773678, 0.0, 0.0, 0.8070780011372765, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4823716017908521, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6208306891807599, 0.0, 0.0, 0.01732988822073383, 0.2738833349341264, 0.10672374403860475, 0.0, 0.008043590060480383, 0.0, 0.055277084044920086, 0.0, 0.0, 0.17943961322559207, 0.0, 0.0, 0.0, 0.0, 0.0, 0.718108290096912, 0.0, 0.0, 0.0, 0.008728384689335622, 0.0, 0.1697763404331079, 0.11586384141065409, 0.0, 0.0, 0.0, 0.8848305575683707, 0.0, 0.8449968950182224, 0.0, 0.0, 0.0, 0.6706152313255382, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8308196053978146, 0.0, 0.9175002824131868, 0.7530109173431534, 0.022342425693822682, 0.0, 0.0035915524463436964, 0.15288943835905894, 0.0, 0.5199425421439203, 0.11917728725476327, 0.3521011644457409, 0.0, 0.822488739774635, 0.513543493422637, 0.2981570434312181, 0.0, 0.0, 1.2701086711578897, 0.0, 0.11247893732510689, 0.0, 0.039332390318575425, 0.0, 0.11102635670488926, 0.0, 0.15118325075382752, 0.0, 0.1757278339799435, 0.0, 0.2948633760880991, 0.15371975197149906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04453230950399372, 0.0, 0.05568267952698087, 0.0, 0.21714106205060016, 0.0, 0.0, 0.0, 0.0, 0.7213227431120439, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2701718137836067, 0.0, 0.06123281377737304, 0.4007297534572718, 0.0, 0.0, 0.02350606599699272, 0.0, 0.47270164239805296, 0.39554302818161685, 0.39843532224568856, 0.0, 0.0, 0.46004399190355705, 0.41242580548884994, 0.0, 0.15086754157289264, 0.0, 0.0, 0.5466072621606027, 0.18414300130678235, 0.2087681866233734, 0.0, 0.5313695523968773, 0.0, 0.0, 0.2807883504872339, 0.34802019073798685, 0.0, 0.09776175774612722, 0.1924014129464173, 0.0, 0.0, 0.0, 0.2995245510564702, 0.1439415371971276, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09612835370305864, 0.0, 0.07178793274997196, 0.0, 0.0, 0.0, 0.529229742886101, 0.0, 0.0, 0.5898615183638936, 0.0, 0.1996504875270556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07685007162501065, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4724449949223617, 0.0, 0.21985358976027652, 0.0, 0.0, 0.0, 0.6511036698044336, 0.5394783324223208, 0.9048355234024855, 0.0, 0.0, 0.0, 0.008134079103649166, 0.17236516549262873, 0.0, 0.7108281927774538, 0.0, 0.0, 0.0, 0.8245834715993663, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22989626507902333, 0.12442621872484774, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3037122713618223, 0.0, 0.0, 0.008259351424073042, 0.4378900919766154, 0.05086408498890661, 0.31974807102322866, 0.0, 0.0, 0.7960980638875322, 0.0689135689704732, 0.0, 0.0, 0.0, 0.20359294387478752, 0.9097633301509839, 0.0, 0.6841090251831579, 0.0, 0.6154584825649704, 0.7335150023327748, 1.015637287349907, 0.0, 0.0779165260149525, 1.1277817941657742, 0.0, 0.0, 0.3457097793442966, 0.6958114560471119, 0.22297907055084815, 0.02617735461213243, 0.8271866794310433, 0.0, 0.25383801660715655, 0.0, 0.6564805026462143, 0.4519424562793308, 0.8175733700968422, 0.26495100977979114, 0.0, 0.0, 0.0, 0.33910693050583907, 0.0, 0.0, 0.0, 0.4889218480481046, 0.0, 0.3925649791995639, 1.5627863234111485, 0.8201598086100989, 0.28474440170274185, 1.0514838770367962, 0.010290531779792767, 0.0, 0.0, 1.5282247448720891, 0.4202365445740981, 0.38631591015261757, 0.07827208426350975, 0.002001482371009478, 0.19978631068641475, 0.10840878806592323, 0.8849580765325739, 0.7025926608640433, 0.21468725597950544, 0.6515266028885637, 0.304659479667613, 0.0, 0.5203661079080213, 0.1989832785613875, 0.22866153178235926, 0.2129788116497342, 0.0511368043793991, 0.0, 0.06963236972450947, 0.0, 0.08093717687353573, 0.0, 0.3254291820176872, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4944791980843742, 0.5417407856384763, 0.0, 0.4343792686365096, 1.5442785077006684, 0.0, 0.13746522377571999, 0.0, 0.0, 0.0, 0.0, 0.01933245239450143, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44623451745418, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.30502005455201636, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.014872981553739924, 0.0, 0.0, 0.0007393802182031884, 0.0, 0.14653699929908884, 0.0, 0.0, 0.26188312990151436, 0.028159286104530473, 0.0, 0.4084686341089707, 0.9235151006259961, 0.5957064186534903, 0.0, 0.0, 0.5535709817494249, 0.0, 0.25891613288066156, 0.07783302925410085, 0.2939591160629263, 0.1987201643010643, 0.0, 0.09767541007114018, 0.4120929351702914, 0.22225830848448824, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13739476210353194, 0.0, 0.037597515302596925, 0.0, 0.0, 0.31874062595288627, 0.33536722163001637, 0.0, 0.0, 0.0, 0.48352996362981304, 0.0, 0.38851289261478805, 0.6830254018960756, 0.3364461001285706, 0.8253161071254982, 0.0, 0.2348841918025421, 0.0, 0.4205219693225024, 0.5314960091024892, 0.0, 0.0, 0.10178270195612651, 0.0, 0.0, 0.780835547454152, 0.5872223143240599, 0.2503853190515238, 0.0, 0.0, 0.6150976289535472, 0.0, 0.09445718365268194, 0.0, 0.0, 0.17331386223779208, 1.5139967025892487, 0.0, 0.0031631037123804793, 0.0, 0.0, 0.20592512324808152, 0.0, 0.03635874582185372, 0.0, 0.20018457152414249, 0.22068196040992705, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.01855804465451247, 0.0, 0.0, 0.03641425883740431, 0.0568080930379847, 0.10109716846875504, 0.0, 0.0, 0.0, 0.0, 0.005424838537552436, 0.0, 0.0, 0.5251896042062963, 0.0, 0.0, 0.0, 0.00515342598991506, 0.045980273053842245, 0.0, 0.4033688458623361, 0.0510673466163073, 0.0, 0.0, 0.02134197385615031, 0.01687808266981965, 0.0, 0.4932447371732914, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7178045198025068, 0.2106682695954306, 0.0, 0.3115118572371521, 0.5170963380295581, 0.39595498771521426, 0.1432663403816299, 0.5698542189659496, 0.0, 0.0, 0.0, 0.5317966816929195, 0.0, 0.5315818882594147, 0.8168445783005969, 0.0, 0.0, 0.0, 0.01222733860627223, 0.0, 0.716756885645577, 0.0, 0.8217284580618865, 0.48234209517721377, 0.15545502627894098, 0.04826321760798536, 0.0, 0.0, 0.1394038038151463, 0.0, 0.056802678199824076, 0.0, 0.0, 0.0, 0.3128541399180126, 0.0, 0.0, 0.596593418834028, 0.0, 0.2846892571697076, 0.0, 0.0, 0.0, 0.23365792107187477, 0.0, 0.0, 0.4584793374366712, 0.7152510496888798, 0.0, 0.0, 0.0, 0.8190896825195866, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11127793558853107, 0.0, 0.5789217135796446, 0.0, 0.0, 0.6429712972008511, 0.0, 0.0, 0.661506988212563, 0.7629272979371657, 0.0, 0.4234710523361336, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4257443064600869, 0.0, 0.20425497460318195, 0.0, 0.5184318202957809, 0.5906121758765186, 0.0, 0.9091367634018797, 0.0, 0.30652125262867885, 0.0, 0.7954054080966687, 0.0, 0.0, 0.0, 1.0559083316811368, 0.0, 0.04427154393293609, 0.8228955354751877, 0.46658038808648383, 0.0, 0.02688606839966265, 0.0, 0.0, 0.6276611460113729, 0.22522673327345408, 0.0, 0.12308651028821192, 0.3657688390111318, 0.0, 0.046115245088609334, 0.0, 0.5342436705087195, 0.0, 0.1923886832463953, 0.07621763959827882, 0.0, 0.0, 0.0, 0.6725528112574624, 0.7483589153917343, 0.0, 0.0, 0.0, 0.0, 0.38949567271561986, 0.16492548861911044, 0.10519585180914466, 0.8853743380662012, 0.957787822214843, 0.0, 0.05459549529270359, 0.25656057396140347, 0.14167223917141744, 0.03949155262056029, 0.0, 0.0, 0.2703834370419471, 0.0, 0.723362221877522, 0.0, 0.0, 0.0, 0.7883757417725614, 0.0, 0.03340589062163017, 0.18896261922152233, 0.0, 0.0, 0.8122657251866786, 0.029607718570353176, 0.0, 0.008213735995679807, 0.0, 0.08605746445745502, 0.0, 0.3070376563830936, 0.10398717208817806, 0.0, 0.0, 0.0, 0.383984202548332, 0.0, 0.0, 0.3036396360576457, 0.0, 0.0, 0.0, 0.0, 0.11965354383371518, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04825455862354496, 0.3335108938296942, 0.0, 0.0, 0.0, 0.0, 0.04121745447265487, 0.30594446336043757, 0.0, 0.33550494159326405, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029116195807012437, 0.0, 0.0, 0.0, 0.0, 0.0, 0.020041236855252602, 0.0, 0.4850188795993097, 0.0, 0.16403823255879735, 0.0, 0.60023572778736, 0.0, 0.1787344157826609, 0.0, 0.0, 0.17233073276918714, 0.17532212882841147, 0.6209016656456683, 0.5984929062073807, 0.8843163905991084, 0.3337919143714591, 0.0, 1.0919707374354302, 0.8166713304287454, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8330317657834686, 0.27201200741148646, 0.0, 0.8995473587201992, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6388227016456749, 0.0, 0.3682672817259989, 0.0, 0.5422113050459496, 0.0, 0.028602469161704683, 0.0, 0.0, 0.3611222515381231, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.031337192831751, 0.0, 0.0, 0.7687924758178234, 0.012617011188267763, 0.0, 0.0, 0.37315715294884366, 0.0, 0.0, 0.0, 0.0, 0.6888779809403613, 0.121001715761302, 0.0, 0.0, 0.3680175749172942, 0.47420475938210593, 0.0, 0.7604201795169553, 0.0, 0.11917670920609563, 0.0, 0.20848198246903302, 0.24926285864223433, 0.0, 0.5553692000145817, 0.4169252107806106, 0.16597755096800731, 0.7334771026528798, 0.0, 0.0, 0.09908991746260937, 0.0, 0.14652270264303283, 0.006759647910977647, 0.0, 0.9351545954529237, 1.2960299208884896, 0.0, 0.0, 0.21191619141709428, 0.0, 0.0, 0.0, 0.01204540426582532, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06493914883934329, 0.7726981572397796, 0.0, 0.4370686273737238, 0.1778273534538074, 0.055209023869020324, 0.0, 0.0, 0.0, 0.05709969797354255, 0.0, 0.0, 0.0, 0.0, 0.44808598581285264, 0.0, 0.0, 0.0, 0.21141909545938053, 0.13390642572615394, 0.0, 0.0, 0.0, 0.25844994675864025, 0.0, 0.51617125876173, 0.2544268105667549, 0.0, 0.17576058376064335, 0.29087109088619356, 0.0, 0.0, 0.3286889977164017, 0.0, 0.0644707079973061, 0.0, 0.018682819036845075, 0.008522941045952347, 0.0, 0.0, 0.2520720928277996, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.146066293561638, 0.08856351358209161, 0.0, 0.0, 0.0, 0.1407746062228793, 0.5246446552397386, 0.0, 0.0, 0.0, 0.3279179855015388, 0.46137944574560436, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14330339619658897, 0.11500988018505275, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7444467047874328, 0.0, 0.0, 0.40713437972280675, 0.0, 0.0, 0.0, 0.5717679971406524, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4877440937322302, 0.6991654372087778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2369682176872117, 0.0, 0.0, 0.6757556051622259, 0.0, 0.0, 0.0, 0.576368321209737, 0.04986303698751877, 0.0, 0.5384684335273707, 0.0, 0.21524971756673417, 0.4963922980972075, 0.0, 0.0, 0.0, 0.0, 0.18940210229325644, 0.5277692784584271, 0.7718932464687741, 0.7210929692294604, 0.0, 0.0, 0.0, 0.0, 0.48286176484120297, 0.8517937989915767, 0.3931693184679991, 0.0, 0.0, 0.06755455710060922, 0.0, 0.026695131792948763, 1.4844324548606433, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4524914530619723, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4694831016582333, 0.0, 0.42831526212260856, 0.6074590079807168, 0.30066361967157035, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6129938591206631, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6008436638333436, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.43882326364474644, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8591062832739853, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6928708028466394, 0.2819039698547807, 0.08752108546971657, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05246236611269018, 0.0, 0.0, 0.5428804251437249, 0.022819504909203123, 0.3729965675892053, 0.0, 0.5741583158437262, 0.0, 0.1935811346150516, 0.0, 0.5023321549740235, 0.2611826745866744, 0.0, 0.056899028261467276, 0.37961815387770637, 0.22527271986010186, 0.05171423855571594, 0.058968538904135746, 0.0, 0.02892983665470066, 0.003313037290954743, 0.0, 0.0, 0.15785301822506514, 0.0, 0.0, 0.07773433689527456, 0.1049811110510813, 0.0, 0.02912372760696772, 0.0, 0.3114315285072337, 0.5703037753007745, 0.0, 0.04813466284828647, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02241933195791073, 0.0, 0.0, 0.0, 0.0, 0.23199999736075347, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1927795141790272, 0.2407119020891451, 0.0, 0.21960445663579467, 0.5770903406753464, 0.15415530724008072, 0.23155572792080611, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3142922871488459, 0.0, 0.0, 0.0, 0.0, 0.3042889785067072, 0.0, 0.5129566600174419, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3746354155106774, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4789154917746846, 0.17517544375428362, 0.0, 0.0, 0.0, 0.2637662382252967, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2102700997979013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.126545263019808, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.332133943612647, 0.0, 0.0, 0.0, 0.06184093060913505, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3212574037659458, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24673989573277713, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3017167941185386, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6233354196759152, 0.0, 0.0, 0.0, 0.5447611694646652, 0.0, 0.0, 0.216176776357065, 0.0, 0.19855221622967104, 0.8686764576101142, 0.16350923987929902, 0.0, 0.0, 0.02334951098786776, 0.17107621812888604, 0.48682879160279025, 0.7109808359466632, 0.6651558420918936, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6192268761337199, 0.31206921876898447, 0.0, 0.0, 0.24595989001208304, 0.11068536977374843, 0.0, 0.6618395820988949, 0.11362642836904417, 0.0, 0.0, 0.23765422406147768, 0.0, 0.0, 0.8073352785417658, 0.0, 0.0, 0.48485062583878286, 1.055137179889336, 0.2671063045394923, 0.0, 0.8476204266733893, 0.473385026956602, 0.5030912229948215, 0.0, 0.0, 0.0, 0.17678971866264329, 0.4076988147485064, 0.0, 0.6776909084507561, 0.13779930009477406, 0.5691281649873949, 0.16622169517158358, 0.433469475882236, 0.818379113845578, 0.9106844436778354, 0.0, 0.499393081506665, 0.0, 0.5725309586159512, 0.6160013948015824, 0.5125607980557373, 0.2778645861379971, 0.0, 0.0, 0.0, 0.0, 0.0, 0.58929804834674, 0.0, 0.8046233984476477, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3967677816937078, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11707526901952116, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.383435421983313, 0.11707115655719894, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07864429232511502, 0.0, 0.0, 0.3002587300128159, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2266804769859352, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24215921984980293, 0.09852579316681935, 0.030588729804574537, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18874358875246125, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3978422171614565, 0.1936032919321414, 0.0, 0.0, 0.2542147176776134, 0.0, 0.0, 0.0, 0.11057553114503467, 0.0, 6.012518808232222e-5, 0.0008825884581384356, 0.6460696181307314, 0.0, 0.0, 0.06879188140017427, 0.0, 0.0, 0.04716298956935701, 0.1540138997690347, 0.1854894997474166, 0.003124358567077274, 0.35109153378778224, 0.0, 0.0, 0.016293742009993128, 0.0, 0.0, 0.3747805868672189, 0.025859295570033313, 0.214029422856965, 0.003742959361061961, 0.0002933458280023473, 0.0, 0.0, 0.0, 0.030501494612752977, 0.0, 0.6996784734474946, 0.0, 0.0, 0.05616866413207192, 0.0, 0.0018184995370819535, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.020171782722387992, 0.0, 0.0, 0.33279196588498333, 0.0, 0.0, 0.6323890570808377, 0.0, 0.0, 0.0, 0.03594525644730097, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004527887543653786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17039388977135247, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6309056496928738, 0.0, 0.0, 0.0, 0.0, 0.260280820884557, 0.0, 0.0, 0.5107183088816271, 0.7967464980324664, 0.14485492608681305, 0.0, 0.009558078807310686, 0.754701551784825, 0.0, 0.0, 0.0, 0.0, 0.7598764239846039, 0.0, 0.029177780358136646, 0.10253044625069853, 0.03763219091970284, 0.8115624154017409, 0.0, 0.5779584654853126, 0.7162312164421211, 0.0, 0.0, 0.9107472399622886, 0.7029540573396418, 0.0, 1.0969174796040306, 0.0, 0.0, 0.0, 0.0, 0.0038591832437520454, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15366266383288085, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.558080611304664, 0.0, 0.0, 0.0, 0.0, 0.30736701150515244, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04311886842935436, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32751189175201845, 0.0, 0.20963216887545572, 0.1760259950046517, 0.0, 0.23753864749234863, 0.24093292162050975, 0.024684548149881243, 0.4936183719527589, 0.7064246796060082, 0.0, 0.06677453327599289, 0.8542035190842152, 0.0, 0.025534429812218047, 0.011379900282647532, 0.039800411165778926, 0.013727111201321645, 0.27843394547131894, 0.24161261590501448, 0.2499939278392831, 0.0, 0.0, 0.3450248607837782, 0.0, 0.0, 0.15272914557490577, 0.10495111476871369, 0.0, 0.0, 0.0, 0.18866875753074405, 0.0, 0.2225813946448797, 0.0, 0.0, 0.3661590836002555, 0.0, 0.0, 0.0, 0.8998957690359772, 0.30889178773893766, 0.6078813570942335, 0.0, 0.6840699471933163, 0.0, 0.0, 0.0, 0.36308986165522683, 0.752528074611531, 0.7191770460546526, 0.49508503625401296, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7784554319844289, 0.16352298326175332, 0.0, 0.042948548224867954, 0.375190336410357, 0.0, 0.6830715485727474, 0.6403864588932121, 0.7831097846364896, 0.46112164648188003, 0.14556009485746954, 0.0, 0.0, 0.0, 0.8585580212631712, 0.0, 0.253359163441029, 0.0, 0.0, 0.0, 0.45902026051340783, 0.0, 0.0, 0.0, 0.0, 0.166881895984427, 0.0, 0.0, 0.837727301005, 0.0, 0.0, 0.7629510291223568, 0.0, 0.34201996071392393, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3670598185817387, 0.0, 0.9533138689466589, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8365046398061449, 0.0, 0.9590136929209965, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.801491142663501, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16957493050977235, 0.0, 0.2507477829737011, 0.0, 0.0, 0.11532054524043628, 0.07735685692161769, 0.5247858743947099, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02100484631395434, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8201592179395716, 0.0, 0.0, 0.04562437343117348, 0.0, 0.22915724847477928, 0.0, 0.0, 0.7159205767218768, 0.0, 0.0, 0.0, 0.0, 0.29228977882295926, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17928588753235497, 0.10348218971035608, 0.8147006956016374, 0.08438351505236888, 0.0, 0.0, 0.0, 0.1070859593707194, 0.7148756921758321, 0.0, 0.8195717571774336, 0.12249576952187838, 0.0, 0.2397374334824377, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05225556550152024, 0.0, 0.0, 0.0, 0.1707240047839942, 0.0, 0.11920584928810601, 0.0, 0.14514911616615112, 0.4284534617057244, 0.04403067305952579, 0.0, 0.012688229227290206, 0.3654383338493288, 0.04642776495318284, 0.0, 0.0, 0.31371261026073766, 0.1364760956744218, 0.5008825042361101, 0.0, 0.04802625911306818, 0.021403808257108425, 0.0, 0.12191697007589085, 0.33632693219045084, 0.49073784844916374, 0.5066599946239788, 0.0, 0.0, 0.033354950181247504, 0.0, 0.15690710970564234, 0.3397139005999492, 0.4535410643500978, 0.0, 0.0, 0.49050280987387757, 0.0, 0.0, 0.45491953624514714, 0.0, 0.0, 0.33864218894794285, 0.0, 0.0, 0.041024172335819876, 0.0, 0.0, 0.0, 0.36175943329836924, 0.0, 0.39749358702806525, 0.0, 0.5595492530984049, 0.0, 0.0, 0.2573403608635483, 0.17262354625512744, 0.0, 0.0, 0.0, 0.3776391490751126, 0.0, 0.0, 0.1445911005474468, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.45961437114556436, 0.08073146338811468, 0.0, 0.0, 0.0, 0.5680662673212686, 0.0, 0.14301647595845865, 0.4278925860448857, 0.2624303541096862, 0.0, 0.5619603114708978, 0.5488835922357254, 0.0, 0.10445139145624531, 0.9180806504163392, 0.5113694952971799, 0.0, 0.4737323723594051, 0.4474251824766889, 0.10616343839228443, 0.0, 0.02745363380188561, 0.0, 0.28312699798757224, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6983886824821985, 0.38943652344243257, 1.2223890565530993, 0.05586381199212052, 0.0, 0.07686093310040262, 0.10701921729681718, 0.0, 0.4467721663826107, 0.0, 0.5122035249872549, 1.008045581843232, 0.10571972464185753, 0.6235175832869809, 0.0, 0.0, 0.0, 0.0, 0.7054625658357997, 0.0, 0.0, 0.17326833225856653, 0.0, 0.0, 0.0, 1.0813156328128786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0927477810868, 0.0, 0.599657110852462, 0.22383250773975968, 0.19685563542122056, 0.0, 0.05605157239206448, 0.41837305013296433, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18996852120778085, 0.0, 0.28856245320282303, 0.0, 0.0, 0.0, 0.26772611418599673, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1616947156362974, 0.0, 0.0, 0.0, 0.0, 0.36168541397352055, 0.0, 0.0, 0.0, 0.1573219565054934, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13761515434984456, 0.07943022011077468, 0.0, 0.21912413885604493, 0.0, 0.0, 0.40654019224262405, 0.0, 0.0, 0.022840701875983912, 0.0, 0.09402454628178203, 0.5332211799090736, 0.14433851006651358, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.043396172364084024, 0.04011000425692938, 0.0, 0.0, 0.0, 0.13104327726482687, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10232284486723907, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10523174379677519, 0.0, 0.10079612361252216, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04415728315159431, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11805369977437472, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6523402818477722, 0.04871612610613401, 0.0, 0.19287524873967893, 0.0, 0.3592812200503388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.050401634126662875, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8285325211040351, 0.0, 0.0, 0.0, 0.42701794948426475, 0.33826599655789313, 0.0, 0.0, 0.0063200711569476415, 0.0, 0.0, 0.4430530345512502, 0.0, 0.6935424923816391, 0.9428504267370209, 0.42746265456576077, 0.0025457381888520196, 0.0, 0.1593559778661365, 0.0, 0.8273232796667221, 0.04988580847200336, 0.9484876902255591, 0.5784846962232053, 0.0, 0.4437739313478008, 0.0, 0.0, 0.29414816951171024, 0.0, 0.022355194883774517, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02069724212749366, 0.0, 0.0, 0.0, 0.0, 0.7860463101009033, 0.0, 0.0, 0.0, 0.8499064420418566, 0.0, 0.014821364995218649, 0.0, 0.004694386740689857, 0.25038082548050006, 0.5774089497757802, 0.0, 0.0, 0.0, 0.0, 0.006270331329794731, 0.6139069964758506, 0.8351435200462407, 1.0242327730345495, 0.0, 0.029307532281045708, 0.0, 0.0, 0.0, 0.5726801471740839, 0.4962238989829506, 0.0, 0.07225356949876899, 0.10746103390935668, 0.0, 0.0, 0.8346013157058231, 0.0, 0.0, 0.12871551917858068, 0.0, 0.0, 0.05722051841888945, 0.0, 0.08248659071056784, 0.08634381582594033, 0.0, 0.14691645141749232, 0.0, 0.0, 0.0, 0.12530859946217338, 0.0, 0.10215231917559951, 0.07032216186532725, 0.0, 0.8790426858900641, 0.10792096194290268, 0.054388076691659265, 0.0, 0.0, 0.0, 0.05001396409640395, 0.114742650990913, 0.28339886512623463, 0.15677327627325063, 0.0, 0.03258480102579557, 0.09096085908673467, 0.0, 0.0, 0.15530131741375458, 0.4726591715297998, 0.7751806988017736, 0.0, 0.51208607063286, 0.0, 0.0, 0.8142774797804637, 0.037795557638802935, 0.0, 0.03542525158598919, 0.07905092197782795, 0.0, 0.0, 0.1322231578644953, 0.0, 0.0, 0.008286484320060336, 0.670492082894006, 0.0, 0.0, 0.2274177128809876, 0.20430769763068007, 0.27374263149272277, 0.0, 0.0, 0.0, 0.0, 0.22105379716709922, 0.08605636125516496, 0.023058224273634728, 0.03343036365050954, 0.7905997431838073, 0.031091378094046798, 0.32331562706461314, 0.0, 0.048595513480849374, 0.0, 0.6695135011372569, 0.01079155413526415, 0.7675661133629853, 0.01950494389053299, 0.0, 0.06609079415505228, 0.15915608286937477, 0.0, 0.17610090955799163, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05278940542005462, 0.0, 0.04363140001862599, 0.3747258422202424, 0.18235409289517635]), 42), 42)),) julia> @finch_code begin Ct .= 0 for i = _ @@ -498,7 +498,7 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.004334271763144113, 0.19866796375858964, 0.05511378591134807, 0.37983318302160474, 0.0, 0.8329001018500983, 0.30166090609024687, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3289219868624648, 0.0, 0.15511617694464214, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18499887719318273, 0.0, 0.0, 0.0, 0.19259223593916178, 0.0, 0.0, 0.0638915620449496, 0.08125561754012361, 0.17659717140450376, 0.0, 0.0, 0.1525779960421776, 0.0, 0.0, 0.0, 0.0, 0.29196799055295863, 0.0, 0.0, 0.0, 0.5551667524029037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4594337414860906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3019846765891098, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18892258579898563, 0.0, 0.2395310548375412, 0.0, 0.359229579293753, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00028478282759787334, 0.0, 0.3432275013790356, 0.0, 0.0, 0.2972839943189292, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19540404365846636, 0.0, 0.0, 0.0, 0.0, 0.18546216890582629, 0.0, 0.0, 0.00916099623463154, 0.0, 0.034731738855626984, 0.4853088859188271, 0.0076713909171271105, 0.0, 0.0, 0.5640422262893099, 0.0, 0.5950501234938147, 0.040920156633969085, 0.0014920661060395996, 0.0, 0.08081663901361853, 0.8825202410318094, 0.0, 0.006218090636031004, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3280555235834662, 0.03812149119614576, 0.0, 0.05190957475021724, 0.0, 0.06033708819060236, 0.0, 0.10124291140603807, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5085302772239245, 0.0, 0.5334307954394755, 0.0, 0.0, 0.2328402544634388, 0.0, 0.005816161517311894, 1.5317318593263975, 0.0, 0.46738125332221536, 0.0, 0.09813163178688389, 0.4394739409933983, 0.0, 0.26102098784262384, 0.0, 0.0, 0.0, 0.0, 0.8804155352247423, 0.0, 0.0, 0.48240400321886606, 0.3763091458911055, 0.6151496795666793, 0.0, 0.27268296540705483, 0.0, 0.0014290584461454537, 0.0, 0.0, 0.0, 0.5294637260878591, 0.0, 0.0, 0.0, 0.31181862629226015, 0.0, 0.34152287293383227, 0.1986997482112381, 0.2527011428302912, 0.0, 0.434749031361829, 0.0, 0.4472075705110786, 0.4092092126159339, 0.2807873539680881, 0.17401521117970595, 0.0, 0.0, 0.43733948883443596, 0.5485693747724284, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0983266821553666, 0.05373620000037918, 0.49612300100963586, 0.0, 0.0, 1.075151264033199, 0.0, 0.18716105879611752, 0.03950202184626144, 0.0, 0.0, 0.7852572057826378, 0.0, 0.0, 0.08756438716142145, 0.27446263899702106, 0.0, 0.0, 0.07204260281080108, 0.0, 0.09291620627436281, 0.23270017215835156, 0.23824566618105675, 0.0, 0.0, 0.0, 0.13665872084048475, 0.0, 0.0, 0.0067937121060301624, 0.1164801427986044, 0.0, 0.5691621002508566, 0.4713388661713567, 0.41358181631025637, 0.0, 0.3128607440091297, 0.0, 0.0, 0.20424594336339066, 0.0, 0.0, 0.7442286193021344, 0.10553727794892508, 0.0, 0.30186901767997887, 0.0, 0.0, 0.0, 0.32291683563950796, 0.07758151598185183, 0.0, 0.347786535534979, 0.7360230359944353, 0.0, 0.0, 0.0, 0.8757273805535595, 0.41322710295268655, 0.0, 0.25679112297862333, 0.17774302673574222, 0.5841939760860391, 0.0, 0.0, 0.0, 0.13300779742001662, 0.16915583797139946, 0.0, 0.0, 0.0, 0.7164740353603845, 0.45156468002631484, 0.0, 0.27217311439601866, 0.7084784766971438, 0.06835326871026481, 0.0, 0.0, 0.0, 0.2861016237491002, 1.0700436562849107, 0.135740840434777, 0.2599664462430113, 0.45536369102376945, 0.0, 0.0, 0.0, 0.16460938932017066, 0.9424546774296569, 0.4980075807530193, 0.501649117240962, 0.9215918221852557, 0.0, 0.5227646022766553, 0.46865433734477785, 0.0, 0.1899494468105599, 0.0, 0.14204872822901377, 0.7891527088162923, 0.2800775160398023, 0.0, 0.0, 0.6038144125549446, 0.0, 0.4101280976499608, 0.15813547044885462, 0.4381740566617935, 0.0025678619479343042, 0.5913196381458786, 0.01581382625018507, 0.4317825799661969, 0.0, 0.5361217114844467, 0.16404576969544252, 0.0, 0.03623369485950333, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19327505078226082, 0.1125279795645968, 0.0, 0.38171505913646114, 0.0, 0.0012820843611261621, 0.0, 0.0, 0.017018867107690273, 0.0, 0.018573326277702022, 0.7755881641075008, 0.12996991545193906, 0.0, 0.18005632805213245, 0.0, 0.2451805301156947, 0.0, 0.3747092870507497, 0.0, 0.4781929115858312, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.35214721497251084, 0.0, 0.020304118651362432, 0.14466279308909658, 0.626862644216891, 0.0, 0.0, 1.5549351131665947, 0.30737844662289215, 0.0, 0.0, 0.0, 0.0, 0.009701873820892715, 0.2520412914553624, 0.018396624198184493, 0.0, 0.7982268230101296, 0.0, 0.9201682818000929, 0.0, 0.0, 0.7342011144064367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09396246898802936, 0.0, 0.5073258744317697, 0.22284199906817412, 0.10151898941699102, 0.03180992568768135, 0.0, 0.5543686635557524, 0.0, 0.0, 0.0, 0.22367207355552704, 0.0, 0.0, 0.0, 0.40880306935546484, 0.0, 0.42113696363931935, 0.0, 0.0, 0.0, 0.43326306412219423, 0.39232717474974355, 0.0, 0.0, 0.0, 0.013675206005982276, 0.0, 0.2603519242467926, 0.3502025254743841, 0.14312660068897712, 0.34775162340880994, 0.20310882214946477, 0.0, 0.27127891969267615, 0.0, 0.0, 0.020541404680713544, 0.0, 0.0, 0.1991870263338475, 0.0, 0.0, 0.2456237488004554, 0.12123860127246498, 0.2079074067296303, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24646978770136238, 0.15225808974571345, 0.0, 0.0, 0.46988488666249073, 0.16461741428636234, 0.4415386194506142, 0.05631807188893752, 0.0611318669096905, 0.0, 0.0, 0.0, 0.5215534136524774, 0.0, 0.0, 0.6274626509368973, 0.038256585847320265, 0.530070634494204, 0.0, 0.7877809268797783, 0.25601250351282806, 0.37534186876141573, 0.700013095645165, 0.0, 0.29431110179251513, 0.22882177649965688, 1.0569304890861846, 0.0, 0.0, 0.0, 0.0, 0.02833923205698933, 0.02572736738919585, 0.0, 0.1150475064446459, 0.24371977071087828, 0.0, 0.0, 0.044121908414131224, 0.0771055384425919, 0.09695789652483547, 0.0, 0.0, 0.0, 0.12020713596947674, 0.045249684273424934, 0.8721213827038133, 0.0, 0.11731035534021127, 0.37569616707373005, 0.0, 0.0, 0.9570606189270042, 0.9086284112098039, 0.20027308709305888, 0.4268041763647709, 0.0, 0.0, 0.015909944043088663, 0.0, 0.7658973441527888, 0.0, 0.19507759787979717, 0.3226660152512004, 0.23629991340839918, 0.0, 0.13848101841219138, 0.0, 0.0, 0.24578615843203896, 0.0, 0.0, 0.10167993256702677, 0.0, 0.0, 0.12538470338440244, 0.9934363459809055, 0.10613146591697438, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6421265863141966, 0.0, 0.5400344618364347, 0.025731716559651077, 0.0, 0.0, 0.0, 0.007521097208030019, 0.5455660054203588, 0.0, 1.1209603429913297, 0.0, 0.0, 0.5234607155600556, 0.0, 0.023977651748011766, 0.0, 0.0, 0.0, 0.27798322874225667, 0.0, 0.35612425891926536, 0.0, 0.7529913555346315, 0.6214420882570796, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12146506806205652, 0.0, 0.3210215267482459, 0.0, 0.0, 0.0, 0.33419799384234544, 0.0, 0.0, 0.15359727591834285, 0.19534099821264672, 0.525863863274946, 0.0, 0.0, 0.34569678733330644, 0.0, 0.0, 0.3415674397857982, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.523004359259986, 0.0, 0.22235180304591923, 0.0, 0.00635695661054767, 0.0, 0.0, 0.0843846185513356, 0.0, 0.0, 0.0, 0.8855039996037297, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27294552017018114, 0.0, 0.3412878895624823, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5864608505347954, 0.0, 0.10380099346078346, 0.02524889717437322, 0.0, 0.0, 0.38157075730498896, 0.0, 0.0, 0.0, 0.45469484904050655, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26459586877877683, 0.18314523505716396, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22372814141562178, 0.0, 0.0, 0.0, 0.6276845275284666, 0.18331203344516112, 0.25689720406507865, 0.04048914090414101, 0.0, 0.016969058333515752, 0.0, 0.5911567891086366, 0.37358991094373184, 0.21597413111529512, 0.09535966106843696, 0.021909623318208237, 0.49412659112391777, 0.39229708641560146, 0.0, 0.0, 0.5239905526116051, 0.22383442432789932, 0.0, 0.408761833081477, 0.7858251636352953, 0.0, 0.03095169444374481, 1.0134328993353359, 0.0, 0.5783663988186404, 0.023349871375665725, 0.4068090650141155, 0.3701047391436106, 0.7170357796952346, 0.31327392774306395, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.39350494784782397, 0.07595368484327951, 0.4868292236818003, 0.046986031631648606, 0.530207151960747, 0.01037806421927761, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05535788985307855, 0.7394134258901907, 0.17106635844034493, 0.9821443208953105, 0.0, 0.008962807708770178, 0.0, 0.0, 0.11897566020800357, 0.0, 0.0, 0.0, 1.2828090910806784, 0.0, 0.4691443493685695, 0.0, 0.07022467062008277, 0.18231155361607748, 0.41302392682414213, 0.0, 0.13696413696930718, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.423686950315378, 0.0, 0.5297732126841366, 0.0, 0.10086209606266386, 0.4105665706595916, 0.2899236467445781, 0.08479167779863508, 0.0, 1.1607169616195545, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44056670549109944, 0.0036426275414389976, 0.22268017654499572, 0.70259131988822, 0.021981713208965886, 0.0, 0.0, 0.0, 0.6644482698446481, 0.5559910462571956, 0.9081368976941899, 0.9545466439826781, 0.0, 0.5800820874802947, 0.6131061961157059, 0.0, 0.3387938943904664, 0.0, 0.41233232521209184, 0.6892320892052487, 0.9168247018477867, 0.7592095444656833, 0.0, 0.7080274090242662, 0.0, 0.0, 0.7409103227795685, 0.4891910517462003, 0.0, 0.0, 0.6996898878138225, 0.18201720925245757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.033060035104523045, 0.0, 0.0, 0.0, 0.0, 0.0010434833431631984, 0.0, 0.0, 0.0, 0.010921241238865733, 0.0, 0.015498170387323498, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.011618017340433275, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2104054739321471, 0.0, 0.0, 0.0, 0.051249741424478176, 0.0, 0.0, 0.0, 0.09744956100917274, 0.0, 0.0, 0.0, 0.0, 0.10766993925868745, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18951483497887683, 0.5969374604132631, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6248091001560899, 0.0, 0.0, 0.0, 0.0, 0.18617398114562853, 0.0530079909103574, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14076422137873648, 0.3823151552281139, 0.28535858102685935, 0.3054264047421474, 0.0, 0.0, 0.5425991952026914, 0.16566917168527906, 0.0, 0.0, 0.24572721112234908, 0.0, 0.0, 0.311993347128524, 0.0, 1.0231061248638629, 0.5939954507294103, 0.5983388707717968, 0.7851882761904205, 0.0, 0.28209866162610053, 0.46470151179975694, 0.0, 0.22767102275324697, 0.0, 0.0, 0.3351791998251741, 0.0, 0.0, 0.0, 0.3258354466053841, 0.29514851487698524, 0.25858133097678015, 0.1886151008053812, 0.5226293862659805, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0442888167727012, 0.0, 0.002505192641426779, 0.0, 0.0, 0.07664740890754863, 0.0, 0.0, 0.013363010227595206, 0.00048725362450601585, 0.002419244088482629, 0.026391726291740327, 0.0, 0.0, 0.03460717393330891, 0.0, 0.13624247986958654, 0.0, 0.0, 0.0, 0.0, 0.0, 0.012449069569846, 0.0, 0.016951747875799564, 0.0, 0.0197038621774241, 0.0, 0.033062191640471625, 0.07310509907314719, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06556034095953286, 0.0, 0.02434740964367002, 0.0, 0.0, 0.13592547532623306, 0.0, 0.030022610188286405, 0.03795734899490777, 0.008699370747195389, 0.0, 0.0, 0.18940737674761182, 0.16014434992779022, 0.0058393216511455045, 0.0, 0.3162824676834449, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14919154588027264, 0.0, 0.20315232851529888, 0.0, 0.27582528532656464, 0.0, 0.3962223404212856, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00142596300027198, 0.0, 0.008781597914028754, 0.2917830655969515, 0.0, 0.0, 0.3010196130390429, 1.085161420061463, 0.0, 0.8818413438369698, 0.0, 0.14807253735972709, 0.6682230613653689, 0.6738718955158736, 0.0, 0.2921120382906695, 0.0, 0.23016863424694362, 0.44343897402347887, 0.0, 0.0, 1.2859761704109314, 1.188418751121335, 0.0, 0.4620501506594876, 0.23396469855670338, 0.0, 0.03498671823904876, 0.0, 0.0, 0.3392611399043929, 0.20497564811318061, 0.0, 0.4183535169904413, 0.20649711391931772, 0.520902106226398, 0.0, 0.0, 0.16125806820737418, 0.5576988707246249, 0.0, 0.0, 0.0, 0.11391623120681071, 0.0, 0.0, 0.09151851725619714, 0.0, 0.0, 1.197254000111945, 0.0, 0.8775820846458859, 0.0, 0.5629797627532018, 0.6687057520979063, 0.341227000414515, 0.0, 0.25482576175079585, 0.0, 0.39537376259476137, 0.4437592920364036, 0.0, 0.0, 0.5927285333298421, 0.651986303075751, 0.0, 1.0434591895456948, 0.0, 0.0, 0.03501199088471498, 0.0, 0.0, 0.3395062050893736, 0.15619471223870085, 0.0, 0.41865571453083017, 0.20664627704903807, 0.48238135206809674, 0.08860575544817058, 0.0, 0.005695035181786341, 0.42497543210880456, 0.0, 0.23934194260454025, 0.30438882267274336, 0.2874361482000896, 0.0, 0.0, 0.6245971595264426, 0.0, 0.3639559852559372, 0.0, 0.0, 0.20575691959192335, 0.0, 0.5994751724692355, 0.0, 0.0, 0.0, 0.0, 0.002904710270589501, 0.0, 0.27722048222724693, 0.15720637186052522, 0.0, 0.40582979792580204, 0.3276141191929195, 0.0, 0.5216472712210337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.022828121623522435, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.111114554054197, 0.0, 0.0, 0.005523835481493179, 0.12589753624924738, 0.4223352609451343, 0.19512225997871732, 0.9646462752755526, 0.0, 0.0, 0.908234546074678, 0.0, 0.1303083320340461, 0.4180115467796097, 0.3502002628164635, 0.005797584702932196, 0.620011620521792, 0.6673813159226286, 0.0030737631986123407, 0.0, 0.42144642014638856, 1.0414378536891689, 0.6289622414694364, 1.5563606265339154, 0.08385396416867873, 0.3115994197854627, 0.7117829870894571, 0.6381078265340546, 0.0, 0.23989801450652898, 0.0, 0.5826228436020011, 0.8457142287971168, 0.0, 0.0, 0.0, 1.0193786877434905, 0.0, 0.0, 0.19971832516875276, 0.5533950636153777, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21472741909783344, 0.39082851888093567, 0.44716245502350144, 0.2879713896328549, 0.5511368948723377, 0.33565164359388877, 1.3517828371888283, 0.0, 0.09957607530690628, 0.0, 0.0, 0.26103163435011795, 0.3965287786994862, 0.6597151598792015, 0.0, 0.34286845579856556, 0.3900059867245693, 0.34423839922938515, 0.0, 1.2842745238771571, 0.3694211002080512, 0.0, 0.05489702502604951, 0.3645945046142821, 0.0, 0.0, 0.08041277613458127, 0.2893532857853331, 0.0, 0.5419495915870312, 0.70973704371772, 0.06597297072421819, 0.0, 0.0, 0.28417074423649047, 0.45673560467870195, 0.1772454725351981, 0.22541615615699262, 0.08077018346809645, 0.5662548477384789, 0.07678831671440492, 0.7573984424681688, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4826509895037858, 0.0, 0.7156459126461995, 0.0, 0.0, 0.0, 0.0, 0.0, 0.013563432420802306, 0.4559162518278489, 0.0, 0.0, 0.0, 0.0, 0.26262283944881243, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16505781512417061, 0.2933206286622639, 0.0, 0.0, 0.0, 0.0, 0.40289003757510067, 0.0, 0.0, 0.0, 0.6372941893353361, 0.0, 0.6237934507673457, 0.8070702584067075, 0.0, 0.0, 0.3379623279083573, 0.0, 0.46129991809862586, 0.7333015288992237, 0.21031442023566344, 0.0, 0.7041420713561054, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7760176053652288, 0.0, 1.0534236649773678, 0.0, 0.0, 0.8070780011372765, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4823716017908521, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6208306891807599, 0.0, 0.0, 0.01732988822073383, 0.2738833349341264, 0.10672374403860475, 0.0, 0.008043590060480383, 0.0, 0.055277084044920086, 0.0, 0.0, 0.17943961322559207, 0.0, 0.0, 0.0, 0.0, 0.0, 0.718108290096912, 0.0, 0.0, 0.0, 0.008728384689335622, 0.0, 0.1697763404331079, 0.11586384141065409, 0.0, 0.0, 0.0, 0.8848305575683707, 0.0, 0.8449968950182224, 0.0, 0.0, 0.0, 0.6706152313255382, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8308196053978146, 0.0, 0.9175002824131868, 0.7530109173431534, 0.022342425693822682, 0.0, 0.0035915524463436964, 0.15288943835905894, 0.0, 0.5199425421439203, 0.11917728725476327, 0.3521011644457409, 0.0, 0.822488739774635, 0.513543493422637, 0.2981570434312181, 0.0, 0.0, 1.2701086711578897, 0.0, 0.11247893732510689, 0.0, 0.039332390318575425, 0.0, 0.11102635670488926, 0.0, 0.15118325075382752, 0.0, 0.1757278339799435, 0.0, 0.2948633760880991, 0.15371975197149906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04453230950399372, 0.0, 0.05568267952698087, 0.0, 0.21714106205060016, 0.0, 0.0, 0.0, 0.0, 0.7213227431120439, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2701718137836067, 0.0, 0.06123281377737304, 0.4007297534572718, 0.0, 0.0, 0.02350606599699272, 0.0, 0.47270164239805296, 0.39554302818161685, 0.39843532224568856, 0.0, 0.0, 0.46004399190355705, 0.41242580548884994, 0.0, 0.15086754157289264, 0.0, 0.0, 0.5466072621606027, 0.18414300130678235, 0.2087681866233734, 0.0, 0.5313695523968773, 0.0, 0.0, 0.2807883504872339, 0.34802019073798685, 0.0, 0.09776175774612722, 0.1924014129464173, 0.0, 0.0, 0.0, 0.2995245510564702, 0.1439415371971276, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09612835370305864, 0.0, 0.07178793274997196, 0.0, 0.0, 0.0, 0.529229742886101, 0.0, 0.0, 0.5898615183638936, 0.0, 0.1996504875270556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07685007162501065, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4724449949223617, 0.0, 0.21985358976027652, 0.0, 0.0, 0.0, 0.6511036698044336, 0.5394783324223208, 0.9048355234024855, 0.0, 0.0, 0.0, 0.008134079103649166, 0.17236516549262873, 0.0, 0.7108281927774538, 0.0, 0.0, 0.0, 0.8245834715993663, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22989626507902333, 0.12442621872484774, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3037122713618223, 0.0, 0.0, 0.008259351424073042, 0.4378900919766154, 0.05086408498890661, 0.31974807102322866, 0.0, 0.0, 0.7960980638875322, 0.0689135689704732, 0.0, 0.0, 0.0, 0.20359294387478752, 0.9097633301509839, 0.0, 0.6841090251831579, 0.0, 0.6154584825649704, 0.7335150023327748, 1.015637287349907, 0.0, 0.0779165260149525, 1.1277817941657742, 0.0, 0.0, 0.3457097793442966, 0.6958114560471119, 0.22297907055084815, 0.02617735461213243, 0.8271866794310433, 0.0, 0.25383801660715655, 0.0, 0.6564805026462143, 0.4519424562793308, 0.8175733700968422, 0.26495100977979114, 0.0, 0.0, 0.0, 0.33910693050583907, 0.0, 0.0, 0.0, 0.4889218480481046, 0.0, 0.3925649791995639, 1.5627863234111485, 0.8201598086100989, 0.28474440170274185, 1.0514838770367962, 0.010290531779792767, 0.0, 0.0, 1.5282247448720891, 0.4202365445740981, 0.38631591015261757, 0.07827208426350975, 0.002001482371009478, 0.19978631068641475, 0.10840878806592323, 0.8849580765325739, 0.7025926608640433, 0.21468725597950544, 0.6515266028885637, 0.304659479667613, 0.0, 0.5203661079080213, 0.1989832785613875, 0.22866153178235926, 0.2129788116497342, 0.0511368043793991, 0.0, 0.06963236972450947, 0.0, 0.08093717687353573, 0.0, 0.3254291820176872, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4944791980843742, 0.5417407856384763, 0.0, 0.4343792686365096, 1.5442785077006684, 0.0, 0.13746522377571999, 0.0, 0.0, 0.0, 0.0, 0.01933245239450143, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44623451745418, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.30502005455201636, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.014872981553739924, 0.0, 0.0, 0.0007393802182031884, 0.0, 0.14653699929908884, 0.0, 0.0, 0.26188312990151436, 0.028159286104530473, 0.0, 0.4084686341089707, 0.9235151006259961, 0.5957064186534903, 0.0, 0.0, 0.5535709817494249, 0.0, 0.25891613288066156, 0.07783302925410085, 0.2939591160629263, 0.1987201643010643, 0.0, 0.09767541007114018, 0.4120929351702914, 0.22225830848448824, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13739476210353194, 0.0, 0.037597515302596925, 0.0, 0.0, 0.31874062595288627, 0.33536722163001637, 0.0, 0.0, 0.0, 0.48352996362981304, 0.0, 0.38851289261478805, 0.6830254018960756, 0.3364461001285706, 0.8253161071254982, 0.0, 0.2348841918025421, 0.0, 0.4205219693225024, 0.5314960091024892, 0.0, 0.0, 0.10178270195612651, 0.0, 0.0, 0.780835547454152, 0.5872223143240599, 0.2503853190515238, 0.0, 0.0, 0.6150976289535472, 0.0, 0.09445718365268194, 0.0, 0.0, 0.17331386223779208, 1.5139967025892487, 0.0, 0.0031631037123804793, 0.0, 0.0, 0.20592512324808152, 0.0, 0.03635874582185372, 0.0, 0.20018457152414249, 0.22068196040992705, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.01855804465451247, 0.0, 0.0, 0.03641425883740431, 0.0568080930379847, 0.10109716846875504, 0.0, 0.0, 0.0, 0.0, 0.005424838537552436, 0.0, 0.0, 0.5251896042062963, 0.0, 0.0, 0.0, 0.00515342598991506, 0.045980273053842245, 0.0, 0.4033688458623361, 0.0510673466163073, 0.0, 0.0, 0.02134197385615031, 0.01687808266981965, 0.0, 0.4932447371732914, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7178045198025068, 0.2106682695954306, 0.0, 0.3115118572371521, 0.5170963380295581, 0.39595498771521426, 0.1432663403816299, 0.5698542189659496, 0.0, 0.0, 0.0, 0.5317966816929195, 0.0, 0.5315818882594147, 0.8168445783005969, 0.0, 0.0, 0.0, 0.01222733860627223, 0.0, 0.716756885645577, 0.0, 0.8217284580618865, 0.48234209517721377, 0.15545502627894098, 0.04826321760798536, 0.0, 0.0, 0.1394038038151463, 0.0, 0.056802678199824076, 0.0, 0.0, 0.0, 0.3128541399180126, 0.0, 0.0, 0.596593418834028, 0.0, 0.2846892571697076, 0.0, 0.0, 0.0, 0.23365792107187477, 0.0, 0.0, 0.4584793374366712, 0.7152510496888798, 0.0, 0.0, 0.0, 0.8190896825195866, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11127793558853107, 0.0, 0.5789217135796446, 0.0, 0.0, 0.6429712972008511, 0.0, 0.0, 0.661506988212563, 0.7629272979371657, 0.0, 0.4234710523361336, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4257443064600869, 0.0, 0.20425497460318195, 0.0, 0.5184318202957809, 0.5906121758765186, 0.0, 0.9091367634018797, 0.0, 0.30652125262867885, 0.0, 0.7954054080966687, 0.0, 0.0, 0.0, 1.0559083316811368, 0.0, 0.04427154393293609, 0.8228955354751877, 0.46658038808648383, 0.0, 0.02688606839966265, 0.0, 0.0, 0.6276611460113729, 0.22522673327345408, 0.0, 0.12308651028821192, 0.3657688390111318, 0.0, 0.046115245088609334, 0.0, 0.5342436705087195, 0.0, 0.1923886832463953, 0.07621763959827882, 0.0, 0.0, 0.0, 0.6725528112574624, 0.7483589153917343, 0.0, 0.0, 0.0, 0.0, 0.38949567271561986, 0.16492548861911044, 0.10519585180914466, 0.8853743380662012, 0.957787822214843, 0.0, 0.05459549529270359, 0.25656057396140347, 0.14167223917141744, 0.03949155262056029, 0.0, 0.0, 0.2703834370419471, 0.0, 0.723362221877522, 0.0, 0.0, 0.0, 0.7883757417725614, 0.0, 0.03340589062163017, 0.18896261922152233, 0.0, 0.0, 0.8122657251866786, 0.029607718570353176, 0.0, 0.008213735995679807, 0.0, 0.08605746445745502, 0.0, 0.3070376563830936, 0.10398717208817806, 0.0, 0.0, 0.0, 0.383984202548332, 0.0, 0.0, 0.3036396360576457, 0.0, 0.0, 0.0, 0.0, 0.11965354383371518, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04825455862354496, 0.3335108938296942, 0.0, 0.0, 0.0, 0.0, 0.04121745447265487, 0.30594446336043757, 0.0, 0.33550494159326405, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029116195807012437, 0.0, 0.0, 0.0, 0.0, 0.0, 0.020041236855252602, 0.0, 0.4850188795993097, 0.0, 0.16403823255879735, 0.0, 0.60023572778736, 0.0, 0.1787344157826609, 0.0, 0.0, 0.17233073276918714, 0.17532212882841147, 0.6209016656456683, 0.5984929062073807, 0.8843163905991084, 0.3337919143714591, 0.0, 1.0919707374354302, 0.8166713304287454, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8330317657834686, 0.27201200741148646, 0.0, 0.8995473587201992, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6388227016456749, 0.0, 0.3682672817259989, 0.0, 0.5422113050459496, 0.0, 0.028602469161704683, 0.0, 0.0, 0.3611222515381231, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.031337192831751, 0.0, 0.0, 0.7687924758178234, 0.012617011188267763, 0.0, 0.0, 0.37315715294884366, 0.0, 0.0, 0.0, 0.0, 0.6888779809403613, 0.121001715761302, 0.0, 0.0, 0.3680175749172942, 0.47420475938210593, 0.0, 0.7604201795169553, 0.0, 0.11917670920609563, 0.0, 0.20848198246903302, 0.24926285864223433, 0.0, 0.5553692000145817, 0.4169252107806106, 0.16597755096800731, 0.7334771026528798, 0.0, 0.0, 0.09908991746260937, 0.0, 0.14652270264303283, 0.006759647910977647, 0.0, 0.9351545954529237, 1.2960299208884896, 0.0, 0.0, 0.21191619141709428, 0.0, 0.0, 0.0, 0.01204540426582532, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06493914883934329, 0.7726981572397796, 0.0, 0.4370686273737238, 0.1778273534538074, 0.055209023869020324, 0.0, 0.0, 0.0, 0.05709969797354255, 0.0, 0.0, 0.0, 0.0, 0.44808598581285264, 0.0, 0.0, 0.0, 0.21141909545938053, 0.13390642572615394, 0.0, 0.0, 0.0, 0.25844994675864025, 0.0, 0.51617125876173, 0.2544268105667549, 0.0, 0.17576058376064335, 0.29087109088619356, 0.0, 0.0, 0.3286889977164017, 0.0, 0.0644707079973061, 0.0, 0.018682819036845075, 0.008522941045952347, 0.0, 0.0, 0.2520720928277996, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.146066293561638, 0.08856351358209161, 0.0, 0.0, 0.0, 0.1407746062228793, 0.5246446552397386, 0.0, 0.0, 0.0, 0.3279179855015388, 0.46137944574560436, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14330339619658897, 0.11500988018505275, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7444467047874328, 0.0, 0.0, 0.40713437972280675, 0.0, 0.0, 0.0, 0.5717679971406524, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4877440937322302, 0.6991654372087778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2369682176872117, 0.0, 0.0, 0.6757556051622259, 0.0, 0.0, 0.0, 0.576368321209737, 0.04986303698751877, 0.0, 0.5384684335273707, 0.0, 0.21524971756673417, 0.4963922980972075, 0.0, 0.0, 0.0, 0.0, 0.18940210229325644, 0.5277692784584271, 0.7718932464687741, 0.7210929692294604, 0.0, 0.0, 0.0, 0.0, 0.48286176484120297, 0.8517937989915767, 0.3931693184679991, 0.0, 0.0, 0.06755455710060922, 0.0, 0.026695131792948763, 1.4844324548606433, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4524914530619723, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4694831016582333, 0.0, 0.42831526212260856, 0.6074590079807168, 0.30066361967157035, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6129938591206631, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6008436638333436, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.43882326364474644, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8591062832739853, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6928708028466394, 0.2819039698547807, 0.08752108546971657, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05246236611269018, 0.0, 0.0, 0.5428804251437249, 0.022819504909203123, 0.3729965675892053, 0.0, 0.5741583158437262, 0.0, 0.1935811346150516, 0.0, 0.5023321549740235, 0.2611826745866744, 0.0, 0.056899028261467276, 0.37961815387770637, 0.22527271986010186, 0.05171423855571594, 0.058968538904135746, 0.0, 0.02892983665470066, 0.003313037290954743, 0.0, 0.0, 0.15785301822506514, 0.0, 0.0, 0.07773433689527456, 0.1049811110510813, 0.0, 0.02912372760696772, 0.0, 0.3114315285072337, 0.5703037753007745, 0.0, 0.04813466284828647, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02241933195791073, 0.0, 0.0, 0.0, 0.0, 0.23199999736075347, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1927795141790272, 0.2407119020891451, 0.0, 0.21960445663579467, 0.5770903406753464, 0.15415530724008072, 0.23155572792080611, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3142922871488459, 0.0, 0.0, 0.0, 0.0, 0.3042889785067072, 0.0, 0.5129566600174419, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3746354155106774, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4789154917746846, 0.17517544375428362, 0.0, 0.0, 0.0, 0.2637662382252967, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2102700997979013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.126545263019808, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.332133943612647, 0.0, 0.0, 0.0, 0.06184093060913505, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3212574037659458, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24673989573277713, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3017167941185386, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6233354196759152, 0.0, 0.0, 0.0, 0.5447611694646652, 0.0, 0.0, 0.216176776357065, 0.0, 0.19855221622967104, 0.8686764576101142, 0.16350923987929902, 0.0, 0.0, 0.02334951098786776, 0.17107621812888604, 0.48682879160279025, 0.7109808359466632, 0.6651558420918936, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6192268761337199, 0.31206921876898447, 0.0, 0.0, 0.24595989001208304, 0.11068536977374843, 0.0, 0.6618395820988949, 0.11362642836904417, 0.0, 0.0, 0.23765422406147768, 0.0, 0.0, 0.8073352785417658, 0.0, 0.0, 0.48485062583878286, 1.055137179889336, 0.2671063045394923, 0.0, 0.8476204266733893, 0.473385026956602, 0.5030912229948215, 0.0, 0.0, 0.0, 0.17678971866264329, 0.4076988147485064, 0.0, 0.6776909084507561, 0.13779930009477406, 0.5691281649873949, 0.16622169517158358, 0.433469475882236, 0.818379113845578, 0.9106844436778354, 0.0, 0.499393081506665, 0.0, 0.5725309586159512, 0.6160013948015824, 0.5125607980557373, 0.2778645861379971, 0.0, 0.0, 0.0, 0.0, 0.0, 0.58929804834674, 0.0, 0.8046233984476477, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3967677816937078, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11707526901952116, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.383435421983313, 0.11707115655719894, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07864429232511502, 0.0, 0.0, 0.3002587300128159, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2266804769859352, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24215921984980293, 0.09852579316681935, 0.030588729804574537, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18874358875246125, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3978422171614565, 0.1936032919321414, 0.0, 0.0, 0.2542147176776134, 0.0, 0.0, 0.0, 0.11057553114503467, 0.0, 6.012518808232222e-5, 0.0008825884581384356, 0.6460696181307314, 0.0, 0.0, 0.06879188140017427, 0.0, 0.0, 0.04716298956935701, 0.1540138997690347, 0.1854894997474166, 0.003124358567077274, 0.35109153378778224, 0.0, 0.0, 0.016293742009993128, 0.0, 0.0, 0.3747805868672189, 0.025859295570033313, 0.214029422856965, 0.003742959361061961, 0.0002933458280023473, 0.0, 0.0, 0.0, 0.030501494612752977, 0.0, 0.6996784734474946, 0.0, 0.0, 0.05616866413207192, 0.0, 0.0018184995370819535, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.020171782722387992, 0.0, 0.0, 0.33279196588498333, 0.0, 0.0, 0.6323890570808377, 0.0, 0.0, 0.0, 0.03594525644730097, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004527887543653786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17039388977135247, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6309056496928738, 0.0, 0.0, 0.0, 0.0, 0.260280820884557, 0.0, 0.0, 0.5107183088816271, 0.7967464980324664, 0.14485492608681305, 0.0, 0.009558078807310686, 0.754701551784825, 0.0, 0.0, 0.0, 0.0, 0.7598764239846039, 0.0, 0.029177780358136646, 0.10253044625069853, 0.03763219091970284, 0.8115624154017409, 0.0, 0.5779584654853126, 0.7162312164421211, 0.0, 0.0, 0.9107472399622886, 0.7029540573396418, 0.0, 1.0969174796040306, 0.0, 0.0, 0.0, 0.0, 0.0038591832437520454, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15366266383288085, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.558080611304664, 0.0, 0.0, 0.0, 0.0, 0.30736701150515244, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04311886842935436, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32751189175201845, 0.0, 0.20963216887545572, 0.1760259950046517, 0.0, 0.23753864749234863, 0.24093292162050975, 0.024684548149881243, 0.4936183719527589, 0.7064246796060082, 0.0, 0.06677453327599289, 0.8542035190842152, 0.0, 0.025534429812218047, 0.011379900282647532, 0.039800411165778926, 0.013727111201321645, 0.27843394547131894, 0.24161261590501448, 0.2499939278392831, 0.0, 0.0, 0.3450248607837782, 0.0, 0.0, 0.15272914557490577, 0.10495111476871369, 0.0, 0.0, 0.0, 0.18866875753074405, 0.0, 0.2225813946448797, 0.0, 0.0, 0.3661590836002555, 0.0, 0.0, 0.0, 0.8998957690359772, 0.30889178773893766, 0.6078813570942335, 0.0, 0.6840699471933163, 0.0, 0.0, 0.0, 0.36308986165522683, 0.752528074611531, 0.7191770460546526, 0.49508503625401296, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7784554319844289, 0.16352298326175332, 0.0, 0.042948548224867954, 0.375190336410357, 0.0, 0.6830715485727474, 0.6403864588932121, 0.7831097846364896, 0.46112164648188003, 0.14556009485746954, 0.0, 0.0, 0.0, 0.8585580212631712, 0.0, 0.253359163441029, 0.0, 0.0, 0.0, 0.45902026051340783, 0.0, 0.0, 0.0, 0.0, 0.166881895984427, 0.0, 0.0, 0.837727301005, 0.0, 0.0, 0.7629510291223568, 0.0, 0.34201996071392393, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3670598185817387, 0.0, 0.9533138689466589, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8365046398061449, 0.0, 0.9590136929209965, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.801491142663501, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16957493050977235, 0.0, 0.2507477829737011, 0.0, 0.0, 0.11532054524043628, 0.07735685692161769, 0.5247858743947099, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02100484631395434, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8201592179395716, 0.0, 0.0, 0.04562437343117348, 0.0, 0.22915724847477928, 0.0, 0.0, 0.7159205767218768, 0.0, 0.0, 0.0, 0.0, 0.29228977882295926, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17928588753235497, 0.10348218971035608, 0.8147006956016374, 0.08438351505236888, 0.0, 0.0, 0.0, 0.1070859593707194, 0.7148756921758321, 0.0, 0.8195717571774336, 0.12249576952187838, 0.0, 0.2397374334824377, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05225556550152024, 0.0, 0.0, 0.0, 0.1707240047839942, 0.0, 0.11920584928810601, 0.0, 0.14514911616615112, 0.4284534617057244, 0.04403067305952579, 0.0, 0.012688229227290206, 0.3654383338493288, 0.04642776495318284, 0.0, 0.0, 0.31371261026073766, 0.1364760956744218, 0.5008825042361101, 0.0, 0.04802625911306818, 0.021403808257108425, 0.0, 0.12191697007589085, 0.33632693219045084, 0.49073784844916374, 0.5066599946239788, 0.0, 0.0, 0.033354950181247504, 0.0, 0.15690710970564234, 0.3397139005999492, 0.4535410643500978, 0.0, 0.0, 0.49050280987387757, 0.0, 0.0, 0.45491953624514714, 0.0, 0.0, 0.33864218894794285, 0.0, 0.0, 0.041024172335819876, 0.0, 0.0, 0.0, 0.36175943329836924, 0.0, 0.39749358702806525, 0.0, 0.5595492530984049, 0.0, 0.0, 0.2573403608635483, 0.17262354625512744, 0.0, 0.0, 0.0, 0.3776391490751126, 0.0, 0.0, 0.1445911005474468, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.45961437114556436, 0.08073146338811468, 0.0, 0.0, 0.0, 0.5680662673212686, 0.0, 0.14301647595845865, 0.4278925860448857, 0.2624303541096862, 0.0, 0.5619603114708978, 0.5488835922357254, 0.0, 0.10445139145624531, 0.9180806504163392, 0.5113694952971799, 0.0, 0.4737323723594051, 0.4474251824766889, 0.10616343839228443, 0.0, 0.02745363380188561, 0.0, 0.28312699798757224, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6983886824821985, 0.38943652344243257, 1.2223890565530993, 0.05586381199212052, 0.0, 0.07686093310040262, 0.10701921729681718, 0.0, 0.4467721663826107, 0.0, 0.5122035249872549, 1.008045581843232, 0.10571972464185753, 0.6235175832869809, 0.0, 0.0, 0.0, 0.0, 0.7054625658357997, 0.0, 0.0, 0.17326833225856653, 0.0, 0.0, 0.0, 1.0813156328128786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0927477810868, 0.0, 0.599657110852462, 0.22383250773975968, 0.19685563542122056, 0.0, 0.05605157239206448, 0.41837305013296433, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18996852120778085, 0.0, 0.28856245320282303, 0.0, 0.0, 0.0, 0.26772611418599673, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1616947156362974, 0.0, 0.0, 0.0, 0.0, 0.36168541397352055, 0.0, 0.0, 0.0, 0.1573219565054934, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13761515434984456, 0.07943022011077468, 0.0, 0.21912413885604493, 0.0, 0.0, 0.40654019224262405, 0.0, 0.0, 0.022840701875983912, 0.0, 0.09402454628178203, 0.5332211799090736, 0.14433851006651358, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.043396172364084024, 0.04011000425692938, 0.0, 0.0, 0.0, 0.13104327726482687, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10232284486723907, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10523174379677519, 0.0, 0.10079612361252216, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04415728315159431, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11805369977437472, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6523402818477722, 0.04871612610613401, 0.0, 0.19287524873967893, 0.0, 0.3592812200503388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.050401634126662875, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8285325211040351, 0.0, 0.0, 0.0, 0.42701794948426475, 0.33826599655789313, 0.0, 0.0, 0.0063200711569476415, 0.0, 0.0, 0.4430530345512502, 0.0, 0.6935424923816391, 0.9428504267370209, 0.42746265456576077, 0.0025457381888520196, 0.0, 0.1593559778661365, 0.0, 0.8273232796667221, 0.04988580847200336, 0.9484876902255591, 0.5784846962232053, 0.0, 0.4437739313478008, 0.0, 0.0, 0.29414816951171024, 0.0, 0.022355194883774517, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02069724212749366, 0.0, 0.0, 0.0, 0.0, 0.7860463101009033, 0.0, 0.0, 0.0, 0.8499064420418566, 0.0, 0.014821364995218649, 0.0, 0.004694386740689857, 0.25038082548050006, 0.5774089497757802, 0.0, 0.0, 0.0, 0.0, 0.006270331329794731, 0.6139069964758506, 0.8351435200462407, 1.0242327730345495, 0.0, 0.029307532281045708, 0.0, 0.0, 0.0, 0.5726801471740839, 0.4962238989829506, 0.0, 0.07225356949876899, 0.10746103390935668, 0.0, 0.0, 0.8346013157058231, 0.0, 0.0, 0.12871551917858068, 0.0, 0.0, 0.05722051841888945, 0.0, 0.08248659071056784, 0.08634381582594033, 0.0, 0.14691645141749232, 0.0, 0.0, 0.0, 0.12530859946217338, 0.0, 0.10215231917559951, 0.07032216186532725, 0.0, 0.8790426858900641, 0.10792096194290268, 0.054388076691659265, 0.0, 0.0, 0.0, 0.05001396409640395, 0.114742650990913, 0.28339886512623463, 0.15677327627325063, 0.0, 0.03258480102579557, 0.09096085908673467, 0.0, 0.0, 0.15530131741375458, 0.4726591715297998, 0.7751806988017736, 0.0, 0.51208607063286, 0.0, 0.0, 0.8142774797804637, 0.037795557638802935, 0.0, 0.03542525158598919, 0.07905092197782795, 0.0, 0.0, 0.1322231578644953, 0.0, 0.0, 0.008286484320060336, 0.670492082894006, 0.0, 0.0, 0.2274177128809876, 0.20430769763068007, 0.27374263149272277, 0.0, 0.0, 0.0, 0.0, 0.22105379716709922, 0.08605636125516496, 0.023058224273634728, 0.03343036365050954, 0.7905997431838073, 0.031091378094046798, 0.32331562706461314, 0.0, 0.048595513480849374, 0.0, 0.6695135011372569, 0.01079155413526415, 0.7675661133629853, 0.01950494389053299, 0.0, 0.06609079415505228, 0.15915608286937477, 0.0, 0.17610090955799163, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05278940542005462, 0.0, 0.04363140001862599, 0.3747258422202424, 0.18235409289517635]), 42), 42)),) julia> @finch_code begin Ct .= 0 for j = parallel(_) @@ -734,7 +734,7 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.004334271763144113, 0.19866796375858964, 0.05511378591134807, 0.37983318302160474, 0.0, 0.8329001018500983, 0.30166090609024687, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3289219868624648, 0.0, 0.15511617694464214, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18499887719318273, 0.0, 0.0, 0.0, 0.19259223593916178, 0.0, 0.0, 0.0638915620449496, 0.08125561754012361, 0.17659717140450376, 0.0, 0.0, 0.1525779960421776, 0.0, 0.0, 0.0, 0.0, 0.29196799055295863, 0.0, 0.0, 0.0, 0.5551667524029037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4594337414860906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3019846765891098, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18892258579898563, 0.0, 0.2395310548375412, 0.0, 0.359229579293753, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00028478282759787334, 0.0, 0.3432275013790356, 0.0, 0.0, 0.2972839943189292, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19540404365846636, 0.0, 0.0, 0.0, 0.0, 0.18546216890582629, 0.0, 0.0, 0.00916099623463154, 0.0, 0.034731738855626984, 0.4853088859188271, 0.0076713909171271105, 0.0, 0.0, 0.5640422262893099, 0.0, 0.5950501234938147, 0.040920156633969085, 0.0014920661060395996, 0.0, 0.08081663901361853, 0.8825202410318094, 0.0, 0.006218090636031004, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3280555235834662, 0.03812149119614576, 0.0, 0.05190957475021724, 0.0, 0.06033708819060236, 0.0, 0.10124291140603807, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5085302772239245, 0.0, 0.5334307954394755, 0.0, 0.0, 0.2328402544634388, 0.0, 0.005816161517311894, 1.5317318593263975, 0.0, 0.46738125332221536, 0.0, 0.09813163178688389, 0.4394739409933983, 0.0, 0.26102098784262384, 0.0, 0.0, 0.0, 0.0, 0.8804155352247423, 0.0, 0.0, 0.48240400321886606, 0.3763091458911055, 0.6151496795666793, 0.0, 0.27268296540705483, 0.0, 0.0014290584461454537, 0.0, 0.0, 0.0, 0.5294637260878591, 0.0, 0.0, 0.0, 0.31181862629226015, 0.0, 0.34152287293383227, 0.1986997482112381, 0.2527011428302912, 0.0, 0.434749031361829, 0.0, 0.4472075705110786, 0.4092092126159339, 0.2807873539680881, 0.17401521117970595, 0.0, 0.0, 0.43733948883443596, 0.5485693747724284, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0983266821553666, 0.05373620000037918, 0.49612300100963586, 0.0, 0.0, 1.075151264033199, 0.0, 0.18716105879611752, 0.03950202184626144, 0.0, 0.0, 0.7852572057826378, 0.0, 0.0, 0.08756438716142145, 0.27446263899702106, 0.0, 0.0, 0.07204260281080108, 0.0, 0.09291620627436281, 0.23270017215835156, 0.23824566618105675, 0.0, 0.0, 0.0, 0.13665872084048475, 0.0, 0.0, 0.0067937121060301624, 0.1164801427986044, 0.0, 0.5691621002508566, 0.4713388661713567, 0.41358181631025637, 0.0, 0.3128607440091297, 0.0, 0.0, 0.20424594336339066, 0.0, 0.0, 0.7442286193021344, 0.10553727794892508, 0.0, 0.30186901767997887, 0.0, 0.0, 0.0, 0.32291683563950796, 0.07758151598185183, 0.0, 0.347786535534979, 0.7360230359944353, 0.0, 0.0, 0.0, 0.8757273805535595, 0.41322710295268655, 0.0, 0.25679112297862333, 0.17774302673574222, 0.5841939760860391, 0.0, 0.0, 0.0, 0.13300779742001662, 0.16915583797139946, 0.0, 0.0, 0.0, 0.7164740353603845, 0.45156468002631484, 0.0, 0.27217311439601866, 0.7084784766971438, 0.06835326871026481, 0.0, 0.0, 0.0, 0.2861016237491002, 1.0700436562849107, 0.135740840434777, 0.2599664462430113, 0.45536369102376945, 0.0, 0.0, 0.0, 0.16460938932017066, 0.9424546774296569, 0.4980075807530193, 0.501649117240962, 0.9215918221852557, 0.0, 0.5227646022766553, 0.46865433734477785, 0.0, 0.1899494468105599, 0.0, 0.14204872822901377, 0.7891527088162923, 0.2800775160398023, 0.0, 0.0, 0.6038144125549446, 0.0, 0.4101280976499608, 0.15813547044885462, 0.4381740566617935, 0.0025678619479343042, 0.5913196381458786, 0.01581382625018507, 0.4317825799661969, 0.0, 0.5361217114844467, 0.16404576969544252, 0.0, 0.03623369485950333, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19327505078226082, 0.1125279795645968, 0.0, 0.38171505913646114, 0.0, 0.0012820843611261621, 0.0, 0.0, 0.017018867107690273, 0.0, 0.018573326277702022, 0.7755881641075008, 0.12996991545193906, 0.0, 0.18005632805213245, 0.0, 0.2451805301156947, 0.0, 0.3747092870507497, 0.0, 0.4781929115858312, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.35214721497251084, 0.0, 0.020304118651362432, 0.14466279308909658, 0.626862644216891, 0.0, 0.0, 1.5549351131665947, 0.30737844662289215, 0.0, 0.0, 0.0, 0.0, 0.009701873820892715, 0.2520412914553624, 0.018396624198184493, 0.0, 0.7982268230101296, 0.0, 0.9201682818000929, 0.0, 0.0, 0.7342011144064367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09396246898802936, 0.0, 0.5073258744317697, 0.22284199906817412, 0.10151898941699102, 0.03180992568768135, 0.0, 0.5543686635557524, 0.0, 0.0, 0.0, 0.22367207355552704, 0.0, 0.0, 0.0, 0.40880306935546484, 0.0, 0.42113696363931935, 0.0, 0.0, 0.0, 0.43326306412219423, 0.39232717474974355, 0.0, 0.0, 0.0, 0.013675206005982276, 0.0, 0.2603519242467926, 0.3502025254743841, 0.14312660068897712, 0.34775162340880994, 0.20310882214946477, 0.0, 0.27127891969267615, 0.0, 0.0, 0.020541404680713544, 0.0, 0.0, 0.1991870263338475, 0.0, 0.0, 0.2456237488004554, 0.12123860127246498, 0.2079074067296303, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24646978770136238, 0.15225808974571345, 0.0, 0.0, 0.46988488666249073, 0.16461741428636234, 0.4415386194506142, 0.05631807188893752, 0.0611318669096905, 0.0, 0.0, 0.0, 0.5215534136524774, 0.0, 0.0, 0.6274626509368973, 0.038256585847320265, 0.530070634494204, 0.0, 0.7877809268797783, 0.25601250351282806, 0.37534186876141573, 0.700013095645165, 0.0, 0.29431110179251513, 0.22882177649965688, 1.0569304890861846, 0.0, 0.0, 0.0, 0.0, 0.02833923205698933, 0.02572736738919585, 0.0, 0.1150475064446459, 0.24371977071087828, 0.0, 0.0, 0.044121908414131224, 0.0771055384425919, 0.09695789652483547, 0.0, 0.0, 0.0, 0.12020713596947674, 0.045249684273424934, 0.8721213827038133, 0.0, 0.11731035534021127, 0.37569616707373005, 0.0, 0.0, 0.9570606189270042, 0.9086284112098039, 0.20027308709305888, 0.4268041763647709, 0.0, 0.0, 0.015909944043088663, 0.0, 0.7658973441527888, 0.0, 0.19507759787979717, 0.3226660152512004, 0.23629991340839918, 0.0, 0.13848101841219138, 0.0, 0.0, 0.24578615843203896, 0.0, 0.0, 0.10167993256702677, 0.0, 0.0, 0.12538470338440244, 0.9934363459809055, 0.10613146591697438, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6421265863141966, 0.0, 0.5400344618364347, 0.025731716559651077, 0.0, 0.0, 0.0, 0.007521097208030019, 0.5455660054203588, 0.0, 1.1209603429913297, 0.0, 0.0, 0.5234607155600556, 0.0, 0.023977651748011766, 0.0, 0.0, 0.0, 0.27798322874225667, 0.0, 0.35612425891926536, 0.0, 0.7529913555346315, 0.6214420882570796, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12146506806205652, 0.0, 0.3210215267482459, 0.0, 0.0, 0.0, 0.33419799384234544, 0.0, 0.0, 0.15359727591834285, 0.19534099821264672, 0.525863863274946, 0.0, 0.0, 0.34569678733330644, 0.0, 0.0, 0.3415674397857982, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.523004359259986, 0.0, 0.22235180304591923, 0.0, 0.00635695661054767, 0.0, 0.0, 0.0843846185513356, 0.0, 0.0, 0.0, 0.8855039996037297, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27294552017018114, 0.0, 0.3412878895624823, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5864608505347954, 0.0, 0.10380099346078346, 0.02524889717437322, 0.0, 0.0, 0.38157075730498896, 0.0, 0.0, 0.0, 0.45469484904050655, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26459586877877683, 0.18314523505716396, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22372814141562178, 0.0, 0.0, 0.0, 0.6276845275284666, 0.18331203344516112, 0.25689720406507865, 0.04048914090414101, 0.0, 0.016969058333515752, 0.0, 0.5911567891086366, 0.37358991094373184, 0.21597413111529512, 0.09535966106843696, 0.021909623318208237, 0.49412659112391777, 0.39229708641560146, 0.0, 0.0, 0.5239905526116051, 0.22383442432789932, 0.0, 0.408761833081477, 0.7858251636352953, 0.0, 0.03095169444374481, 1.0134328993353359, 0.0, 0.5783663988186404, 0.023349871375665725, 0.4068090650141155, 0.3701047391436106, 0.7170357796952346, 0.31327392774306395, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.39350494784782397, 0.07595368484327951, 0.4868292236818003, 0.046986031631648606, 0.530207151960747, 0.01037806421927761, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05535788985307855, 0.7394134258901907, 0.17106635844034493, 0.9821443208953105, 0.0, 0.008962807708770178, 0.0, 0.0, 0.11897566020800357, 0.0, 0.0, 0.0, 1.2828090910806784, 0.0, 0.4691443493685695, 0.0, 0.07022467062008277, 0.18231155361607748, 0.41302392682414213, 0.0, 0.13696413696930718, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.423686950315378, 0.0, 0.5297732126841366, 0.0, 0.10086209606266386, 0.4105665706595916, 0.2899236467445781, 0.08479167779863508, 0.0, 1.1607169616195545, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44056670549109944, 0.0036426275414389976, 0.22268017654499572, 0.70259131988822, 0.021981713208965886, 0.0, 0.0, 0.0, 0.6644482698446481, 0.5559910462571956, 0.9081368976941899, 0.9545466439826781, 0.0, 0.5800820874802947, 0.6131061961157059, 0.0, 0.3387938943904664, 0.0, 0.41233232521209184, 0.6892320892052487, 0.9168247018477867, 0.7592095444656833, 0.0, 0.7080274090242662, 0.0, 0.0, 0.7409103227795685, 0.4891910517462003, 0.0, 0.0, 0.6996898878138225, 0.18201720925245757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.033060035104523045, 0.0, 0.0, 0.0, 0.0, 0.0010434833431631984, 0.0, 0.0, 0.0, 0.010921241238865733, 0.0, 0.015498170387323498, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.011618017340433275, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2104054739321471, 0.0, 0.0, 0.0, 0.051249741424478176, 0.0, 0.0, 0.0, 0.09744956100917274, 0.0, 0.0, 0.0, 0.0, 0.10766993925868745, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18951483497887683, 0.5969374604132631, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6248091001560899, 0.0, 0.0, 0.0, 0.0, 0.18617398114562853, 0.0530079909103574, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14076422137873648, 0.3823151552281139, 0.28535858102685935, 0.3054264047421474, 0.0, 0.0, 0.5425991952026914, 0.16566917168527906, 0.0, 0.0, 0.24572721112234908, 0.0, 0.0, 0.311993347128524, 0.0, 1.0231061248638629, 0.5939954507294103, 0.5983388707717968, 0.7851882761904205, 0.0, 0.28209866162610053, 0.46470151179975694, 0.0, 0.22767102275324697, 0.0, 0.0, 0.3351791998251741, 0.0, 0.0, 0.0, 0.3258354466053841, 0.29514851487698524, 0.25858133097678015, 0.1886151008053812, 0.5226293862659805, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0442888167727012, 0.0, 0.002505192641426779, 0.0, 0.0, 0.07664740890754863, 0.0, 0.0, 0.013363010227595206, 0.00048725362450601585, 0.002419244088482629, 0.026391726291740327, 0.0, 0.0, 0.03460717393330891, 0.0, 0.13624247986958654, 0.0, 0.0, 0.0, 0.0, 0.0, 0.012449069569846, 0.0, 0.016951747875799564, 0.0, 0.0197038621774241, 0.0, 0.033062191640471625, 0.07310509907314719, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06556034095953286, 0.0, 0.02434740964367002, 0.0, 0.0, 0.13592547532623306, 0.0, 0.030022610188286405, 0.03795734899490777, 0.008699370747195389, 0.0, 0.0, 0.18940737674761182, 0.16014434992779022, 0.0058393216511455045, 0.0, 0.3162824676834449, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14919154588027264, 0.0, 0.20315232851529888, 0.0, 0.27582528532656464, 0.0, 0.3962223404212856, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00142596300027198, 0.0, 0.008781597914028754, 0.2917830655969515, 0.0, 0.0, 0.3010196130390429, 1.085161420061463, 0.0, 0.8818413438369698, 0.0, 0.14807253735972709, 0.6682230613653689, 0.6738718955158736, 0.0, 0.2921120382906695, 0.0, 0.23016863424694362, 0.44343897402347887, 0.0, 0.0, 1.2859761704109314, 1.188418751121335, 0.0, 0.4620501506594876, 0.23396469855670338, 0.0, 0.03498671823904876, 0.0, 0.0, 0.3392611399043929, 0.20497564811318061, 0.0, 0.4183535169904413, 0.20649711391931772, 0.520902106226398, 0.0, 0.0, 0.16125806820737418, 0.5576988707246249, 0.0, 0.0, 0.0, 0.11391623120681071, 0.0, 0.0, 0.09151851725619714, 0.0, 0.0, 1.197254000111945, 0.0, 0.8775820846458859, 0.0, 0.5629797627532018, 0.6687057520979063, 0.341227000414515, 0.0, 0.25482576175079585, 0.0, 0.39537376259476137, 0.4437592920364036, 0.0, 0.0, 0.5927285333298421, 0.651986303075751, 0.0, 1.0434591895456948, 0.0, 0.0, 0.03501199088471498, 0.0, 0.0, 0.3395062050893736, 0.15619471223870085, 0.0, 0.41865571453083017, 0.20664627704903807, 0.48238135206809674, 0.08860575544817058, 0.0, 0.005695035181786341, 0.42497543210880456, 0.0, 0.23934194260454025, 0.30438882267274336, 0.2874361482000896, 0.0, 0.0, 0.6245971595264426, 0.0, 0.3639559852559372, 0.0, 0.0, 0.20575691959192335, 0.0, 0.5994751724692355, 0.0, 0.0, 0.0, 0.0, 0.002904710270589501, 0.0, 0.27722048222724693, 0.15720637186052522, 0.0, 0.40582979792580204, 0.3276141191929195, 0.0, 0.5216472712210337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.022828121623522435, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.111114554054197, 0.0, 0.0, 0.005523835481493179, 0.12589753624924738, 0.4223352609451343, 0.19512225997871732, 0.9646462752755526, 0.0, 0.0, 0.908234546074678, 0.0, 0.1303083320340461, 0.4180115467796097, 0.3502002628164635, 0.005797584702932196, 0.620011620521792, 0.6673813159226286, 0.0030737631986123407, 0.0, 0.42144642014638856, 1.0414378536891689, 0.6289622414694364, 1.5563606265339154, 0.08385396416867873, 0.3115994197854627, 0.7117829870894571, 0.6381078265340546, 0.0, 0.23989801450652898, 0.0, 0.5826228436020011, 0.8457142287971168, 0.0, 0.0, 0.0, 1.0193786877434905, 0.0, 0.0, 0.19971832516875276, 0.5533950636153777, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21472741909783344, 0.39082851888093567, 0.44716245502350144, 0.2879713896328549, 0.5511368948723377, 0.33565164359388877, 1.3517828371888283, 0.0, 0.09957607530690628, 0.0, 0.0, 0.26103163435011795, 0.3965287786994862, 0.6597151598792015, 0.0, 0.34286845579856556, 0.3900059867245693, 0.34423839922938515, 0.0, 1.2842745238771571, 0.3694211002080512, 0.0, 0.05489702502604951, 0.3645945046142821, 0.0, 0.0, 0.08041277613458127, 0.2893532857853331, 0.0, 0.5419495915870312, 0.70973704371772, 0.06597297072421819, 0.0, 0.0, 0.28417074423649047, 0.45673560467870195, 0.1772454725351981, 0.22541615615699262, 0.08077018346809645, 0.5662548477384789, 0.07678831671440492, 0.7573984424681688, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4826509895037858, 0.0, 0.7156459126461995, 0.0, 0.0, 0.0, 0.0, 0.0, 0.013563432420802306, 0.4559162518278489, 0.0, 0.0, 0.0, 0.0, 0.26262283944881243, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16505781512417061, 0.2933206286622639, 0.0, 0.0, 0.0, 0.0, 0.40289003757510067, 0.0, 0.0, 0.0, 0.6372941893353361, 0.0, 0.6237934507673457, 0.8070702584067075, 0.0, 0.0, 0.3379623279083573, 0.0, 0.46129991809862586, 0.7333015288992237, 0.21031442023566344, 0.0, 0.7041420713561054, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7760176053652288, 0.0, 1.0534236649773678, 0.0, 0.0, 0.8070780011372765, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4823716017908521, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6208306891807599, 0.0, 0.0, 0.01732988822073383, 0.2738833349341264, 0.10672374403860475, 0.0, 0.008043590060480383, 0.0, 0.055277084044920086, 0.0, 0.0, 0.17943961322559207, 0.0, 0.0, 0.0, 0.0, 0.0, 0.718108290096912, 0.0, 0.0, 0.0, 0.008728384689335622, 0.0, 0.1697763404331079, 0.11586384141065409, 0.0, 0.0, 0.0, 0.8848305575683707, 0.0, 0.8449968950182224, 0.0, 0.0, 0.0, 0.6706152313255382, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8308196053978146, 0.0, 0.9175002824131868, 0.7530109173431534, 0.022342425693822682, 0.0, 0.0035915524463436964, 0.15288943835905894, 0.0, 0.5199425421439203, 0.11917728725476327, 0.3521011644457409, 0.0, 0.822488739774635, 0.513543493422637, 0.2981570434312181, 0.0, 0.0, 1.2701086711578897, 0.0, 0.11247893732510689, 0.0, 0.039332390318575425, 0.0, 0.11102635670488926, 0.0, 0.15118325075382752, 0.0, 0.1757278339799435, 0.0, 0.2948633760880991, 0.15371975197149906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04453230950399372, 0.0, 0.05568267952698087, 0.0, 0.21714106205060016, 0.0, 0.0, 0.0, 0.0, 0.7213227431120439, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2701718137836067, 0.0, 0.06123281377737304, 0.4007297534572718, 0.0, 0.0, 0.02350606599699272, 0.0, 0.47270164239805296, 0.39554302818161685, 0.39843532224568856, 0.0, 0.0, 0.46004399190355705, 0.41242580548884994, 0.0, 0.15086754157289264, 0.0, 0.0, 0.5466072621606027, 0.18414300130678235, 0.2087681866233734, 0.0, 0.5313695523968773, 0.0, 0.0, 0.2807883504872339, 0.34802019073798685, 0.0, 0.09776175774612722, 0.1924014129464173, 0.0, 0.0, 0.0, 0.2995245510564702, 0.1439415371971276, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09612835370305864, 0.0, 0.07178793274997196, 0.0, 0.0, 0.0, 0.529229742886101, 0.0, 0.0, 0.5898615183638936, 0.0, 0.1996504875270556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07685007162501065, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4724449949223617, 0.0, 0.21985358976027652, 0.0, 0.0, 0.0, 0.6511036698044336, 0.5394783324223208, 0.9048355234024855, 0.0, 0.0, 0.0, 0.008134079103649166, 0.17236516549262873, 0.0, 0.7108281927774538, 0.0, 0.0, 0.0, 0.8245834715993663, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22989626507902333, 0.12442621872484774, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3037122713618223, 0.0, 0.0, 0.008259351424073042, 0.4378900919766154, 0.05086408498890661, 0.31974807102322866, 0.0, 0.0, 0.7960980638875322, 0.0689135689704732, 0.0, 0.0, 0.0, 0.20359294387478752, 0.9097633301509839, 0.0, 0.6841090251831579, 0.0, 0.6154584825649704, 0.7335150023327748, 1.015637287349907, 0.0, 0.0779165260149525, 1.1277817941657742, 0.0, 0.0, 0.3457097793442966, 0.6958114560471119, 0.22297907055084815, 0.02617735461213243, 0.8271866794310433, 0.0, 0.25383801660715655, 0.0, 0.6564805026462143, 0.4519424562793308, 0.8175733700968422, 0.26495100977979114, 0.0, 0.0, 0.0, 0.33910693050583907, 0.0, 0.0, 0.0, 0.4889218480481046, 0.0, 0.3925649791995639, 1.5627863234111485, 0.8201598086100989, 0.28474440170274185, 1.0514838770367962, 0.010290531779792767, 0.0, 0.0, 1.5282247448720891, 0.4202365445740981, 0.38631591015261757, 0.07827208426350975, 0.002001482371009478, 0.19978631068641475, 0.10840878806592323, 0.8849580765325739, 0.7025926608640433, 0.21468725597950544, 0.6515266028885637, 0.304659479667613, 0.0, 0.5203661079080213, 0.1989832785613875, 0.22866153178235926, 0.2129788116497342, 0.0511368043793991, 0.0, 0.06963236972450947, 0.0, 0.08093717687353573, 0.0, 0.3254291820176872, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4944791980843742, 0.5417407856384763, 0.0, 0.4343792686365096, 1.5442785077006684, 0.0, 0.13746522377571999, 0.0, 0.0, 0.0, 0.0, 0.01933245239450143, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44623451745418, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.30502005455201636, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.014872981553739924, 0.0, 0.0, 0.0007393802182031884, 0.0, 0.14653699929908884, 0.0, 0.0, 0.26188312990151436, 0.028159286104530473, 0.0, 0.4084686341089707, 0.9235151006259961, 0.5957064186534903, 0.0, 0.0, 0.5535709817494249, 0.0, 0.25891613288066156, 0.07783302925410085, 0.2939591160629263, 0.1987201643010643, 0.0, 0.09767541007114018, 0.4120929351702914, 0.22225830848448824, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13739476210353194, 0.0, 0.037597515302596925, 0.0, 0.0, 0.31874062595288627, 0.33536722163001637, 0.0, 0.0, 0.0, 0.48352996362981304, 0.0, 0.38851289261478805, 0.6830254018960756, 0.3364461001285706, 0.8253161071254982, 0.0, 0.2348841918025421, 0.0, 0.4205219693225024, 0.5314960091024892, 0.0, 0.0, 0.10178270195612651, 0.0, 0.0, 0.780835547454152, 0.5872223143240599, 0.2503853190515238, 0.0, 0.0, 0.6150976289535472, 0.0, 0.09445718365268194, 0.0, 0.0, 0.17331386223779208, 1.5139967025892487, 0.0, 0.0031631037123804793, 0.0, 0.0, 0.20592512324808152, 0.0, 0.03635874582185372, 0.0, 0.20018457152414249, 0.22068196040992705, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.01855804465451247, 0.0, 0.0, 0.03641425883740431, 0.0568080930379847, 0.10109716846875504, 0.0, 0.0, 0.0, 0.0, 0.005424838537552436, 0.0, 0.0, 0.5251896042062963, 0.0, 0.0, 0.0, 0.00515342598991506, 0.045980273053842245, 0.0, 0.4033688458623361, 0.0510673466163073, 0.0, 0.0, 0.02134197385615031, 0.01687808266981965, 0.0, 0.4932447371732914, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7178045198025068, 0.2106682695954306, 0.0, 0.3115118572371521, 0.5170963380295581, 0.39595498771521426, 0.1432663403816299, 0.5698542189659496, 0.0, 0.0, 0.0, 0.5317966816929195, 0.0, 0.5315818882594147, 0.8168445783005969, 0.0, 0.0, 0.0, 0.01222733860627223, 0.0, 0.716756885645577, 0.0, 0.8217284580618865, 0.48234209517721377, 0.15545502627894098, 0.04826321760798536, 0.0, 0.0, 0.1394038038151463, 0.0, 0.056802678199824076, 0.0, 0.0, 0.0, 0.3128541399180126, 0.0, 0.0, 0.596593418834028, 0.0, 0.2846892571697076, 0.0, 0.0, 0.0, 0.23365792107187477, 0.0, 0.0, 0.4584793374366712, 0.7152510496888798, 0.0, 0.0, 0.0, 0.8190896825195866, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11127793558853107, 0.0, 0.5789217135796446, 0.0, 0.0, 0.6429712972008511, 0.0, 0.0, 0.661506988212563, 0.7629272979371657, 0.0, 0.4234710523361336, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4257443064600869, 0.0, 0.20425497460318195, 0.0, 0.5184318202957809, 0.5906121758765186, 0.0, 0.9091367634018797, 0.0, 0.30652125262867885, 0.0, 0.7954054080966687, 0.0, 0.0, 0.0, 1.0559083316811368, 0.0, 0.04427154393293609, 0.8228955354751877, 0.46658038808648383, 0.0, 0.02688606839966265, 0.0, 0.0, 0.6276611460113729, 0.22522673327345408, 0.0, 0.12308651028821192, 0.3657688390111318, 0.0, 0.046115245088609334, 0.0, 0.5342436705087195, 0.0, 0.1923886832463953, 0.07621763959827882, 0.0, 0.0, 0.0, 0.6725528112574624, 0.7483589153917343, 0.0, 0.0, 0.0, 0.0, 0.38949567271561986, 0.16492548861911044, 0.10519585180914466, 0.8853743380662012, 0.957787822214843, 0.0, 0.05459549529270359, 0.25656057396140347, 0.14167223917141744, 0.03949155262056029, 0.0, 0.0, 0.2703834370419471, 0.0, 0.723362221877522, 0.0, 0.0, 0.0, 0.7883757417725614, 0.0, 0.03340589062163017, 0.18896261922152233, 0.0, 0.0, 0.8122657251866786, 0.029607718570353176, 0.0, 0.008213735995679807, 0.0, 0.08605746445745502, 0.0, 0.3070376563830936, 0.10398717208817806, 0.0, 0.0, 0.0, 0.383984202548332, 0.0, 0.0, 0.3036396360576457, 0.0, 0.0, 0.0, 0.0, 0.11965354383371518, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04825455862354496, 0.3335108938296942, 0.0, 0.0, 0.0, 0.0, 0.04121745447265487, 0.30594446336043757, 0.0, 0.33550494159326405, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029116195807012437, 0.0, 0.0, 0.0, 0.0, 0.0, 0.020041236855252602, 0.0, 0.4850188795993097, 0.0, 0.16403823255879735, 0.0, 0.60023572778736, 0.0, 0.1787344157826609, 0.0, 0.0, 0.17233073276918714, 0.17532212882841147, 0.6209016656456683, 0.5984929062073807, 0.8843163905991084, 0.3337919143714591, 0.0, 1.0919707374354302, 0.8166713304287454, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8330317657834686, 0.27201200741148646, 0.0, 0.8995473587201992, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6388227016456749, 0.0, 0.3682672817259989, 0.0, 0.5422113050459496, 0.0, 0.028602469161704683, 0.0, 0.0, 0.3611222515381231, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.031337192831751, 0.0, 0.0, 0.7687924758178234, 0.012617011188267763, 0.0, 0.0, 0.37315715294884366, 0.0, 0.0, 0.0, 0.0, 0.6888779809403613, 0.121001715761302, 0.0, 0.0, 0.3680175749172942, 0.47420475938210593, 0.0, 0.7604201795169553, 0.0, 0.11917670920609563, 0.0, 0.20848198246903302, 0.24926285864223433, 0.0, 0.5553692000145817, 0.4169252107806106, 0.16597755096800731, 0.7334771026528798, 0.0, 0.0, 0.09908991746260937, 0.0, 0.14652270264303283, 0.006759647910977647, 0.0, 0.9351545954529237, 1.2960299208884896, 0.0, 0.0, 0.21191619141709428, 0.0, 0.0, 0.0, 0.01204540426582532, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06493914883934329, 0.7726981572397796, 0.0, 0.4370686273737238, 0.1778273534538074, 0.055209023869020324, 0.0, 0.0, 0.0, 0.05709969797354255, 0.0, 0.0, 0.0, 0.0, 0.44808598581285264, 0.0, 0.0, 0.0, 0.21141909545938053, 0.13390642572615394, 0.0, 0.0, 0.0, 0.25844994675864025, 0.0, 0.51617125876173, 0.2544268105667549, 0.0, 0.17576058376064335, 0.29087109088619356, 0.0, 0.0, 0.3286889977164017, 0.0, 0.0644707079973061, 0.0, 0.018682819036845075, 0.008522941045952347, 0.0, 0.0, 0.2520720928277996, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.146066293561638, 0.08856351358209161, 0.0, 0.0, 0.0, 0.1407746062228793, 0.5246446552397386, 0.0, 0.0, 0.0, 0.3279179855015388, 0.46137944574560436, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14330339619658897, 0.11500988018505275, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7444467047874328, 0.0, 0.0, 0.40713437972280675, 0.0, 0.0, 0.0, 0.5717679971406524, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4877440937322302, 0.6991654372087778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2369682176872117, 0.0, 0.0, 0.6757556051622259, 0.0, 0.0, 0.0, 0.576368321209737, 0.04986303698751877, 0.0, 0.5384684335273707, 0.0, 0.21524971756673417, 0.4963922980972075, 0.0, 0.0, 0.0, 0.0, 0.18940210229325644, 0.5277692784584271, 0.7718932464687741, 0.7210929692294604, 0.0, 0.0, 0.0, 0.0, 0.48286176484120297, 0.8517937989915767, 0.3931693184679991, 0.0, 0.0, 0.06755455710060922, 0.0, 0.026695131792948763, 1.4844324548606433, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4524914530619723, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4694831016582333, 0.0, 0.42831526212260856, 0.6074590079807168, 0.30066361967157035, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6129938591206631, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6008436638333436, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.43882326364474644, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8591062832739853, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6928708028466394, 0.2819039698547807, 0.08752108546971657, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05246236611269018, 0.0, 0.0, 0.5428804251437249, 0.022819504909203123, 0.3729965675892053, 0.0, 0.5741583158437262, 0.0, 0.1935811346150516, 0.0, 0.5023321549740235, 0.2611826745866744, 0.0, 0.056899028261467276, 0.37961815387770637, 0.22527271986010186, 0.05171423855571594, 0.058968538904135746, 0.0, 0.02892983665470066, 0.003313037290954743, 0.0, 0.0, 0.15785301822506514, 0.0, 0.0, 0.07773433689527456, 0.1049811110510813, 0.0, 0.02912372760696772, 0.0, 0.3114315285072337, 0.5703037753007745, 0.0, 0.04813466284828647, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02241933195791073, 0.0, 0.0, 0.0, 0.0, 0.23199999736075347, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1927795141790272, 0.2407119020891451, 0.0, 0.21960445663579467, 0.5770903406753464, 0.15415530724008072, 0.23155572792080611, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3142922871488459, 0.0, 0.0, 0.0, 0.0, 0.3042889785067072, 0.0, 0.5129566600174419, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3746354155106774, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4789154917746846, 0.17517544375428362, 0.0, 0.0, 0.0, 0.2637662382252967, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2102700997979013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.126545263019808, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.332133943612647, 0.0, 0.0, 0.0, 0.06184093060913505, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3212574037659458, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24673989573277713, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3017167941185386, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6233354196759152, 0.0, 0.0, 0.0, 0.5447611694646652, 0.0, 0.0, 0.216176776357065, 0.0, 0.19855221622967104, 0.8686764576101142, 0.16350923987929902, 0.0, 0.0, 0.02334951098786776, 0.17107621812888604, 0.48682879160279025, 0.7109808359466632, 0.6651558420918936, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6192268761337199, 0.31206921876898447, 0.0, 0.0, 0.24595989001208304, 0.11068536977374843, 0.0, 0.6618395820988949, 0.11362642836904417, 0.0, 0.0, 0.23765422406147768, 0.0, 0.0, 0.8073352785417658, 0.0, 0.0, 0.48485062583878286, 1.055137179889336, 0.2671063045394923, 0.0, 0.8476204266733893, 0.473385026956602, 0.5030912229948215, 0.0, 0.0, 0.0, 0.17678971866264329, 0.4076988147485064, 0.0, 0.6776909084507561, 0.13779930009477406, 0.5691281649873949, 0.16622169517158358, 0.433469475882236, 0.818379113845578, 0.9106844436778354, 0.0, 0.499393081506665, 0.0, 0.5725309586159512, 0.6160013948015824, 0.5125607980557373, 0.2778645861379971, 0.0, 0.0, 0.0, 0.0, 0.0, 0.58929804834674, 0.0, 0.8046233984476477, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3967677816937078, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11707526901952116, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.383435421983313, 0.11707115655719894, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07864429232511502, 0.0, 0.0, 0.3002587300128159, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2266804769859352, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24215921984980293, 0.09852579316681935, 0.030588729804574537, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18874358875246125, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3978422171614565, 0.1936032919321414, 0.0, 0.0, 0.2542147176776134, 0.0, 0.0, 0.0, 0.11057553114503467, 0.0, 6.012518808232222e-5, 0.0008825884581384356, 0.6460696181307314, 0.0, 0.0, 0.06879188140017427, 0.0, 0.0, 0.04716298956935701, 0.1540138997690347, 0.1854894997474166, 0.003124358567077274, 0.35109153378778224, 0.0, 0.0, 0.016293742009993128, 0.0, 0.0, 0.3747805868672189, 0.025859295570033313, 0.214029422856965, 0.003742959361061961, 0.0002933458280023473, 0.0, 0.0, 0.0, 0.030501494612752977, 0.0, 0.6996784734474946, 0.0, 0.0, 0.05616866413207192, 0.0, 0.0018184995370819535, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.020171782722387992, 0.0, 0.0, 0.33279196588498333, 0.0, 0.0, 0.6323890570808377, 0.0, 0.0, 0.0, 0.03594525644730097, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004527887543653786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17039388977135247, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6309056496928738, 0.0, 0.0, 0.0, 0.0, 0.260280820884557, 0.0, 0.0, 0.5107183088816271, 0.7967464980324664, 0.14485492608681305, 0.0, 0.009558078807310686, 0.754701551784825, 0.0, 0.0, 0.0, 0.0, 0.7598764239846039, 0.0, 0.029177780358136646, 0.10253044625069853, 0.03763219091970284, 0.8115624154017409, 0.0, 0.5779584654853126, 0.7162312164421211, 0.0, 0.0, 0.9107472399622886, 0.7029540573396418, 0.0, 1.0969174796040306, 0.0, 0.0, 0.0, 0.0, 0.0038591832437520454, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15366266383288085, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.558080611304664, 0.0, 0.0, 0.0, 0.0, 0.30736701150515244, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04311886842935436, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32751189175201845, 0.0, 0.20963216887545572, 0.1760259950046517, 0.0, 0.23753864749234863, 0.24093292162050975, 0.024684548149881243, 0.4936183719527589, 0.7064246796060082, 0.0, 0.06677453327599289, 0.8542035190842152, 0.0, 0.025534429812218047, 0.011379900282647532, 0.039800411165778926, 0.013727111201321645, 0.27843394547131894, 0.24161261590501448, 0.2499939278392831, 0.0, 0.0, 0.3450248607837782, 0.0, 0.0, 0.15272914557490577, 0.10495111476871369, 0.0, 0.0, 0.0, 0.18866875753074405, 0.0, 0.2225813946448797, 0.0, 0.0, 0.3661590836002555, 0.0, 0.0, 0.0, 0.8998957690359772, 0.30889178773893766, 0.6078813570942335, 0.0, 0.6840699471933163, 0.0, 0.0, 0.0, 0.36308986165522683, 0.752528074611531, 0.7191770460546526, 0.49508503625401296, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7784554319844289, 0.16352298326175332, 0.0, 0.042948548224867954, 0.375190336410357, 0.0, 0.6830715485727474, 0.6403864588932121, 0.7831097846364896, 0.46112164648188003, 0.14556009485746954, 0.0, 0.0, 0.0, 0.8585580212631712, 0.0, 0.253359163441029, 0.0, 0.0, 0.0, 0.45902026051340783, 0.0, 0.0, 0.0, 0.0, 0.166881895984427, 0.0, 0.0, 0.837727301005, 0.0, 0.0, 0.7629510291223568, 0.0, 0.34201996071392393, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3670598185817387, 0.0, 0.9533138689466589, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8365046398061449, 0.0, 0.9590136929209965, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.801491142663501, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16957493050977235, 0.0, 0.2507477829737011, 0.0, 0.0, 0.11532054524043628, 0.07735685692161769, 0.5247858743947099, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02100484631395434, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8201592179395716, 0.0, 0.0, 0.04562437343117348, 0.0, 0.22915724847477928, 0.0, 0.0, 0.7159205767218768, 0.0, 0.0, 0.0, 0.0, 0.29228977882295926, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17928588753235497, 0.10348218971035608, 0.8147006956016374, 0.08438351505236888, 0.0, 0.0, 0.0, 0.1070859593707194, 0.7148756921758321, 0.0, 0.8195717571774336, 0.12249576952187838, 0.0, 0.2397374334824377, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05225556550152024, 0.0, 0.0, 0.0, 0.1707240047839942, 0.0, 0.11920584928810601, 0.0, 0.14514911616615112, 0.4284534617057244, 0.04403067305952579, 0.0, 0.012688229227290206, 0.3654383338493288, 0.04642776495318284, 0.0, 0.0, 0.31371261026073766, 0.1364760956744218, 0.5008825042361101, 0.0, 0.04802625911306818, 0.021403808257108425, 0.0, 0.12191697007589085, 0.33632693219045084, 0.49073784844916374, 0.5066599946239788, 0.0, 0.0, 0.033354950181247504, 0.0, 0.15690710970564234, 0.3397139005999492, 0.4535410643500978, 0.0, 0.0, 0.49050280987387757, 0.0, 0.0, 0.45491953624514714, 0.0, 0.0, 0.33864218894794285, 0.0, 0.0, 0.041024172335819876, 0.0, 0.0, 0.0, 0.36175943329836924, 0.0, 0.39749358702806525, 0.0, 0.5595492530984049, 0.0, 0.0, 0.2573403608635483, 0.17262354625512744, 0.0, 0.0, 0.0, 0.3776391490751126, 0.0, 0.0, 0.1445911005474468, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.45961437114556436, 0.08073146338811468, 0.0, 0.0, 0.0, 0.5680662673212686, 0.0, 0.14301647595845865, 0.4278925860448857, 0.2624303541096862, 0.0, 0.5619603114708978, 0.5488835922357254, 0.0, 0.10445139145624531, 0.9180806504163392, 0.5113694952971799, 0.0, 0.4737323723594051, 0.4474251824766889, 0.10616343839228443, 0.0, 0.02745363380188561, 0.0, 0.28312699798757224, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6983886824821985, 0.38943652344243257, 1.2223890565530993, 0.05586381199212052, 0.0, 0.07686093310040262, 0.10701921729681718, 0.0, 0.4467721663826107, 0.0, 0.5122035249872549, 1.008045581843232, 0.10571972464185753, 0.6235175832869809, 0.0, 0.0, 0.0, 0.0, 0.7054625658357997, 0.0, 0.0, 0.17326833225856653, 0.0, 0.0, 0.0, 1.0813156328128786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0927477810868, 0.0, 0.599657110852462, 0.22383250773975968, 0.19685563542122056, 0.0, 0.05605157239206448, 0.41837305013296433, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18996852120778085, 0.0, 0.28856245320282303, 0.0, 0.0, 0.0, 0.26772611418599673, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1616947156362974, 0.0, 0.0, 0.0, 0.0, 0.36168541397352055, 0.0, 0.0, 0.0, 0.1573219565054934, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13761515434984456, 0.07943022011077468, 0.0, 0.21912413885604493, 0.0, 0.0, 0.40654019224262405, 0.0, 0.0, 0.022840701875983912, 0.0, 0.09402454628178203, 0.5332211799090736, 0.14433851006651358, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.043396172364084024, 0.04011000425692938, 0.0, 0.0, 0.0, 0.13104327726482687, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10232284486723907, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10523174379677519, 0.0, 0.10079612361252216, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04415728315159431, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11805369977437472, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6523402818477722, 0.04871612610613401, 0.0, 0.19287524873967893, 0.0, 0.3592812200503388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.050401634126662875, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8285325211040351, 0.0, 0.0, 0.0, 0.42701794948426475, 0.33826599655789313, 0.0, 0.0, 0.0063200711569476415, 0.0, 0.0, 0.4430530345512502, 0.0, 0.6935424923816391, 0.9428504267370209, 0.42746265456576077, 0.0025457381888520196, 0.0, 0.1593559778661365, 0.0, 0.8273232796667221, 0.04988580847200336, 0.9484876902255591, 0.5784846962232053, 0.0, 0.4437739313478008, 0.0, 0.0, 0.29414816951171024, 0.0, 0.022355194883774517, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02069724212749366, 0.0, 0.0, 0.0, 0.0, 0.7860463101009033, 0.0, 0.0, 0.0, 0.8499064420418566, 0.0, 0.014821364995218649, 0.0, 0.004694386740689857, 0.25038082548050006, 0.5774089497757802, 0.0, 0.0, 0.0, 0.0, 0.006270331329794731, 0.6139069964758506, 0.8351435200462407, 1.0242327730345495, 0.0, 0.029307532281045708, 0.0, 0.0, 0.0, 0.5726801471740839, 0.4962238989829506, 0.0, 0.07225356949876899, 0.10746103390935668, 0.0, 0.0, 0.8346013157058231, 0.0, 0.0, 0.12871551917858068, 0.0, 0.0, 0.05722051841888945, 0.0, 0.08248659071056784, 0.08634381582594033, 0.0, 0.14691645141749232, 0.0, 0.0, 0.0, 0.12530859946217338, 0.0, 0.10215231917559951, 0.07032216186532725, 0.0, 0.8790426858900641, 0.10792096194290268, 0.054388076691659265, 0.0, 0.0, 0.0, 0.05001396409640395, 0.114742650990913, 0.28339886512623463, 0.15677327627325063, 0.0, 0.03258480102579557, 0.09096085908673467, 0.0, 0.0, 0.15530131741375458, 0.4726591715297998, 0.7751806988017736, 0.0, 0.51208607063286, 0.0, 0.0, 0.8142774797804637, 0.037795557638802935, 0.0, 0.03542525158598919, 0.07905092197782795, 0.0, 0.0, 0.1322231578644953, 0.0, 0.0, 0.008286484320060336, 0.670492082894006, 0.0, 0.0, 0.2274177128809876, 0.20430769763068007, 0.27374263149272277, 0.0, 0.0, 0.0, 0.0, 0.22105379716709922, 0.08605636125516496, 0.023058224273634728, 0.03343036365050954, 0.7905997431838073, 0.031091378094046798, 0.32331562706461314, 0.0, 0.048595513480849374, 0.0, 0.6695135011372569, 0.01079155413526415, 0.7675661133629853, 0.01950494389053299, 0.0, 0.06609079415505228, 0.15915608286937477, 0.0, 0.17610090955799163, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05278940542005462, 0.0, 0.04363140001862599, 0.3747258422202424, 0.18235409289517635]), 42), 42)),) julia> @finch_code begin Ct .= 0 for j = _ @@ -1015,7 +1015,7 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.004334271763144113, 0.19866796375858964, 0.05511378591134807, 0.37983318302160474, 0.0, 0.8329001018500983, 0.30166090609024687, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3289219868624648, 0.0, 0.15511617694464214, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18499887719318273, 0.0, 0.0, 0.0, 0.19259223593916178, 0.0, 0.0, 0.0638915620449496, 0.08125561754012361, 0.17659717140450376, 0.0, 0.0, 0.1525779960421776, 0.0, 0.0, 0.0, 0.0, 0.29196799055295863, 0.0, 0.0, 0.0, 0.5551667524029037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4594337414860906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3019846765891098, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18892258579898563, 0.0, 0.2395310548375412, 0.0, 0.359229579293753, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00028478282759787334, 0.0, 0.3432275013790356, 0.0, 0.0, 0.2972839943189292, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19540404365846636, 0.0, 0.0, 0.0, 0.0, 0.18546216890582629, 0.0, 0.0, 0.00916099623463154, 0.0, 0.034731738855626984, 0.4853088859188271, 0.0076713909171271105, 0.0, 0.0, 0.5640422262893099, 0.0, 0.5950501234938147, 0.040920156633969085, 0.0014920661060395996, 0.0, 0.08081663901361853, 0.8825202410318094, 0.0, 0.006218090636031004, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3280555235834662, 0.03812149119614576, 0.0, 0.05190957475021724, 0.0, 0.06033708819060236, 0.0, 0.10124291140603807, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5085302772239245, 0.0, 0.5334307954394755, 0.0, 0.0, 0.2328402544634388, 0.0, 0.005816161517311894, 1.5317318593263975, 0.0, 0.46738125332221536, 0.0, 0.09813163178688389, 0.4394739409933983, 0.0, 0.26102098784262384, 0.0, 0.0, 0.0, 0.0, 0.8804155352247423, 0.0, 0.0, 0.48240400321886606, 0.3763091458911055, 0.6151496795666793, 0.0, 0.27268296540705483, 0.0, 0.0014290584461454537, 0.0, 0.0, 0.0, 0.5294637260878591, 0.0, 0.0, 0.0, 0.31181862629226015, 0.0, 0.34152287293383227, 0.1986997482112381, 0.2527011428302912, 0.0, 0.434749031361829, 0.0, 0.4472075705110786, 0.4092092126159339, 0.2807873539680881, 0.17401521117970595, 0.0, 0.0, 0.43733948883443596, 0.5485693747724284, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0983266821553666, 0.05373620000037918, 0.49612300100963586, 0.0, 0.0, 1.075151264033199, 0.0, 0.18716105879611752, 0.03950202184626144, 0.0, 0.0, 0.7852572057826378, 0.0, 0.0, 0.08756438716142145, 0.27446263899702106, 0.0, 0.0, 0.07204260281080108, 0.0, 0.09291620627436281, 0.23270017215835156, 0.23824566618105675, 0.0, 0.0, 0.0, 0.13665872084048475, 0.0, 0.0, 0.0067937121060301624, 0.1164801427986044, 0.0, 0.5691621002508566, 0.4713388661713567, 0.41358181631025637, 0.0, 0.3128607440091297, 0.0, 0.0, 0.20424594336339066, 0.0, 0.0, 0.7442286193021344, 0.10553727794892508, 0.0, 0.30186901767997887, 0.0, 0.0, 0.0, 0.32291683563950796, 0.07758151598185183, 0.0, 0.347786535534979, 0.7360230359944353, 0.0, 0.0, 0.0, 0.8757273805535595, 0.41322710295268655, 0.0, 0.25679112297862333, 0.17774302673574222, 0.5841939760860391, 0.0, 0.0, 0.0, 0.13300779742001662, 0.16915583797139946, 0.0, 0.0, 0.0, 0.7164740353603845, 0.45156468002631484, 0.0, 0.27217311439601866, 0.7084784766971438, 0.06835326871026481, 0.0, 0.0, 0.0, 0.2861016237491002, 1.0700436562849107, 0.135740840434777, 0.2599664462430113, 0.45536369102376945, 0.0, 0.0, 0.0, 0.16460938932017066, 0.9424546774296569, 0.4980075807530193, 0.501649117240962, 0.9215918221852557, 0.0, 0.5227646022766553, 0.46865433734477785, 0.0, 0.1899494468105599, 0.0, 0.14204872822901377, 0.7891527088162923, 0.2800775160398023, 0.0, 0.0, 0.6038144125549446, 0.0, 0.4101280976499608, 0.15813547044885462, 0.4381740566617935, 0.0025678619479343042, 0.5913196381458786, 0.01581382625018507, 0.4317825799661969, 0.0, 0.5361217114844467, 0.16404576969544252, 0.0, 0.03623369485950333, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19327505078226082, 0.1125279795645968, 0.0, 0.38171505913646114, 0.0, 0.0012820843611261621, 0.0, 0.0, 0.017018867107690273, 0.0, 0.018573326277702022, 0.7755881641075008, 0.12996991545193906, 0.0, 0.18005632805213245, 0.0, 0.2451805301156947, 0.0, 0.3747092870507497, 0.0, 0.4781929115858312, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.35214721497251084, 0.0, 0.020304118651362432, 0.14466279308909658, 0.626862644216891, 0.0, 0.0, 1.5549351131665947, 0.30737844662289215, 0.0, 0.0, 0.0, 0.0, 0.009701873820892715, 0.2520412914553624, 0.018396624198184493, 0.0, 0.7982268230101296, 0.0, 0.9201682818000929, 0.0, 0.0, 0.7342011144064367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09396246898802936, 0.0, 0.5073258744317697, 0.22284199906817412, 0.10151898941699102, 0.03180992568768135, 0.0, 0.5543686635557524, 0.0, 0.0, 0.0, 0.22367207355552704, 0.0, 0.0, 0.0, 0.40880306935546484, 0.0, 0.42113696363931935, 0.0, 0.0, 0.0, 0.43326306412219423, 0.39232717474974355, 0.0, 0.0, 0.0, 0.013675206005982276, 0.0, 0.2603519242467926, 0.3502025254743841, 0.14312660068897712, 0.34775162340880994, 0.20310882214946477, 0.0, 0.27127891969267615, 0.0, 0.0, 0.020541404680713544, 0.0, 0.0, 0.1991870263338475, 0.0, 0.0, 0.2456237488004554, 0.12123860127246498, 0.2079074067296303, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24646978770136238, 0.15225808974571345, 0.0, 0.0, 0.46988488666249073, 0.16461741428636234, 0.4415386194506142, 0.05631807188893752, 0.0611318669096905, 0.0, 0.0, 0.0, 0.5215534136524774, 0.0, 0.0, 0.6274626509368973, 0.038256585847320265, 0.530070634494204, 0.0, 0.7877809268797783, 0.25601250351282806, 0.37534186876141573, 0.700013095645165, 0.0, 0.29431110179251513, 0.22882177649965688, 1.0569304890861846, 0.0, 0.0, 0.0, 0.0, 0.02833923205698933, 0.02572736738919585, 0.0, 0.1150475064446459, 0.24371977071087828, 0.0, 0.0, 0.044121908414131224, 0.0771055384425919, 0.09695789652483547, 0.0, 0.0, 0.0, 0.12020713596947674, 0.045249684273424934, 0.8721213827038133, 0.0, 0.11731035534021127, 0.37569616707373005, 0.0, 0.0, 0.9570606189270042, 0.9086284112098039, 0.20027308709305888, 0.4268041763647709, 0.0, 0.0, 0.015909944043088663, 0.0, 0.7658973441527888, 0.0, 0.19507759787979717, 0.3226660152512004, 0.23629991340839918, 0.0, 0.13848101841219138, 0.0, 0.0, 0.24578615843203896, 0.0, 0.0, 0.10167993256702677, 0.0, 0.0, 0.12538470338440244, 0.9934363459809055, 0.10613146591697438, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6421265863141966, 0.0, 0.5400344618364347, 0.025731716559651077, 0.0, 0.0, 0.0, 0.007521097208030019, 0.5455660054203588, 0.0, 1.1209603429913297, 0.0, 0.0, 0.5234607155600556, 0.0, 0.023977651748011766, 0.0, 0.0, 0.0, 0.27798322874225667, 0.0, 0.35612425891926536, 0.0, 0.7529913555346315, 0.6214420882570796, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12146506806205652, 0.0, 0.3210215267482459, 0.0, 0.0, 0.0, 0.33419799384234544, 0.0, 0.0, 0.15359727591834285, 0.19534099821264672, 0.525863863274946, 0.0, 0.0, 0.34569678733330644, 0.0, 0.0, 0.3415674397857982, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.523004359259986, 0.0, 0.22235180304591923, 0.0, 0.00635695661054767, 0.0, 0.0, 0.0843846185513356, 0.0, 0.0, 0.0, 0.8855039996037297, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27294552017018114, 0.0, 0.3412878895624823, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5864608505347954, 0.0, 0.10380099346078346, 0.02524889717437322, 0.0, 0.0, 0.38157075730498896, 0.0, 0.0, 0.0, 0.45469484904050655, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26459586877877683, 0.18314523505716396, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22372814141562178, 0.0, 0.0, 0.0, 0.6276845275284666, 0.18331203344516112, 0.25689720406507865, 0.04048914090414101, 0.0, 0.016969058333515752, 0.0, 0.5911567891086366, 0.37358991094373184, 0.21597413111529512, 0.09535966106843696, 0.021909623318208237, 0.49412659112391777, 0.39229708641560146, 0.0, 0.0, 0.5239905526116051, 0.22383442432789932, 0.0, 0.408761833081477, 0.7858251636352953, 0.0, 0.03095169444374481, 1.0134328993353359, 0.0, 0.5783663988186404, 0.023349871375665725, 0.4068090650141155, 0.3701047391436106, 0.7170357796952346, 0.31327392774306395, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.39350494784782397, 0.07595368484327951, 0.4868292236818003, 0.046986031631648606, 0.530207151960747, 0.01037806421927761, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05535788985307855, 0.7394134258901907, 0.17106635844034493, 0.9821443208953105, 0.0, 0.008962807708770178, 0.0, 0.0, 0.11897566020800357, 0.0, 0.0, 0.0, 1.2828090910806784, 0.0, 0.4691443493685695, 0.0, 0.07022467062008277, 0.18231155361607748, 0.41302392682414213, 0.0, 0.13696413696930718, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.423686950315378, 0.0, 0.5297732126841366, 0.0, 0.10086209606266386, 0.4105665706595916, 0.2899236467445781, 0.08479167779863508, 0.0, 1.1607169616195545, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44056670549109944, 0.0036426275414389976, 0.22268017654499572, 0.70259131988822, 0.021981713208965886, 0.0, 0.0, 0.0, 0.6644482698446481, 0.5559910462571956, 0.9081368976941899, 0.9545466439826781, 0.0, 0.5800820874802947, 0.6131061961157059, 0.0, 0.3387938943904664, 0.0, 0.41233232521209184, 0.6892320892052487, 0.9168247018477867, 0.7592095444656833, 0.0, 0.7080274090242662, 0.0, 0.0, 0.7409103227795685, 0.4891910517462003, 0.0, 0.0, 0.6996898878138225, 0.18201720925245757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.033060035104523045, 0.0, 0.0, 0.0, 0.0, 0.0010434833431631984, 0.0, 0.0, 0.0, 0.010921241238865733, 0.0, 0.015498170387323498, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.011618017340433275, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2104054739321471, 0.0, 0.0, 0.0, 0.051249741424478176, 0.0, 0.0, 0.0, 0.09744956100917274, 0.0, 0.0, 0.0, 0.0, 0.10766993925868745, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18951483497887683, 0.5969374604132631, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6248091001560899, 0.0, 0.0, 0.0, 0.0, 0.18617398114562853, 0.0530079909103574, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14076422137873648, 0.3823151552281139, 0.28535858102685935, 0.3054264047421474, 0.0, 0.0, 0.5425991952026914, 0.16566917168527906, 0.0, 0.0, 0.24572721112234908, 0.0, 0.0, 0.311993347128524, 0.0, 1.0231061248638629, 0.5939954507294103, 0.5983388707717968, 0.7851882761904205, 0.0, 0.28209866162610053, 0.46470151179975694, 0.0, 0.22767102275324697, 0.0, 0.0, 0.3351791998251741, 0.0, 0.0, 0.0, 0.3258354466053841, 0.29514851487698524, 0.25858133097678015, 0.1886151008053812, 0.5226293862659805, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0442888167727012, 0.0, 0.002505192641426779, 0.0, 0.0, 0.07664740890754863, 0.0, 0.0, 0.013363010227595206, 0.00048725362450601585, 0.002419244088482629, 0.026391726291740327, 0.0, 0.0, 0.03460717393330891, 0.0, 0.13624247986958654, 0.0, 0.0, 0.0, 0.0, 0.0, 0.012449069569846, 0.0, 0.016951747875799564, 0.0, 0.0197038621774241, 0.0, 0.033062191640471625, 0.07310509907314719, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06556034095953286, 0.0, 0.02434740964367002, 0.0, 0.0, 0.13592547532623306, 0.0, 0.030022610188286405, 0.03795734899490777, 0.008699370747195389, 0.0, 0.0, 0.18940737674761182, 0.16014434992779022, 0.0058393216511455045, 0.0, 0.3162824676834449, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14919154588027264, 0.0, 0.20315232851529888, 0.0, 0.27582528532656464, 0.0, 0.3962223404212856, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00142596300027198, 0.0, 0.008781597914028754, 0.2917830655969515, 0.0, 0.0, 0.3010196130390429, 1.085161420061463, 0.0, 0.8818413438369698, 0.0, 0.14807253735972709, 0.6682230613653689, 0.6738718955158736, 0.0, 0.2921120382906695, 0.0, 0.23016863424694362, 0.44343897402347887, 0.0, 0.0, 1.2859761704109314, 1.188418751121335, 0.0, 0.4620501506594876, 0.23396469855670338, 0.0, 0.03498671823904876, 0.0, 0.0, 0.3392611399043929, 0.20497564811318061, 0.0, 0.4183535169904413, 0.20649711391931772, 0.520902106226398, 0.0, 0.0, 0.16125806820737418, 0.5576988707246249, 0.0, 0.0, 0.0, 0.11391623120681071, 0.0, 0.0, 0.09151851725619714, 0.0, 0.0, 1.197254000111945, 0.0, 0.8775820846458859, 0.0, 0.5629797627532018, 0.6687057520979063, 0.341227000414515, 0.0, 0.25482576175079585, 0.0, 0.39537376259476137, 0.4437592920364036, 0.0, 0.0, 0.5927285333298421, 0.651986303075751, 0.0, 1.0434591895456948, 0.0, 0.0, 0.03501199088471498, 0.0, 0.0, 0.3395062050893736, 0.15619471223870085, 0.0, 0.41865571453083017, 0.20664627704903807, 0.48238135206809674, 0.08860575544817058, 0.0, 0.005695035181786341, 0.42497543210880456, 0.0, 0.23934194260454025, 0.30438882267274336, 0.2874361482000896, 0.0, 0.0, 0.6245971595264426, 0.0, 0.3639559852559372, 0.0, 0.0, 0.20575691959192335, 0.0, 0.5994751724692355, 0.0, 0.0, 0.0, 0.0, 0.002904710270589501, 0.0, 0.27722048222724693, 0.15720637186052522, 0.0, 0.40582979792580204, 0.3276141191929195, 0.0, 0.5216472712210337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.022828121623522435, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.111114554054197, 0.0, 0.0, 0.005523835481493179, 0.12589753624924738, 0.4223352609451343, 0.19512225997871732, 0.9646462752755526, 0.0, 0.0, 0.908234546074678, 0.0, 0.1303083320340461, 0.4180115467796097, 0.3502002628164635, 0.005797584702932196, 0.620011620521792, 0.6673813159226286, 0.0030737631986123407, 0.0, 0.42144642014638856, 1.0414378536891689, 0.6289622414694364, 1.5563606265339154, 0.08385396416867873, 0.3115994197854627, 0.7117829870894571, 0.6381078265340546, 0.0, 0.23989801450652898, 0.0, 0.5826228436020011, 0.8457142287971168, 0.0, 0.0, 0.0, 1.0193786877434905, 0.0, 0.0, 0.19971832516875276, 0.5533950636153777, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21472741909783344, 0.39082851888093567, 0.44716245502350144, 0.2879713896328549, 0.5511368948723377, 0.33565164359388877, 1.3517828371888283, 0.0, 0.09957607530690628, 0.0, 0.0, 0.26103163435011795, 0.3965287786994862, 0.6597151598792015, 0.0, 0.34286845579856556, 0.3900059867245693, 0.34423839922938515, 0.0, 1.2842745238771571, 0.3694211002080512, 0.0, 0.05489702502604951, 0.3645945046142821, 0.0, 0.0, 0.08041277613458127, 0.2893532857853331, 0.0, 0.5419495915870312, 0.70973704371772, 0.06597297072421819, 0.0, 0.0, 0.28417074423649047, 0.45673560467870195, 0.1772454725351981, 0.22541615615699262, 0.08077018346809645, 0.5662548477384789, 0.07678831671440492, 0.7573984424681688, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4826509895037858, 0.0, 0.7156459126461995, 0.0, 0.0, 0.0, 0.0, 0.0, 0.013563432420802306, 0.4559162518278489, 0.0, 0.0, 0.0, 0.0, 0.26262283944881243, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16505781512417061, 0.2933206286622639, 0.0, 0.0, 0.0, 0.0, 0.40289003757510067, 0.0, 0.0, 0.0, 0.6372941893353361, 0.0, 0.6237934507673457, 0.8070702584067075, 0.0, 0.0, 0.3379623279083573, 0.0, 0.46129991809862586, 0.7333015288992237, 0.21031442023566344, 0.0, 0.7041420713561054, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7760176053652288, 0.0, 1.0534236649773678, 0.0, 0.0, 0.8070780011372765, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4823716017908521, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6208306891807599, 0.0, 0.0, 0.01732988822073383, 0.2738833349341264, 0.10672374403860475, 0.0, 0.008043590060480383, 0.0, 0.055277084044920086, 0.0, 0.0, 0.17943961322559207, 0.0, 0.0, 0.0, 0.0, 0.0, 0.718108290096912, 0.0, 0.0, 0.0, 0.008728384689335622, 0.0, 0.1697763404331079, 0.11586384141065409, 0.0, 0.0, 0.0, 0.8848305575683707, 0.0, 0.8449968950182224, 0.0, 0.0, 0.0, 0.6706152313255382, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8308196053978146, 0.0, 0.9175002824131868, 0.7530109173431534, 0.022342425693822682, 0.0, 0.0035915524463436964, 0.15288943835905894, 0.0, 0.5199425421439203, 0.11917728725476327, 0.3521011644457409, 0.0, 0.822488739774635, 0.513543493422637, 0.2981570434312181, 0.0, 0.0, 1.2701086711578897, 0.0, 0.11247893732510689, 0.0, 0.039332390318575425, 0.0, 0.11102635670488926, 0.0, 0.15118325075382752, 0.0, 0.1757278339799435, 0.0, 0.2948633760880991, 0.15371975197149906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04453230950399372, 0.0, 0.05568267952698087, 0.0, 0.21714106205060016, 0.0, 0.0, 0.0, 0.0, 0.7213227431120439, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2701718137836067, 0.0, 0.06123281377737304, 0.4007297534572718, 0.0, 0.0, 0.02350606599699272, 0.0, 0.47270164239805296, 0.39554302818161685, 0.39843532224568856, 0.0, 0.0, 0.46004399190355705, 0.41242580548884994, 0.0, 0.15086754157289264, 0.0, 0.0, 0.5466072621606027, 0.18414300130678235, 0.2087681866233734, 0.0, 0.5313695523968773, 0.0, 0.0, 0.2807883504872339, 0.34802019073798685, 0.0, 0.09776175774612722, 0.1924014129464173, 0.0, 0.0, 0.0, 0.2995245510564702, 0.1439415371971276, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09612835370305864, 0.0, 0.07178793274997196, 0.0, 0.0, 0.0, 0.529229742886101, 0.0, 0.0, 0.5898615183638936, 0.0, 0.1996504875270556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07685007162501065, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4724449949223617, 0.0, 0.21985358976027652, 0.0, 0.0, 0.0, 0.6511036698044336, 0.5394783324223208, 0.9048355234024855, 0.0, 0.0, 0.0, 0.008134079103649166, 0.17236516549262873, 0.0, 0.7108281927774538, 0.0, 0.0, 0.0, 0.8245834715993663, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22989626507902333, 0.12442621872484774, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3037122713618223, 0.0, 0.0, 0.008259351424073042, 0.4378900919766154, 0.05086408498890661, 0.31974807102322866, 0.0, 0.0, 0.7960980638875322, 0.0689135689704732, 0.0, 0.0, 0.0, 0.20359294387478752, 0.9097633301509839, 0.0, 0.6841090251831579, 0.0, 0.6154584825649704, 0.7335150023327748, 1.015637287349907, 0.0, 0.0779165260149525, 1.1277817941657742, 0.0, 0.0, 0.3457097793442966, 0.6958114560471119, 0.22297907055084815, 0.02617735461213243, 0.8271866794310433, 0.0, 0.25383801660715655, 0.0, 0.6564805026462143, 0.4519424562793308, 0.8175733700968422, 0.26495100977979114, 0.0, 0.0, 0.0, 0.33910693050583907, 0.0, 0.0, 0.0, 0.4889218480481046, 0.0, 0.3925649791995639, 1.5627863234111485, 0.8201598086100989, 0.28474440170274185, 1.0514838770367962, 0.010290531779792767, 0.0, 0.0, 1.5282247448720891, 0.4202365445740981, 0.38631591015261757, 0.07827208426350975, 0.002001482371009478, 0.19978631068641475, 0.10840878806592323, 0.8849580765325739, 0.7025926608640433, 0.21468725597950544, 0.6515266028885637, 0.304659479667613, 0.0, 0.5203661079080213, 0.1989832785613875, 0.22866153178235926, 0.2129788116497342, 0.0511368043793991, 0.0, 0.06963236972450947, 0.0, 0.08093717687353573, 0.0, 0.3254291820176872, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4944791980843742, 0.5417407856384763, 0.0, 0.4343792686365096, 1.5442785077006684, 0.0, 0.13746522377571999, 0.0, 0.0, 0.0, 0.0, 0.01933245239450143, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44623451745418, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.30502005455201636, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.014872981553739924, 0.0, 0.0, 0.0007393802182031884, 0.0, 0.14653699929908884, 0.0, 0.0, 0.26188312990151436, 0.028159286104530473, 0.0, 0.4084686341089707, 0.9235151006259961, 0.5957064186534903, 0.0, 0.0, 0.5535709817494249, 0.0, 0.25891613288066156, 0.07783302925410085, 0.2939591160629263, 0.1987201643010643, 0.0, 0.09767541007114018, 0.4120929351702914, 0.22225830848448824, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13739476210353194, 0.0, 0.037597515302596925, 0.0, 0.0, 0.31874062595288627, 0.33536722163001637, 0.0, 0.0, 0.0, 0.48352996362981304, 0.0, 0.38851289261478805, 0.6830254018960756, 0.3364461001285706, 0.8253161071254982, 0.0, 0.2348841918025421, 0.0, 0.4205219693225024, 0.5314960091024892, 0.0, 0.0, 0.10178270195612651, 0.0, 0.0, 0.780835547454152, 0.5872223143240599, 0.2503853190515238, 0.0, 0.0, 0.6150976289535472, 0.0, 0.09445718365268194, 0.0, 0.0, 0.17331386223779208, 1.5139967025892487, 0.0, 0.0031631037123804793, 0.0, 0.0, 0.20592512324808152, 0.0, 0.03635874582185372, 0.0, 0.20018457152414249, 0.22068196040992705, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.01855804465451247, 0.0, 0.0, 0.03641425883740431, 0.0568080930379847, 0.10109716846875504, 0.0, 0.0, 0.0, 0.0, 0.005424838537552436, 0.0, 0.0, 0.5251896042062963, 0.0, 0.0, 0.0, 0.00515342598991506, 0.045980273053842245, 0.0, 0.4033688458623361, 0.0510673466163073, 0.0, 0.0, 0.02134197385615031, 0.01687808266981965, 0.0, 0.4932447371732914, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7178045198025068, 0.2106682695954306, 0.0, 0.3115118572371521, 0.5170963380295581, 0.39595498771521426, 0.1432663403816299, 0.5698542189659496, 0.0, 0.0, 0.0, 0.5317966816929195, 0.0, 0.5315818882594147, 0.8168445783005969, 0.0, 0.0, 0.0, 0.01222733860627223, 0.0, 0.716756885645577, 0.0, 0.8217284580618865, 0.48234209517721377, 0.15545502627894098, 0.04826321760798536, 0.0, 0.0, 0.1394038038151463, 0.0, 0.056802678199824076, 0.0, 0.0, 0.0, 0.3128541399180126, 0.0, 0.0, 0.596593418834028, 0.0, 0.2846892571697076, 0.0, 0.0, 0.0, 0.23365792107187477, 0.0, 0.0, 0.4584793374366712, 0.7152510496888798, 0.0, 0.0, 0.0, 0.8190896825195866, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11127793558853107, 0.0, 0.5789217135796446, 0.0, 0.0, 0.6429712972008511, 0.0, 0.0, 0.661506988212563, 0.7629272979371657, 0.0, 0.4234710523361336, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4257443064600869, 0.0, 0.20425497460318195, 0.0, 0.5184318202957809, 0.5906121758765186, 0.0, 0.9091367634018797, 0.0, 0.30652125262867885, 0.0, 0.7954054080966687, 0.0, 0.0, 0.0, 1.0559083316811368, 0.0, 0.04427154393293609, 0.8228955354751877, 0.46658038808648383, 0.0, 0.02688606839966265, 0.0, 0.0, 0.6276611460113729, 0.22522673327345408, 0.0, 0.12308651028821192, 0.3657688390111318, 0.0, 0.046115245088609334, 0.0, 0.5342436705087195, 0.0, 0.1923886832463953, 0.07621763959827882, 0.0, 0.0, 0.0, 0.6725528112574624, 0.7483589153917343, 0.0, 0.0, 0.0, 0.0, 0.38949567271561986, 0.16492548861911044, 0.10519585180914466, 0.8853743380662012, 0.957787822214843, 0.0, 0.05459549529270359, 0.25656057396140347, 0.14167223917141744, 0.03949155262056029, 0.0, 0.0, 0.2703834370419471, 0.0, 0.723362221877522, 0.0, 0.0, 0.0, 0.7883757417725614, 0.0, 0.03340589062163017, 0.18896261922152233, 0.0, 0.0, 0.8122657251866786, 0.029607718570353176, 0.0, 0.008213735995679807, 0.0, 0.08605746445745502, 0.0, 0.3070376563830936, 0.10398717208817806, 0.0, 0.0, 0.0, 0.383984202548332, 0.0, 0.0, 0.3036396360576457, 0.0, 0.0, 0.0, 0.0, 0.11965354383371518, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04825455862354496, 0.3335108938296942, 0.0, 0.0, 0.0, 0.0, 0.04121745447265487, 0.30594446336043757, 0.0, 0.33550494159326405, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029116195807012437, 0.0, 0.0, 0.0, 0.0, 0.0, 0.020041236855252602, 0.0, 0.4850188795993097, 0.0, 0.16403823255879735, 0.0, 0.60023572778736, 0.0, 0.1787344157826609, 0.0, 0.0, 0.17233073276918714, 0.17532212882841147, 0.6209016656456683, 0.5984929062073807, 0.8843163905991084, 0.3337919143714591, 0.0, 1.0919707374354302, 0.8166713304287454, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8330317657834686, 0.27201200741148646, 0.0, 0.8995473587201992, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6388227016456749, 0.0, 0.3682672817259989, 0.0, 0.5422113050459496, 0.0, 0.028602469161704683, 0.0, 0.0, 0.3611222515381231, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.031337192831751, 0.0, 0.0, 0.7687924758178234, 0.012617011188267763, 0.0, 0.0, 0.37315715294884366, 0.0, 0.0, 0.0, 0.0, 0.6888779809403613, 0.121001715761302, 0.0, 0.0, 0.3680175749172942, 0.47420475938210593, 0.0, 0.7604201795169553, 0.0, 0.11917670920609563, 0.0, 0.20848198246903302, 0.24926285864223433, 0.0, 0.5553692000145817, 0.4169252107806106, 0.16597755096800731, 0.7334771026528798, 0.0, 0.0, 0.09908991746260937, 0.0, 0.14652270264303283, 0.006759647910977647, 0.0, 0.9351545954529237, 1.2960299208884896, 0.0, 0.0, 0.21191619141709428, 0.0, 0.0, 0.0, 0.01204540426582532, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06493914883934329, 0.7726981572397796, 0.0, 0.4370686273737238, 0.1778273534538074, 0.055209023869020324, 0.0, 0.0, 0.0, 0.05709969797354255, 0.0, 0.0, 0.0, 0.0, 0.44808598581285264, 0.0, 0.0, 0.0, 0.21141909545938053, 0.13390642572615394, 0.0, 0.0, 0.0, 0.25844994675864025, 0.0, 0.51617125876173, 0.2544268105667549, 0.0, 0.17576058376064335, 0.29087109088619356, 0.0, 0.0, 0.3286889977164017, 0.0, 0.0644707079973061, 0.0, 0.018682819036845075, 0.008522941045952347, 0.0, 0.0, 0.2520720928277996, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.146066293561638, 0.08856351358209161, 0.0, 0.0, 0.0, 0.1407746062228793, 0.5246446552397386, 0.0, 0.0, 0.0, 0.3279179855015388, 0.46137944574560436, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14330339619658897, 0.11500988018505275, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7444467047874328, 0.0, 0.0, 0.40713437972280675, 0.0, 0.0, 0.0, 0.5717679971406524, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4877440937322302, 0.6991654372087778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2369682176872117, 0.0, 0.0, 0.6757556051622259, 0.0, 0.0, 0.0, 0.576368321209737, 0.04986303698751877, 0.0, 0.5384684335273707, 0.0, 0.21524971756673417, 0.4963922980972075, 0.0, 0.0, 0.0, 0.0, 0.18940210229325644, 0.5277692784584271, 0.7718932464687741, 0.7210929692294604, 0.0, 0.0, 0.0, 0.0, 0.48286176484120297, 0.8517937989915767, 0.3931693184679991, 0.0, 0.0, 0.06755455710060922, 0.0, 0.026695131792948763, 1.4844324548606433, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4524914530619723, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4694831016582333, 0.0, 0.42831526212260856, 0.6074590079807168, 0.30066361967157035, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6129938591206631, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6008436638333436, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.43882326364474644, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8591062832739853, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6928708028466394, 0.2819039698547807, 0.08752108546971657, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05246236611269018, 0.0, 0.0, 0.5428804251437249, 0.022819504909203123, 0.3729965675892053, 0.0, 0.5741583158437262, 0.0, 0.1935811346150516, 0.0, 0.5023321549740235, 0.2611826745866744, 0.0, 0.056899028261467276, 0.37961815387770637, 0.22527271986010186, 0.05171423855571594, 0.058968538904135746, 0.0, 0.02892983665470066, 0.003313037290954743, 0.0, 0.0, 0.15785301822506514, 0.0, 0.0, 0.07773433689527456, 0.1049811110510813, 0.0, 0.02912372760696772, 0.0, 0.3114315285072337, 0.5703037753007745, 0.0, 0.04813466284828647, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02241933195791073, 0.0, 0.0, 0.0, 0.0, 0.23199999736075347, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1927795141790272, 0.2407119020891451, 0.0, 0.21960445663579467, 0.5770903406753464, 0.15415530724008072, 0.23155572792080611, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3142922871488459, 0.0, 0.0, 0.0, 0.0, 0.3042889785067072, 0.0, 0.5129566600174419, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3746354155106774, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4789154917746846, 0.17517544375428362, 0.0, 0.0, 0.0, 0.2637662382252967, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2102700997979013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.126545263019808, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.332133943612647, 0.0, 0.0, 0.0, 0.06184093060913505, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3212574037659458, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24673989573277713, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3017167941185386, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6233354196759152, 0.0, 0.0, 0.0, 0.5447611694646652, 0.0, 0.0, 0.216176776357065, 0.0, 0.19855221622967104, 0.8686764576101142, 0.16350923987929902, 0.0, 0.0, 0.02334951098786776, 0.17107621812888604, 0.48682879160279025, 0.7109808359466632, 0.6651558420918936, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6192268761337199, 0.31206921876898447, 0.0, 0.0, 0.24595989001208304, 0.11068536977374843, 0.0, 0.6618395820988949, 0.11362642836904417, 0.0, 0.0, 0.23765422406147768, 0.0, 0.0, 0.8073352785417658, 0.0, 0.0, 0.48485062583878286, 1.055137179889336, 0.2671063045394923, 0.0, 0.8476204266733893, 0.473385026956602, 0.5030912229948215, 0.0, 0.0, 0.0, 0.17678971866264329, 0.4076988147485064, 0.0, 0.6776909084507561, 0.13779930009477406, 0.5691281649873949, 0.16622169517158358, 0.433469475882236, 0.818379113845578, 0.9106844436778354, 0.0, 0.499393081506665, 0.0, 0.5725309586159512, 0.6160013948015824, 0.5125607980557373, 0.2778645861379971, 0.0, 0.0, 0.0, 0.0, 0.0, 0.58929804834674, 0.0, 0.8046233984476477, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3967677816937078, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11707526901952116, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.383435421983313, 0.11707115655719894, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07864429232511502, 0.0, 0.0, 0.3002587300128159, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2266804769859352, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24215921984980293, 0.09852579316681935, 0.030588729804574537, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18874358875246125, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3978422171614565, 0.1936032919321414, 0.0, 0.0, 0.2542147176776134, 0.0, 0.0, 0.0, 0.11057553114503467, 0.0, 6.012518808232222e-5, 0.0008825884581384356, 0.6460696181307314, 0.0, 0.0, 0.06879188140017427, 0.0, 0.0, 0.04716298956935701, 0.1540138997690347, 0.1854894997474166, 0.003124358567077274, 0.35109153378778224, 0.0, 0.0, 0.016293742009993128, 0.0, 0.0, 0.3747805868672189, 0.025859295570033313, 0.214029422856965, 0.003742959361061961, 0.0002933458280023473, 0.0, 0.0, 0.0, 0.030501494612752977, 0.0, 0.6996784734474946, 0.0, 0.0, 0.05616866413207192, 0.0, 0.0018184995370819535, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.020171782722387992, 0.0, 0.0, 0.33279196588498333, 0.0, 0.0, 0.6323890570808377, 0.0, 0.0, 0.0, 0.03594525644730097, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004527887543653786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17039388977135247, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6309056496928738, 0.0, 0.0, 0.0, 0.0, 0.260280820884557, 0.0, 0.0, 0.5107183088816271, 0.7967464980324664, 0.14485492608681305, 0.0, 0.009558078807310686, 0.754701551784825, 0.0, 0.0, 0.0, 0.0, 0.7598764239846039, 0.0, 0.029177780358136646, 0.10253044625069853, 0.03763219091970284, 0.8115624154017409, 0.0, 0.5779584654853126, 0.7162312164421211, 0.0, 0.0, 0.9107472399622886, 0.7029540573396418, 0.0, 1.0969174796040306, 0.0, 0.0, 0.0, 0.0, 0.0038591832437520454, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15366266383288085, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.558080611304664, 0.0, 0.0, 0.0, 0.0, 0.30736701150515244, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04311886842935436, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32751189175201845, 0.0, 0.20963216887545572, 0.1760259950046517, 0.0, 0.23753864749234863, 0.24093292162050975, 0.024684548149881243, 0.4936183719527589, 0.7064246796060082, 0.0, 0.06677453327599289, 0.8542035190842152, 0.0, 0.025534429812218047, 0.011379900282647532, 0.039800411165778926, 0.013727111201321645, 0.27843394547131894, 0.24161261590501448, 0.2499939278392831, 0.0, 0.0, 0.3450248607837782, 0.0, 0.0, 0.15272914557490577, 0.10495111476871369, 0.0, 0.0, 0.0, 0.18866875753074405, 0.0, 0.2225813946448797, 0.0, 0.0, 0.3661590836002555, 0.0, 0.0, 0.0, 0.8998957690359772, 0.30889178773893766, 0.6078813570942335, 0.0, 0.6840699471933163, 0.0, 0.0, 0.0, 0.36308986165522683, 0.752528074611531, 0.7191770460546526, 0.49508503625401296, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7784554319844289, 0.16352298326175332, 0.0, 0.042948548224867954, 0.375190336410357, 0.0, 0.6830715485727474, 0.6403864588932121, 0.7831097846364896, 0.46112164648188003, 0.14556009485746954, 0.0, 0.0, 0.0, 0.8585580212631712, 0.0, 0.253359163441029, 0.0, 0.0, 0.0, 0.45902026051340783, 0.0, 0.0, 0.0, 0.0, 0.166881895984427, 0.0, 0.0, 0.837727301005, 0.0, 0.0, 0.7629510291223568, 0.0, 0.34201996071392393, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3670598185817387, 0.0, 0.9533138689466589, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8365046398061449, 0.0, 0.9590136929209965, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.801491142663501, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16957493050977235, 0.0, 0.2507477829737011, 0.0, 0.0, 0.11532054524043628, 0.07735685692161769, 0.5247858743947099, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02100484631395434, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8201592179395716, 0.0, 0.0, 0.04562437343117348, 0.0, 0.22915724847477928, 0.0, 0.0, 0.7159205767218768, 0.0, 0.0, 0.0, 0.0, 0.29228977882295926, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17928588753235497, 0.10348218971035608, 0.8147006956016374, 0.08438351505236888, 0.0, 0.0, 0.0, 0.1070859593707194, 0.7148756921758321, 0.0, 0.8195717571774336, 0.12249576952187838, 0.0, 0.2397374334824377, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05225556550152024, 0.0, 0.0, 0.0, 0.1707240047839942, 0.0, 0.11920584928810601, 0.0, 0.14514911616615112, 0.4284534617057244, 0.04403067305952579, 0.0, 0.012688229227290206, 0.3654383338493288, 0.04642776495318284, 0.0, 0.0, 0.31371261026073766, 0.1364760956744218, 0.5008825042361101, 0.0, 0.04802625911306818, 0.021403808257108425, 0.0, 0.12191697007589085, 0.33632693219045084, 0.49073784844916374, 0.5066599946239788, 0.0, 0.0, 0.033354950181247504, 0.0, 0.15690710970564234, 0.3397139005999492, 0.4535410643500978, 0.0, 0.0, 0.49050280987387757, 0.0, 0.0, 0.45491953624514714, 0.0, 0.0, 0.33864218894794285, 0.0, 0.0, 0.041024172335819876, 0.0, 0.0, 0.0, 0.36175943329836924, 0.0, 0.39749358702806525, 0.0, 0.5595492530984049, 0.0, 0.0, 0.2573403608635483, 0.17262354625512744, 0.0, 0.0, 0.0, 0.3776391490751126, 0.0, 0.0, 0.1445911005474468, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.45961437114556436, 0.08073146338811468, 0.0, 0.0, 0.0, 0.5680662673212686, 0.0, 0.14301647595845865, 0.4278925860448857, 0.2624303541096862, 0.0, 0.5619603114708978, 0.5488835922357254, 0.0, 0.10445139145624531, 0.9180806504163392, 0.5113694952971799, 0.0, 0.4737323723594051, 0.4474251824766889, 0.10616343839228443, 0.0, 0.02745363380188561, 0.0, 0.28312699798757224, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6983886824821985, 0.38943652344243257, 1.2223890565530993, 0.05586381199212052, 0.0, 0.07686093310040262, 0.10701921729681718, 0.0, 0.4467721663826107, 0.0, 0.5122035249872549, 1.008045581843232, 0.10571972464185753, 0.6235175832869809, 0.0, 0.0, 0.0, 0.0, 0.7054625658357997, 0.0, 0.0, 0.17326833225856653, 0.0, 0.0, 0.0, 1.0813156328128786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0927477810868, 0.0, 0.599657110852462, 0.22383250773975968, 0.19685563542122056, 0.0, 0.05605157239206448, 0.41837305013296433, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18996852120778085, 0.0, 0.28856245320282303, 0.0, 0.0, 0.0, 0.26772611418599673, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1616947156362974, 0.0, 0.0, 0.0, 0.0, 0.36168541397352055, 0.0, 0.0, 0.0, 0.1573219565054934, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13761515434984456, 0.07943022011077468, 0.0, 0.21912413885604493, 0.0, 0.0, 0.40654019224262405, 0.0, 0.0, 0.022840701875983912, 0.0, 0.09402454628178203, 0.5332211799090736, 0.14433851006651358, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.043396172364084024, 0.04011000425692938, 0.0, 0.0, 0.0, 0.13104327726482687, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10232284486723907, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10523174379677519, 0.0, 0.10079612361252216, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04415728315159431, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11805369977437472, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6523402818477722, 0.04871612610613401, 0.0, 0.19287524873967893, 0.0, 0.3592812200503388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.050401634126662875, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8285325211040351, 0.0, 0.0, 0.0, 0.42701794948426475, 0.33826599655789313, 0.0, 0.0, 0.0063200711569476415, 0.0, 0.0, 0.4430530345512502, 0.0, 0.6935424923816391, 0.9428504267370209, 0.42746265456576077, 0.0025457381888520196, 0.0, 0.1593559778661365, 0.0, 0.8273232796667221, 0.04988580847200336, 0.9484876902255591, 0.5784846962232053, 0.0, 0.4437739313478008, 0.0, 0.0, 0.29414816951171024, 0.0, 0.022355194883774517, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02069724212749366, 0.0, 0.0, 0.0, 0.0, 0.7860463101009033, 0.0, 0.0, 0.0, 0.8499064420418566, 0.0, 0.014821364995218649, 0.0, 0.004694386740689857, 0.25038082548050006, 0.5774089497757802, 0.0, 0.0, 0.0, 0.0, 0.006270331329794731, 0.6139069964758506, 0.8351435200462407, 1.0242327730345495, 0.0, 0.029307532281045708, 0.0, 0.0, 0.0, 0.5726801471740839, 0.4962238989829506, 0.0, 0.07225356949876899, 0.10746103390935668, 0.0, 0.0, 0.8346013157058231, 0.0, 0.0, 0.12871551917858068, 0.0, 0.0, 0.05722051841888945, 0.0, 0.08248659071056784, 0.08634381582594033, 0.0, 0.14691645141749232, 0.0, 0.0, 0.0, 0.12530859946217338, 0.0, 0.10215231917559951, 0.07032216186532725, 0.0, 0.8790426858900641, 0.10792096194290268, 0.054388076691659265, 0.0, 0.0, 0.0, 0.05001396409640395, 0.114742650990913, 0.28339886512623463, 0.15677327627325063, 0.0, 0.03258480102579557, 0.09096085908673467, 0.0, 0.0, 0.15530131741375458, 0.4726591715297998, 0.7751806988017736, 0.0, 0.51208607063286, 0.0, 0.0, 0.8142774797804637, 0.037795557638802935, 0.0, 0.03542525158598919, 0.07905092197782795, 0.0, 0.0, 0.1322231578644953, 0.0, 0.0, 0.008286484320060336, 0.670492082894006, 0.0, 0.0, 0.2274177128809876, 0.20430769763068007, 0.27374263149272277, 0.0, 0.0, 0.0, 0.0, 0.22105379716709922, 0.08605636125516496, 0.023058224273634728, 0.03343036365050954, 0.7905997431838073, 0.031091378094046798, 0.32331562706461314, 0.0, 0.048595513480849374, 0.0, 0.6695135011372569, 0.01079155413526415, 0.7675661133629853, 0.01950494389053299, 0.0, 0.06609079415505228, 0.15915608286937477, 0.0, 0.17610090955799163, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05278940542005462, 0.0, 0.04363140001862599, 0.3747258422202424, 0.18235409289517635]), 42), 42)),) julia> @finch_code begin Ct .= 0 for j = parallel(_) @@ -1313,5 +1313,5 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.004334271763144113, 0.19866796375858964, 0.05511378591134807, 0.37983318302160474, 0.0, 0.8329001018500983, 0.30166090609024687, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3289219868624648, 0.0, 0.15511617694464214, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18499887719318273, 0.0, 0.0, 0.0, 0.19259223593916178, 0.0, 0.0, 0.0638915620449496, 0.08125561754012361, 0.17659717140450376, 0.0, 0.0, 0.1525779960421776, 0.0, 0.0, 0.0, 0.0, 0.29196799055295863, 0.0, 0.0, 0.0, 0.5551667524029037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4594337414860906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3019846765891098, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18892258579898563, 0.0, 0.2395310548375412, 0.0, 0.359229579293753, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00028478282759787334, 0.0, 0.3432275013790356, 0.0, 0.0, 0.2972839943189292, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19540404365846636, 0.0, 0.0, 0.0, 0.0, 0.18546216890582629, 0.0, 0.0, 0.00916099623463154, 0.0, 0.034731738855626984, 0.4853088859188271, 0.0076713909171271105, 0.0, 0.0, 0.5640422262893099, 0.0, 0.5950501234938147, 0.040920156633969085, 0.0014920661060395996, 0.0, 0.08081663901361853, 0.8825202410318094, 0.0, 0.006218090636031004, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3280555235834662, 0.03812149119614576, 0.0, 0.05190957475021724, 0.0, 0.06033708819060236, 0.0, 0.10124291140603807, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5085302772239245, 0.0, 0.5334307954394755, 0.0, 0.0, 0.2328402544634388, 0.0, 0.005816161517311894, 1.5317318593263975, 0.0, 0.46738125332221536, 0.0, 0.09813163178688389, 0.4394739409933983, 0.0, 0.26102098784262384, 0.0, 0.0, 0.0, 0.0, 0.8804155352247423, 0.0, 0.0, 0.48240400321886606, 0.3763091458911055, 0.6151496795666793, 0.0, 0.27268296540705483, 0.0, 0.0014290584461454537, 0.0, 0.0, 0.0, 0.5294637260878591, 0.0, 0.0, 0.0, 0.31181862629226015, 0.0, 0.34152287293383227, 0.1986997482112381, 0.2527011428302912, 0.0, 0.434749031361829, 0.0, 0.4472075705110786, 0.4092092126159339, 0.2807873539680881, 0.17401521117970595, 0.0, 0.0, 0.43733948883443596, 0.5485693747724284, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0983266821553666, 0.05373620000037918, 0.49612300100963586, 0.0, 0.0, 1.075151264033199, 0.0, 0.18716105879611752, 0.03950202184626144, 0.0, 0.0, 0.7852572057826378, 0.0, 0.0, 0.08756438716142145, 0.27446263899702106, 0.0, 0.0, 0.07204260281080108, 0.0, 0.09291620627436281, 0.23270017215835156, 0.23824566618105675, 0.0, 0.0, 0.0, 0.13665872084048475, 0.0, 0.0, 0.0067937121060301624, 0.1164801427986044, 0.0, 0.5691621002508566, 0.4713388661713567, 0.41358181631025637, 0.0, 0.3128607440091297, 0.0, 0.0, 0.20424594336339066, 0.0, 0.0, 0.7442286193021344, 0.10553727794892508, 0.0, 0.30186901767997887, 0.0, 0.0, 0.0, 0.32291683563950796, 0.07758151598185183, 0.0, 0.347786535534979, 0.7360230359944353, 0.0, 0.0, 0.0, 0.8757273805535595, 0.41322710295268655, 0.0, 0.25679112297862333, 0.17774302673574222, 0.5841939760860391, 0.0, 0.0, 0.0, 0.13300779742001662, 0.16915583797139946, 0.0, 0.0, 0.0, 0.7164740353603845, 0.45156468002631484, 0.0, 0.27217311439601866, 0.7084784766971438, 0.06835326871026481, 0.0, 0.0, 0.0, 0.2861016237491002, 1.0700436562849107, 0.135740840434777, 0.2599664462430113, 0.45536369102376945, 0.0, 0.0, 0.0, 0.16460938932017066, 0.9424546774296569, 0.4980075807530193, 0.501649117240962, 0.9215918221852557, 0.0, 0.5227646022766553, 0.46865433734477785, 0.0, 0.1899494468105599, 0.0, 0.14204872822901377, 0.7891527088162923, 0.2800775160398023, 0.0, 0.0, 0.6038144125549446, 0.0, 0.4101280976499608, 0.15813547044885462, 0.4381740566617935, 0.0025678619479343042, 0.5913196381458786, 0.01581382625018507, 0.4317825799661969, 0.0, 0.5361217114844467, 0.16404576969544252, 0.0, 0.03623369485950333, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19327505078226082, 0.1125279795645968, 0.0, 0.38171505913646114, 0.0, 0.0012820843611261621, 0.0, 0.0, 0.017018867107690273, 0.0, 0.018573326277702022, 0.7755881641075008, 0.12996991545193906, 0.0, 0.18005632805213245, 0.0, 0.2451805301156947, 0.0, 0.3747092870507497, 0.0, 0.4781929115858312, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.35214721497251084, 0.0, 0.020304118651362432, 0.14466279308909658, 0.626862644216891, 0.0, 0.0, 1.5549351131665947, 0.30737844662289215, 0.0, 0.0, 0.0, 0.0, 0.009701873820892715, 0.2520412914553624, 0.018396624198184493, 0.0, 0.7982268230101296, 0.0, 0.9201682818000929, 0.0, 0.0, 0.7342011144064367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09396246898802936, 0.0, 0.5073258744317697, 0.22284199906817412, 0.10151898941699102, 0.03180992568768135, 0.0, 0.5543686635557524, 0.0, 0.0, 0.0, 0.22367207355552704, 0.0, 0.0, 0.0, 0.40880306935546484, 0.0, 0.42113696363931935, 0.0, 0.0, 0.0, 0.43326306412219423, 0.39232717474974355, 0.0, 0.0, 0.0, 0.013675206005982276, 0.0, 0.2603519242467926, 0.3502025254743841, 0.14312660068897712, 0.34775162340880994, 0.20310882214946477, 0.0, 0.27127891969267615, 0.0, 0.0, 0.020541404680713544, 0.0, 0.0, 0.1991870263338475, 0.0, 0.0, 0.2456237488004554, 0.12123860127246498, 0.2079074067296303, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24646978770136238, 0.15225808974571345, 0.0, 0.0, 0.46988488666249073, 0.16461741428636234, 0.4415386194506142, 0.05631807188893752, 0.0611318669096905, 0.0, 0.0, 0.0, 0.5215534136524774, 0.0, 0.0, 0.6274626509368973, 0.038256585847320265, 0.530070634494204, 0.0, 0.7877809268797783, 0.25601250351282806, 0.37534186876141573, 0.700013095645165, 0.0, 0.29431110179251513, 0.22882177649965688, 1.0569304890861846, 0.0, 0.0, 0.0, 0.0, 0.02833923205698933, 0.02572736738919585, 0.0, 0.1150475064446459, 0.24371977071087828, 0.0, 0.0, 0.044121908414131224, 0.0771055384425919, 0.09695789652483547, 0.0, 0.0, 0.0, 0.12020713596947674, 0.045249684273424934, 0.8721213827038133, 0.0, 0.11731035534021127, 0.37569616707373005, 0.0, 0.0, 0.9570606189270042, 0.9086284112098039, 0.20027308709305888, 0.4268041763647709, 0.0, 0.0, 0.015909944043088663, 0.0, 0.7658973441527888, 0.0, 0.19507759787979717, 0.3226660152512004, 0.23629991340839918, 0.0, 0.13848101841219138, 0.0, 0.0, 0.24578615843203896, 0.0, 0.0, 0.10167993256702677, 0.0, 0.0, 0.12538470338440244, 0.9934363459809055, 0.10613146591697438, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6421265863141966, 0.0, 0.5400344618364347, 0.025731716559651077, 0.0, 0.0, 0.0, 0.007521097208030019, 0.5455660054203588, 0.0, 1.1209603429913297, 0.0, 0.0, 0.5234607155600556, 0.0, 0.023977651748011766, 0.0, 0.0, 0.0, 0.27798322874225667, 0.0, 0.35612425891926536, 0.0, 0.7529913555346315, 0.6214420882570796, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12146506806205652, 0.0, 0.3210215267482459, 0.0, 0.0, 0.0, 0.33419799384234544, 0.0, 0.0, 0.15359727591834285, 0.19534099821264672, 0.525863863274946, 0.0, 0.0, 0.34569678733330644, 0.0, 0.0, 0.3415674397857982, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.523004359259986, 0.0, 0.22235180304591923, 0.0, 0.00635695661054767, 0.0, 0.0, 0.0843846185513356, 0.0, 0.0, 0.0, 0.8855039996037297, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27294552017018114, 0.0, 0.3412878895624823, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5864608505347954, 0.0, 0.10380099346078346, 0.02524889717437322, 0.0, 0.0, 0.38157075730498896, 0.0, 0.0, 0.0, 0.45469484904050655, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.26459586877877683, 0.18314523505716396, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22372814141562178, 0.0, 0.0, 0.0, 0.6276845275284666, 0.18331203344516112, 0.25689720406507865, 0.04048914090414101, 0.0, 0.016969058333515752, 0.0, 0.5911567891086366, 0.37358991094373184, 0.21597413111529512, 0.09535966106843696, 0.021909623318208237, 0.49412659112391777, 0.39229708641560146, 0.0, 0.0, 0.5239905526116051, 0.22383442432789932, 0.0, 0.408761833081477, 0.7858251636352953, 0.0, 0.03095169444374481, 1.0134328993353359, 0.0, 0.5783663988186404, 0.023349871375665725, 0.4068090650141155, 0.3701047391436106, 0.7170357796952346, 0.31327392774306395, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.39350494784782397, 0.07595368484327951, 0.4868292236818003, 0.046986031631648606, 0.530207151960747, 0.01037806421927761, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05535788985307855, 0.7394134258901907, 0.17106635844034493, 0.9821443208953105, 0.0, 0.008962807708770178, 0.0, 0.0, 0.11897566020800357, 0.0, 0.0, 0.0, 1.2828090910806784, 0.0, 0.4691443493685695, 0.0, 0.07022467062008277, 0.18231155361607748, 0.41302392682414213, 0.0, 0.13696413696930718, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.423686950315378, 0.0, 0.5297732126841366, 0.0, 0.10086209606266386, 0.4105665706595916, 0.2899236467445781, 0.08479167779863508, 0.0, 1.1607169616195545, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44056670549109944, 0.0036426275414389976, 0.22268017654499572, 0.70259131988822, 0.021981713208965886, 0.0, 0.0, 0.0, 0.6644482698446481, 0.5559910462571956, 0.9081368976941899, 0.9545466439826781, 0.0, 0.5800820874802947, 0.6131061961157059, 0.0, 0.3387938943904664, 0.0, 0.41233232521209184, 0.6892320892052487, 0.9168247018477867, 0.7592095444656833, 0.0, 0.7080274090242662, 0.0, 0.0, 0.7409103227795685, 0.4891910517462003, 0.0, 0.0, 0.6996898878138225, 0.18201720925245757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.033060035104523045, 0.0, 0.0, 0.0, 0.0, 0.0010434833431631984, 0.0, 0.0, 0.0, 0.010921241238865733, 0.0, 0.015498170387323498, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.011618017340433275, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2104054739321471, 0.0, 0.0, 0.0, 0.051249741424478176, 0.0, 0.0, 0.0, 0.09744956100917274, 0.0, 0.0, 0.0, 0.0, 0.10766993925868745, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18951483497887683, 0.5969374604132631, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6248091001560899, 0.0, 0.0, 0.0, 0.0, 0.18617398114562853, 0.0530079909103574, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14076422137873648, 0.3823151552281139, 0.28535858102685935, 0.3054264047421474, 0.0, 0.0, 0.5425991952026914, 0.16566917168527906, 0.0, 0.0, 0.24572721112234908, 0.0, 0.0, 0.311993347128524, 0.0, 1.0231061248638629, 0.5939954507294103, 0.5983388707717968, 0.7851882761904205, 0.0, 0.28209866162610053, 0.46470151179975694, 0.0, 0.22767102275324697, 0.0, 0.0, 0.3351791998251741, 0.0, 0.0, 0.0, 0.3258354466053841, 0.29514851487698524, 0.25858133097678015, 0.1886151008053812, 0.5226293862659805, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0442888167727012, 0.0, 0.002505192641426779, 0.0, 0.0, 0.07664740890754863, 0.0, 0.0, 0.013363010227595206, 0.00048725362450601585, 0.002419244088482629, 0.026391726291740327, 0.0, 0.0, 0.03460717393330891, 0.0, 0.13624247986958654, 0.0, 0.0, 0.0, 0.0, 0.0, 0.012449069569846, 0.0, 0.016951747875799564, 0.0, 0.0197038621774241, 0.0, 0.033062191640471625, 0.07310509907314719, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06556034095953286, 0.0, 0.02434740964367002, 0.0, 0.0, 0.13592547532623306, 0.0, 0.030022610188286405, 0.03795734899490777, 0.008699370747195389, 0.0, 0.0, 0.18940737674761182, 0.16014434992779022, 0.0058393216511455045, 0.0, 0.3162824676834449, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14919154588027264, 0.0, 0.20315232851529888, 0.0, 0.27582528532656464, 0.0, 0.3962223404212856, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00142596300027198, 0.0, 0.008781597914028754, 0.2917830655969515, 0.0, 0.0, 0.3010196130390429, 1.085161420061463, 0.0, 0.8818413438369698, 0.0, 0.14807253735972709, 0.6682230613653689, 0.6738718955158736, 0.0, 0.2921120382906695, 0.0, 0.23016863424694362, 0.44343897402347887, 0.0, 0.0, 1.2859761704109314, 1.188418751121335, 0.0, 0.4620501506594876, 0.23396469855670338, 0.0, 0.03498671823904876, 0.0, 0.0, 0.3392611399043929, 0.20497564811318061, 0.0, 0.4183535169904413, 0.20649711391931772, 0.520902106226398, 0.0, 0.0, 0.16125806820737418, 0.5576988707246249, 0.0, 0.0, 0.0, 0.11391623120681071, 0.0, 0.0, 0.09151851725619714, 0.0, 0.0, 1.197254000111945, 0.0, 0.8775820846458859, 0.0, 0.5629797627532018, 0.6687057520979063, 0.341227000414515, 0.0, 0.25482576175079585, 0.0, 0.39537376259476137, 0.4437592920364036, 0.0, 0.0, 0.5927285333298421, 0.651986303075751, 0.0, 1.0434591895456948, 0.0, 0.0, 0.03501199088471498, 0.0, 0.0, 0.3395062050893736, 0.15619471223870085, 0.0, 0.41865571453083017, 0.20664627704903807, 0.48238135206809674, 0.08860575544817058, 0.0, 0.005695035181786341, 0.42497543210880456, 0.0, 0.23934194260454025, 0.30438882267274336, 0.2874361482000896, 0.0, 0.0, 0.6245971595264426, 0.0, 0.3639559852559372, 0.0, 0.0, 0.20575691959192335, 0.0, 0.5994751724692355, 0.0, 0.0, 0.0, 0.0, 0.002904710270589501, 0.0, 0.27722048222724693, 0.15720637186052522, 0.0, 0.40582979792580204, 0.3276141191929195, 0.0, 0.5216472712210337, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.022828121623522435, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.111114554054197, 0.0, 0.0, 0.005523835481493179, 0.12589753624924738, 0.4223352609451343, 0.19512225997871732, 0.9646462752755526, 0.0, 0.0, 0.908234546074678, 0.0, 0.1303083320340461, 0.4180115467796097, 0.3502002628164635, 0.005797584702932196, 0.620011620521792, 0.6673813159226286, 0.0030737631986123407, 0.0, 0.42144642014638856, 1.0414378536891689, 0.6289622414694364, 1.5563606265339154, 0.08385396416867873, 0.3115994197854627, 0.7117829870894571, 0.6381078265340546, 0.0, 0.23989801450652898, 0.0, 0.5826228436020011, 0.8457142287971168, 0.0, 0.0, 0.0, 1.0193786877434905, 0.0, 0.0, 0.19971832516875276, 0.5533950636153777, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21472741909783344, 0.39082851888093567, 0.44716245502350144, 0.2879713896328549, 0.5511368948723377, 0.33565164359388877, 1.3517828371888283, 0.0, 0.09957607530690628, 0.0, 0.0, 0.26103163435011795, 0.3965287786994862, 0.6597151598792015, 0.0, 0.34286845579856556, 0.3900059867245693, 0.34423839922938515, 0.0, 1.2842745238771571, 0.3694211002080512, 0.0, 0.05489702502604951, 0.3645945046142821, 0.0, 0.0, 0.08041277613458127, 0.2893532857853331, 0.0, 0.5419495915870312, 0.70973704371772, 0.06597297072421819, 0.0, 0.0, 0.28417074423649047, 0.45673560467870195, 0.1772454725351981, 0.22541615615699262, 0.08077018346809645, 0.5662548477384789, 0.07678831671440492, 0.7573984424681688, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4826509895037858, 0.0, 0.7156459126461995, 0.0, 0.0, 0.0, 0.0, 0.0, 0.013563432420802306, 0.4559162518278489, 0.0, 0.0, 0.0, 0.0, 0.26262283944881243, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16505781512417061, 0.2933206286622639, 0.0, 0.0, 0.0, 0.0, 0.40289003757510067, 0.0, 0.0, 0.0, 0.6372941893353361, 0.0, 0.6237934507673457, 0.8070702584067075, 0.0, 0.0, 0.3379623279083573, 0.0, 0.46129991809862586, 0.7333015288992237, 0.21031442023566344, 0.0, 0.7041420713561054, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7760176053652288, 0.0, 1.0534236649773678, 0.0, 0.0, 0.8070780011372765, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4823716017908521, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6208306891807599, 0.0, 0.0, 0.01732988822073383, 0.2738833349341264, 0.10672374403860475, 0.0, 0.008043590060480383, 0.0, 0.055277084044920086, 0.0, 0.0, 0.17943961322559207, 0.0, 0.0, 0.0, 0.0, 0.0, 0.718108290096912, 0.0, 0.0, 0.0, 0.008728384689335622, 0.0, 0.1697763404331079, 0.11586384141065409, 0.0, 0.0, 0.0, 0.8848305575683707, 0.0, 0.8449968950182224, 0.0, 0.0, 0.0, 0.6706152313255382, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8308196053978146, 0.0, 0.9175002824131868, 0.7530109173431534, 0.022342425693822682, 0.0, 0.0035915524463436964, 0.15288943835905894, 0.0, 0.5199425421439203, 0.11917728725476327, 0.3521011644457409, 0.0, 0.822488739774635, 0.513543493422637, 0.2981570434312181, 0.0, 0.0, 1.2701086711578897, 0.0, 0.11247893732510689, 0.0, 0.039332390318575425, 0.0, 0.11102635670488926, 0.0, 0.15118325075382752, 0.0, 0.1757278339799435, 0.0, 0.2948633760880991, 0.15371975197149906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04453230950399372, 0.0, 0.05568267952698087, 0.0, 0.21714106205060016, 0.0, 0.0, 0.0, 0.0, 0.7213227431120439, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2701718137836067, 0.0, 0.06123281377737304, 0.4007297534572718, 0.0, 0.0, 0.02350606599699272, 0.0, 0.47270164239805296, 0.39554302818161685, 0.39843532224568856, 0.0, 0.0, 0.46004399190355705, 0.41242580548884994, 0.0, 0.15086754157289264, 0.0, 0.0, 0.5466072621606027, 0.18414300130678235, 0.2087681866233734, 0.0, 0.5313695523968773, 0.0, 0.0, 0.2807883504872339, 0.34802019073798685, 0.0, 0.09776175774612722, 0.1924014129464173, 0.0, 0.0, 0.0, 0.2995245510564702, 0.1439415371971276, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09612835370305864, 0.0, 0.07178793274997196, 0.0, 0.0, 0.0, 0.529229742886101, 0.0, 0.0, 0.5898615183638936, 0.0, 0.1996504875270556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07685007162501065, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4724449949223617, 0.0, 0.21985358976027652, 0.0, 0.0, 0.0, 0.6511036698044336, 0.5394783324223208, 0.9048355234024855, 0.0, 0.0, 0.0, 0.008134079103649166, 0.17236516549262873, 0.0, 0.7108281927774538, 0.0, 0.0, 0.0, 0.8245834715993663, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22989626507902333, 0.12442621872484774, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3037122713618223, 0.0, 0.0, 0.008259351424073042, 0.4378900919766154, 0.05086408498890661, 0.31974807102322866, 0.0, 0.0, 0.7960980638875322, 0.0689135689704732, 0.0, 0.0, 0.0, 0.20359294387478752, 0.9097633301509839, 0.0, 0.6841090251831579, 0.0, 0.6154584825649704, 0.7335150023327748, 1.015637287349907, 0.0, 0.0779165260149525, 1.1277817941657742, 0.0, 0.0, 0.3457097793442966, 0.6958114560471119, 0.22297907055084815, 0.02617735461213243, 0.8271866794310433, 0.0, 0.25383801660715655, 0.0, 0.6564805026462143, 0.4519424562793308, 0.8175733700968422, 0.26495100977979114, 0.0, 0.0, 0.0, 0.33910693050583907, 0.0, 0.0, 0.0, 0.4889218480481046, 0.0, 0.3925649791995639, 1.5627863234111485, 0.8201598086100989, 0.28474440170274185, 1.0514838770367962, 0.010290531779792767, 0.0, 0.0, 1.5282247448720891, 0.4202365445740981, 0.38631591015261757, 0.07827208426350975, 0.002001482371009478, 0.19978631068641475, 0.10840878806592323, 0.8849580765325739, 0.7025926608640433, 0.21468725597950544, 0.6515266028885637, 0.304659479667613, 0.0, 0.5203661079080213, 0.1989832785613875, 0.22866153178235926, 0.2129788116497342, 0.0511368043793991, 0.0, 0.06963236972450947, 0.0, 0.08093717687353573, 0.0, 0.3254291820176872, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4944791980843742, 0.5417407856384763, 0.0, 0.4343792686365096, 1.5442785077006684, 0.0, 0.13746522377571999, 0.0, 0.0, 0.0, 0.0, 0.01933245239450143, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44623451745418, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.30502005455201636, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.014872981553739924, 0.0, 0.0, 0.0007393802182031884, 0.0, 0.14653699929908884, 0.0, 0.0, 0.26188312990151436, 0.028159286104530473, 0.0, 0.4084686341089707, 0.9235151006259961, 0.5957064186534903, 0.0, 0.0, 0.5535709817494249, 0.0, 0.25891613288066156, 0.07783302925410085, 0.2939591160629263, 0.1987201643010643, 0.0, 0.09767541007114018, 0.4120929351702914, 0.22225830848448824, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13739476210353194, 0.0, 0.037597515302596925, 0.0, 0.0, 0.31874062595288627, 0.33536722163001637, 0.0, 0.0, 0.0, 0.48352996362981304, 0.0, 0.38851289261478805, 0.6830254018960756, 0.3364461001285706, 0.8253161071254982, 0.0, 0.2348841918025421, 0.0, 0.4205219693225024, 0.5314960091024892, 0.0, 0.0, 0.10178270195612651, 0.0, 0.0, 0.780835547454152, 0.5872223143240599, 0.2503853190515238, 0.0, 0.0, 0.6150976289535472, 0.0, 0.09445718365268194, 0.0, 0.0, 0.17331386223779208, 1.5139967025892487, 0.0, 0.0031631037123804793, 0.0, 0.0, 0.20592512324808152, 0.0, 0.03635874582185372, 0.0, 0.20018457152414249, 0.22068196040992705, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.01855804465451247, 0.0, 0.0, 0.03641425883740431, 0.0568080930379847, 0.10109716846875504, 0.0, 0.0, 0.0, 0.0, 0.005424838537552436, 0.0, 0.0, 0.5251896042062963, 0.0, 0.0, 0.0, 0.00515342598991506, 0.045980273053842245, 0.0, 0.4033688458623361, 0.0510673466163073, 0.0, 0.0, 0.02134197385615031, 0.01687808266981965, 0.0, 0.4932447371732914, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7178045198025068, 0.2106682695954306, 0.0, 0.3115118572371521, 0.5170963380295581, 0.39595498771521426, 0.1432663403816299, 0.5698542189659496, 0.0, 0.0, 0.0, 0.5317966816929195, 0.0, 0.5315818882594147, 0.8168445783005969, 0.0, 0.0, 0.0, 0.01222733860627223, 0.0, 0.716756885645577, 0.0, 0.8217284580618865, 0.48234209517721377, 0.15545502627894098, 0.04826321760798536, 0.0, 0.0, 0.1394038038151463, 0.0, 0.056802678199824076, 0.0, 0.0, 0.0, 0.3128541399180126, 0.0, 0.0, 0.596593418834028, 0.0, 0.2846892571697076, 0.0, 0.0, 0.0, 0.23365792107187477, 0.0, 0.0, 0.4584793374366712, 0.7152510496888798, 0.0, 0.0, 0.0, 0.8190896825195866, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11127793558853107, 0.0, 0.5789217135796446, 0.0, 0.0, 0.6429712972008511, 0.0, 0.0, 0.661506988212563, 0.7629272979371657, 0.0, 0.4234710523361336, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4257443064600869, 0.0, 0.20425497460318195, 0.0, 0.5184318202957809, 0.5906121758765186, 0.0, 0.9091367634018797, 0.0, 0.30652125262867885, 0.0, 0.7954054080966687, 0.0, 0.0, 0.0, 1.0559083316811368, 0.0, 0.04427154393293609, 0.8228955354751877, 0.46658038808648383, 0.0, 0.02688606839966265, 0.0, 0.0, 0.6276611460113729, 0.22522673327345408, 0.0, 0.12308651028821192, 0.3657688390111318, 0.0, 0.046115245088609334, 0.0, 0.5342436705087195, 0.0, 0.1923886832463953, 0.07621763959827882, 0.0, 0.0, 0.0, 0.6725528112574624, 0.7483589153917343, 0.0, 0.0, 0.0, 0.0, 0.38949567271561986, 0.16492548861911044, 0.10519585180914466, 0.8853743380662012, 0.957787822214843, 0.0, 0.05459549529270359, 0.25656057396140347, 0.14167223917141744, 0.03949155262056029, 0.0, 0.0, 0.2703834370419471, 0.0, 0.723362221877522, 0.0, 0.0, 0.0, 0.7883757417725614, 0.0, 0.03340589062163017, 0.18896261922152233, 0.0, 0.0, 0.8122657251866786, 0.029607718570353176, 0.0, 0.008213735995679807, 0.0, 0.08605746445745502, 0.0, 0.3070376563830936, 0.10398717208817806, 0.0, 0.0, 0.0, 0.383984202548332, 0.0, 0.0, 0.3036396360576457, 0.0, 0.0, 0.0, 0.0, 0.11965354383371518, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04825455862354496, 0.3335108938296942, 0.0, 0.0, 0.0, 0.0, 0.04121745447265487, 0.30594446336043757, 0.0, 0.33550494159326405, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029116195807012437, 0.0, 0.0, 0.0, 0.0, 0.0, 0.020041236855252602, 0.0, 0.4850188795993097, 0.0, 0.16403823255879735, 0.0, 0.60023572778736, 0.0, 0.1787344157826609, 0.0, 0.0, 0.17233073276918714, 0.17532212882841147, 0.6209016656456683, 0.5984929062073807, 0.8843163905991084, 0.3337919143714591, 0.0, 1.0919707374354302, 0.8166713304287454, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8330317657834686, 0.27201200741148646, 0.0, 0.8995473587201992, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6388227016456749, 0.0, 0.3682672817259989, 0.0, 0.5422113050459496, 0.0, 0.028602469161704683, 0.0, 0.0, 0.3611222515381231, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.031337192831751, 0.0, 0.0, 0.7687924758178234, 0.012617011188267763, 0.0, 0.0, 0.37315715294884366, 0.0, 0.0, 0.0, 0.0, 0.6888779809403613, 0.121001715761302, 0.0, 0.0, 0.3680175749172942, 0.47420475938210593, 0.0, 0.7604201795169553, 0.0, 0.11917670920609563, 0.0, 0.20848198246903302, 0.24926285864223433, 0.0, 0.5553692000145817, 0.4169252107806106, 0.16597755096800731, 0.7334771026528798, 0.0, 0.0, 0.09908991746260937, 0.0, 0.14652270264303283, 0.006759647910977647, 0.0, 0.9351545954529237, 1.2960299208884896, 0.0, 0.0, 0.21191619141709428, 0.0, 0.0, 0.0, 0.01204540426582532, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06493914883934329, 0.7726981572397796, 0.0, 0.4370686273737238, 0.1778273534538074, 0.055209023869020324, 0.0, 0.0, 0.0, 0.05709969797354255, 0.0, 0.0, 0.0, 0.0, 0.44808598581285264, 0.0, 0.0, 0.0, 0.21141909545938053, 0.13390642572615394, 0.0, 0.0, 0.0, 0.25844994675864025, 0.0, 0.51617125876173, 0.2544268105667549, 0.0, 0.17576058376064335, 0.29087109088619356, 0.0, 0.0, 0.3286889977164017, 0.0, 0.0644707079973061, 0.0, 0.018682819036845075, 0.008522941045952347, 0.0, 0.0, 0.2520720928277996, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.146066293561638, 0.08856351358209161, 0.0, 0.0, 0.0, 0.1407746062228793, 0.5246446552397386, 0.0, 0.0, 0.0, 0.3279179855015388, 0.46137944574560436, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14330339619658897, 0.11500988018505275, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7444467047874328, 0.0, 0.0, 0.40713437972280675, 0.0, 0.0, 0.0, 0.5717679971406524, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4877440937322302, 0.6991654372087778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2369682176872117, 0.0, 0.0, 0.6757556051622259, 0.0, 0.0, 0.0, 0.576368321209737, 0.04986303698751877, 0.0, 0.5384684335273707, 0.0, 0.21524971756673417, 0.4963922980972075, 0.0, 0.0, 0.0, 0.0, 0.18940210229325644, 0.5277692784584271, 0.7718932464687741, 0.7210929692294604, 0.0, 0.0, 0.0, 0.0, 0.48286176484120297, 0.8517937989915767, 0.3931693184679991, 0.0, 0.0, 0.06755455710060922, 0.0, 0.026695131792948763, 1.4844324548606433, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4524914530619723, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4694831016582333, 0.0, 0.42831526212260856, 0.6074590079807168, 0.30066361967157035, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6129938591206631, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6008436638333436, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.43882326364474644, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8591062832739853, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6928708028466394, 0.2819039698547807, 0.08752108546971657, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05246236611269018, 0.0, 0.0, 0.5428804251437249, 0.022819504909203123, 0.3729965675892053, 0.0, 0.5741583158437262, 0.0, 0.1935811346150516, 0.0, 0.5023321549740235, 0.2611826745866744, 0.0, 0.056899028261467276, 0.37961815387770637, 0.22527271986010186, 0.05171423855571594, 0.058968538904135746, 0.0, 0.02892983665470066, 0.003313037290954743, 0.0, 0.0, 0.15785301822506514, 0.0, 0.0, 0.07773433689527456, 0.1049811110510813, 0.0, 0.02912372760696772, 0.0, 0.3114315285072337, 0.5703037753007745, 0.0, 0.04813466284828647, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02241933195791073, 0.0, 0.0, 0.0, 0.0, 0.23199999736075347, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1927795141790272, 0.2407119020891451, 0.0, 0.21960445663579467, 0.5770903406753464, 0.15415530724008072, 0.23155572792080611, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3142922871488459, 0.0, 0.0, 0.0, 0.0, 0.3042889785067072, 0.0, 0.5129566600174419, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3746354155106774, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4789154917746846, 0.17517544375428362, 0.0, 0.0, 0.0, 0.2637662382252967, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2102700997979013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.126545263019808, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.332133943612647, 0.0, 0.0, 0.0, 0.06184093060913505, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3212574037659458, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24673989573277713, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3017167941185386, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6233354196759152, 0.0, 0.0, 0.0, 0.5447611694646652, 0.0, 0.0, 0.216176776357065, 0.0, 0.19855221622967104, 0.8686764576101142, 0.16350923987929902, 0.0, 0.0, 0.02334951098786776, 0.17107621812888604, 0.48682879160279025, 0.7109808359466632, 0.6651558420918936, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6192268761337199, 0.31206921876898447, 0.0, 0.0, 0.24595989001208304, 0.11068536977374843, 0.0, 0.6618395820988949, 0.11362642836904417, 0.0, 0.0, 0.23765422406147768, 0.0, 0.0, 0.8073352785417658, 0.0, 0.0, 0.48485062583878286, 1.055137179889336, 0.2671063045394923, 0.0, 0.8476204266733893, 0.473385026956602, 0.5030912229948215, 0.0, 0.0, 0.0, 0.17678971866264329, 0.4076988147485064, 0.0, 0.6776909084507561, 0.13779930009477406, 0.5691281649873949, 0.16622169517158358, 0.433469475882236, 0.818379113845578, 0.9106844436778354, 0.0, 0.499393081506665, 0.0, 0.5725309586159512, 0.6160013948015824, 0.5125607980557373, 0.2778645861379971, 0.0, 0.0, 0.0, 0.0, 0.0, 0.58929804834674, 0.0, 0.8046233984476477, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3967677816937078, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11707526901952116, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.383435421983313, 0.11707115655719894, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07864429232511502, 0.0, 0.0, 0.3002587300128159, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2266804769859352, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24215921984980293, 0.09852579316681935, 0.030588729804574537, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18874358875246125, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3978422171614565, 0.1936032919321414, 0.0, 0.0, 0.2542147176776134, 0.0, 0.0, 0.0, 0.11057553114503467, 0.0, 6.012518808232222e-5, 0.0008825884581384356, 0.6460696181307314, 0.0, 0.0, 0.06879188140017427, 0.0, 0.0, 0.04716298956935701, 0.1540138997690347, 0.1854894997474166, 0.003124358567077274, 0.35109153378778224, 0.0, 0.0, 0.016293742009993128, 0.0, 0.0, 0.3747805868672189, 0.025859295570033313, 0.214029422856965, 0.003742959361061961, 0.0002933458280023473, 0.0, 0.0, 0.0, 0.030501494612752977, 0.0, 0.6996784734474946, 0.0, 0.0, 0.05616866413207192, 0.0, 0.0018184995370819535, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.020171782722387992, 0.0, 0.0, 0.33279196588498333, 0.0, 0.0, 0.6323890570808377, 0.0, 0.0, 0.0, 0.03594525644730097, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004527887543653786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17039388977135247, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6309056496928738, 0.0, 0.0, 0.0, 0.0, 0.260280820884557, 0.0, 0.0, 0.5107183088816271, 0.7967464980324664, 0.14485492608681305, 0.0, 0.009558078807310686, 0.754701551784825, 0.0, 0.0, 0.0, 0.0, 0.7598764239846039, 0.0, 0.029177780358136646, 0.10253044625069853, 0.03763219091970284, 0.8115624154017409, 0.0, 0.5779584654853126, 0.7162312164421211, 0.0, 0.0, 0.9107472399622886, 0.7029540573396418, 0.0, 1.0969174796040306, 0.0, 0.0, 0.0, 0.0, 0.0038591832437520454, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15366266383288085, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.558080611304664, 0.0, 0.0, 0.0, 0.0, 0.30736701150515244, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04311886842935436, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32751189175201845, 0.0, 0.20963216887545572, 0.1760259950046517, 0.0, 0.23753864749234863, 0.24093292162050975, 0.024684548149881243, 0.4936183719527589, 0.7064246796060082, 0.0, 0.06677453327599289, 0.8542035190842152, 0.0, 0.025534429812218047, 0.011379900282647532, 0.039800411165778926, 0.013727111201321645, 0.27843394547131894, 0.24161261590501448, 0.2499939278392831, 0.0, 0.0, 0.3450248607837782, 0.0, 0.0, 0.15272914557490577, 0.10495111476871369, 0.0, 0.0, 0.0, 0.18866875753074405, 0.0, 0.2225813946448797, 0.0, 0.0, 0.3661590836002555, 0.0, 0.0, 0.0, 0.8998957690359772, 0.30889178773893766, 0.6078813570942335, 0.0, 0.6840699471933163, 0.0, 0.0, 0.0, 0.36308986165522683, 0.752528074611531, 0.7191770460546526, 0.49508503625401296, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7784554319844289, 0.16352298326175332, 0.0, 0.042948548224867954, 0.375190336410357, 0.0, 0.6830715485727474, 0.6403864588932121, 0.7831097846364896, 0.46112164648188003, 0.14556009485746954, 0.0, 0.0, 0.0, 0.8585580212631712, 0.0, 0.253359163441029, 0.0, 0.0, 0.0, 0.45902026051340783, 0.0, 0.0, 0.0, 0.0, 0.166881895984427, 0.0, 0.0, 0.837727301005, 0.0, 0.0, 0.7629510291223568, 0.0, 0.34201996071392393, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3670598185817387, 0.0, 0.9533138689466589, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8365046398061449, 0.0, 0.9590136929209965, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.801491142663501, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16957493050977235, 0.0, 0.2507477829737011, 0.0, 0.0, 0.11532054524043628, 0.07735685692161769, 0.5247858743947099, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02100484631395434, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8201592179395716, 0.0, 0.0, 0.04562437343117348, 0.0, 0.22915724847477928, 0.0, 0.0, 0.7159205767218768, 0.0, 0.0, 0.0, 0.0, 0.29228977882295926, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17928588753235497, 0.10348218971035608, 0.8147006956016374, 0.08438351505236888, 0.0, 0.0, 0.0, 0.1070859593707194, 0.7148756921758321, 0.0, 0.8195717571774336, 0.12249576952187838, 0.0, 0.2397374334824377, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05225556550152024, 0.0, 0.0, 0.0, 0.1707240047839942, 0.0, 0.11920584928810601, 0.0, 0.14514911616615112, 0.4284534617057244, 0.04403067305952579, 0.0, 0.012688229227290206, 0.3654383338493288, 0.04642776495318284, 0.0, 0.0, 0.31371261026073766, 0.1364760956744218, 0.5008825042361101, 0.0, 0.04802625911306818, 0.021403808257108425, 0.0, 0.12191697007589085, 0.33632693219045084, 0.49073784844916374, 0.5066599946239788, 0.0, 0.0, 0.033354950181247504, 0.0, 0.15690710970564234, 0.3397139005999492, 0.4535410643500978, 0.0, 0.0, 0.49050280987387757, 0.0, 0.0, 0.45491953624514714, 0.0, 0.0, 0.33864218894794285, 0.0, 0.0, 0.041024172335819876, 0.0, 0.0, 0.0, 0.36175943329836924, 0.0, 0.39749358702806525, 0.0, 0.5595492530984049, 0.0, 0.0, 0.2573403608635483, 0.17262354625512744, 0.0, 0.0, 0.0, 0.3776391490751126, 0.0, 0.0, 0.1445911005474468, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.45961437114556436, 0.08073146338811468, 0.0, 0.0, 0.0, 0.5680662673212686, 0.0, 0.14301647595845865, 0.4278925860448857, 0.2624303541096862, 0.0, 0.5619603114708978, 0.5488835922357254, 0.0, 0.10445139145624531, 0.9180806504163392, 0.5113694952971799, 0.0, 0.4737323723594051, 0.4474251824766889, 0.10616343839228443, 0.0, 0.02745363380188561, 0.0, 0.28312699798757224, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6983886824821985, 0.38943652344243257, 1.2223890565530993, 0.05586381199212052, 0.0, 0.07686093310040262, 0.10701921729681718, 0.0, 0.4467721663826107, 0.0, 0.5122035249872549, 1.008045581843232, 0.10571972464185753, 0.6235175832869809, 0.0, 0.0, 0.0, 0.0, 0.7054625658357997, 0.0, 0.0, 0.17326833225856653, 0.0, 0.0, 0.0, 1.0813156328128786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0927477810868, 0.0, 0.599657110852462, 0.22383250773975968, 0.19685563542122056, 0.0, 0.05605157239206448, 0.41837305013296433, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18996852120778085, 0.0, 0.28856245320282303, 0.0, 0.0, 0.0, 0.26772611418599673, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1616947156362974, 0.0, 0.0, 0.0, 0.0, 0.36168541397352055, 0.0, 0.0, 0.0, 0.1573219565054934, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13761515434984456, 0.07943022011077468, 0.0, 0.21912413885604493, 0.0, 0.0, 0.40654019224262405, 0.0, 0.0, 0.022840701875983912, 0.0, 0.09402454628178203, 0.5332211799090736, 0.14433851006651358, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.043396172364084024, 0.04011000425692938, 0.0, 0.0, 0.0, 0.13104327726482687, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10232284486723907, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10523174379677519, 0.0, 0.10079612361252216, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04415728315159431, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11805369977437472, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6523402818477722, 0.04871612610613401, 0.0, 0.19287524873967893, 0.0, 0.3592812200503388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.050401634126662875, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8285325211040351, 0.0, 0.0, 0.0, 0.42701794948426475, 0.33826599655789313, 0.0, 0.0, 0.0063200711569476415, 0.0, 0.0, 0.4430530345512502, 0.0, 0.6935424923816391, 0.9428504267370209, 0.42746265456576077, 0.0025457381888520196, 0.0, 0.1593559778661365, 0.0, 0.8273232796667221, 0.04988580847200336, 0.9484876902255591, 0.5784846962232053, 0.0, 0.4437739313478008, 0.0, 0.0, 0.29414816951171024, 0.0, 0.022355194883774517, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02069724212749366, 0.0, 0.0, 0.0, 0.0, 0.7860463101009033, 0.0, 0.0, 0.0, 0.8499064420418566, 0.0, 0.014821364995218649, 0.0, 0.004694386740689857, 0.25038082548050006, 0.5774089497757802, 0.0, 0.0, 0.0, 0.0, 0.006270331329794731, 0.6139069964758506, 0.8351435200462407, 1.0242327730345495, 0.0, 0.029307532281045708, 0.0, 0.0, 0.0, 0.5726801471740839, 0.4962238989829506, 0.0, 0.07225356949876899, 0.10746103390935668, 0.0, 0.0, 0.8346013157058231, 0.0, 0.0, 0.12871551917858068, 0.0, 0.0, 0.05722051841888945, 0.0, 0.08248659071056784, 0.08634381582594033, 0.0, 0.14691645141749232, 0.0, 0.0, 0.0, 0.12530859946217338, 0.0, 0.10215231917559951, 0.07032216186532725, 0.0, 0.8790426858900641, 0.10792096194290268, 0.054388076691659265, 0.0, 0.0, 0.0, 0.05001396409640395, 0.114742650990913, 0.28339886512623463, 0.15677327627325063, 0.0, 0.03258480102579557, 0.09096085908673467, 0.0, 0.0, 0.15530131741375458, 0.4726591715297998, 0.7751806988017736, 0.0, 0.51208607063286, 0.0, 0.0, 0.8142774797804637, 0.037795557638802935, 0.0, 0.03542525158598919, 0.07905092197782795, 0.0, 0.0, 0.1322231578644953, 0.0, 0.0, 0.008286484320060336, 0.670492082894006, 0.0, 0.0, 0.2274177128809876, 0.20430769763068007, 0.27374263149272277, 0.0, 0.0, 0.0, 0.0, 0.22105379716709922, 0.08605636125516496, 0.023058224273634728, 0.03343036365050954, 0.7905997431838073, 0.031091378094046798, 0.32331562706461314, 0.0, 0.048595513480849374, 0.0, 0.6695135011372569, 0.01079155413526415, 0.7675661133629853, 0.01950494389053299, 0.0, 0.06609079415505228, 0.15915608286937477, 0.0, 0.17610090955799163, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05278940542005462, 0.0, 0.04363140001862599, 0.3747258422202424, 0.18235409289517635]), 42), 42)),) From 32b1ff8baee08ef4beb7fea591478285ca809b6c Mon Sep 17 00:00:00 2001 From: teocollin1995 Date: Thu, 29 Feb 2024 09:52:13 -0500 Subject: [PATCH 27/41] remove prints --- src/transforms/concurrent.jl | 1 - 1 file changed, 1 deletion(-) diff --git a/src/transforms/concurrent.jl b/src/transforms/concurrent.jl index 050619c00..cddd7f863 100644 --- a/src/transforms/concurrent.jl +++ b/src/transforms/concurrent.jl @@ -101,7 +101,6 @@ function ensure_concurrent(root, ctx) push!(locations_with_parallel_vars, loc + 1) end end - println("parvars:", locations_with_parallel_vars) if length(locations_with_parallel_vars) == 0 (below, overall) = is_atomic(acc.tns, ctx) if !below[1] From 96ebdc2ba5e30984592ae71becfb8519d9efa5bf Mon Sep 17 00:00:00 2001 From: teocollin1995 Date: Thu, 29 Feb 2024 09:53:46 -0500 Subject: [PATCH 28/41] comment --- src/transforms/concurrent.jl | 1 + test/reference64/debug_parallel_spmms_atomics.txt | 2 +- test/reference64/debug_parallel_spmms_no_atomics.txt | 12 ++++++------ 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/transforms/concurrent.jl b/src/transforms/concurrent.jl index cddd7f863..72eb93f5e 100644 --- a/src/transforms/concurrent.jl +++ b/src/transforms/concurrent.jl @@ -114,6 +114,7 @@ function ensure_concurrent(root, ctx) if all(injectivity[[x-1 for x in locations_with_parallel_vars]]) continue # We pass due to injectivity! end + # FIXME: This could be more fine grained: atomics need to only protect the non-injectivity. (below, _) = is_atomic(acc.tns, ctx) if all(below[locations_with_parallel_vars]) continue # we pass due to atomics! diff --git a/test/reference64/debug_parallel_spmms_atomics.txt b/test/reference64/debug_parallel_spmms_atomics.txt index bab2dedbf..2b0f314ed 100644 --- a/test/reference64/debug_parallel_spmms_atomics.txt +++ b/test/reference64/debug_parallel_spmms_atomics.txt @@ -8,5 +8,5 @@ julia> @finch begin end end end -(CR = Tensor(Dense{Int64}(Dense{Int64}(Element{0, Int64, Int64}([58967469340405789, 5142707357825427615, -5331727457459160065, 5242499761252357098, 5268305231152052113, -48006391275476856, -5701573533990910234, -1320922415910570474, -2445645916682044463, -8791657129390210138, 4021080065407546830, 4608245416018265464, -4158821957181619631, 1153007287831588097, 1505191833967509795, 95813485489439955, -684975457031293460, 2506133012667805723, -5791620393512169582, 255402303967106736, -2870838739784614548, 4900988720054912060, -234434144823053353, -8366411395169066026, -6773056994894007350, -1723486128138565653, -8674306036333782252, -8246283747579121390, 102829598633968342, 7424671641961025381, 4216815936905844587, -3265588574452885760, 1268231312653761636, 6402427171020710397, -5583750917728367517, -4338054220785554968, -2121694181022466981, -4248639054900892396, 1345293636296970091, 7899552372293409430, -5134941874053416118, -8011966950954376062, -4739552975085050169, 7301228083771062471, -5613447189988138238, 7482328350141172978, 6832667438051813815, 3760556556354044916, -901124715365031902, -1170824734813174669, -4730144016387726314, 8661559955017057451, -1939187148561275150, 2687541843792979757, 4990108601364128378, -3183914484429117315, -4580429928888520157, 3077787239899247576, 7595112144975040502, 1388857776112308393, -8148029164262993135, 8125895977363490838, 7369355898815497476, 1911092462522817116, 1506698950034102146, 1501498168125560247, 8921755955290728310, 3229224417309765124, 5260685857836745416, 1708114453199187899, -3746733135024705590, -4458588656479000876, 335071822730605779, 6836089666916414072, -7045293632546539556, -6840992433036326620, -4863694151822598508, -6299154574672976774, -4306662365437540296, 3934342417942518240, 7281050565866431452, -6512287163053175773, 461581835360275049, -7508690928343000086, 6078050254989890816, -1845158412189509464, 125317407211246683, -813848507407310035, -5855955244632526767, -3248157952732901608, -4671861216716082072, 5337817134405980372, 7406646089587665672, 6540007087054613708, 272886854732296424, -7848457806264713962, -4210977064761865901, 6076025197071222797, -1799477730505010857, 6488337350431680702, 8141824171847414038, 5195710963528558840, 2811988423846270358, -1695036899354689855, -5969794012980004341, -8962580212158714352, -8537118050112641896, 565452316888745586, -5451347606266712864, 2354295336529914389, -6721154736628642269, 1979316787450919367, 364245499579422027, -9138356265014766704, -1807021279543515711, 3437920905526466381, -918033755942728562, -618400450497120816, -4225506098545445980, 2432442643985297366, 1151537357416939834, -7672510367933824430, 8974972672167957184, 6715113640657470426, 3912779267401903284, -4162637666554362682, -7492637048165614064, -5949683571988799165, 6276732319694160964, -5408755942669470774, 8068422555857741452, -6063896609261275773, -2621494888627618097, 5875573785430539365, -1104906371048679859, 645759944948097709, -8760668080185568837, -7925255654594944866, -5074246770250953411, -5526135351589134003, -843055606667833163, -4868551172731813814, -7398271341363064548, -608504271002235467, 4777821776425524152, 2501748561008313154, 2382027267409043730, 2417659514202437422, -6658521162357710603, -4640291829847861048, -3526548078605549552, 2534061598322774702, -1487577811428911188, 6175706566208765790, -6210388607001632708, -4631379063813975160, -5433634467787320817, -7009918376020126257, 1889515589766699000, -8701788517104616320, -2766327771641755895, 3838503485928933716, -5484772526753816213, 1834368480223774035, -5820635416640709649, -2635096845467248926, 4489326843919468235, 158375320092821363, 1005641200836364645, 2465728730137875847, 5676230364011721195, -1064468742706301592, 5659463190547850349, -5082448621143802122, 7824814442800290573, 6170612690290667421, 1395902594425079002, 208224045551570714, 7329545069053054898, -6538054197735535332, 7833463026162103320, -1562176914783807114, 5369544752951691006, -8066198064779704267, 6092189910248494449, -5360286620836007209, 1919878198655525702, 4703089377319140501, -157731634785883442, 6215254445290380520, 4889982260829080451, -227944961803152248, 3108538606307153646, 5165210206812121981, -2170264503117054628, 5630076066244632428, 8595357789141395420, 535297742612841498, -6723868894194213387, -1529251071442320899, 5654594417558435271, -7479019265371857941, 8849970866956341322, 5979245258205201332, -4255072507759281168, -1823050975871930944, 411636654843139388, 2921172669996573696, 7283387142844757248, -2737859175580979693, -5101254462042270365, -5602918308615528255, 5254558401405229869, 5738640441443553638, 4151807409014127444, -6701961806117907904, -655622613881539097, -5550409413353335463, -8050855937352902212, 1417923761424187005, 7102291370733423931, -5162235532907387723, -6294701267904048158, 7529662111623965742, -5427830753773474706, -8217350165289987859, 5479401785336068538, -609698825899544648, 5135051890792797764, -2989918111620852380, 510348488490530919, 5178522806716113335, 3667456398575297839, -1610545291546551814, 5081676941741771787, 2394543514980077239, 6443945739477617958, 8988362271769824147, 9185628953638783087, 5339332292369137538, -3837837775225205044, -5666020349635323693, -6755407893008335851, -5047807641072865733, -7231965109372480282, -2511002988037927207, -6072848403180683434, -905973641253168618, 5303915966776258376, -8096797217152773111, -6861352286482947410, -6363355236842684256, -6346729199908036991, 5883671929861384990, -346471475327478426, -7267895285349055217, 3892593334949866843, -978163169550181212, 2327474145814087411, 6068648223928583469, -4635521207708021122, 6963162944380396610, -3828542491152209940, -6599844903906164800, 4548788474794148339, -8638063208088182808, -7995796479464370628, 4150497568021469379, 7859542411956683785, -8548575102426099476, -6380508845891390387, 6240201801208262059, 7634349650429292385, 5000744576080843873, 1493905373601425090, 1877673115696151481, -951017073476576781, -835022372928452077, 3874108001757742828, -2652591758715121895, -5378164148569780472, 8347777307601722560, 5084346830961402361, -1954720027147063927, -930955525520233686, -6195730305205615997, -4165564006786352944, 1389232204882381496, -309187913919784223, -7079539459263676918, 3760321667049378492, -2219517263703321294, -7950664608523217742, 7906489294802267066, -8918526918922021744, -1557292738275326244, 3897189425647953067, 2288546641152952505, 7673479967218628641, 4074786638771815781, -8086374921630398742, -5862983883490912572, 3479410637121792430, -6178239814020313157, 2528572580673103058, 5857676346721880338, 9136509321356555029, -7933778574662753262, 9093799375880756951, -9090118149780621056, -8333682709346147070, -314822824442209841, 6658881823293531979, 5782776689018710809, 6920693363473194821, -903399088089001126, -1792414612755877019, 4627200830756780383, 2165576632605953482, 3267771587081825132, -4017854722999733193, 1347169022824081989, -7902073688330889512, 319237872357528647, 4655671869267787268, 7060985027896212227, -5124980064478747305, 3429394095172947443, -5593055246620909428, -1193150631481907529, 1078347211558432213, -133109816610116969, 1118404171917689754, 4992979279197787829, 9021163440080333968, -6587972153347922570, -64516456414361549, 889512782045866710, -3192902900509310112, -1922698183371590175, 640921355006524526, 1597505901609458249, 3114171873861990994, 6836014270033033976, -9117137390444989025, 3615922505148093643, 1486284486162848259, 2462710824750192668, -5489410515731937951, 2296381915541278435, 6390328055723179921, 3699933408395722959, 2754134350709790036, -8977537863504939977, -2218663843963039414, -8367387477099157194, -2003899044084041587, 1416062064184708089, 7341456056299636365, -6356298348625742107, -2514840444539793794, -1751270967797477960, -7422169497874721010, 5168751861395605077, -9133158678130136826, 3158059433377686770, 2949651267826076419, -3508724828345570744, 4666396748478475367, -8824949906698892273, 926623425232914161, 7698557959965426464, 8823308989284314009, -7889646024647503145, 2301074881638794949, -466702170302662398, -2406453121204138567, 994235604104786204, -5297429852707730943, -5967029720303741996, 57608175838716882, 2756596772804254366, 2355760801711762260, 8345761298382455353, 4134133269992103557, 990002121115370197, 6472561921550716535, 9138066976575774038, 5609348747723285947, 4160919444798981258, -5196042774181566359, -559276409901013098, -2030732242346941439, 1103755083314138193, -3941795647570523503, -5304842337825916966, 1421557605684702708, -1363314264969705255, 6236797391535176660, 7815677244722667521, 2919879501421373833, -3533265316125537344, 5638635089295011361, -585821682783959846, -7088570176471902277, -1793742575488709577, -1648806487688235927, 7808671454246390024, -3956096974570884297, 664334732565513906, 5107671692003593427, 977989666888034938, 6142707601066782555, -3142575876671729362, 7897179449516444784, -2577854663665751083, -7090662995169978175, -1789805741518688507, -284095508745959274, -5919094014412153808, -174175015235308083, -2007937958406732842, 6789932033789540049, -8137849211103224893, -8164223249291986003, -3141982941894099483, 701239251908293589, 4091789553549612520, -434310042637538618, -8569643806692901729, 677573262584280635, -4209509970696404494, -8376587710476184664, -4159572351490770396, 2610846251256528295, 5627998158985401956, 9201397444945583681, -7376746943386348389, -9048001192692769720, 3938046277892808973, -4396738699592774041, -268695293476929557, -4104319912297254713, 6697693265008048501, 1852868612698279117, -9053489464925698300, -334933667180184490, 1253961019344119550, -4254872592884695261, 7974028379762354164, 5644113724893657771, -8332039981597206512, 5566793045311461751, -5290169534189330757, 5795613046259964571, -2893901828585056899, -310141481540910641, -2776463290064029534, -8135820149462496214, 8862013429212201092, 4150686723198227748, -3437531697071252566, -7184020040115501234, 86267402369297065, -931818719380677741, 4705228216857907179, 3774667626094818547, -2205246101079305030, -85393847969154131, 8005153496511422223, -6214938318334214525, -1439161923090752929, 6046400731117456665, -2941648737645296038, -6512231915976168917, -2659507165138583311, -8632499147144120859, 7362210258249511140, -7540364570227628217, 2009930085690773981, -4353238823378510256, 5932361995046040923, 1820381525462123225, -5968592866148263683, -3226311489676139504, -5383872573127059339, 6277535075067165067, -7344301183271006262, 6057362048019087343, -6426429367804311576, 6791998424372177178, 7336676899096679560, -5185131003427512116, 6319774777919117632, -6736366943270397662, 4187299401326804984, -3198086542839910624, 7646455521733605053, 8707856128514437267, -1761373587605130485, 7585752195077394202, 2879837969268460854, 5335141520394053653, 2627691182600514754, 8691390822707111976, 6849069435317401809, -1289734143886934949, 1505858276400674738, -6657471336980251923, 6463726602913312413, -7278881024523126588, 3145878964266965008, 829233430835372840, 941051845325413733, -7032899529842472906, -1258481461172996938, -7501225688104601093, -7367353886802105604, -5480549700172327282, -8948554212503119831, -3565758302470373308, -3141030702177646067, -8896234603580218473, -7333929947719680007, 1993145379471832839, -5719610586709540922, 8977410301440598800, 2962438073232366095, 1595472449462097011, -2534256102475972654, -5121287100162200940, 6341269131926092614, 6010479086043454724, -2091887304287538846, -4964436224790844948, 3880196948837544848, 942603566896401981, 2212368050568808947, -1605670863042282390, -3810746141394282242, 93432901646613503, -4197477849483737074, -3654468935144026965, 3520953219670267391, 7454983552191712355, 5033796966469914331, -8889818770118419734, 990503402450237050, 1954876056159559234, -5614243040577710886, -6941357312890476789, -4523371179214236606, 2246889753874005225, 4733992336446777490, 4929957422189396120, -7302503038984534408, 1403080759643984409, -9197644332470949134, 1404773353629371200, -4861679925231264423, 1679744278173752423, -9200033690956964252, -209001078412774468, -4330311534316887605, -126759049197309768, 6365349493517508660, -3580620094307142362, -1668212259496888466, 1452786344565558785, -3848794211906727768, -5439350359290075844, 6431285608196001903, 180094301703181384, 2591669037941285193, 761507837306087659, 6385064471137291541, -3433124447154048350, 4276862421784431261, 767722052770009058, -5236734193686308068, -7896874102229398339, -8992620459771317266, 2319748528521294175, 4196659764827666800, -9076001242885295418, -2242184611824072227, 7417546318259179482, -8309907524323077157, 8182826235099426423, -3603067016003879961, 2632781529836687190, 8101977888467358173, 4416383315160690185, 7146768447126379728, -1157786774169910947, -7690797128767669596, 7359757518671846833, -6191533550943221743, -8980228885370236361, 5939619554227654871, -7656161786287368637, -1926662091272181571, 1269795207148602768, -2334983347495168652, -2603209255063012985, 8637696603608733426, 881964663159006379, 2791054751255411067, -800204857420518301, -9059280932539555655, 2724707304831166518, 919420442824774737, 3651275779142760782, 3126438445612443297, 7756104387112788560, -7610933223941223106, -9133603770186598605, -4367270868518935495, -57994288044172502, -8098247718702855112, -8252909963904964069, -3205129304055729034, -7866076912921066370, 1366012217080590455, -5510278075865015681, 4368007615042484610, 5979445014941371181, -1359463917006213797, -1302027846046777313, 8893443280280393551, 206216681108740798, 840208027986673966, -598774232462587139, 3874757210445771051, 1171732984408338532, -8882967561061086258, 179777861391055558, -7526699346573104251, -6419781152660115581, 6864073564245596838, 3076629251638675978, 5887443827816895264, -7094703302928180523, -7901535766141608475, 7174286670580129392, -6894136092019337366, 2763128753701309102, -64420457123110918, 4866041457564409628, 5332656920894233357, 6940004783259361027, 7598180581182686182, 1242627583414413356, -2383328232341321553, -7710647584842912700, 3150084352205882226, -3824822099244128310, 2977248190535522093, 8018741559672936154, 1905344037520382515, -6473613977284015471, 969509683121409900, -8697004919335173141, -5102471836525192362, -3496901334575495844, -1690288581384634167, 811418032645897139, 4650322435883094271, -7339605446237245354, 1076745450682861489, 5880526420502344770, 7431007185349400703, 2741015141034090666, 7624759206175739002, -3166267054848748466, -7670710653843728373, 4668546338112883184, -1868108138959823252, -6208185337380906250, 8895980462975003261, -6706748815868285996, 2337382577887540617, 2505570701308562853, 1830009614588068331, 8309572665957471391, -1667906027995985607, 3136063239032120463, -6953100541592605356, -4539925398251353471, -1291642892996011970, 3662725535021784848, -6195173903903639707, 5964443550164293570, 3032966782008106288, 8223567238768866437, -3869781360632050006, 4195525506645379722, 6565028048656475264, -3456161801307047731, -6666658862519554194, -2484814397321584456, 759873414808929566, 6826934831384050763, 5585656557470819659, 7494086507240420398, -4465930619864559227, 8490873673229066230, 4192814715196317603, 7076315582281270220, 1353420732544214542, -3995926470060910743, -2200202223330999759, 7792551406793397515, 1242162250390617144, -2937079513730481434, -7195219972028458207, 6226027089395802356, -2249381273792217285, 7434936785496543279, -8319090652161266211, -4145270318865268170, 2871329419701441762, -2144505798569213249, 1792706062326503655, -6016709538297735363, 1963754505319547192, 1634719037422475814, 565867509585437641, 2747814509391933575, -6163563430325439704, 1428591251954559123, -9105169208376789446, 1796619537658310897, 6705186488286507825, 5388411898322910297, 1226387389628235074, 2554307858045347834, 662766578030112589, -5692693856318656562, 7082093171911045875, -7606142401425891146, 2797224813503171320, -4167089572973329156, -5386647781429911577, 2812332956112486774, 4578560676339332186, 491518271194968500, 4962568423117332848, 6622898230836609523, 2858142403792576222, -1372166339803239152, 3708668552206460743, 2380870933803665884, 3144618128022416339, -4459202708347622583, -2444875316143267547, -2018585212796653814, 4721396044193348290, 6464723796681884204, 2420084667346520226, 3471428062823143929, -8391050026706820951, -5703015192177318682, 1062911342841734437, 2003442077008473863, -4097664328088354511, 46506022104281364, -4253920002322958218, -4099945002708812994, 7689445787428005840, 8286016506390616782, -9095107395606410592, 4749457061668947502, -1901844654070106656, -7721173428180214815, 2728968950813732753, -2240915907757144169, -4598716440952918346, -5421285625871303796, 3978649556719604480, -371657550400750050, -903359709279007746, 3874893983130389248, 5704631209561833909, -6477652763922045356, 8869613398072161010, -5159434629908275390, 5969926287547845096, -4461195767394379341, 4156472644174827490, -1791688875513355807, 8254253662051982558, -1894218458072760817, 348633870408940791, -1685066724440052836, 6978787668857905394, -6589866969604850530, 3763764112199248436, 3815553502655770117, -2852222782316796421, 488593270306330881, 3187253528688135144, 8275539721113290785, 6871618309883175523, -2014168299919584231, 9042170216638706280, 2277548909089637666, 6284651711592268434, -3172502799098159517, 5361047329579472243, 365637983094825399, 237425876499249866, -2615437677849144519, 3431727703926553751, -8332375001888484993, 2401118310244645519, -4130088925808356780, 1271954335753251176, -3096187822785505134, 2981200719490846931, -1634903499184785647, -4025778661111542438, 7616095337933607380, 1138122180487301161, 8902813068089604052, -4953391006434883821, 7243153908702257630, -3245282268410426427, 5257960912800779797, -7169130972127095025, 5215845678366621692, 7647464286431859979, -8768783733249656696, 4596393956592105514, -7563346952452813140, 4415256701335641223, -5063436829557323927, -6652870448933937548, -8454523541353585205, -8501104356649330676, 6845171179347026, -335988232343909328, -1239059646114133603, -3224163008425645192, 8025361160215353186, 989220152880928549, 2751049543485459568, -7639660156939620817, -2819773777852110221, 6461097854352851897, 4847619707139702249, -4164925315503238676, 6814923199816827242, -8633063086793753398, -4285960299287682939, -8158394920674699460, 7569699390196228284, 7885787681173378790, -8143837408220338908, -2495849870024996066, -1376190871347343289, -389667084389113345, 5465330198219552878, -1088954169071916110, -8218968432056270828, -1562536222419825513, -1184846931565096212, -5728227363848371028, -1007023083548917164, -6440899240999113873, -4014697416223624718, -6833707106001305789, -3181829392997160528, -1801229595645776383, 8644096499437988332, 1043901739579059538, -5205726832632041456, 1307595407075261244, 2113689981198589347, -5793956467402012888, -9172959562743937907, 5183254380017472721, -4687047436502192439, -1676602862037910880, -990598221614416551, -3344331618603763990, 8025262133946967306, -5947258523973516287, -4046619778318496571, 5575996242002254658, -476707780369474396, -862676361358432704, 6557778172358977090, -2641326400484418957, 2755395605279365646, -5137026478988175000, 6797594547898426231, -2513958311128860816, 3033291382339889108, 8794532688378939729, -4362364154052433451, -4529450887944169355, 2632644103548413624, -6653058643911235386, -5409977330214213611, 201328456639385688, 6562856257691016697, 6054918616159473673, 573722165850421913, -3396846358848107378, -5713423205923677089, -7415502108882766092, -2863968382207636015, -924835687073549427, -7196497647060044944, -4226017448288641709, -1773555011208506129, 8298346417607376905, -8504674859690394076, 4810148939430986846, -3526537804463727491, 1082686704460323971, -5938787319587550602, 1947879891109859505, -4707781109733740696, -5434274282436193787, 2181565590133624767, 2574482051963240631, 1901146986018025478, -6447994522655380863, -2400372888409163319, 2172821874729376697, -9097323297547192307, 6879537851859190079, 6019109329891067080, 8440220268283934084, 1410349199936177170, -4183505784335168311, -3765604449998184466, 6606218565465773902, -3603122167826072194, 4164572481082446548, 8693250559450165340, 8946746349731729952, -5320844937775659299, 8684343285546075083, -3335639410491438267, 5811935655122768246, 6930911148674138033, 5487765482444959072, -3072650201143566536, 8321189535986965940, -4264398939254649200, 312907700335661874, -6283819131906957556, 2650597602004567092, 4536448556644482282, 2840970389667970362, 8871721553530723767, 3655487029807192670, -4239918370642360140, 3333502399670295411, -2754884697560138890, 6070500107267966173, -2889591349193936334, 5496020895828231135, -2396288588014216996, 7550688471360938907, -8249850759022790847, -5342555261215039677, 8775561998431704710, 6514187816294857591, 8697306237941240989, 7117451556454525196, -953061442463818571, 366303689704737580, 5671157900478900477, 7276632873547185771, -3953971908732352497, -1553727222199190136, 6601160893122087200, 7185152531488136995, 8966765971258413005, -2978551344238447250, -3416980356525374493, 6531853491593516399, -953536864899893124, -651700633556216548, 2811802532959676338, 1235719832771873271, -8487537666983943265, 687076969505579940, -1222296721601005672, -7112956707060388856, 6960401143059374016, 209168322485133257, 6863758972653547633, -7309895791067138113, 2845807572158682535, -6678155361726231304, 5801161193032901083, -6888581491290186793, -1441701334471451699, 1352958755078909375, 2417007030635681357, -8295107741313292366, -1605816245752099178, 1413966057701020596, -6222473542797223847, -8818093535751503476, -1589463553758388889, -5967115068135446201, 7697765708433974881, -2120729594845694433, -2471325277807883383, 1543316595588681549, -2953175509889892042, 4203292335273009520, -3058564195235443753, -8335947337576391182, 1071472081605117011, -1988228075170531996, 4582900505456543488, -8074729452954429293, -4769543134675251115, -8207589965612165762, 88640171235966974, -5167245425714665004, 6265311312355009621, 6496689183089065143, 8456534587405107257, -7766133016465247675, 6390513528886555012, 1216295371024649969, 2620142263164673337, -520079992712650245, -3553614308152857187, -6106628477442828446, 6882992994842131718, 3988014632141918208, -3259834091749517893, -6930471537394511544, 5304088511870051272, 8809909242122304298, 5245402866757106882, 2617091773970971722, 7111039206284629298, 4024411620595098216, 6536034723625213254, -579696817267751819, 909588474506256294, 5782101391530084561, 8993381405812500621, -8444158382373497133, -8701361425868957769, 1464634778537339302, 977521382607431659, 945954993808824393, -4614892633280062242, -3686786209392648056, 4298678679989116446, -4991005345084721497, 7202939167085495426, -3660410171522446673, 2800756945145771037, -7314078082073883576, 1566690574688183201, -3252377491834861195, -3528284199872997740, 7876887255114925769, 700978568808731054, 3803916299687175589, -5284520238857486386, -599662755718308132, -6580345462391161713, 6176318364253508557, -3594046521462368878, -7233474662900986966, 6355964777725646501, 6828832609039365593, 7562287463904653675, 2204546503972280474, 1869428483348394197, -7899929067605274838, -2383396151508976181, 8034087690199444385, 6874579810316536103, -6322382198234196208, 419275890943205365, -2085191372359300136, 5968798043155413735, -932031527176042585, 5388040523880484165, 461898528989928788, -715232068671645835, -8922639211447036143, -8096761305114316435, -3236211103310384351, 1881372113605023414, -1299323824700098773, 802652669520091095, 3315821290064046847, -106668578356189489, 4789137723587264111, 6397360589563042444, -5867838763030934202, 4227726615246448429, -2363229771169064955, 8578256947165841317, -5464373471248156816, 5548944336303535157, -5355044020475243347, 3676430678461429314, -4768626005601993394, 2380131140151434870, 5437300138618156115, -7373103434222585094, -7452511698541287132, -4521413833680549874, 1220269175615329491, -1914786582125376409, -4049844884170203564, 3739741816004650354, 3621743510991860970, 5104772173040729097, -1548009457453359434, -4576051620962433191, 6377135805777077304, 6979106950948880009, -2380951584843222971, 5002207812641585452, 8189105840492627008, -6199160587100232813, -3566296034962102375, -8042033280474226881, -5182960368819580170, 5613775420589438520, -1222213379744870959, 4825982155993584608, 1423206941916750439, 8119484250756329319, 3371135931259577992, 6075240640593029716, -2769038362977197555, -8814303763468003659, -5425110414160475152, -7692672686402470317, -6689542600856091604, 3682547288916981278, -1341093330931039881, 4690985846902990935, -1339325514993398094, -3391373635601748144, 1530650715520836187, -1687078732855929375, 3899533754553663923, 5987256195417381450, 4453235719108719488, 7827361674146291946, 9080646909953745170, 5274858176102302656, -5036197188828637567, -5049743599049738538, -3135434789178982889, -7628235580207541707, 6107114114033971382, -6114226849494918697, 5608838685413906197, -6937723657624255390, -7628251819894810732, 8022986931915008492, -7803338383647201975, -4034506131329034669, -718205102283194908, -193090188392439114, 37688476794436295, 6881875099211276822, 3042875580237928259, 8333182904601069437, 6493178119212924351, 5489293159001936004, -7022746238570093509, -4851772331184139427, -8311070650180564963, 3151316680217980373, -1345740359004803008, -4409174343064693862, 237911443534010819, 6126092043724567397, -611424561779931068, -1781982713468976035, 528395772810729688, -2675698531295076874, 8819775925321195224, -3069240014955522872, 8481671990631875994, -277984080292007044, 5140928494543443213, -8108883700641941361, 7356059136793280543, 3070297771191717458, -2771341269100490479, -1560508472353715353, -3474929014059437374, -1153199058162723268, 917853139525712508, 8640432636158491898, 6142339080951662770, 548500631279072898, -8476461135833169521, -4159617197626914084, 515247442687049151, -495524747625072704, -3012110547803670449, -7139662792587166763, -2045975340627033456, 7013354974400730627, 2018827032791947220, 7272038956969969761, 2636684762019771146, -1519577440702518433, -5206631380400671531, 1872280434308661803, 6845381779697338689, 249283871118870088, -4763695291379630245, -5028845377738508518, -7595638397745233180, -3296686077530734107, -9158935744830782795, -5929163766596689976, -8602173387728804886, 3212530697688790264, -2060641572282546200, 7774850380288338285, -8479082499152402438, -3659853246459095226, -7890489876545413350, 2310067672364823259, 5201688981041001082, -6624388990655398765, -4389531103896176765, 52303247201000527, -8963857887641190169, -2848719959401633529, -3492218922314025130, -286212841672118091, 6910911913900626552, -1882354033803954871, 5820380727734432268, 2161994346861990987, 8718513119608858979, -1718799960342158339, -5408887878435090773, -1118093215141611672, -2973058307952805745, 395950358530398942, 5228623685861287169, 789892986164753323, -2760959544132612701, -6509692211634624430, -1892637355773941004, 7464174069274133469, -494308735716426025, 192694623364458368, -7958701601452647620, -5698710533445328948, 5389447359793475284, -805180685206572879, 1507783624888228878, 263344715666591935, 1627393022376576485, -5977173528886582534, 2574037316724380660, 1197606705413881456, -2788676460612274512, -808343510873783459, 4860372902494825466, -7802831002227596824, -418926244575491428, 1384915479728165915, 8999680755334162144, -5017111661076017152, -8902012704874753224, -412280634688081171, 5763303617454769689, 6409060471768061987, -682567425579225761, -6673689309647796728, 4502906861034943858, 5751510914246891034, -3062588794736509002, 2023441953176497986, 1176663289903805889, 19066332409231330, -2141436333730702223, -4962344573037512508, 2033421198094997997, 6439896758054084763, -1914013744102585566, -3649762519635490226, 7228569678463459752, -2122296582948870452, 8958305905298651395, 8685967909928334596, -6159589761515752868, 6019402949700270982, -1925106525277225907, -1233266517125243409, -4094399085858737637, 7126688776378958289, -8458772095150964871, -1628931507826109808, 5007169845838577593, 6170186393582489586, 5363880204635331277, 5426845801798282786, 8403983493059014222, 7250306732447222493, 49764315851444995, -4146054035365756848, 6888160479482890842, 3100347670844132010, -6452694280124617575, 5274515630686863809, 3796493736459237226, 3146660665331545612, -621692155346727674, -5781650776524841727, -880154863219841030, 8240791672929978685, -1914279322475867787, 7486312447824331892, 8292490824586221033, -3068066203950082435, -2040533818122778178, 7397972830626842888, 8565456981697309760, -6988004813806901209, -1999858210661194391, -5323087492694189775, -404302209387747756, 5000031344786784350, 7123524111185735993, -3261476719680960728, 8864680976073618342, 1214431866277418213, -7922798610471932221, -3722788362240960255, -5274917483910181702, -8992279812668277748, 11490095067696953, -5835188705649475583, 7611275692147973057, -4777574693678933850, -4196023041142175725, 4463715560632029143, 8147722374472085671, -6302519681642041808, 3675960383438397332, -1149342947900415269, -6305199318707248530, 7816471621865250478, 7590065164808789473, 68381567132431240, 8241277432268636808, 2231515552009814468, 5763543485375680439, 7019085888699791015, -6879003465314359071, 1215628934640958892, 2637538407895454082, 7036902977572565924, -1043533918098090845, -7883156043574364781, 5061617047158189164, 5630407922324029092, 2800741708007510770, 8907188385545252090, 8036053608526509543, -6713148625006999814, -5203656980978211317, -7703821088782296905, -8545968355997121529, 4519774148965026980, -6560896651282582071, -45041637629860839, -6417147820478336473, 6713766319854365148, 8280737982575981141, 1013222882614485738, -6292640116513406829, 4341568350497348361, 3979287792925554148, -2811350520035191921, 7132113570102824029, 5716577319696818398, 1440334695107980156, -3145772670532559398, -1101672529325269094, -3594412454256533354, -2688208402943401854, -8260984540465995358, 6719534606121913635, 399536542483779658, 5806349038723267782, 7092389643419728600, 438363416345474241, 2137997681264461578, 1627845736495452252, -8841714518078737894, -2170547882785264756, -8644295224122625285, -5735882682188317957, -6493781268785023122, -65259049722235826, -2998149469953139504, -1491138851807147078, 3731025498425415543, 6139844565409490713, -1466547245974677516, -836985274427260844, 2786434068456474292, 8355700705723074138, -2917075977423804898, -1774988485943174504, -3433579803896489261, -3563152976223416255, 318554123974045443, 3452661287914442324, -5877221641014741523, -14268412093834117, 412853550659603603, -7980226404446528085, -4675773162082250069, 6952468424161020848, 2182477561695899233, 3755311030860332745, 47007405410932570, 3508582496680007300, -5777967608717124884, 5720078822638953693, -1654617319563547434, 3722906771839508256, -259172855764717178, -2234736509203163973, -8819466437244322414, 2092390386181953027, -5240863053439929547, 3513999820682997953, 3007865057458433815, 7226068936531822277, -591716371689805096, 1594693593601976128, 6536416984429402245, 102041162514542643, -6836179597586192692, 5190957116191949965, -2039666818149945289, -2450285801444142718, 63725461539385751, 2178107521092776615, 5563612399806651953, 2320321386595208002, -3719748083013969744, 3531533530874937104, -7392036372578777597, -3192348546060145520, 8568352012342931363, 9189608786151678952, 8573698754902722991, 7270539740383667246, -8490267571687330120, 7296285322202855583, 6644975184157470662, -1213218372099563369, -5471284161952390360, 4224226043575825523, 3450412705468284216, 7967401056248354679, 4858873986677985261, -1977269735354932724, 8473335322510121062, 299568138270148054, 5482997470842081420, 1355354729498386115, -6456176600429406489, 2427352668133766750, -1065011388908608348, -9202847638461612480, -1963160589789087636, 8480472720877400443, 3862330665958996039, -5791715685903940711, 7055976627572140028, -1059607121612676299, -7113158698803905104, -5332671839764465476, 7204246165484730587, 8276361729345344810, 9212977978571588741, 164935868094673898, 3294883572992056611, -8563881052911790316, 2459435713528751163, 7132102031657489574, 8325203804324313283, -6175013805707547416, 3171232015557313652, -9057633924184559186, -5511376752014162896, 669146928622106862, 907526703932058493, 5773598360690101264, -856676496944032646, 2753346084280310299, 5732138906555671375, 6527547582929330110, -9022778869087722706, 6133852001629085818, 3534201459490879154, -4635634806457417273, 2566197503021713127, 7831735166832749418, -6959178460206262056, 5342080630447021037, -5747917326892506646, -8531722148789092285, -4938743501696860908, 6975291072496129042, -4249829653789984665, -5850700133867370844, 4098816286744347575, 7885226298432869359, 7737661233777847867, 5355741857524352614, 8354026372279519577, -8705810084805165111, 2770015493051705423, 7342498002984883493, -7626615261219007420, 7873011338503914218, -7731411287846605798, 6689383473212002574, 1519209578276578205, -4101297036741953037, -1260237904293269858, 9883589859155429, -2018978708318736134, 9091074285216369972, 5144503478358324607, 4795623716270814214, 4293109009137256604, -2973347797927693629, 8489469641259771420, -3507877713132029445, -6512930947875638075, 2652229314524243965, 8612156788688797094, -5693114194000097908, -3488613360329886577, 4781662348138107183, -1950658930239048392, -4387908346585091923, 2191359768179452965, 9005226624727408235, 3328141205967449479, -2750509248272419161, 3354752180643334067, -3331240045569682907, 7789086071910252890, 8288153186154327356, 943183579624686465, -7702660541449044859, -2498450955359575913, -5696447838444716185, 7944026220203115472, 5622170245767812952, -76029556719692857, -8422720363470160202, -6128410831731299810, 1555743971114536406, -158634539301878855, -1055843658232973058, 6400591850307887020, -5520347365038650901, 6437704707762853058, 1651459750605859265, -4233101102144377186, -261904004265557278, 884918022678954036, 1857093075341298995, 7888968573750865301, 1806960097324242158, -4433350978261803007, -8540745341597740928, 438691352160538300, 155621796284382829, 5414267442257703676, 2843923225258448600, -3344245226195854688, 8131440449427375515, 3294048054342089438, -105835271247302022, 1266851160630930562, -401267563700688107, 3381753213177409256, 2881224016808024124, -870245686583860074, -1433638587903850612, 6790365917617356259, 6175586364154317778, 483702631646957156, 4338345020513320997, 3394210510728162061, -4600356528891829931, -651751792282353779, 5271418655338654615, 2494964057028321586, 1066323153992293110, 9183275581065689638, -2744399531146519554, -4498315925925368044, -7172065340864079715, 1814299786324921820, 5779442993767954086, 6832680254317099633, 1906578459510410922, 9220813437269109394, 4049326021830120864, -9015285113924542228, 566587196685399813, 7449295481030611708, -8214163677469037343, 5983973895981932602, -6154613609832240516, -8317829142721443501, -7830757364846718219, -3228950478819117773, 3721082271038057509, 8967476639555514829, -7562588608331788208, -5549848538738490397, 7156878508910117585, -4461310012346918904, -6710255377428479457, 4850009706005822603, 5485805683935757733, 5437811436986587311, -7092053553995290622, -1474055569577131147, 6535916784293750951, 8220107473328775945, -3434846670464881650, -6373618148984230396, 46502049185066278, 8290761409987693980, 7079762139835440296, 7215324406236041168, -6130832891326918705, 8115673698119591656, -8341584904652414050, 1156785767746010738, -566263493300889614, 6617372360668475723, -1474847155507435663, 5354402066513942386, -7761802620137706980, -8689492697976498537, -3282195350118920145, -5650166597333362245, 4902519631665973609, 4374985093573945032, -8618840377861263415, 2407969310632922947, 7803456239164919710, -5379249359013096455, 1221742894685007499, -8139913836342603674, 8587451955404758085, 5064847110710843241, -1585870436545733535, -1408813848212370814, 3204585782038570693, -5968338001140896441, 2398286792278968298, -5051742545918310125, 8883842717176141072, -679418600539279356, 5993048123059078305, -973782766008356227, 250758896609063322, 4044485075956143044, 8460843426290944489, -4530969686658735979, 2984642338854464618, 7337446939565758040, -2204806015354953619, 2387454742822944693, 7722353347557888137, 12932652591227622, 8400327537550472366, -5932787118003094088, -2972533930388915052, -7171094087750758446, 6743051705783615597, 2833262283773705740, 6134734210875305321, -4168955224815442748, 533864012766291569, 3631521924626528257, 5750519840403613602, 3262085623901833270, -1145043787013170431, 3878711658442029123, 6962197453188735916, 114102595709003150, -3340944863871297154, -3767387802004375038, -5204269366940244460, 725931748303290484, 9185110844563478718, -4502482306140437786, 2198540747953447696, 6340083044340941911, -2076551500218680374, -7948760407995782121, -548375891538329476, -4613012764187100356, 2739309748229481729, 4011355408402675193, 8009383781422613736, 2558113407593475904, 4907359590275798486, 6910566880149758652, 3576736579321814860, -165572955791601643, 5363087575526861923, -563304869650972709, -3268656857588619422, 1116516995287583715, 6696426220762656024, 1938740449392373175, -3923973375889931824, 4611904728486478843, 5377423516013080017, 8019626239597876319, 6017798894877345070, 1252881686488275935, 1839361815056067414, 5144686405932481158, -2762175018905322090, 745979355578731260, -5106464706983322678, 7903260197812632470, -2376078148733798684, -1100284360268841374, -2890698364123713314, 6092336096823809647, 1828670925731441754, -3746034563696928549, -1092787293428445271, 7953251726855208012, -3186317149184232330]), 42), 42)),) +(CR = Tensor(Dense{Int64}(Dense{Int64}(Element{0, Int64, Int64}([1677270629509293562, -7174588820717922134, 4982350406799639908, 6004575306495011618, -4065073037680844111, -7036652420036258235, 5638668630751777490, -4693072359306649020, -1725738188961893206, 40949769622623708, 7350757019053419180, 5972809638842520582, 4229267187305955336, -2324072545902029373, -2207597298939627979, 582722099874513022, 9072165465889394468, -321758197209098198, -1977399405956158830, -7955269362226140786, 5091030977746570866, 6082188055549488553, 6195353771579510290, -3674794680678893561, 2915914449179386271, -1971909325719692904, -2632406172928410175, -2593336216223012503, -7710518320454535629, 6106651696619046251, 441801102114769577, -764006251176288900, 3144411021178571250, 7075325798686727040, 7996628552437087398, -2001139132297178931, -1998469451232943666, -8345779408008815994, 6769722793021798949, -3838601971265388520, 7555558387401955592, 5028370742954058017, -1641641222923509642, 811296524925701828, 8739088162631415961, -9003204345336380020, -5068743517896087233, -6072536032406563915, -1619185042941851556, 5742337028896457211, 4367938024652443133, -6777770903791224667, 1346473303051029835, 1431595621579345113, 1444365629630182749, 2118048423300440838, -3076299167412564312, 3862103344999901728, -2744191677068971235, 3519486853140118221, -562420137224484726, -2657462673619290770, -2728434470083069491, 9104427598053297684, 3743798455424562976, -159511467607315305, 1687102392833992300, 8774597200745035117, -6234815049804823818, 339029472597355930, 1073176856908877851, 7333940578000933627, 7543416385217978341, -5618817725309519663, -3732978478110923196, 4729775418924530027, 5415659146713528942, 1805248865544707952, -1457046423755598237, 4765123704142617159, 6572662904468529092, 5817232327383400299, 9081095240421046848, 6447075447425573526, -4642588973769769608, -5503701075089270325, 5433878957053827441, 1810641650481304140, -6074284472145952610, 5010825263160213988, 1440768229727432972, -4335018425502336547, 3936171562189036599, -3120322572833847445, -2924105885627258097, -3338952417844267911, 1251761857719850105, -2645571286696615660, -523297823706198912, 7711822176498563289, -56827788658712047, -3884320141540038020, 6390733882415166245, 7758351651296531659, -5116419273962657260, -4452143444130820002, 6019296145785204189, -1698121655345507645, 2449374316009348428, -8978372362526420552, -8660875431518373671, -3182863253235226393, -7949438967876709669, -462668530165964163, 5636929411439370064, -1011025255329422738, -756885859389560823, -331264710788294231, 8216635162250358259, 6402258611477527696, 1544645109357931660, -3949041951738202511, -3944006688715736150, 913848672375276287, 2550068931137838161, -8293531089577258125, 6716560683165388681, 5003627804088451642, 3064187442152168340, -6648848029896880663, -6568537479310908190, -5626066436457553790, 8579911889718937373, -103464984839396546, 3610167301414204449, 1942050521267682043, 7691005840368556897, -3888654056495178384, -3762756637882811313, -6651917273839315190, 825824585491216811, 1800928177599741117, 4208491245789437750, 8874261523713775202, 45836887866191406, -7910206231668513962, -4988265022579528156, -6256247887763223226, 3747858888112922926, -5812423386617508206, -9193143099131112087, -5272657138795541439, -3817827379190283026, 8546457323872953303, 2688261299341785319, -3538731669284659709, 2199425262601873922, 300153975732592343, 456707555528321685, -4315575576196128352, 1099407057019131182, -7395211302869873411, -8778701644082090466, -3493419288128994025, 3301038717982366720, -104840980289946258, -8226481138541069199, -624106317146205428, -156711244640472404, 6673758534395833770, -1361268453396164586, -6759201205268151581, -7326793368460143691, 3440677189250096398, 9053496459509194745, -4124497021656573234, -7099495831319883640, -5912967150461077944, 2919470565662260287, 1387950421190649316, -9149424709160077078, -3843612618224745306, -3028855547642790, 16964167837995312, 1533013996192098350, -8326032640158053477, -3816280727533390712, 7768610867568415451, -3221852796507229639, -6757769789929815635, -3083389278220508110, -1879042993877068801, -2836728464154771145, 2841355538848845799, -8731145361934242856, -7929070077550712173, 5841323222536130634, 1250656924898200417, 7799429322305398334, -7588476876785138456, -788721816258401963, -1118745772655195389, -8937230447546732806, 9114176567918614582, 3571004724063084991, -5020461155128328083, 194777804597335843, -3933809850985491267, -9128114338943733159, 6843556642424663866, 4318926916609127926, -300066644149788958, -5462720410180779445, 6409541792097195316, 4908879171558774303, -5271661392314950845, -7079508122592787378, -5436167827326192354, -7374836997159455131, -3140287590893366690, -8563675323647183475, -633665607187335893, -8560909452060853962, -7293836376637394993, -2641659270599183456, 8079053709753739857, -6361162201152264689, -4405439130120564311, -3892820321104841264, -6279605833864646816, -6079837499913394587, -8866005773878083068, 6066713257514514087, 5288367691461168023, -1598742348531206598, -2777316037279701631, 2198795739159402034, 9061756651168636341, 4858989359874464621, 3977286901472653939, -362664077449404099, -3490328702522819290, -5662959167154325088, -7336707677937719823, 7823379529456769701, -4586184257316881775, -7558101142366249484, -449002782987500598, -1431268531988975696, -86511751075371368, 3974454517915526076, -804472963520752875, 7471613544610400924, -3396105359147171232, 3095461075854102054, -2411768177398492469, -5623234300321819701, 8111534700383534119, -158701501459447030, -4395427123711365807, 437339219416888668, 5763571146478711325, -5428872092501320028, -3574253511498236324, -2021164797809167920, -884427093632144100, 3318980598205688698, 5619275088876900532, 8702713859578406518, 5155798979002669642, -9098448330179700732, 4786184579760699477, 7074300040268878505, 4113392373790825632, 8110975753317694921, 5210220750467937053, -829964025319462914, -5207346021088936763, 8716723539152015298, -7162216083176936937, -372942455799610320, 1901394334331706198, -8851444616721510677, -2774444187097785679, 8767037434457902466, -2838591694014432934, 5639342209728245070, 2417840955663893864, 2280691376448340895, -804896688078063867, -5562818359310242887, -3902063285553144655, 247798783192576525, -8287391343422688574, 7654852285280768195, 8199327211870147684, -7371045115201178808, 2808815945033284790, 8014005766125244094, -6540867730089662953, 6044398504000426879, -5355969054533634450, 1758439280073151899, -3624308255672000922, -5365016818678540007, 1681480343166431315, -9005181425430122824, -5656921226592646467, 6633074549499191760, -5678885986170601396, 3054631394601685889, 5639449062640554530, -6699536508442704315, -763522547043004299, -5757065947768060061, -1306872769930342645, -1261375785498121485, -5258933872526015308, 2329722914000597253, 6594444226936726831, 223195247111988246, -7273332832483541152, 4086641101301619430, 7391768729452155248, -4739881338578725414, -6619491003295788736, -685271773318105157, 246160801649852636, 3696318999807707452, 3461069036505303638, -8473274943604431344, 1196694474093988573, -9010072248325323069, 6930772497228753422, 6942266897591696384, -6611094448364590209, -3097262459925462356, 4516340939700360214, -414889362029292241, 3997237955642265020, -8743626081460619109, -2995446292781178524, -2724931864971260790, -6984804810275402552, -7836106425758742538, 1660327717890933216, 3941323798946315725, 8524968490861832259, 7144536990780841742, -7012774470377416863, -2414777125459406339, 729633162649738742, -2148296691123972729, -8230806901780951523, 6354973709081228571, 1756107823764428404, -2076658388824927987, -7890569762578693444, -438105193512806632, -7752960505450046285, 6557186089443805492, -2454638118288809795, 7640408931171015747, -6650817069419513516, 1324560169854399145, 7898657417641174841, 4269709565150502385, -5645370342812034135, -7230955113091210053, 7782415986233997773, 4364690018658472231, 814745940865079198, 107049065352236645, 4992742686480075320, -5076352245870015517, 1077306688599186542, 6716112717590582305, -1793059801246048133, -3402596618797825956, -1382435783405829750, -4512378872570009707, -9027262839901727281, -5478390106461241056, -1715385621547750876, -8665025206647393195, 2843843145340102658, -2443760900309878824, 5953785931841719473, -4640278790520944678, -6488022686324325496, 762714631491774366, -5260549151975689717, 5189064434499235461, -1597707950343890519, 7121202546441793890, 3941347055168069554, -1588829307798068771, 981802716444244209, 3699196854367587847, 9090353826244602787, -7196545669297349424, 8991802087322296026, -6996751702337135909, 1241945113691284721, 1856039614848931925, -3586244806372645941, -1514096101797172377, 876315126089072314, 3934820017358829997, -6095096490662719552, -8578152211466331578, 6202512340478101389, -1696242401425547182, 4962648827320161377, 219870885327533913, -6730696756041689554, -4229940339762579790, 8533710586833414053, -542558387162661281, -8591038849034187979, 3837500323519964112, -4441190141383918577, 8709936576773042269, 1236274441851065666, 518723536970383575, 535513379775648255, -2450619330097057344, 7834756618975879560, -5721257128040501964, -8488007752156831419, 7167586588754512363, 4042511322631424363, -8844766075897039719, -8712870133767841607, 3906514836780515406, -795556927663350722, -768338037865968516, 5858762720073347108, -3897421460014327410, 4634254716616188520, 6085442356422673964, -1863405755511847967, 4339469325434265804, -2487921362082429501, -3578936469061688875, -6801103323116878906, -972449229050672735, 454206038338751415, -1486759243558970162, 5438534844551114705, -286792789814308014, 3062170278808806204, -3239719860428266568, -5104812477821847637, -2945553453028684699, 289898537431707373, 7035057126148300391, 7982049619244731875, 322780202140398991, 4945754233839279698, 8410193975589136755, -3404141629002717763, 6673237294367507795, -7469444891103497397, 201633796195380211, -7252148981601896528, 6450093307063105234, -919480452395957389, 4198181541163936300, -6912403264283834693, 6744503657915812296, 6801256255246575893, -581429294097997951, 4698347948181005075, -5782677963882570066, -2510605927680626640, -4927130407218508190, 49230076077342347, 7494331989820251230, -1775679409301755930, 3065264725601113274, 1382112223486471654, 6855725250753750593, -7235544551967697259, -4844825588524406036, 7046895046789552104, -1544625215832538340, -1462332938045165828, 8336902559677289437, -1472312753032723407, 464570007256833509, -2841212654759868870, -8140640181307045932, -5407787643725107205, -4851016047923301705, -808896819049043374, 2199167343425839682, -6452817118340023210, -7650076746716397866, -4684423698840874690, -2110085194007832771, -4196495384356842083, -7355870869545978453, 8295158303833340193, 9203430665215634247, -5704375420998039329, 9202612771146411409, -2279778080299023850, -2361607645845928517, 651207550227801016, 4256132542441119100, -8539950987869537652, -479973678677984864, -1580461284754877625, 6931927919714263646, 1470718416840658812, 3890691356818006664, -8875283365261065693, 4831731075249656314, -1369661587431933337, -6986944981540111212, -4173431852662676898, 8398454849467241279, 7693363415431453478, 7261959854384580284, -4106902012375160317, -6951220911387267132, 7947531176128471006, -7104833492728828281, -4180932071472707865, 123734294527434595, -4227154409564646259, 1670806066448864573, -6169563406606482064, 1653243598995507073, -2625117865990908510, -7029351391413676785, 7710137121750458026, -5054449670793205550, -3190716002214607187, 8878540099121489268, -9128837968063924877, -5910059726045083540, -8985138055762613782, 5344400146874178572, 2666524971322015429, 6423258917777361903, -4560466303459026499, 8590879898129028068, 151791652887966387, 236781276746781734, 6610466393243173221, -6482535139675414973, -4133945436025681025, 2829648626512064981, -3164234646049780302, -7702140312373353694, -2267119632377546118, 3176523267017806239, -2714588510135843968, 4583969186378983863, 3848265699128525329, 7571609735693104004, -8250847883328889964, 6849568076514321633, -8704829972898797423, 7427686330032981536, -2235065763991046269, 7099543940686300003, -5216910216054918292, -7869578931726633548, -6892343521009331920, 4741066706349641670, -3203073219765549475, 2145114398851475587, -13683309976476550, -1334674355438614546, -1283134343121859994, -1599135267810742624, -8069751567836510789, 718983346595808350, 9088104125498623395, -5586147288854137898, -905658394408320464, -3758794794696386572, -6685532807959997961, 3831947048346150663, -5997144708393268050, -7335928570827599763, -5819196781443184281, -625005195302265671, 3761189083175547696, 1336107465982885684, 5313710133095916701, 7586535322086021804, 1426716311263670589, -3360350803402077623, 8079078011496226664, -3091352400636034823, 1154776227610682784, 6097901555984108277, -5863193394774162580, -1648934595081108726, 2597537392661061707, -6359885302205384467, -6920595236531555428, 7143570830307042549, 4822380408367952751, 8232543206294460181, 4755875274239781900, 5178278160400158766, 6271773147438134231, -1478520069461708556, 2310149569204006227, -9040314202548044500, 3301190785823333673, -4072850159273251, -7118226916908664615, -733790552032009827, -3003997466911824541, -4325570052037227426, 7064977307969495293, -8252994000105178866, -1301691290350493456, 1458456072983296923, -8860896783892886006, -8917812915168701763, -2229505986159751208, 5532845446095020505, 5912718143468715444, 5945919269146122368, -3552648667988127690, -3087232248616855890, 4378958493207963066, 1018304281564262546, 1348763371055457326, -3307361503165284441, -3099786188871740925, 7866154936949483372, 8804744769138390521, 7335901275596703627, 6443646405779432994, -7338664545137872319, -8044860620034896974, -875995196457953880, -1445875885049798445, -6499138537720468046, -5091178273027577134, -597558397233851138, 7773786318663624680, -3503794008437369845, 8813349309104512933, 7856338647898081270, 1104393198002968844, -7660016918855374231, -5853595393136742304, -1756358764923362731, 8273154173084614368, -1499219280054793624, 4525006020797523729, -549804765488772006, 356501713116674651, 1135210311207210128, 7867718229747186850, 7826688221201519236, -8317387764396245900, 2019447342298929617, -2931602810763159030, 5231170006871182477, 6626350286481636945, -5611595563725717568, -3566411688236025079, -1915591304304498636, -5733956498220569489, -440513273389181738, -7244319040211806950, 3965520871319985904, 2368044709423189067, 3139885428769999134, -655167085408448263, -6778339535459020982, -735339254429413452, 8638320685678062312, 6387610349083914916, -6053754171956472494, 5876529423652723099, 6742146074953066854, 6439682262851689579, 5401962912453175867, 6441683253298109315, -4866240639797176349, -1172860014752836574, -1505480240490423545, 1816142427768533529, 8818458158619452006, 3794125145285708754, 3014796970001049230, 4979132682436076240, 736495112200944992, -939174078249558781, -3230849635864162872, -9207463995515021398, -362486595758493910, -6861569285337168196, -1580138971661299853, 2208032121042831535, 1301580457449932436, 3502709101299782868, -3067897110823236410, -4692035115412895994, -5365115760765564974, -3849733140704734592, -922352153675603650, 4564241969823387046, -2961755835746786507, -5947739157912709589, -4660253702728200146, -6682147892477933167, 3126050278425678928, 5021254965934405197, 1031656256584523109, -4802741061774704626, -2497227644985002638, -5122177248107191070, 3746001652977745363, -7901717486899308522, -3260999654912485351, -8952610747347356656, -9104645823620664302, -7786466982883992041, -1350186980170397618, 1702624606242053565, 8802172731496498538, 207172044306322992, 4189954437709119075, 7603005788467982583, -5626430802272070603, -5379603062233781787, 7923607496514919333, -8785425574821286484, -6027786275156391733, -6136275890671367006, -3568723337436825900, 6912195357113538195, -7810954747493221963, 7443218553240378331, 2878210472205386060, 5137484487700793176, 2720108185055236350, 1315068274188359634, -4410527471022015095, -7874523193101856503, -4850781265898309558, -3236613039257685320, -1819476599087469665, 7017352924933700946, 8877059852959589099, 3348889235400036342, -549667731388297365, -1885453624208965098, -2540169916673280115, -1400044379515939375, -7736174760509345378, -2006478173572354105, 2730633009923032698, 4841725122792785917, 2597919813967689129, 3916452716508765057, -5498279397439115641, -7961044225435730321, -5185130612193404035, 1557607322964103010, -6700673331659411786, -5334830939120548671, -3280097941150134270, -7910519016839756764, 8557224957682654782, 7521339487490009436, -7016036511054060719, -1908510978629085089, 5778494804695304976, 3603338205508003784, 1738480565089120671, -6114750176445073309, -5513897610917183686, -4031320647450058369, 2957093100101370602, -5961283691677732574, 8112676605611427784, -3637272941101017101, -1206003829814374663, -4352572726119402979, 8960428543801900631, -5483044081013166506, -3631482279082854759, 3327017370286143970, 5623119224258559526, 3368948938890758585, 1379666313654718364, -573007418274604292, 2773835471435441926, 1022482194181968823, 5754532832894636105, 7967286625185817381, 6034482421942272487, -4638896337828585993, -1023104397721615736, 2069017588175726197, -8079010770295314264, -2456572720746276736, -3464157632130814961, 5995965512437630007, -6384277744313731895, -6921504957890122446, 8851031922304298165, 3693000072029401867, -6783885099461947155, -2262483537511548321, 538226576448013058, -612394001140825614, -3862424940609201428, 4109513510709064122, -279470764170567435, -6425989944734782905, -9108344729281253233, -7875324877544500340, -2192580900952202066, -3054699340608275664, 2078733422395155473, -7864180978851817316, 206636048777274999, -6167948937505917309, 2427223974943465417, 218537706818544159, -5965597288000067499, 1836370723425217928, -5765235691020858354, 5658115442076694966, 4382337612537480449, 3061034214977580781, -5798656539922509217, 1708340649708735233, -4971967461612477662, 4460196422387430136, 4006039910308053817, -8188607418080010944, -2161879953046537471, 5248088250455874759, -2189712474880946102, 901719202613644063, -4371034482168811624, -2906895702983200253, -7482537535857820747, 8294522124537529323, 8407884438315788350, 8253450342604907647, -462548973075601105, 7015567858525452257, 6172126470939923419, -3525449863029006383, -7275460644869822457, -860821702066401923, 8339054751755991751, -1550883618436912913, 2771549400576891984, 3900161920826331642, 4248374996863607650, -8772404663126297054, -5184417202433863571, 2641542239393344329, 6330251836012261698, 2118349017921366626, 1795997213736653601, -8119639942119059624, -8340503853165813883, -7007196819029135993, 2406258691801033805, -2006505026312063615, -6606217866315538596, 592124600619502014, -1972060930287370742, -236487336240157435, 7007458982880491920, 6244186320028049146, 3593583837625121398, 7335322273451007046, 5140138794924404779, -3713467164284824738, 3528839366487732251, 2364853623082233618, -3775477086648049130, -9016392222817726692, 8078506413656212756, 8641314894762788390, 7815708015682759824, 6409842045300954199, 2044682802216409602, 3712173779620653394, 6490787036568439026, -8891805728445642331, -3892882259671300695, 737244413534997087, 3807963283169898911, 343403486448177821, -150178725772549654, -6868495753908151499, -7014256943912768202, -5966447630086830333, -1170231756485694980, 6450549967984571806, 2394755952806291394, -495646518865244671, -8325232132313480421, 7933104079043435605, -4048111252114294645, 2129260356228956280, 145542367902595648, 3171265540475590377, 2994854716477137000, 8014611135494758059, 1193640127289564762, -4764590530098562851, -6376730848822490928, -3104433302162472537, -5925830521342264, -5790588635566578423, -3281287691703191755, -2116587596745925042, -7563715910941912751, -1558160381092874454, -8262489453184844307, 5430435325270056653, -6281795349960580869, 2765639203914359334, -2237802246943841836, -3150928540903085761, -6103822005551245648, 8144235982030690785, -172218327478327257, -7348530553160351297, 4036194473627890612, -2523997025592901666, 1109407262416525967, -6890293674884070944, 8621669787622162546, 270019806269493755, -5001639725748045676, -6083344047605518336, 5340336847798899383, -7366265149966142065, 14248524647085610, -5541644688586352879, 5372648764772448746, 2271720182722452155, 4228066264509258692, 2951506193061619469, -5645202807808937316, -4377094735133235161, -2222443507632266502, -8951407603034803270, 2196299215175469935, 2951502173698884955, 4026956744303139986, 3520022584721158647, 5845420208834687041, -9220308382628083333, -8387949286117477732, 2515503853374085279, 414794256419298899, -557283269755341520, -8260648376132537827, -5935975888532269938, 7958026189064261795, 3332436201582701744, 7199024219473003671, -5874456416269303522, 4148211191400372665, -151118860394046540, 3683382273210223252, 3121932881401357627, 6681639530793565165, 4213608483510050842, -5413314315048524758, -573036298662292674, -8066445463307793875, 8798023981866001875, -6239805349716691251, -6794978681961499507, 6931083686853152355, 4533650537624514078, -6512033661806411902, -5241239486600299157, -4650352752838657365, 4513997987670743665, -7986803975549971387, -4744257859911148124, -4964234892530729389, 6383342460018401372, 7327212679404374731, 2178557742266304282, -1512541162952951099, 7070449616356279393, 5316688147762395292, 1153283384194156374, 3252143636162324675, -3432501562225203604, -1036098826569440380, -2368226923736256362, 8997000030648029918, 3523523958601497910, 381615390497577024, 2533225274094742151, -1072255071005509784, 5094885208348951802, -2456197940553265518, 3152879321100787021, -8111506503155966948, 2271530087210511493, -7019383346879146706, 3193573886615694114, 3959215662808403398, 3220565406923706460, 496296638996964844, 6798045150625141619, 5511284923000986079, 7301570621863309402, -8322061438112548198, 8830404409140707660, -7297347137984457012, -2894022736956862995, -6040707378233500532, -3863890195553614988, 2512136232469420347, 791443503710666932, -6573450058339425949, -6787040790431539539, 2257056041337480288, 2940221467155933017, 179885315903739799, -3659689398916859674, -3787896340628026012, -2347882842652049110, 7041975579644729741, 5930831955084951661, -5480670146180837930, 7014991747075606522, -5402248450289331844, -1431126741805459641, -6328783162703284561, -3689199087458631965, -2986861310215239177, 5546862799539359120, -347473713848097910, 2741367081142131714, 5961545166076837656, -7515038212944914440, 86880597984508324, -8052451218963270334, -7156614943674008671, -8822676070737588348, 8575138517886775405, 2395664968321957503, 9107583903027061320, 6260395270270118474, 4454611953553418365, 5622300764370785173, 435847826577859675, -49437141425326862, -8135448699334060049, 8739658228224513987, 3179864353064585881, -5915722418031355050, -3583487693076039302, -4369828654864151884, -2172029238822483064, -2058968748956565252, 5843736179494890762, 8006114386096679111, -8431897063500210274, 8309138525936752006, 193940296601694891, -7242282832750930845, -288411670661809288, 4382018507648888102, 578069411030148438, 7837198284202669366, 8349852579983817922, -4247145818844811225, -3991960492909034149, -1825297755967255916, 1973163181010912105, 7440201554418105871, 2644838310619638995, 6074380352227431219, -2078853416799278218, 4561913972023060404, 250613113452881312, -1386363435909376154, -993223609195745099, 3138901979091442535, -5619506914836129844, 2019452320911509893, -7867037340160118993, -6501033669679603011, -5541285844158767633, 4992335507066857556, 6821256764240184180, -6201326667416837002, -587579658689753173, 707859757053528464, 3259801270922610669, 3057006252556337459, 405020391630160949, -1728635494704435254, -3374166262111824691, -6414099565195015216, -512556278618454305, 4944269743245091295, -1820653216015886550, 6391783544417340413, 2146396889054500159, 5788410462730476230, -6366109100863375700, -8647051309530337401, 4041531470256874928, -3957799737620632813, -8185800264564941688, -5807867280697647319, 7676598208073183052, -3242825989452131940, 1748223304759388900, -8046506227174585977, 4183389222465704997, -1704122601758706338, -4062713034106956294, 7687665623983628933, -926794209386101802, 6959532424912731367, -414408171109399335, 7889098494482444734, 4141954151751731474, -8861834700046789360, -5669718920560134654, -4351051382920564690, 3751101204096838600, -2966639132280427699, 3501973749390945128, 1996351166383501855, 2178085457721440751, -5981183559624430635, -4353319288501797652, -7406837888076852416, -6612124569829942171, 4002839714274908340, 5824768143387069630, 7300453340756378066, -5932287732008374958, 5543392546740461619, 3727352776771531885, -9078764638541497719, -4618475785067970103, -7660595691278409406, -655997130448311962, -3786437279613254045, -2595155343935305367, 7712873925150012618, 3743019225999186689, 4048390806669647720, 4805310822162446505, 4872038863367497502, -8428362854759882225, 8518477028043859713, -4239307318660575577, -1320958323441686566, -3545483148273914786, -4725747179790968892, -7928334261734361633, -2825909768436218289, 3450030333851207705, -4958149553928358313, 8138764482731493629, -4779577601967311636, -4998042866717682325, -1858637207999565768, 3062574574392248144, 3116156765992656014, 1443407627425508482, -453658987385733784, 5491561163396620198, -7292153975898714433, -3408322613737433238, 6524882149484465999, -6958537913651013747, -2938955943156942532, 2119366256343572933, 8901345897321046656, 3710924790031570444, 4551417599278414310, -2778749910083568988, 2348456219835669910, 1151457399438747946, -7769478377065331564, 4176399005145328638, -2644477417234502830, 2803031759208497383, 8697718780765983452, -3625600536012928137, 6735867306988040761, 7763266442554830837, 7770179690150502214, -7023916353477970482, 1432847252998295218, 2379301439120692648, -2470710259551001385, -4365037186101393423, 5657426733893218212, -198512364452142674, 4887314334572260017, 4413867830110241883, 4546750100594333328, 8366282322712181124, 7369219926080077976, -387447231888143743, 5401097044855564288, 7264294370309556955, -8414350561296785337, -6496784017302300426, 2110967893684903080, 196782530168353485, -4505376237635795676, -3586375420318201809, -6178837092705300632, -5415492461523612766, -6307288380592162535, 1909668364236311764, 7240014093820059488, 8225542133951521250, -303235625728535800, -9044835080205337217, 6395006392178963592, 3163001317536088328, 7980373436662151667, -384751106947219159, 3308616481993172093, 8193432909377460285, -2598826481200283813, -7672462299522481767, -5456470707672989773, -8183821663907951556, -4970082400874402330, -4927385277170352178, 5894511271954263647, -3898405833678350854, -4421937658782130914, -1426830103984582558, -5239846170358473213, 430549003329243930, -984064397281017418, -5707986003372548772, 1127770049382340239, -576670764435697235, -503665728889942386, -5575822317312681154, -7997132451289296112, -4335496770195196981, 6672529110134661148, -833249965440304903, -3611109599159964635, 1690265237394909097, -2378668441066911517, -4626527467669318108, -2044308008717107725, -7886462386406782664, 2599964402330270246, 1626099455070265011, -775389214411099703, 5009168442291859908, 1377571790230059812, -5950605858467181739, 3096557645419320029, -3568382933419721503, 7707351743416573934, 926482390280014008, -2738582395667167116, 3097243728802892808, -7187156508675486643, 7621468742620992642, -1563526926278978242, -4458772053950050018, -7918363255801947858, -5961399321310079768, 6376696704007439194, 9052647802412551288, -5665075737049933023, 8628225763182163568, -8234834498395305799, -6809749581555231821, -8458259746115122910, -4809798283344268574, 3318923672289849625, 6941534339033842220, -3272193828273482559, 5415695341097619215, -932925270768642252, 2845623526449995518, -8600719038766952184, -7505282763082070454, -6258711559255572699, -2323684458687719845, 7877045974728227686, 3695702625850460234, 4669557671600209257, -1900890566815581581, 5767173377736389424, -2008320345085831309, -814213951654447096, -2558456533666834270, -1440781600541849885, 3504329054216013385, -8361448567964563974, -5483050688223800146, -5764520578200964391, -6022473089279669174, 9124491906080172247, 1578375542353633733, 353727137960621243, 1260472700042362235, 7337345616150458761, -6347506725579883106, 3659478108789423593, 5837429070999405182, 5717506812864188060, -5582722319367469103, 5827687732585787012, 7324379135891986629, -2375372229257830003, 6199026524661379758, -9055904165649480863, 905454976708041766, 203060893183262057, -5600131743523206601, -4200425772138227646, -2654142927577482246, -8365470585354819958, 3053764856536443423, -1806320191001350095, -5682621707956083674, 5809343431935102775, 4480763765298346108, -1054964545550254008, -6891522298209038624, -5167545232524967544, 5554932100903180690, 2113122217850366805, -6861793957889202245, -617642715601868305, -1333965336248103824, 4394188400048411694, 8703695848685186630, -6951264421403583736, -6361059640096909095, 4805076007585936685, -5849108162598230051, -7110418169759697196, -3502538031708026365, 2305292847440708612, 3155951074720467060, -5614280570162977270, -7049866075960793726, 8499188298761549455, -7974781437580541420, 6908668767714377786, 2225604609249720320, 4760193832197546248, -1659403661643273013, 8117642118682142422, -1939980534191271669, -5440582913574991141, -7440216349994421978, 8258770640683229685, -9050606670322287902, -4655159621785908167, -295154581231632345, 7541929543991115925, -9071253916561750327, -7099933592500701263, 1910252927582353590, -1005875032891500815, 5715184563872901998, 2825752556769786929, -6247666548874229181, 5714961578523458200, 9007907860779683012, -7380292642667156761, -1524832632011532665, -3374359386145182614, -2068805132386665979, 8803129764207014869, 8408524196185653597, 1357852477599430333, 4851240964872333350, 6354507917073389720, -6525385194479205571, -5005813697572257455, 8759666014457395348, 7231825111096299967, -2252915289412377586, 3025689968990879713, 416379953467703010, 6132877881350737581, -8325054453843241881, 398566175089964315, 6380089253749342112, 6899238197653901474, 260536913037137534, -8273300546952503795, 1201703089789317043, 4532253953973030156, -2190628739463907950, 6116258341121362857, 3038344520832171176, 257693478102836437, -8926208255556237182, -7823478332043464059, 2553284350029303299, 4843296137343849707, -4830895017388855049, -3744853171948149692, -4418408956555579950, 3029935929026739853, -3666744609314822028, -5461795137653632278, -4036413704657199763, -2977579195124864722, 517512010729885454, 4574535867716027685, 91758552062890822, -394081514386882625, 9156526437927936041, -5488065600528041958, -7193577414241648791, -2722001358788145979, -1098377621057756697, -4960787574269088524, -6558023541990818803, -5184920236263284897, 1874544521859901252, 4198267997979723742, 4313931058319214978, 219572853464344050, -6108962201502654128, 8774908943924544477, -6514662121147222306, 6166903051841634608, 6562127280754337451, 7137324888511370503, 1491874714442024521, 7177295442861594493, 3345140940979807129, 6371568033607218984, -5834248167878052352, -2624195870914090513, 3252156470967156833, 3565183278632744959, 3442339004211668733, -3419425074063443206, -2066120272615235670, -9075548200745564962, -4434400619981760518, -4659126436837700068, 5065599417881459524, -7437869453128909779, 3683573505417631603, 3371057234402781466, 7996858620797736453, 5846947560683969171, -4203103903330318317, -5950334430178444971, 6831236220152369580, 2361851270573420870, -2510752377202513553, 5177061595883123946, -2863483895118452888, 6611882725976512826, -460810565332499828, 3127860751338688982, 3615659045891234958, 6790872602665561293, 3300050258700510464, -7370098739670560933, -5294874571074340741, 7726280406636794555, -415944409348159654, 7076031249204190348, -3108826506584892292, -8041802035032385852, -8995653324609818363, 69743839962285310, 7480158148029832136, 2272999696068825575, -7642227759928988359, 7596973422110551826, -991964884536876421, 4661787773254997906, -7240328064126099311, 7379162217684472607, -1939975918685722702, 2422840905913776649, -8912130039509636495, 7113072887354628885, 3863731520204459546, -3543354642569924856, 9158242481381522797, 7697136308675219667, -5909867584340906592, -3746222636160688905, -1227972700169734907, -7083260410391093782, -3344444025119195410, 4752490300217792158, -4476676750767629792, 1289599182467864439, -822904268290164744, 1831098321169576735, -3838955636938692708, 1907014263132106008, 2878855715915197864, -207023922267204389, -9173449034107235012, 7041295105879826346, 2326748895600643252, -6844122885200084642, 5951503081756844115, -8328942063338398119, 512917325115194875, 9152671550062380316, -9073723623387702921, 5414540504996419850, 6627952531201869502, 4308720465763512286, -7453314138775061838, -1041471669786698386, -7554740703880420322, 8412639278759774999, -1765745488046381355, 1329502153213530431, -8757140117994942413, -5266550751915688684, -6288158124393531405, -7888526426157514162, -8439789099521709571, -3355690895578523287, 4875413955255141692, 8351341077680878938, -6696767563461568322, -6204450681423187457, -6067036480906088694, 8217520698077522701, -2230971468435934471, 5821608479175761856, 1606487358477167205, 3830443207405240898, -2972780692273517843, 2908983701220817143, -7812448514531075065, 696699845903532426, 7391295549434797336, -547860074706335664, 4519109969717000934, -7001676377865009743, 4919983971210957521, 8010392212239862319, 743151461902870026, 8317986145510024262, 5557590515687555898, 3488115256542944221, 2365424253239732235, 7851189039436894725, 7163234098568022576, -199592888473543654, 5635516511073976961, 1488244339121644588, 2897880537600522852, -4395740398912718834, 8111576065844227697, -1264966674463178249, -7874014090680020319, 3567005815204947760, -2485321431002657785, -185427014019128250, -173927118620276260, 8167955355923876013, 264692553073865802, 3960591282265424977, 3469589772645482918, 3157593651882212907, 6095346034651693115, -716700184819251676, -2376946619935511933, 290294819945037201, -7252612484808493572, -5058140104511140806, -3454463189600880779, 6572833412553238997, 9081813968043801888, 3808992870775478834, 4321815728455950478, 1202382649892625719, -9004785123535677175, -657866554437070455, 7136684572849969979, 6161002818637209277, -3814807932082606619, 720840350682837931, -1535606711404819451, -1312707627863366421, -7830884572877114161, -1301477861093585111, 5958035901737316162, 4633966933991528833, 8163718426222198780, 8298006740902217292, -4026049130797173923, -3375162246959841238, 249113105584952304, -1256851504859310242, -6050207542654650020, 5201041383955061109, -4250865160614369420, -8952250883428366678, -3246801092177608435, 8857943200502247741, -4101641055145843129, 7120810276580448524, -2102395493685764208, 7236724800438577638, -3044006873787606728, 8271611792647722028, -9154864609265057335, -5776787647525502674, 3499464054187605986, 7298180223225248590, -3479889498634347813, 4481355936339637639, -1534186487991511191, 7792290749497927168, 6859096356999320742, -7952351188991058561, 5725063377884259549, -1162201617070538753, 5290638522787839191, 525902359921691554, -3425037384024684922, -8905136369062318572, -1678832544743210699, -1656744562909208595, 5934591747712884793, 8713113449450988118, -6487279933617434264, -6017250810025346909, -7187221513097947273, 3435505288213305225, -6815348477884992185, 6098389112987903917, -298831395758824402, 2382817466626843135, -972086245780624403, 2282248607701031570, -2044892523992484118, 3970834560547821408, -2517107421520099407, -5106204542705141233, -3701739701586065671, -3519452008168640469, -5266715844119435398, -757938092115916610, -4100285246366614589, -3955126659607167378, -4538652064162043459, -7851488370810517404, -6378562022142737908, 142789853321324029, 7051751573933471321, 8872204544402270712, -3871819368960279726, 5014665949381082971, -6129778061989846386, 6187241938016660976, -5707100654003666676, 7982705033554873700, -5736274657152582059, -9062091212472699951, 6173323558929659637, -5345073612688291286, 825185204317976397, 44456822139112358, 3935198567045533508, -5845573752098467868, 4695754090374498600, -5549748460502463909, 8767300528800433593, -597320943589815521, 8507086802081434156, 6014877320003647458, -1951929335872228119, 4285789547904390338, -2699801820797421006, 5943127995972358190, 6288440246900461541, 261004613848747643, 5447118173788220005, 5630128827397937413, -4008590032843971044, -4680937778354571482, 1752238206490980916, 1387016282198738161, 2651942420504900858, 3701400566262440751, -1437995353788387338, -2767630519224229244, -4703176886812378004, 1677530378717965903, -565611956824228852, 6812882457096661492, -7851888881034033708, -8637409618996943634, 2744486613503555072, 2814532793353162697, -8532616932220342384, 9212318296359620086, 7407607526578808266, -902918451998184828, 8688335837670420112, -4232048668589306798, 2576564261683915429, 6007480017621431837, 5051606809584976980, 1059709833245129796, -7106106665960407840, -8946863552440740811, 4213857994912358072, -8481244292043240832, 9194418540500593311, -7478485335835818152, -7836269212752462281, -7104247507365390408, 5804808485437000799, 2370769985445904113, -4503694910331659468, 4265121172046578286, -6831012984448795410, -1407729596279203600, 4700089902740173393, 170439184174822875, 8010038733393578738, -106436605339515772, 3476126135840134882, -1412132094598766133, -7285964107389118477, 117256142337938804, 5646439734106196523, 5850342702504144984, 7968180693831092092, 1964800800443459167]), 42), 42)),) diff --git a/test/reference64/debug_parallel_spmms_no_atomics.txt b/test/reference64/debug_parallel_spmms_no_atomics.txt index 33893584b..5f4416c31 100644 --- a/test/reference64/debug_parallel_spmms_no_atomics.txt +++ b/test/reference64/debug_parallel_spmms_no_atomics.txt @@ -8,7 +8,7 @@ julia> @finch begin end end end -(CR = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.01855804465451247, 0.0, 0.0, 0.03641425883740431, 0.0568080930379847, 0.10109716846875504, 0.0, 0.0, 0.0, 0.0, 0.005424838537552436, 0.0, 0.0, 0.5251896042062963, 0.0, 0.0, 0.0, 0.00515342598991506, 0.045980273053842245, 0.0, 0.4033688458623361, 0.0510673466163073, 0.0, 0.0, 0.02134197385615031, 0.01687808266981965, 0.0, 0.4932447371732914, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7178045198025068, 0.2106682695954306, 0.0, 0.3115118572371521, 0.5170963380295581, 0.39595498771521426, 0.1432663403816299, 0.5698542189659496, 0.0, 0.0, 0.0, 0.5317966816929195, 0.0, 0.5315818882594147, 0.8168445783005969, 0.0, 0.0, 0.0, 0.01222733860627223, 0.0, 0.716756885645577, 0.0, 0.8217284580618865, 0.48234209517721377, 0.15545502627894098, 0.04826321760798536, 0.0, 0.0, 0.1394038038151463, 0.0, 0.056802678199824076, 0.0, 0.0, 0.0, 0.3128541399180126, 0.0, 0.0, 0.596593418834028, 0.0, 0.2846892571697076, 0.0, 0.0, 0.0, 0.23365792107187477, 0.0, 0.0, 0.4584793374366712, 0.7152510496888798, 0.0, 0.0, 0.0, 0.8190896825195866, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11127793558853107, 0.0, 0.5789217135796446, 0.0, 0.0, 0.6429712972008511, 0.0, 0.0, 0.661506988212563, 0.7629272979371657, 0.0, 0.4234710523361336, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4257443064600869, 0.0, 0.20425497460318195, 0.0, 0.5184318202957809, 0.5906121758765186, 0.0, 0.9091367634018797, 0.0, 0.30652125262867885, 0.0, 0.7954054080966687, 0.0, 0.0, 0.0, 1.0559083316811368, 0.0, 0.04427154393293609, 0.8228955354751877, 0.46658038808648383, 0.0, 0.02688606839966265, 0.0, 0.0, 0.6276611460113729, 0.22522673327345408, 0.0, 0.12308651028821192, 0.3657688390111318, 0.0, 0.046115245088609334, 0.0, 0.5342436705087195, 0.0, 0.1923886832463953, 0.07621763959827882, 0.0, 0.0, 0.0, 0.6725528112574624, 0.7483589153917343, 0.0, 0.0, 0.0, 0.0, 0.38949567271561986, 0.16492548861911044, 0.10519585180914466, 0.8853743380662012, 0.957787822214843, 0.0, 0.05459549529270359, 0.25656057396140347, 0.14167223917141744, 0.03949155262056029, 0.0, 0.0, 0.2703834370419471, 0.0, 0.723362221877522, 0.0, 0.0, 0.0, 0.7883757417725614, 0.0, 0.03340589062163017, 0.18896261922152233, 0.0, 0.0, 0.8122657251866786, 0.029607718570353176, 0.0, 0.008213735995679807, 0.0, 0.08605746445745502, 0.0, 0.3070376563830936, 0.10398717208817806, 0.0, 0.0, 0.0, 0.383984202548332, 0.0, 0.0, 0.3036396360576457, 0.0, 0.0, 0.0, 0.0, 0.11965354383371518, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04825455862354496, 0.3335108938296942, 0.0, 0.0, 0.0, 0.0, 0.04121745447265487, 0.30594446336043757, 0.0, 0.33550494159326405, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029116195807012437, 0.0, 0.0, 0.0, 0.0, 0.0, 0.020041236855252602, 0.0, 0.4850188795993097, 0.0, 0.16403823255879735, 0.0, 0.60023572778736, 0.0, 0.1787344157826609, 0.0, 0.0, 0.17233073276918714, 0.17532212882841147, 0.6209016656456683, 0.5984929062073807, 0.8843163905991084, 0.3337919143714591, 0.0, 1.0919707374354302, 0.8166713304287454, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8330317657834686, 0.27201200741148646, 0.0, 0.8995473587201992, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6388227016456749, 0.0, 0.3682672817259989, 0.0, 0.5422113050459496, 0.0, 0.028602469161704683, 0.0, 0.0, 0.3611222515381231, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.031337192831751, 0.0, 0.0, 0.7687924758178234, 0.012617011188267763, 0.0, 0.0, 0.37315715294884366, 0.0, 0.0, 0.0, 0.0, 0.6888779809403613, 0.121001715761302, 0.0, 0.0, 0.3680175749172942, 0.47420475938210593, 0.0, 0.7604201795169553, 0.0, 0.11917670920609563, 0.0, 0.20848198246903302, 0.24926285864223433, 0.0, 0.5553692000145817, 0.4169252107806106, 0.16597755096800731, 0.7334771026528798, 0.0, 0.0, 0.09908991746260937, 0.0, 0.14652270264303283, 0.006759647910977647, 0.0, 0.9351545954529237, 1.2960299208884896, 0.0, 0.0, 0.21191619141709428, 0.0, 0.0, 0.0, 0.01204540426582532, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06493914883934329, 0.7726981572397796, 0.0, 0.4370686273737238, 0.1778273534538074, 0.055209023869020324, 0.0, 0.0, 0.0, 0.05709969797354255, 0.0, 0.0, 0.0, 0.0, 0.44808598581285264, 0.0, 0.0, 0.0, 0.21141909545938053, 0.13390642572615394, 0.0, 0.0, 0.0, 0.25844994675864025, 0.0, 0.51617125876173, 0.2544268105667549, 0.0, 0.17576058376064335, 0.29087109088619356, 0.0, 0.0, 0.3286889977164017, 0.0, 0.0644707079973061, 0.0, 0.018682819036845075, 0.008522941045952347, 0.0, 0.0, 0.2520720928277996, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.146066293561638, 0.08856351358209161, 0.0, 0.0, 0.0, 0.1407746062228793, 0.5246446552397386, 0.0, 0.0, 0.0, 0.3279179855015388, 0.46137944574560436, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14330339619658897, 0.11500988018505275, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7444467047874328, 0.0, 0.0, 0.40713437972280675, 0.0, 0.0, 0.0, 0.5717679971406524, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4877440937322302, 0.6991654372087778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2369682176872117, 0.0, 0.0, 0.6757556051622259, 0.0, 0.0, 0.0, 0.576368321209737, 0.04986303698751877, 0.0, 0.5384684335273707, 0.0, 0.21524971756673417, 0.4963922980972075, 0.0, 0.0, 0.0, 0.0, 0.18940210229325644, 0.5277692784584271, 0.7718932464687741, 0.7210929692294604, 0.0, 0.0, 0.0, 0.0, 0.48286176484120297, 0.8517937989915767, 0.3931693184679991, 0.0, 0.0, 0.06755455710060922, 0.0, 0.026695131792948763, 1.4844324548606433, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4524914530619723, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4694831016582333, 0.0, 0.42831526212260856, 0.6074590079807168, 0.30066361967157035, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6129938591206631, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6008436638333436, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.43882326364474644, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8591062832739853, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6928708028466394, 0.2819039698547807, 0.08752108546971657, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05246236611269018, 0.0, 0.0, 0.5428804251437249, 0.022819504909203123, 0.3729965675892053, 0.0, 0.5741583158437262, 0.0, 0.1935811346150516, 0.0, 0.5023321549740235, 0.2611826745866744, 0.0, 0.056899028261467276, 0.37961815387770637, 0.22527271986010186, 0.05171423855571594, 0.058968538904135746, 0.0, 0.02892983665470066, 0.003313037290954743, 0.0, 0.0, 0.15785301822506514, 0.0, 0.0, 0.07773433689527456, 0.1049811110510813, 0.0, 0.02912372760696772, 0.0, 0.3114315285072337, 0.5703037753007745, 0.0, 0.04813466284828647, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02241933195791073, 0.0, 0.0, 0.0, 0.0, 0.23199999736075347, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1927795141790272, 0.2407119020891451, 0.0, 0.21960445663579467, 0.5770903406753464, 0.15415530724008072, 0.23155572792080611, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3142922871488459, 0.0, 0.0, 0.0, 0.0, 0.3042889785067072, 0.0, 0.5129566600174419, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3746354155106774, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4789154917746846, 0.17517544375428362, 0.0, 0.0, 0.0, 0.2637662382252967, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2102700997979013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.126545263019808, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.332133943612647, 0.0, 0.0, 0.0, 0.06184093060913505, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3212574037659458, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24673989573277713, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3017167941185386, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6233354196759152, 0.0, 0.0, 0.0, 0.5447611694646652, 0.0, 0.0, 0.216176776357065, 0.0, 0.19855221622967104, 0.8686764576101142, 0.16350923987929902, 0.0, 0.0, 0.02334951098786776, 0.17107621812888604, 0.48682879160279025, 0.7109808359466632, 0.6651558420918936, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6192268761337199, 0.31206921876898447, 0.0, 0.0, 0.24595989001208304, 0.11068536977374843, 0.0, 0.6618395820988949, 0.11362642836904417, 0.0, 0.0, 0.23765422406147768, 0.0, 0.0, 0.8073352785417658, 0.0, 0.0, 0.48485062583878286, 1.055137179889336, 0.2671063045394923, 0.0, 0.8476204266733893, 0.473385026956602, 0.5030912229948215, 0.0, 0.0, 0.0, 0.17678971866264329, 0.4076988147485064, 0.0, 0.6776909084507561, 0.13779930009477406, 0.5691281649873949, 0.16622169517158358, 0.433469475882236, 0.818379113845578, 0.9106844436778354, 0.0, 0.499393081506665, 0.0, 0.5725309586159512, 0.6160013948015824, 0.5125607980557373, 0.2778645861379971, 0.0, 0.0, 0.0, 0.0, 0.0, 0.58929804834674, 0.0, 0.8046233984476477, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3967677816937078, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11707526901952116, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.383435421983313, 0.11707115655719894, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07864429232511502, 0.0, 0.0, 0.3002587300128159, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2266804769859352, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24215921984980293, 0.09852579316681935, 0.030588729804574537, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18874358875246125, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3978422171614565, 0.1936032919321414, 0.0, 0.0, 0.2542147176776134, 0.0, 0.0, 0.0, 0.11057553114503467, 0.0, 6.012518808232222e-5, 0.0008825884581384356, 0.6460696181307314, 0.0, 0.0, 0.06879188140017427, 0.0, 0.0, 0.04716298956935701, 0.1540138997690347, 0.1854894997474166, 0.003124358567077274, 0.35109153378778224, 0.0, 0.0, 0.016293742009993128, 0.0, 0.0, 0.3747805868672189, 0.025859295570033313, 0.214029422856965, 0.003742959361061961, 0.0002933458280023473, 0.0, 0.0, 0.0, 0.030501494612752977, 0.0, 0.6996784734474946, 0.0, 0.0, 0.05616866413207192, 0.0, 0.0018184995370819535, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.020171782722387992, 0.0, 0.0, 0.33279196588498333, 0.0, 0.0, 0.6323890570808377, 0.0, 0.0, 0.0, 0.03594525644730097, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004527887543653786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17039388977135247, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6309056496928738, 0.0, 0.0, 0.0, 0.0, 0.260280820884557, 0.0, 0.0, 0.5107183088816271, 0.7967464980324664, 0.14485492608681305, 0.0, 0.009558078807310686, 0.754701551784825, 0.0, 0.0, 0.0, 0.0, 0.7598764239846039, 0.0, 0.029177780358136646, 0.10253044625069853, 0.03763219091970284, 0.8115624154017409, 0.0, 0.5779584654853126, 0.7162312164421211, 0.0, 0.0, 0.9107472399622886, 0.7029540573396418, 0.0, 1.0969174796040306, 0.0, 0.0, 0.0, 0.0, 0.0038591832437520454, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15366266383288085, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.558080611304664, 0.0, 0.0, 0.0, 0.0, 0.30736701150515244, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04311886842935436, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32751189175201845, 0.0, 0.20963216887545572, 0.1760259950046517, 0.0, 0.23753864749234863, 0.24093292162050975, 0.024684548149881243, 0.4936183719527589, 0.7064246796060082, 0.0, 0.06677453327599289, 0.8542035190842152, 0.0, 0.025534429812218047, 0.011379900282647532, 0.039800411165778926, 0.013727111201321645, 0.27843394547131894, 0.24161261590501448, 0.2499939278392831, 0.0, 0.0, 0.3450248607837782, 0.0, 0.0, 0.15272914557490577, 0.10495111476871369, 0.0, 0.0, 0.0, 0.18866875753074405, 0.0, 0.2225813946448797, 0.0, 0.0, 0.3661590836002555, 0.0, 0.0, 0.0, 0.8998957690359772, 0.30889178773893766, 0.6078813570942335, 0.0, 0.6840699471933163, 0.0, 0.0, 0.0, 0.36308986165522683, 0.752528074611531, 0.7191770460546526, 0.49508503625401296, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7784554319844289, 0.16352298326175332, 0.0, 0.042948548224867954, 0.375190336410357, 0.0, 0.6830715485727474, 0.6403864588932121, 0.7831097846364896, 0.46112164648188003, 0.14556009485746954, 0.0, 0.0, 0.0, 0.8585580212631712, 0.0, 0.253359163441029, 0.0, 0.0, 0.0, 0.45902026051340783, 0.0, 0.0, 0.0, 0.0, 0.166881895984427, 0.0, 0.0, 0.837727301005, 0.0, 0.0, 0.7629510291223568, 0.0, 0.34201996071392393, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3670598185817387, 0.0, 0.9533138689466589, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8365046398061449, 0.0, 0.9590136929209965, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.801491142663501, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16957493050977235, 0.0, 0.2507477829737011, 0.0, 0.0, 0.11532054524043628, 0.07735685692161769, 0.5247858743947099, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02100484631395434, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8201592179395716, 0.0, 0.0, 0.04562437343117348, 0.0, 0.22915724847477928, 0.0, 0.0, 0.7159205767218768, 0.0, 0.0, 0.0, 0.0, 0.29228977882295926, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17928588753235497, 0.10348218971035608, 0.8147006956016374, 0.08438351505236888, 0.0, 0.0, 0.0, 0.1070859593707194, 0.7148756921758321, 0.0, 0.8195717571774336, 0.12249576952187838, 0.0, 0.2397374334824377, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05225556550152024, 0.0, 0.0, 0.0, 0.1707240047839942, 0.0, 0.11920584928810601, 0.0, 0.14514911616615112, 0.4284534617057244, 0.04403067305952579, 0.0, 0.012688229227290206, 0.3654383338493288, 0.04642776495318284, 0.0, 0.0, 0.31371261026073766, 0.1364760956744218, 0.5008825042361101, 0.0, 0.04802625911306818, 0.021403808257108425, 0.0, 0.12191697007589085, 0.33632693219045084, 0.49073784844916374, 0.5066599946239788, 0.0, 0.0, 0.033354950181247504, 0.0, 0.15690710970564234, 0.3397139005999492, 0.4535410643500978, 0.0, 0.0, 0.49050280987387757, 0.0, 0.0, 0.45491953624514714, 0.0, 0.0, 0.33864218894794285, 0.0, 0.0, 0.041024172335819876, 0.0, 0.0, 0.0, 0.36175943329836924, 0.0, 0.39749358702806525, 0.0, 0.5595492530984049, 0.0, 0.0, 0.2573403608635483, 0.17262354625512744, 0.0, 0.0, 0.0, 0.3776391490751126, 0.0, 0.0, 0.1445911005474468, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.45961437114556436, 0.08073146338811468, 0.0, 0.0, 0.0, 0.5680662673212686, 0.0, 0.14301647595845865, 0.4278925860448857, 0.2624303541096862, 0.0, 0.5619603114708978, 0.5488835922357254, 0.0, 0.10445139145624531, 0.9180806504163392, 0.5113694952971799, 0.0, 0.4737323723594051, 0.4474251824766889, 0.10616343839228443, 0.0, 0.02745363380188561, 0.0, 0.28312699798757224, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6983886824821985, 0.38943652344243257, 1.2223890565530993, 0.05586381199212052, 0.0, 0.07686093310040262, 0.10701921729681718, 0.0, 0.4467721663826107, 0.0, 0.5122035249872549, 1.008045581843232, 0.10571972464185753, 0.6235175832869809, 0.0, 0.0, 0.0, 0.0, 0.7054625658357997, 0.0, 0.0, 0.17326833225856653, 0.0, 0.0, 0.0, 1.0813156328128786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0927477810868, 0.0, 0.599657110852462, 0.22383250773975968, 0.19685563542122056, 0.0, 0.05605157239206448, 0.41837305013296433, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18996852120778085, 0.0, 0.28856245320282303, 0.0, 0.0, 0.0, 0.26772611418599673, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1616947156362974, 0.0, 0.0, 0.0, 0.0, 0.36168541397352055, 0.0, 0.0, 0.0, 0.1573219565054934, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13761515434984456, 0.07943022011077468, 0.0, 0.21912413885604493, 0.0, 0.0, 0.40654019224262405, 0.0, 0.0, 0.022840701875983912, 0.0, 0.09402454628178203, 0.5332211799090736, 0.14433851006651358, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.043396172364084024, 0.04011000425692938, 0.0, 0.0, 0.0, 0.13104327726482687, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10232284486723907, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10523174379677519, 0.0, 0.10079612361252216, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04415728315159431, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11805369977437472, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6523402818477722, 0.04871612610613401, 0.0, 0.19287524873967893, 0.0, 0.3592812200503388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.050401634126662875, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8285325211040351, 0.0, 0.0, 0.0, 0.42701794948426475, 0.33826599655789313, 0.0, 0.0, 0.0063200711569476415, 0.0, 0.0, 0.4430530345512502, 0.0, 0.6935424923816391, 0.9428504267370209, 0.42746265456576077, 0.0025457381888520196, 0.0, 0.1593559778661365, 0.0, 0.8273232796667221, 0.04988580847200336, 0.9484876902255591, 0.5784846962232053, 0.0, 0.4437739313478008, 0.0, 0.0, 0.29414816951171024, 0.0, 0.022355194883774517, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02069724212749366, 0.0, 0.0, 0.0, 0.0, 0.7860463101009033, 0.0, 0.0, 0.0, 0.8499064420418566, 0.0, 0.014821364995218649, 0.0, 0.004694386740689857, 0.25038082548050006, 0.5774089497757802, 0.0, 0.0, 0.0, 0.0, 0.006270331329794731, 0.6139069964758506, 0.8351435200462407, 1.0242327730345495, 0.0, 0.029307532281045708, 0.0, 0.0, 0.0, 0.5726801471740839, 0.4962238989829506, 0.0, 0.07225356949876899, 0.10746103390935668, 0.0, 0.0, 0.8346013157058231, 0.0, 0.0, 0.12871551917858068, 0.0, 0.0, 0.05722051841888945, 0.0, 0.08248659071056784, 0.08634381582594033, 0.0, 0.14691645141749232, 0.0, 0.0, 0.0, 0.12530859946217338, 0.0, 0.10215231917559951, 0.07032216186532725, 0.0, 0.8790426858900641, 0.10792096194290268, 0.054388076691659265, 0.0, 0.0, 0.0, 0.05001396409640395, 0.114742650990913, 0.28339886512623463, 0.15677327627325063, 0.0, 0.03258480102579557, 0.09096085908673467, 0.0, 0.0, 0.15530131741375458, 0.4726591715297998, 0.7751806988017736, 0.0, 0.51208607063286, 0.0, 0.0, 0.8142774797804637, 0.037795557638802935, 0.0, 0.03542525158598919, 0.07905092197782795, 0.0, 0.0, 0.1322231578644953, 0.0, 0.0, 0.008286484320060336, 0.670492082894006, 0.0, 0.0, 0.2274177128809876, 0.20430769763068007, 0.27374263149272277, 0.0, 0.0, 0.0, 0.0, 0.22105379716709922, 0.08605636125516496, 0.023058224273634728, 0.03343036365050954, 0.7905997431838073, 0.031091378094046798, 0.32331562706461314, 0.0, 0.048595513480849374, 0.0, 0.6695135011372569, 0.01079155413526415, 0.7675661133629853, 0.01950494389053299, 0.0, 0.06609079415505228, 0.15915608286937477, 0.0, 0.17610090955799163, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05278940542005462, 0.0, 0.04363140001862599, 0.3747258422202424, 0.18235409289517635]), 42), 42)),) +(CR = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.24622058278177836, 0.0, 0.0, 0.1261597862603059, 0.07342085928314178, 0.12871077894157168, 0.0, 0.0, 0.8034179790657067, 0.0, 0.0, 0.056025142012607894, 1.0596276779513034, 0.0, 0.12141212330168466, 0.0, 0.5574009533856183, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3327944495595785, 0.0, 0.8694342868598712, 0.0, 0.7416396915765561, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7569986463219165, 0.05683836078786318, 0.0, 0.0, 0.8725529080345216, 0.0, 0.2047777547094641, 0.5614660149749067, 0.0, 0.0, 0.36223551246779223, 0.0, 0.0, 0.0, 0.22107392894943306, 0.0, 0.0, 0.0, 0.3259321271119929, 0.5055955427859341, 0.27515457195781157, 0.4169876847813729, 0.018631329176858533, 0.3876953885710935, 0.0, 0.021531556327917045, 0.0, 0.0, 0.28223766305057085, 0.48287552686851865, 0.0, 0.0, 0.10175887870070799, 0.0, 0.0, 0.0, 0.06032870137556734, 0.018726053338837593, 0.045366945649236726, 0.0, 0.0, 0.0, 0.5790914418316278, 0.6815353846022115, 0.0, 0.1332216207413034, 0.0, 0.04017082185996856, 0.0, 0.0, 0.0, 0.0, 0.03484741576880692, 0.893850322287328, 0.4479341395605485, 0.5025126461241762, 0.1987665376735214, 0.31067608319719825, 0.0, 0.0, 0.0, 0.46442597522784795, 0.0, 0.0, 0.4431570212945692, 0.0, 0.0, 0.5121406140989466, 0.0, 0.49477960883115907, 0.0, 0.0, 0.0, 0.0, 0.47025922462023484, 0.3616621631765011, 0.5907253850051586, 0.0, 0.0, 0.44541009068477694, 0.03445733103321199, 0.0, 0.02309502433018302, 0.0, 0.03777890472311954, 0.16345317623186756, 0.16813336048226513, 0.0, 0.0, 0.09235605661534649, 0.0, 0.0, 0.01896246145159963, 0.02753978144349941, 0.0, 0.0, 0.0, 0.30135789429977294, 0.6764584765695312, 0.0, 0.0, 0.3151319553463997, 0.0, 0.04554105431298512, 0.0, 0.08378021558986462, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09849622821166114, 0.0, 0.25488776315346307, 0.0, 0.2781851808227525, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2839462446541717, 0.00854309647598918, 0.0, 0.0, 0.3272900456325508, 0.10375527349591217, 0.8492672297194694, 0.0, 0.5876718077641173, 0.03093892983747342, 0.0, 0.0, 0.0, 0.3385535490482335, 0.0, 0.0, 0.0, 0.29218416128587404, 0.0, 0.6966394562456512, 0.0, 0.0, 0.0, 0.522006486105503, 0.0, 0.0, 0.0, 0.11065330711314218, 0.0, 0.23311787887979893, 0.0, 0.31252070060750486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06134998798063221, 0.0, 0.0, 0.3657519298489218, 0.31899283438369924, 0.0, 0.0, 0.0, 0.3676864240590821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0010478172394749591, 0.5287716819761857, 0.0, 0.3903081303690744, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0017717866111426558, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5892681933608603, 0.002977075804572329, 0.0, 0.0, 0.0, 0.0, 0.43072916849878135, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.045384364903179854, 0.0, 0.0, 0.0018618199412216315, 0.0, 0.17111256306326456, 0.2672837889083413, 0.0, 0.0, 0.19576072012760673, 0.5948736598005219, 0.08413627091493711, 0.7573648130796338, 0.0, 0.0, 0.0, 0.0, 0.0, 0.33101786250771764, 0.16289357736810944, 0.16515314938780928, 0.0, 0.0, 0.0, 0.0, 0.0, 0.662932866371622, 0.6905568008213746, 0.0, 0.0, 0.0, 0.0, 0.4845748090935882, 0.061923683856559844, 0.0, 0.028719251839850298, 0.0, 0.02009827057946138, 0.0, 0.0, 0.0, 0.11124419756806017, 0.4147463454400596, 0.0, 0.0, 0.34783853396429565, 0.0, 0.09260170356894369, 0.0, 0.0, 0.0, 1.1401462738363544, 0.915922599074042, 0.0, 0.0, 0.0, 0.0, 0.6274522680730893, 0.0, 0.3139030754242789, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3751134192842195, 0.0, 1.257728265907189, 0.0, 0.35074493350028346, 0.268137845429166, 0.0, 0.0, 0.0, 0.0, 0.0, 0.016899841379555174, 0.7155448975358032, 0.1680074523773585, 0.0, 0.0, 0.30581125296894957, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9366277987154731, 0.0, 0.0, 0.0, 0.0, 0.07522986257761975, 0.06328419096078892, 0.0, 0.02479071082883737, 0.0, 0.7915629916935427, 0.031935353301522654, 0.0, 0.0, 0.070458258165472, 0.0, 0.0, 0.0, 0.0, 0.052737602183104026, 0.0, 0.013647273418699125, 0.3169788666986562, 0.17235734856254364, 0.0, 0.0, 0.0, 0.0661528775144355, 0.0, 0.027308490724219276, 0.0, 0.0, 0.0, 0.7971915175033586, 0.0, 0.5343175730821937, 0.0, 0.8740381649643706, 0.04598025590229294, 0.029012248678093225, 0.0, 0.0, 0.11141095490761138, 0.0, 0.0, 0.13001430753376275, 0.0, 0.0, 0.0, 0.22549966134722088, 0.0, 0.0, 0.0, 0.3726692665495664, 0.3774382964295704, 0.20411971872540274, 0.06057654493015839, 0.0, 0.5744310538348768, 0.0, 0.0, 0.6232315714035893, 0.0, 0.5072896743166587, 0.0, 0.005553340050755054, 0.5689868928162961, 0.06836125145830099, 0.0, 0.0, 0.49734376521104756, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27904969776436467, 0.0, 0.7814242677772039, 0.5117851675292832, 0.0, 0.0, 0.04886194301383263, 0.0, 0.3067365939854962, 0.0, 0.0, 0.4115088709036164, 1.405104579225751, 0.42840174089528493, 0.48760195358213543, 0.0, 0.0, 0.663844265848651, 0.0, 0.38778436442248837, 0.7776635401136125, 0.15032072106029123, 0.18953081567758903, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7044650329571657, 0.7235946500790119, 0.12987194286479317, 0.19647866132545186, 0.45582545423087456, 0.0, 0.0, 0.0, 0.032958397990191235, 0.0, 0.0, 0.7570462349991403, 0.0941136312544236, 0.0, 0.1276645560961348, 0.0, 0.0, 0.0, 0.755417985546979, 0.8458204729185679, 0.12543050025210123, 0.006393660363144921, 0.0, 0.0, 0.28926738179087036, 0.0, 0.0, 0.4731345211962404, 0.0, 0.7203970460167203, 0.0, 0.0, 0.0, 0.4891311717243447, 0.0031333060836164625, 0.003950606766695812, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8250852706661534, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1940012409565178, 0.0, 0.7255195358366966, 0.0, 0.4862794311033925, 0.0, 0.7981182971725221, 0.0, 0.26385403496014914, 0.0, 0.5139863704027979, 0.35381636124647037, 0.06016159688024159, 0.0, 0.0, 0.0, 0.07675121814682248, 0.0, 0.0, 0.12553662505708466, 0.0, 0.301350309711505, 0.0, 0.0, 0.0, 0.12978101101826656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2180668401971053, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09272141980768678, 0.0, 0.3034931056908601, 0.0, 0.203416238280828, 0.0, 0.33274884560755447, 0.0, 0.12655518438173288, 0.0, 0.13637583261219158, 0.0, 0.0, 0.0, 0.0, 0.020115042222633606, 0.0, 0.11478942012015081, 0.0, 0.044967175485766994, 0.0, 0.27969782401606164, 0.1383242818414881, 0.0, 0.0, 0.18685369035983804, 0.0, 0.06810955828519266, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17579267922314348, 0.0, 0.0, 0.11999285025017485, 0.0, 0.0, 0.14209169595972287, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11399414163060874, 0.019825113051252268, 0.0, 0.049971986914216976, 0.07235420154739257, 0.0, 0.0, 0.08331368376199759, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07280640355864025, 0.0, 0.0, 0.35152520960031586, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13676901662991092, 0.0, 0.0, 0.0, 0.015204774707799058, 0.0, 0.0, 0.0, 0.0, 0.5304031136005922, 0.0, 0.0, 0.0, 0.32819195551919517, 0.1622165373359131, 0.0, 0.0, 0.0, 0.1321652778478459, 0.0, 0.0, 0.2161735452720934, 0.0, 0.27952564740678887, 0.0, 0.0, 0.0, 0.22348236021207268, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.375510190195534, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2500091160813631, 0.0, 0.2815132558946093, 0.0, 0.18868424509978618, 0.0, 0.30865021038590384, 0.0, 0.341236683480638, 0.0, 0.23483861551802387, 0.0, 0.0, 0.0, 0.12117745385937667, 0.0, 0.0, 0.3973467888918919, 0.0, 0.2920101397985984, 0.0, 0.12988448302264086, 0.0, 0.3517844506342411, 0.0, 0.0, 0.0, 0.6519761543079575, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4428070420734244, 0.0, 0.3964317892338393, 0.0, 0.0, 0.0, 0.3236724995283946, 0.0, 0.0567229736921611, 0.0, 0.0, 0.0, 0.25146743826064083, 0.0, 0.0, 0.011207888208677623, 0.08869787998517195, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0436070974131627, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05218480148875932, 0.0, 0.0, 0.0, 0.28668060177386556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16806127510824798, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1010038649276795, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24411150965510042, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3252831829639798, 0.0, 0.13696611429551586, 0.0, 0.08809099936621054, 0.0, 0.0, 0.0, 0.5834039633369968, 0.2573783852497724, 0.0, 0.34353142253711105, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8226681209013311, 0.43635481618924155, 0.0, 0.21222851603946533, 0.0, 0.6640973088333184, 0.0, 0.1716321278580885, 0.7312656094018032, 0.46618173092618587, 0.7638215749927391, 0.5281765059497923, 0.012259008816529623, 0.9144713112403178, 0.0, 0.0, 0.0, 0.0, 0.7953741970864907, 0.0, 0.0, 0.5850872742568098, 0.0, 0.0, 0.0, 0.7307808207285703, 0.0, 0.6199309753815017, 0.37291372178799176, 0.0, 0.0, 0.22356724549482568, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3221254739496775, 0.11781870844111127, 0.04460774210115785, 0.7133319766560491, 0.17115949268039302, 0.47397294440775345, 0.0, 0.10101149129956093, 0.11755718548933392, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.057090584067732354, 0.6447844891876003, 0.0, 0.0, 0.033829519264607456, 0.0, 0.1190337187097033, 0.30523421948716617, 0.0, 0.0, 0.0, 0.0, 0.6213057774307251, 0.842768502451811, 0.0, 0.3906048759812801, 0.7719833104847825, 0.41168363040706235, 0.1712307445975339, 0.0, 0.05992936357237096, 0.04890539039186202, 0.0, 0.0, 0.012380496199171342, 0.0, 0.2674194407541521, 0.0, 0.0014443996714777229, 0.0, 0.16387003646802972, 0.0, 0.0, 0.03594122433913304, 0.24159569520366886, 0.3747703785250739, 0.0, 0.054699683547073226, 0.0, 0.2873774296478163, 0.0, 0.0, 0.0, 0.14956132991470428, 0.0, 0.3888645476970781, 0.0, 0.0, 0.07542830239130101, 0.07080076609705026, 0.0, 0.0, 0.0, 0.0, 0.09852911382155678, 0.19548481725379033, 0.0, 0.0, 0.4350977845419587, 0.00557774494203208, 0.0, 0.09874991570897035, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6034262468294622, 0.2713368059843151, 0.6497013107648627, 0.0, 0.8007029601130917, 0.0, 0.0, 0.0, 0.0, 0.01616961592030159, 0.0, 0.0, 0.0, 0.0, 0.2502876057454169, 0.49212467358206446, 0.2134864810859512, 0.1765833209669342, 0.0, 0.0, 0.0, 0.5401972297237567, 0.03318857704329382, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12219566143679067, 0.0, 0.04829725298673487, 0.0, 0.0, 0.0, 0.0, 0.0, 1.2356793204214815, 0.02263120223723859, 0.7256596881722004, 0.3263003275955702, 0.7654157892976137, 0.08145618747845872, 0.6387218661983024, 0.0, 0.5276231408957645, 0.8184646008092085, 0.0, 0.0, 0.0, 0.6276063069977658, 0.0, 0.6132063830791735, 0.006204111701464058, 0.18851722870999638, 0.375149258411478, 0.7816851453263511, 0.0, 0.587776400734769, 0.16472858834087942, 1.1016458158754883, 0.1459604994495737, 0.0, 0.0, 0.0, 0.037075917094288376, 0.0, 0.2815459504132854, 0.2536212145780303, 0.559150690052304, 0.48027689889482117, 0.0, 0.21566088189458643, 0.058080618345779114, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008439821738835876, 0.0, 0.36408664087256903, 0.0, 0.16156000319694572, 0.22471190561828702, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10732980278519261, 0.0, 0.0, 0.12403718878006863, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27901056312251676, 0.4801492052284416, 0.0, 0.0, 0.10787548181472921, 0.0, 0.0, 0.0, 0.15654727928350437, 0.0, 0.13104284110293218, 0.13666096202593647, 0.0, 0.0, 0.0, 0.07276575816635268, 0.0, 0.0, 0.0, 0.0, 0.6100450928472326, 0.0, 0.0, 0.0, 0.4238237484103886, 0.9941317988293357, 0.0, 0.0, 0.0, 0.0, 0.3355479309040112, 0.0, 0.0, 0.0, 0.0, 0.5350029094771915, 0.0, 0.008586567333100323, 1.1385513331902584, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1850917274468032, 0.0, 0.0, 0.06716099014107918, 1.1525784735402484, 0.0, 0.0, 0.036572260841491885, 0.0, 0.26119964749940466, 0.0, 0.0, 0.8459335464772313, 0.0, 0.0, 0.0, 0.0, 0.38438887602945404, 0.0, 0.0, 0.0, 0.0, 0.7204933523373307, 0.0, 0.0, 0.16060697060474402, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7112792652633437, 0.0, 0.935521710131386, 0.26536974069831215, 0.2935825392525973, 0.0, 0.0, 0.13719141489981915, 0.0, 0.10324823792839577, 0.0, 0.0, 0.0, 0.7256165269576538, 0.0, 0.48634443939716193, 0.0, 0.7955635800994527, 0.1927019559074891, 0.0, 0.0, 0.7058981437597585, 0.0, 0.5236895266156559, 0.0, 0.08128104063747256, 0.0, 0.0, 0.0, 0.5731212091054763, 0.0, 0.0, 0.0419831484236368, 0.11625926299639212, 0.0, 0.0, 0.08927614896350113, 0.217346651106267, 0.13128361330254273, 0.0, 0.07219885291348893, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4218130442222412, 0.0, 0.0, 0.0, 0.0, 0.1699892215644571, 0.0, 0.14639742856012483, 0.0, 0.0, 0.04200062557179813, 0.0, 0.0, 0.0, 0.31146013043119736, 0.0, 0.0, 0.0, 0.24384030368566587, 0.9260558729858251, 0.4296955936776912, 0.0, 0.0, 0.0, 0.73790516731229, 0.0, 0.0, 0.0, 0.16295488074282302, 0.26550524353964333, 0.0, 0.0, 0.0, 0.31144107126852844, 0.0, 0.485858439126786, 0.0, 0.6914937323909329, 0.0, 0.0, 0.0, 0.0, 0.3162528337434342, 0.0, 0.0, 0.0, 0.0, 1.5785215576611167, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5161924043112004, 0.0, 0.0, 0.2568302026164213, 0.0, 0.3023415151909343, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5030068615133427, 0.0, 0.0, 0.0, 0.2741080207900236, 0.17120972783029909, 0.0, 0.0, 0.0, 0.0, 0.43685119598979993, 0.02712666041421048, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2451085199735546, 0.0, 0.1576437689621315, 0.0, 0.0, 0.0, 0.6857487349281931, 0.05917052173435364, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6537568461306704, 0.0, 0.0, 0.5395442735782994, 0.05374109131453472, 0.0, 0.5917732326059808, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0008206716541601089, 0.19818937147807536, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.535053682582317, 0.0, 0.3513819151899916, 0.04333888481337121, 0.5747915094439204, 0.19540689526232177, 0.01899860952318465, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06595709778063945, 0.0, 0.08799217533170228, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03735300199555871, 0.19147688509049948, 0.0, 0.0, 0.0, 0.2914125830050192, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04799459307428656, 0.0, 0.16480769798416883, 0.0, 0.0, 0.0, 0.04840048223798238, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.027156548216558336, 0.0, 0.047181418535814645, 0.0, 0.0, 0.0, 0.0, 0.35341760898781915, 0.5999981948389704, 0.024572219243726254, 0.0, 0.0, 0.08667332426569417, 0.4875808312926843, 0.06369622265280388, 0.0, 0.0, 0.0, 0.07133443039288194, 0.0, 0.0, 0.47894471690358564, 0.4793008357816607, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09658957720985865, 0.3016070141903076, 0.061398864173637636, 0.0, 0.0, 0.0, 0.07060273869520314, 0.35885594789448355, 0.0, 0.06446892769447045, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2497207855356876, 0.018509596151814908, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2926774045716465, 0.0, 0.013651758929637155, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03597721563910695, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07068090962707653, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03642909404914556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2749443358980585, 0.0, 0.0, 0.0, 0.0, 0.5096842842109697, 0.0, 0.0, 0.0, 0.028086239659725638, 0.7421154878137212, 0.0, 0.48123810905471315, 0.0, 0.3067030382176026, 0.6866619523091189, 0.0008295150087239233, 0.5016528107597976, 0.0, 0.08848804808651539, 1.3805931747462472, 0.0, 0.0, 1.04718815925786, 0.0, 0.0, 0.0, 0.42746548493362363, 0.0, 0.5817357352379013, 0.8450882691967682, 0.41665385220387907, 1.0915687546509307, 1.108964330219497, 0.0, 0.0, 0.0, 0.04066069749695377, 0.032733248007639555, 0.0, 0.0, 0.0, 0.07163077100441487, 0.6487063582321942, 0.0, 0.2995103130321618, 0.10283702762113958, 0.33384701220391544, 0.41258982728857174, 0.0, 0.5449670143554067, 0.0, 0.3217489265559145, 0.0, 0.0, 0.0, 0.2849908553676538, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.01610871320352385, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2570528176713379, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2969662795916102, 0.0, 0.12312876081315716, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09075655657480966, 0.0, 0.3633373647258237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06617087939273322, 0.0, 0.0, 0.0, 0.00923594008230594, 0.17805875048711786, 0.22450411347361834, 0.0, 0.0, 0.09502241267674551, 0.0, 0.024589605765570302, 0.0, 0.1826423790293924, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039040067948029694, 0.0, 0.06664139722445166, 0.0, 0.04466639301844483, 0.0, 0.22428735118617732, 0.08284705163804024, 0.05227416022819031, 0.0, 0.19522102914015915, 0.8685310451611696, 0.0, 0.0, 0.0, 0.0, 0.8702352191794189, 0.0, 0.0, 0.15684527219370442, 0.0, 0.9243788213991903, 0.22207735215974056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.40507055158794986, 0.30718446392066534, 0.0, 0.46812545232304087, 0.0, 0.5780009938921578, 0.18279458657604497, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02896217836710352, 0.0, 0.0, 0.40712998428742797, 0.7449999863100496, 0.0, 0.49933620201845186, 0.0, 0.8168155413547457, 0.11457346224809285, 0.0, 0.0, 0.0, 0.15332753334456128, 0.11864376215788304, 0.0, 0.0, 0.04572095120049149, 0.0, 0.0, 0.31683394463012315, 0.5003078767139268, 0.14059206617597214, 0.19554784897288408, 0.0, 0.43178409369310355, 0.0, 0.07560627618395319, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16352131380333873, 0.0, 0.34449708571742155, 0.0, 0.4618370375665847, 0.0, 0.0, 0.41783342102021986, 0.0, 0.0, 0.0, 0.02165252564332241, 0.0, 0.0, 0.0, 0.47140143149032104, 0.39181349979635294, 0.11892452733738064, 0.0, 0.5433598750764469, 0.0, 0.0, 0.0, 0.07266999506080335, 0.0, 0.6735755940113932, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0041630866962457744, 0.2109647750127205, 0.0, 0.0, 0.0, 0.3715024914369038, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1845463840294256, 0.0, 0.6075440706050301, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29101469974401967, 0.0, 0.0, 0.032739778024003775, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4875593392929034, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20371408580482323, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0439075644510851, 0.0, 0.5496827874572944, 0.40327797474842975, 0.37238046622077875, 0.0, 0.0, 0.17401376516444506, 0.0, 0.11278871866256229, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15394336215607962, 0.0, 0.0, 0.0]), 42), 42)),) julia> @finch_code begin Ct .= 0 for i = parallel(_) @@ -246,7 +246,7 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.01855804465451247, 0.0, 0.0, 0.03641425883740431, 0.0568080930379847, 0.10109716846875504, 0.0, 0.0, 0.0, 0.0, 0.005424838537552436, 0.0, 0.0, 0.5251896042062963, 0.0, 0.0, 0.0, 0.00515342598991506, 0.045980273053842245, 0.0, 0.4033688458623361, 0.0510673466163073, 0.0, 0.0, 0.02134197385615031, 0.01687808266981965, 0.0, 0.4932447371732914, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7178045198025068, 0.2106682695954306, 0.0, 0.3115118572371521, 0.5170963380295581, 0.39595498771521426, 0.1432663403816299, 0.5698542189659496, 0.0, 0.0, 0.0, 0.5317966816929195, 0.0, 0.5315818882594147, 0.8168445783005969, 0.0, 0.0, 0.0, 0.01222733860627223, 0.0, 0.716756885645577, 0.0, 0.8217284580618865, 0.48234209517721377, 0.15545502627894098, 0.04826321760798536, 0.0, 0.0, 0.1394038038151463, 0.0, 0.056802678199824076, 0.0, 0.0, 0.0, 0.3128541399180126, 0.0, 0.0, 0.596593418834028, 0.0, 0.2846892571697076, 0.0, 0.0, 0.0, 0.23365792107187477, 0.0, 0.0, 0.4584793374366712, 0.7152510496888798, 0.0, 0.0, 0.0, 0.8190896825195866, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11127793558853107, 0.0, 0.5789217135796446, 0.0, 0.0, 0.6429712972008511, 0.0, 0.0, 0.661506988212563, 0.7629272979371657, 0.0, 0.4234710523361336, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4257443064600869, 0.0, 0.20425497460318195, 0.0, 0.5184318202957809, 0.5906121758765186, 0.0, 0.9091367634018797, 0.0, 0.30652125262867885, 0.0, 0.7954054080966687, 0.0, 0.0, 0.0, 1.0559083316811368, 0.0, 0.04427154393293609, 0.8228955354751877, 0.46658038808648383, 0.0, 0.02688606839966265, 0.0, 0.0, 0.6276611460113729, 0.22522673327345408, 0.0, 0.12308651028821192, 0.3657688390111318, 0.0, 0.046115245088609334, 0.0, 0.5342436705087195, 0.0, 0.1923886832463953, 0.07621763959827882, 0.0, 0.0, 0.0, 0.6725528112574624, 0.7483589153917343, 0.0, 0.0, 0.0, 0.0, 0.38949567271561986, 0.16492548861911044, 0.10519585180914466, 0.8853743380662012, 0.957787822214843, 0.0, 0.05459549529270359, 0.25656057396140347, 0.14167223917141744, 0.03949155262056029, 0.0, 0.0, 0.2703834370419471, 0.0, 0.723362221877522, 0.0, 0.0, 0.0, 0.7883757417725614, 0.0, 0.03340589062163017, 0.18896261922152233, 0.0, 0.0, 0.8122657251866786, 0.029607718570353176, 0.0, 0.008213735995679807, 0.0, 0.08605746445745502, 0.0, 0.3070376563830936, 0.10398717208817806, 0.0, 0.0, 0.0, 0.383984202548332, 0.0, 0.0, 0.3036396360576457, 0.0, 0.0, 0.0, 0.0, 0.11965354383371518, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04825455862354496, 0.3335108938296942, 0.0, 0.0, 0.0, 0.0, 0.04121745447265487, 0.30594446336043757, 0.0, 0.33550494159326405, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029116195807012437, 0.0, 0.0, 0.0, 0.0, 0.0, 0.020041236855252602, 0.0, 0.4850188795993097, 0.0, 0.16403823255879735, 0.0, 0.60023572778736, 0.0, 0.1787344157826609, 0.0, 0.0, 0.17233073276918714, 0.17532212882841147, 0.6209016656456683, 0.5984929062073807, 0.8843163905991084, 0.3337919143714591, 0.0, 1.0919707374354302, 0.8166713304287454, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8330317657834686, 0.27201200741148646, 0.0, 0.8995473587201992, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6388227016456749, 0.0, 0.3682672817259989, 0.0, 0.5422113050459496, 0.0, 0.028602469161704683, 0.0, 0.0, 0.3611222515381231, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.031337192831751, 0.0, 0.0, 0.7687924758178234, 0.012617011188267763, 0.0, 0.0, 0.37315715294884366, 0.0, 0.0, 0.0, 0.0, 0.6888779809403613, 0.121001715761302, 0.0, 0.0, 0.3680175749172942, 0.47420475938210593, 0.0, 0.7604201795169553, 0.0, 0.11917670920609563, 0.0, 0.20848198246903302, 0.24926285864223433, 0.0, 0.5553692000145817, 0.4169252107806106, 0.16597755096800731, 0.7334771026528798, 0.0, 0.0, 0.09908991746260937, 0.0, 0.14652270264303283, 0.006759647910977647, 0.0, 0.9351545954529237, 1.2960299208884896, 0.0, 0.0, 0.21191619141709428, 0.0, 0.0, 0.0, 0.01204540426582532, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06493914883934329, 0.7726981572397796, 0.0, 0.4370686273737238, 0.1778273534538074, 0.055209023869020324, 0.0, 0.0, 0.0, 0.05709969797354255, 0.0, 0.0, 0.0, 0.0, 0.44808598581285264, 0.0, 0.0, 0.0, 0.21141909545938053, 0.13390642572615394, 0.0, 0.0, 0.0, 0.25844994675864025, 0.0, 0.51617125876173, 0.2544268105667549, 0.0, 0.17576058376064335, 0.29087109088619356, 0.0, 0.0, 0.3286889977164017, 0.0, 0.0644707079973061, 0.0, 0.018682819036845075, 0.008522941045952347, 0.0, 0.0, 0.2520720928277996, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.146066293561638, 0.08856351358209161, 0.0, 0.0, 0.0, 0.1407746062228793, 0.5246446552397386, 0.0, 0.0, 0.0, 0.3279179855015388, 0.46137944574560436, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14330339619658897, 0.11500988018505275, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7444467047874328, 0.0, 0.0, 0.40713437972280675, 0.0, 0.0, 0.0, 0.5717679971406524, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4877440937322302, 0.6991654372087778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2369682176872117, 0.0, 0.0, 0.6757556051622259, 0.0, 0.0, 0.0, 0.576368321209737, 0.04986303698751877, 0.0, 0.5384684335273707, 0.0, 0.21524971756673417, 0.4963922980972075, 0.0, 0.0, 0.0, 0.0, 0.18940210229325644, 0.5277692784584271, 0.7718932464687741, 0.7210929692294604, 0.0, 0.0, 0.0, 0.0, 0.48286176484120297, 0.8517937989915767, 0.3931693184679991, 0.0, 0.0, 0.06755455710060922, 0.0, 0.026695131792948763, 1.4844324548606433, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4524914530619723, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4694831016582333, 0.0, 0.42831526212260856, 0.6074590079807168, 0.30066361967157035, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6129938591206631, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6008436638333436, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.43882326364474644, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8591062832739853, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6928708028466394, 0.2819039698547807, 0.08752108546971657, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05246236611269018, 0.0, 0.0, 0.5428804251437249, 0.022819504909203123, 0.3729965675892053, 0.0, 0.5741583158437262, 0.0, 0.1935811346150516, 0.0, 0.5023321549740235, 0.2611826745866744, 0.0, 0.056899028261467276, 0.37961815387770637, 0.22527271986010186, 0.05171423855571594, 0.058968538904135746, 0.0, 0.02892983665470066, 0.003313037290954743, 0.0, 0.0, 0.15785301822506514, 0.0, 0.0, 0.07773433689527456, 0.1049811110510813, 0.0, 0.02912372760696772, 0.0, 0.3114315285072337, 0.5703037753007745, 0.0, 0.04813466284828647, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02241933195791073, 0.0, 0.0, 0.0, 0.0, 0.23199999736075347, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1927795141790272, 0.2407119020891451, 0.0, 0.21960445663579467, 0.5770903406753464, 0.15415530724008072, 0.23155572792080611, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3142922871488459, 0.0, 0.0, 0.0, 0.0, 0.3042889785067072, 0.0, 0.5129566600174419, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3746354155106774, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4789154917746846, 0.17517544375428362, 0.0, 0.0, 0.0, 0.2637662382252967, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2102700997979013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.126545263019808, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.332133943612647, 0.0, 0.0, 0.0, 0.06184093060913505, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3212574037659458, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24673989573277713, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3017167941185386, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6233354196759152, 0.0, 0.0, 0.0, 0.5447611694646652, 0.0, 0.0, 0.216176776357065, 0.0, 0.19855221622967104, 0.8686764576101142, 0.16350923987929902, 0.0, 0.0, 0.02334951098786776, 0.17107621812888604, 0.48682879160279025, 0.7109808359466632, 0.6651558420918936, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6192268761337199, 0.31206921876898447, 0.0, 0.0, 0.24595989001208304, 0.11068536977374843, 0.0, 0.6618395820988949, 0.11362642836904417, 0.0, 0.0, 0.23765422406147768, 0.0, 0.0, 0.8073352785417658, 0.0, 0.0, 0.48485062583878286, 1.055137179889336, 0.2671063045394923, 0.0, 0.8476204266733893, 0.473385026956602, 0.5030912229948215, 0.0, 0.0, 0.0, 0.17678971866264329, 0.4076988147485064, 0.0, 0.6776909084507561, 0.13779930009477406, 0.5691281649873949, 0.16622169517158358, 0.433469475882236, 0.818379113845578, 0.9106844436778354, 0.0, 0.499393081506665, 0.0, 0.5725309586159512, 0.6160013948015824, 0.5125607980557373, 0.2778645861379971, 0.0, 0.0, 0.0, 0.0, 0.0, 0.58929804834674, 0.0, 0.8046233984476477, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3967677816937078, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11707526901952116, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.383435421983313, 0.11707115655719894, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07864429232511502, 0.0, 0.0, 0.3002587300128159, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2266804769859352, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24215921984980293, 0.09852579316681935, 0.030588729804574537, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18874358875246125, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3978422171614565, 0.1936032919321414, 0.0, 0.0, 0.2542147176776134, 0.0, 0.0, 0.0, 0.11057553114503467, 0.0, 6.012518808232222e-5, 0.0008825884581384356, 0.6460696181307314, 0.0, 0.0, 0.06879188140017427, 0.0, 0.0, 0.04716298956935701, 0.1540138997690347, 0.1854894997474166, 0.003124358567077274, 0.35109153378778224, 0.0, 0.0, 0.016293742009993128, 0.0, 0.0, 0.3747805868672189, 0.025859295570033313, 0.214029422856965, 0.003742959361061961, 0.0002933458280023473, 0.0, 0.0, 0.0, 0.030501494612752977, 0.0, 0.6996784734474946, 0.0, 0.0, 0.05616866413207192, 0.0, 0.0018184995370819535, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.020171782722387992, 0.0, 0.0, 0.33279196588498333, 0.0, 0.0, 0.6323890570808377, 0.0, 0.0, 0.0, 0.03594525644730097, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004527887543653786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17039388977135247, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6309056496928738, 0.0, 0.0, 0.0, 0.0, 0.260280820884557, 0.0, 0.0, 0.5107183088816271, 0.7967464980324664, 0.14485492608681305, 0.0, 0.009558078807310686, 0.754701551784825, 0.0, 0.0, 0.0, 0.0, 0.7598764239846039, 0.0, 0.029177780358136646, 0.10253044625069853, 0.03763219091970284, 0.8115624154017409, 0.0, 0.5779584654853126, 0.7162312164421211, 0.0, 0.0, 0.9107472399622886, 0.7029540573396418, 0.0, 1.0969174796040306, 0.0, 0.0, 0.0, 0.0, 0.0038591832437520454, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15366266383288085, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.558080611304664, 0.0, 0.0, 0.0, 0.0, 0.30736701150515244, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04311886842935436, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32751189175201845, 0.0, 0.20963216887545572, 0.1760259950046517, 0.0, 0.23753864749234863, 0.24093292162050975, 0.024684548149881243, 0.4936183719527589, 0.7064246796060082, 0.0, 0.06677453327599289, 0.8542035190842152, 0.0, 0.025534429812218047, 0.011379900282647532, 0.039800411165778926, 0.013727111201321645, 0.27843394547131894, 0.24161261590501448, 0.2499939278392831, 0.0, 0.0, 0.3450248607837782, 0.0, 0.0, 0.15272914557490577, 0.10495111476871369, 0.0, 0.0, 0.0, 0.18866875753074405, 0.0, 0.2225813946448797, 0.0, 0.0, 0.3661590836002555, 0.0, 0.0, 0.0, 0.8998957690359772, 0.30889178773893766, 0.6078813570942335, 0.0, 0.6840699471933163, 0.0, 0.0, 0.0, 0.36308986165522683, 0.752528074611531, 0.7191770460546526, 0.49508503625401296, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7784554319844289, 0.16352298326175332, 0.0, 0.042948548224867954, 0.375190336410357, 0.0, 0.6830715485727474, 0.6403864588932121, 0.7831097846364896, 0.46112164648188003, 0.14556009485746954, 0.0, 0.0, 0.0, 0.8585580212631712, 0.0, 0.253359163441029, 0.0, 0.0, 0.0, 0.45902026051340783, 0.0, 0.0, 0.0, 0.0, 0.166881895984427, 0.0, 0.0, 0.837727301005, 0.0, 0.0, 0.7629510291223568, 0.0, 0.34201996071392393, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3670598185817387, 0.0, 0.9533138689466589, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8365046398061449, 0.0, 0.9590136929209965, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.801491142663501, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16957493050977235, 0.0, 0.2507477829737011, 0.0, 0.0, 0.11532054524043628, 0.07735685692161769, 0.5247858743947099, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02100484631395434, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8201592179395716, 0.0, 0.0, 0.04562437343117348, 0.0, 0.22915724847477928, 0.0, 0.0, 0.7159205767218768, 0.0, 0.0, 0.0, 0.0, 0.29228977882295926, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17928588753235497, 0.10348218971035608, 0.8147006956016374, 0.08438351505236888, 0.0, 0.0, 0.0, 0.1070859593707194, 0.7148756921758321, 0.0, 0.8195717571774336, 0.12249576952187838, 0.0, 0.2397374334824377, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05225556550152024, 0.0, 0.0, 0.0, 0.1707240047839942, 0.0, 0.11920584928810601, 0.0, 0.14514911616615112, 0.4284534617057244, 0.04403067305952579, 0.0, 0.012688229227290206, 0.3654383338493288, 0.04642776495318284, 0.0, 0.0, 0.31371261026073766, 0.1364760956744218, 0.5008825042361101, 0.0, 0.04802625911306818, 0.021403808257108425, 0.0, 0.12191697007589085, 0.33632693219045084, 0.49073784844916374, 0.5066599946239788, 0.0, 0.0, 0.033354950181247504, 0.0, 0.15690710970564234, 0.3397139005999492, 0.4535410643500978, 0.0, 0.0, 0.49050280987387757, 0.0, 0.0, 0.45491953624514714, 0.0, 0.0, 0.33864218894794285, 0.0, 0.0, 0.041024172335819876, 0.0, 0.0, 0.0, 0.36175943329836924, 0.0, 0.39749358702806525, 0.0, 0.5595492530984049, 0.0, 0.0, 0.2573403608635483, 0.17262354625512744, 0.0, 0.0, 0.0, 0.3776391490751126, 0.0, 0.0, 0.1445911005474468, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.45961437114556436, 0.08073146338811468, 0.0, 0.0, 0.0, 0.5680662673212686, 0.0, 0.14301647595845865, 0.4278925860448857, 0.2624303541096862, 0.0, 0.5619603114708978, 0.5488835922357254, 0.0, 0.10445139145624531, 0.9180806504163392, 0.5113694952971799, 0.0, 0.4737323723594051, 0.4474251824766889, 0.10616343839228443, 0.0, 0.02745363380188561, 0.0, 0.28312699798757224, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6983886824821985, 0.38943652344243257, 1.2223890565530993, 0.05586381199212052, 0.0, 0.07686093310040262, 0.10701921729681718, 0.0, 0.4467721663826107, 0.0, 0.5122035249872549, 1.008045581843232, 0.10571972464185753, 0.6235175832869809, 0.0, 0.0, 0.0, 0.0, 0.7054625658357997, 0.0, 0.0, 0.17326833225856653, 0.0, 0.0, 0.0, 1.0813156328128786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0927477810868, 0.0, 0.599657110852462, 0.22383250773975968, 0.19685563542122056, 0.0, 0.05605157239206448, 0.41837305013296433, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18996852120778085, 0.0, 0.28856245320282303, 0.0, 0.0, 0.0, 0.26772611418599673, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1616947156362974, 0.0, 0.0, 0.0, 0.0, 0.36168541397352055, 0.0, 0.0, 0.0, 0.1573219565054934, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13761515434984456, 0.07943022011077468, 0.0, 0.21912413885604493, 0.0, 0.0, 0.40654019224262405, 0.0, 0.0, 0.022840701875983912, 0.0, 0.09402454628178203, 0.5332211799090736, 0.14433851006651358, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.043396172364084024, 0.04011000425692938, 0.0, 0.0, 0.0, 0.13104327726482687, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10232284486723907, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10523174379677519, 0.0, 0.10079612361252216, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04415728315159431, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11805369977437472, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6523402818477722, 0.04871612610613401, 0.0, 0.19287524873967893, 0.0, 0.3592812200503388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.050401634126662875, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8285325211040351, 0.0, 0.0, 0.0, 0.42701794948426475, 0.33826599655789313, 0.0, 0.0, 0.0063200711569476415, 0.0, 0.0, 0.4430530345512502, 0.0, 0.6935424923816391, 0.9428504267370209, 0.42746265456576077, 0.0025457381888520196, 0.0, 0.1593559778661365, 0.0, 0.8273232796667221, 0.04988580847200336, 0.9484876902255591, 0.5784846962232053, 0.0, 0.4437739313478008, 0.0, 0.0, 0.29414816951171024, 0.0, 0.022355194883774517, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02069724212749366, 0.0, 0.0, 0.0, 0.0, 0.7860463101009033, 0.0, 0.0, 0.0, 0.8499064420418566, 0.0, 0.014821364995218649, 0.0, 0.004694386740689857, 0.25038082548050006, 0.5774089497757802, 0.0, 0.0, 0.0, 0.0, 0.006270331329794731, 0.6139069964758506, 0.8351435200462407, 1.0242327730345495, 0.0, 0.029307532281045708, 0.0, 0.0, 0.0, 0.5726801471740839, 0.4962238989829506, 0.0, 0.07225356949876899, 0.10746103390935668, 0.0, 0.0, 0.8346013157058231, 0.0, 0.0, 0.12871551917858068, 0.0, 0.0, 0.05722051841888945, 0.0, 0.08248659071056784, 0.08634381582594033, 0.0, 0.14691645141749232, 0.0, 0.0, 0.0, 0.12530859946217338, 0.0, 0.10215231917559951, 0.07032216186532725, 0.0, 0.8790426858900641, 0.10792096194290268, 0.054388076691659265, 0.0, 0.0, 0.0, 0.05001396409640395, 0.114742650990913, 0.28339886512623463, 0.15677327627325063, 0.0, 0.03258480102579557, 0.09096085908673467, 0.0, 0.0, 0.15530131741375458, 0.4726591715297998, 0.7751806988017736, 0.0, 0.51208607063286, 0.0, 0.0, 0.8142774797804637, 0.037795557638802935, 0.0, 0.03542525158598919, 0.07905092197782795, 0.0, 0.0, 0.1322231578644953, 0.0, 0.0, 0.008286484320060336, 0.670492082894006, 0.0, 0.0, 0.2274177128809876, 0.20430769763068007, 0.27374263149272277, 0.0, 0.0, 0.0, 0.0, 0.22105379716709922, 0.08605636125516496, 0.023058224273634728, 0.03343036365050954, 0.7905997431838073, 0.031091378094046798, 0.32331562706461314, 0.0, 0.048595513480849374, 0.0, 0.6695135011372569, 0.01079155413526415, 0.7675661133629853, 0.01950494389053299, 0.0, 0.06609079415505228, 0.15915608286937477, 0.0, 0.17610090955799163, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05278940542005462, 0.0, 0.04363140001862599, 0.3747258422202424, 0.18235409289517635]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.24622058278177836, 0.0, 0.0, 0.1261597862603059, 0.07342085928314178, 0.12871077894157168, 0.0, 0.0, 0.8034179790657067, 0.0, 0.0, 0.056025142012607894, 1.0596276779513034, 0.0, 0.12141212330168466, 0.0, 0.5574009533856183, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3327944495595785, 0.0, 0.8694342868598712, 0.0, 0.7416396915765561, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7569986463219165, 0.05683836078786318, 0.0, 0.0, 0.8725529080345216, 0.0, 0.2047777547094641, 0.5614660149749067, 0.0, 0.0, 0.36223551246779223, 0.0, 0.0, 0.0, 0.22107392894943306, 0.0, 0.0, 0.0, 0.3259321271119929, 0.5055955427859341, 0.27515457195781157, 0.4169876847813729, 0.018631329176858533, 0.3876953885710935, 0.0, 0.021531556327917045, 0.0, 0.0, 0.28223766305057085, 0.48287552686851865, 0.0, 0.0, 0.10175887870070799, 0.0, 0.0, 0.0, 0.06032870137556734, 0.018726053338837593, 0.045366945649236726, 0.0, 0.0, 0.0, 0.5790914418316278, 0.6815353846022115, 0.0, 0.1332216207413034, 0.0, 0.04017082185996856, 0.0, 0.0, 0.0, 0.0, 0.03484741576880692, 0.893850322287328, 0.4479341395605485, 0.5025126461241762, 0.1987665376735214, 0.31067608319719825, 0.0, 0.0, 0.0, 0.46442597522784795, 0.0, 0.0, 0.4431570212945692, 0.0, 0.0, 0.5121406140989466, 0.0, 0.49477960883115907, 0.0, 0.0, 0.0, 0.0, 0.47025922462023484, 0.3616621631765011, 0.5907253850051586, 0.0, 0.0, 0.44541009068477694, 0.03445733103321199, 0.0, 0.02309502433018302, 0.0, 0.03777890472311954, 0.16345317623186756, 0.16813336048226513, 0.0, 0.0, 0.09235605661534649, 0.0, 0.0, 0.01896246145159963, 0.02753978144349941, 0.0, 0.0, 0.0, 0.30135789429977294, 0.6764584765695312, 0.0, 0.0, 0.3151319553463997, 0.0, 0.04554105431298512, 0.0, 0.08378021558986462, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09849622821166114, 0.0, 0.25488776315346307, 0.0, 0.2781851808227525, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2839462446541717, 0.00854309647598918, 0.0, 0.0, 0.3272900456325508, 0.10375527349591217, 0.8492672297194694, 0.0, 0.5876718077641173, 0.03093892983747342, 0.0, 0.0, 0.0, 0.3385535490482335, 0.0, 0.0, 0.0, 0.29218416128587404, 0.0, 0.6966394562456512, 0.0, 0.0, 0.0, 0.522006486105503, 0.0, 0.0, 0.0, 0.11065330711314218, 0.0, 0.23311787887979893, 0.0, 0.31252070060750486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06134998798063221, 0.0, 0.0, 0.3657519298489218, 0.31899283438369924, 0.0, 0.0, 0.0, 0.3676864240590821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0010478172394749591, 0.5287716819761857, 0.0, 0.3903081303690744, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0017717866111426558, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5892681933608603, 0.002977075804572329, 0.0, 0.0, 0.0, 0.0, 0.43072916849878135, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.045384364903179854, 0.0, 0.0, 0.0018618199412216315, 0.0, 0.17111256306326456, 0.2672837889083413, 0.0, 0.0, 0.19576072012760673, 0.5948736598005219, 0.08413627091493711, 0.7573648130796338, 0.0, 0.0, 0.0, 0.0, 0.0, 0.33101786250771764, 0.16289357736810944, 0.16515314938780928, 0.0, 0.0, 0.0, 0.0, 0.0, 0.662932866371622, 0.6905568008213746, 0.0, 0.0, 0.0, 0.0, 0.4845748090935882, 0.061923683856559844, 0.0, 0.028719251839850298, 0.0, 0.02009827057946138, 0.0, 0.0, 0.0, 0.11124419756806017, 0.4147463454400596, 0.0, 0.0, 0.34783853396429565, 0.0, 0.09260170356894369, 0.0, 0.0, 0.0, 1.1401462738363544, 0.915922599074042, 0.0, 0.0, 0.0, 0.0, 0.6274522680730893, 0.0, 0.3139030754242789, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3751134192842195, 0.0, 1.257728265907189, 0.0, 0.35074493350028346, 0.268137845429166, 0.0, 0.0, 0.0, 0.0, 0.0, 0.016899841379555174, 0.7155448975358032, 0.1680074523773585, 0.0, 0.0, 0.30581125296894957, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9366277987154731, 0.0, 0.0, 0.0, 0.0, 0.07522986257761975, 0.06328419096078892, 0.0, 0.02479071082883737, 0.0, 0.7915629916935427, 0.031935353301522654, 0.0, 0.0, 0.070458258165472, 0.0, 0.0, 0.0, 0.0, 0.052737602183104026, 0.0, 0.013647273418699125, 0.3169788666986562, 0.17235734856254364, 0.0, 0.0, 0.0, 0.0661528775144355, 0.0, 0.027308490724219276, 0.0, 0.0, 0.0, 0.7971915175033586, 0.0, 0.5343175730821937, 0.0, 0.8740381649643706, 0.04598025590229294, 0.029012248678093225, 0.0, 0.0, 0.11141095490761138, 0.0, 0.0, 0.13001430753376275, 0.0, 0.0, 0.0, 0.22549966134722088, 0.0, 0.0, 0.0, 0.3726692665495664, 0.3774382964295704, 0.20411971872540274, 0.06057654493015839, 0.0, 0.5744310538348768, 0.0, 0.0, 0.6232315714035893, 0.0, 0.5072896743166587, 0.0, 0.005553340050755054, 0.5689868928162961, 0.06836125145830099, 0.0, 0.0, 0.49734376521104756, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27904969776436467, 0.0, 0.7814242677772039, 0.5117851675292832, 0.0, 0.0, 0.04886194301383263, 0.0, 0.3067365939854962, 0.0, 0.0, 0.4115088709036164, 1.405104579225751, 0.42840174089528493, 0.48760195358213543, 0.0, 0.0, 0.663844265848651, 0.0, 0.38778436442248837, 0.7776635401136125, 0.15032072106029123, 0.18953081567758903, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7044650329571657, 0.7235946500790119, 0.12987194286479317, 0.19647866132545186, 0.45582545423087456, 0.0, 0.0, 0.0, 0.032958397990191235, 0.0, 0.0, 0.7570462349991403, 0.0941136312544236, 0.0, 0.1276645560961348, 0.0, 0.0, 0.0, 0.755417985546979, 0.8458204729185679, 0.12543050025210123, 0.006393660363144921, 0.0, 0.0, 0.28926738179087036, 0.0, 0.0, 0.4731345211962404, 0.0, 0.7203970460167203, 0.0, 0.0, 0.0, 0.4891311717243447, 0.0031333060836164625, 0.003950606766695812, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8250852706661534, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1940012409565178, 0.0, 0.7255195358366966, 0.0, 0.4862794311033925, 0.0, 0.7981182971725221, 0.0, 0.26385403496014914, 0.0, 0.5139863704027979, 0.35381636124647037, 0.06016159688024159, 0.0, 0.0, 0.0, 0.07675121814682248, 0.0, 0.0, 0.12553662505708466, 0.0, 0.301350309711505, 0.0, 0.0, 0.0, 0.12978101101826656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2180668401971053, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09272141980768678, 0.0, 0.3034931056908601, 0.0, 0.203416238280828, 0.0, 0.33274884560755447, 0.0, 0.12655518438173288, 0.0, 0.13637583261219158, 0.0, 0.0, 0.0, 0.0, 0.020115042222633606, 0.0, 0.11478942012015081, 0.0, 0.044967175485766994, 0.0, 0.27969782401606164, 0.1383242818414881, 0.0, 0.0, 0.18685369035983804, 0.0, 0.06810955828519266, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17579267922314348, 0.0, 0.0, 0.11999285025017485, 0.0, 0.0, 0.14209169595972287, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11399414163060874, 0.019825113051252268, 0.0, 0.049971986914216976, 0.07235420154739257, 0.0, 0.0, 0.08331368376199759, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07280640355864025, 0.0, 0.0, 0.35152520960031586, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13676901662991092, 0.0, 0.0, 0.0, 0.015204774707799058, 0.0, 0.0, 0.0, 0.0, 0.5304031136005922, 0.0, 0.0, 0.0, 0.32819195551919517, 0.1622165373359131, 0.0, 0.0, 0.0, 0.1321652778478459, 0.0, 0.0, 0.2161735452720934, 0.0, 0.27952564740678887, 0.0, 0.0, 0.0, 0.22348236021207268, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.375510190195534, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2500091160813631, 0.0, 0.2815132558946093, 0.0, 0.18868424509978618, 0.0, 0.30865021038590384, 0.0, 0.341236683480638, 0.0, 0.23483861551802387, 0.0, 0.0, 0.0, 0.12117745385937667, 0.0, 0.0, 0.3973467888918919, 0.0, 0.2920101397985984, 0.0, 0.12988448302264086, 0.0, 0.3517844506342411, 0.0, 0.0, 0.0, 0.6519761543079575, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4428070420734244, 0.0, 0.3964317892338393, 0.0, 0.0, 0.0, 0.3236724995283946, 0.0, 0.0567229736921611, 0.0, 0.0, 0.0, 0.25146743826064083, 0.0, 0.0, 0.011207888208677623, 0.08869787998517195, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0436070974131627, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05218480148875932, 0.0, 0.0, 0.0, 0.28668060177386556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16806127510824798, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1010038649276795, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24411150965510042, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3252831829639798, 0.0, 0.13696611429551586, 0.0, 0.08809099936621054, 0.0, 0.0, 0.0, 0.5834039633369968, 0.2573783852497724, 0.0, 0.34353142253711105, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8226681209013311, 0.43635481618924155, 0.0, 0.21222851603946533, 0.0, 0.6640973088333184, 0.0, 0.1716321278580885, 0.7312656094018032, 0.46618173092618587, 0.7638215749927391, 0.5281765059497923, 0.012259008816529623, 0.9144713112403178, 0.0, 0.0, 0.0, 0.0, 0.7953741970864907, 0.0, 0.0, 0.5850872742568098, 0.0, 0.0, 0.0, 0.7307808207285703, 0.0, 0.6199309753815017, 0.37291372178799176, 0.0, 0.0, 0.22356724549482568, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3221254739496775, 0.11781870844111127, 0.04460774210115785, 0.7133319766560491, 0.17115949268039302, 0.47397294440775345, 0.0, 0.10101149129956093, 0.11755718548933392, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.057090584067732354, 0.6447844891876003, 0.0, 0.0, 0.033829519264607456, 0.0, 0.1190337187097033, 0.30523421948716617, 0.0, 0.0, 0.0, 0.0, 0.6213057774307251, 0.842768502451811, 0.0, 0.3906048759812801, 0.7719833104847825, 0.41168363040706235, 0.1712307445975339, 0.0, 0.05992936357237096, 0.04890539039186202, 0.0, 0.0, 0.012380496199171342, 0.0, 0.2674194407541521, 0.0, 0.0014443996714777229, 0.0, 0.16387003646802972, 0.0, 0.0, 0.03594122433913304, 0.24159569520366886, 0.3747703785250739, 0.0, 0.054699683547073226, 0.0, 0.2873774296478163, 0.0, 0.0, 0.0, 0.14956132991470428, 0.0, 0.3888645476970781, 0.0, 0.0, 0.07542830239130101, 0.07080076609705026, 0.0, 0.0, 0.0, 0.0, 0.09852911382155678, 0.19548481725379033, 0.0, 0.0, 0.4350977845419587, 0.00557774494203208, 0.0, 0.09874991570897035, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6034262468294622, 0.2713368059843151, 0.6497013107648627, 0.0, 0.8007029601130917, 0.0, 0.0, 0.0, 0.0, 0.01616961592030159, 0.0, 0.0, 0.0, 0.0, 0.2502876057454169, 0.49212467358206446, 0.2134864810859512, 0.1765833209669342, 0.0, 0.0, 0.0, 0.5401972297237567, 0.03318857704329382, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12219566143679067, 0.0, 0.04829725298673487, 0.0, 0.0, 0.0, 0.0, 0.0, 1.2356793204214815, 0.02263120223723859, 0.7256596881722004, 0.3263003275955702, 0.7654157892976137, 0.08145618747845872, 0.6387218661983024, 0.0, 0.5276231408957645, 0.8184646008092085, 0.0, 0.0, 0.0, 0.6276063069977658, 0.0, 0.6132063830791735, 0.006204111701464058, 0.18851722870999638, 0.375149258411478, 0.7816851453263511, 0.0, 0.587776400734769, 0.16472858834087942, 1.1016458158754883, 0.1459604994495737, 0.0, 0.0, 0.0, 0.037075917094288376, 0.0, 0.2815459504132854, 0.2536212145780303, 0.559150690052304, 0.48027689889482117, 0.0, 0.21566088189458643, 0.058080618345779114, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008439821738835876, 0.0, 0.36408664087256903, 0.0, 0.16156000319694572, 0.22471190561828702, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10732980278519261, 0.0, 0.0, 0.12403718878006863, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27901056312251676, 0.4801492052284416, 0.0, 0.0, 0.10787548181472921, 0.0, 0.0, 0.0, 0.15654727928350437, 0.0, 0.13104284110293218, 0.13666096202593647, 0.0, 0.0, 0.0, 0.07276575816635268, 0.0, 0.0, 0.0, 0.0, 0.6100450928472326, 0.0, 0.0, 0.0, 0.4238237484103886, 0.9941317988293357, 0.0, 0.0, 0.0, 0.0, 0.3355479309040112, 0.0, 0.0, 0.0, 0.0, 0.5350029094771915, 0.0, 0.008586567333100323, 1.1385513331902584, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1850917274468032, 0.0, 0.0, 0.06716099014107918, 1.1525784735402484, 0.0, 0.0, 0.036572260841491885, 0.0, 0.26119964749940466, 0.0, 0.0, 0.8459335464772313, 0.0, 0.0, 0.0, 0.0, 0.38438887602945404, 0.0, 0.0, 0.0, 0.0, 0.7204933523373307, 0.0, 0.0, 0.16060697060474402, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7112792652633437, 0.0, 0.935521710131386, 0.26536974069831215, 0.2935825392525973, 0.0, 0.0, 0.13719141489981915, 0.0, 0.10324823792839577, 0.0, 0.0, 0.0, 0.7256165269576538, 0.0, 0.48634443939716193, 0.0, 0.7955635800994527, 0.1927019559074891, 0.0, 0.0, 0.7058981437597585, 0.0, 0.5236895266156559, 0.0, 0.08128104063747256, 0.0, 0.0, 0.0, 0.5731212091054763, 0.0, 0.0, 0.0419831484236368, 0.11625926299639212, 0.0, 0.0, 0.08927614896350113, 0.217346651106267, 0.13128361330254273, 0.0, 0.07219885291348893, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4218130442222412, 0.0, 0.0, 0.0, 0.0, 0.1699892215644571, 0.0, 0.14639742856012483, 0.0, 0.0, 0.04200062557179813, 0.0, 0.0, 0.0, 0.31146013043119736, 0.0, 0.0, 0.0, 0.24384030368566587, 0.9260558729858251, 0.4296955936776912, 0.0, 0.0, 0.0, 0.73790516731229, 0.0, 0.0, 0.0, 0.16295488074282302, 0.26550524353964333, 0.0, 0.0, 0.0, 0.31144107126852844, 0.0, 0.485858439126786, 0.0, 0.6914937323909329, 0.0, 0.0, 0.0, 0.0, 0.3162528337434342, 0.0, 0.0, 0.0, 0.0, 1.5785215576611167, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5161924043112004, 0.0, 0.0, 0.2568302026164213, 0.0, 0.3023415151909343, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5030068615133427, 0.0, 0.0, 0.0, 0.2741080207900236, 0.17120972783029909, 0.0, 0.0, 0.0, 0.0, 0.43685119598979993, 0.02712666041421048, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2451085199735546, 0.0, 0.1576437689621315, 0.0, 0.0, 0.0, 0.6857487349281931, 0.05917052173435364, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6537568461306704, 0.0, 0.0, 0.5395442735782994, 0.05374109131453472, 0.0, 0.5917732326059808, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0008206716541601089, 0.19818937147807536, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.535053682582317, 0.0, 0.3513819151899916, 0.04333888481337121, 0.5747915094439204, 0.19540689526232177, 0.01899860952318465, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06595709778063945, 0.0, 0.08799217533170228, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03735300199555871, 0.19147688509049948, 0.0, 0.0, 0.0, 0.2914125830050192, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04799459307428656, 0.0, 0.16480769798416883, 0.0, 0.0, 0.0, 0.04840048223798238, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.027156548216558336, 0.0, 0.047181418535814645, 0.0, 0.0, 0.0, 0.0, 0.35341760898781915, 0.5999981948389704, 0.024572219243726254, 0.0, 0.0, 0.08667332426569417, 0.4875808312926843, 0.06369622265280388, 0.0, 0.0, 0.0, 0.07133443039288194, 0.0, 0.0, 0.47894471690358564, 0.4793008357816607, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09658957720985865, 0.3016070141903076, 0.061398864173637636, 0.0, 0.0, 0.0, 0.07060273869520314, 0.35885594789448355, 0.0, 0.06446892769447045, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2497207855356876, 0.018509596151814908, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2926774045716465, 0.0, 0.013651758929637155, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03597721563910695, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07068090962707653, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03642909404914556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2749443358980585, 0.0, 0.0, 0.0, 0.0, 0.5096842842109697, 0.0, 0.0, 0.0, 0.028086239659725638, 0.7421154878137212, 0.0, 0.48123810905471315, 0.0, 0.3067030382176026, 0.6866619523091189, 0.0008295150087239233, 0.5016528107597976, 0.0, 0.08848804808651539, 1.3805931747462472, 0.0, 0.0, 1.04718815925786, 0.0, 0.0, 0.0, 0.42746548493362363, 0.0, 0.5817357352379013, 0.8450882691967682, 0.41665385220387907, 1.0915687546509307, 1.108964330219497, 0.0, 0.0, 0.0, 0.04066069749695377, 0.032733248007639555, 0.0, 0.0, 0.0, 0.07163077100441487, 0.6487063582321942, 0.0, 0.2995103130321618, 0.10283702762113958, 0.33384701220391544, 0.41258982728857174, 0.0, 0.5449670143554067, 0.0, 0.3217489265559145, 0.0, 0.0, 0.0, 0.2849908553676538, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.01610871320352385, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2570528176713379, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2969662795916102, 0.0, 0.12312876081315716, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09075655657480966, 0.0, 0.3633373647258237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06617087939273322, 0.0, 0.0, 0.0, 0.00923594008230594, 0.17805875048711786, 0.22450411347361834, 0.0, 0.0, 0.09502241267674551, 0.0, 0.024589605765570302, 0.0, 0.1826423790293924, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039040067948029694, 0.0, 0.06664139722445166, 0.0, 0.04466639301844483, 0.0, 0.22428735118617732, 0.08284705163804024, 0.05227416022819031, 0.0, 0.19522102914015915, 0.8685310451611696, 0.0, 0.0, 0.0, 0.0, 0.8702352191794189, 0.0, 0.0, 0.15684527219370442, 0.0, 0.9243788213991903, 0.22207735215974056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.40507055158794986, 0.30718446392066534, 0.0, 0.46812545232304087, 0.0, 0.5780009938921578, 0.18279458657604497, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02896217836710352, 0.0, 0.0, 0.40712998428742797, 0.7449999863100496, 0.0, 0.49933620201845186, 0.0, 0.8168155413547457, 0.11457346224809285, 0.0, 0.0, 0.0, 0.15332753334456128, 0.11864376215788304, 0.0, 0.0, 0.04572095120049149, 0.0, 0.0, 0.31683394463012315, 0.5003078767139268, 0.14059206617597214, 0.19554784897288408, 0.0, 0.43178409369310355, 0.0, 0.07560627618395319, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16352131380333873, 0.0, 0.34449708571742155, 0.0, 0.4618370375665847, 0.0, 0.0, 0.41783342102021986, 0.0, 0.0, 0.0, 0.02165252564332241, 0.0, 0.0, 0.0, 0.47140143149032104, 0.39181349979635294, 0.11892452733738064, 0.0, 0.5433598750764469, 0.0, 0.0, 0.0, 0.07266999506080335, 0.0, 0.6735755940113932, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0041630866962457744, 0.2109647750127205, 0.0, 0.0, 0.0, 0.3715024914369038, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1845463840294256, 0.0, 0.6075440706050301, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29101469974401967, 0.0, 0.0, 0.032739778024003775, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4875593392929034, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20371408580482323, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0439075644510851, 0.0, 0.5496827874572944, 0.40327797474842975, 0.37238046622077875, 0.0, 0.0, 0.17401376516444506, 0.0, 0.11278871866256229, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15394336215607962, 0.0, 0.0, 0.0]), 42), 42)),) julia> @finch_code begin Ct .= 0 for i = _ @@ -498,7 +498,7 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.01855804465451247, 0.0, 0.0, 0.03641425883740431, 0.0568080930379847, 0.10109716846875504, 0.0, 0.0, 0.0, 0.0, 0.005424838537552436, 0.0, 0.0, 0.5251896042062963, 0.0, 0.0, 0.0, 0.00515342598991506, 0.045980273053842245, 0.0, 0.4033688458623361, 0.0510673466163073, 0.0, 0.0, 0.02134197385615031, 0.01687808266981965, 0.0, 0.4932447371732914, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7178045198025068, 0.2106682695954306, 0.0, 0.3115118572371521, 0.5170963380295581, 0.39595498771521426, 0.1432663403816299, 0.5698542189659496, 0.0, 0.0, 0.0, 0.5317966816929195, 0.0, 0.5315818882594147, 0.8168445783005969, 0.0, 0.0, 0.0, 0.01222733860627223, 0.0, 0.716756885645577, 0.0, 0.8217284580618865, 0.48234209517721377, 0.15545502627894098, 0.04826321760798536, 0.0, 0.0, 0.1394038038151463, 0.0, 0.056802678199824076, 0.0, 0.0, 0.0, 0.3128541399180126, 0.0, 0.0, 0.596593418834028, 0.0, 0.2846892571697076, 0.0, 0.0, 0.0, 0.23365792107187477, 0.0, 0.0, 0.4584793374366712, 0.7152510496888798, 0.0, 0.0, 0.0, 0.8190896825195866, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11127793558853107, 0.0, 0.5789217135796446, 0.0, 0.0, 0.6429712972008511, 0.0, 0.0, 0.661506988212563, 0.7629272979371657, 0.0, 0.4234710523361336, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4257443064600869, 0.0, 0.20425497460318195, 0.0, 0.5184318202957809, 0.5906121758765186, 0.0, 0.9091367634018797, 0.0, 0.30652125262867885, 0.0, 0.7954054080966687, 0.0, 0.0, 0.0, 1.0559083316811368, 0.0, 0.04427154393293609, 0.8228955354751877, 0.46658038808648383, 0.0, 0.02688606839966265, 0.0, 0.0, 0.6276611460113729, 0.22522673327345408, 0.0, 0.12308651028821192, 0.3657688390111318, 0.0, 0.046115245088609334, 0.0, 0.5342436705087195, 0.0, 0.1923886832463953, 0.07621763959827882, 0.0, 0.0, 0.0, 0.6725528112574624, 0.7483589153917343, 0.0, 0.0, 0.0, 0.0, 0.38949567271561986, 0.16492548861911044, 0.10519585180914466, 0.8853743380662012, 0.957787822214843, 0.0, 0.05459549529270359, 0.25656057396140347, 0.14167223917141744, 0.03949155262056029, 0.0, 0.0, 0.2703834370419471, 0.0, 0.723362221877522, 0.0, 0.0, 0.0, 0.7883757417725614, 0.0, 0.03340589062163017, 0.18896261922152233, 0.0, 0.0, 0.8122657251866786, 0.029607718570353176, 0.0, 0.008213735995679807, 0.0, 0.08605746445745502, 0.0, 0.3070376563830936, 0.10398717208817806, 0.0, 0.0, 0.0, 0.383984202548332, 0.0, 0.0, 0.3036396360576457, 0.0, 0.0, 0.0, 0.0, 0.11965354383371518, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04825455862354496, 0.3335108938296942, 0.0, 0.0, 0.0, 0.0, 0.04121745447265487, 0.30594446336043757, 0.0, 0.33550494159326405, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029116195807012437, 0.0, 0.0, 0.0, 0.0, 0.0, 0.020041236855252602, 0.0, 0.4850188795993097, 0.0, 0.16403823255879735, 0.0, 0.60023572778736, 0.0, 0.1787344157826609, 0.0, 0.0, 0.17233073276918714, 0.17532212882841147, 0.6209016656456683, 0.5984929062073807, 0.8843163905991084, 0.3337919143714591, 0.0, 1.0919707374354302, 0.8166713304287454, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8330317657834686, 0.27201200741148646, 0.0, 0.8995473587201992, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6388227016456749, 0.0, 0.3682672817259989, 0.0, 0.5422113050459496, 0.0, 0.028602469161704683, 0.0, 0.0, 0.3611222515381231, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.031337192831751, 0.0, 0.0, 0.7687924758178234, 0.012617011188267763, 0.0, 0.0, 0.37315715294884366, 0.0, 0.0, 0.0, 0.0, 0.6888779809403613, 0.121001715761302, 0.0, 0.0, 0.3680175749172942, 0.47420475938210593, 0.0, 0.7604201795169553, 0.0, 0.11917670920609563, 0.0, 0.20848198246903302, 0.24926285864223433, 0.0, 0.5553692000145817, 0.4169252107806106, 0.16597755096800731, 0.7334771026528798, 0.0, 0.0, 0.09908991746260937, 0.0, 0.14652270264303283, 0.006759647910977647, 0.0, 0.9351545954529237, 1.2960299208884896, 0.0, 0.0, 0.21191619141709428, 0.0, 0.0, 0.0, 0.01204540426582532, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06493914883934329, 0.7726981572397796, 0.0, 0.4370686273737238, 0.1778273534538074, 0.055209023869020324, 0.0, 0.0, 0.0, 0.05709969797354255, 0.0, 0.0, 0.0, 0.0, 0.44808598581285264, 0.0, 0.0, 0.0, 0.21141909545938053, 0.13390642572615394, 0.0, 0.0, 0.0, 0.25844994675864025, 0.0, 0.51617125876173, 0.2544268105667549, 0.0, 0.17576058376064335, 0.29087109088619356, 0.0, 0.0, 0.3286889977164017, 0.0, 0.0644707079973061, 0.0, 0.018682819036845075, 0.008522941045952347, 0.0, 0.0, 0.2520720928277996, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.146066293561638, 0.08856351358209161, 0.0, 0.0, 0.0, 0.1407746062228793, 0.5246446552397386, 0.0, 0.0, 0.0, 0.3279179855015388, 0.46137944574560436, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14330339619658897, 0.11500988018505275, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7444467047874328, 0.0, 0.0, 0.40713437972280675, 0.0, 0.0, 0.0, 0.5717679971406524, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4877440937322302, 0.6991654372087778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2369682176872117, 0.0, 0.0, 0.6757556051622259, 0.0, 0.0, 0.0, 0.576368321209737, 0.04986303698751877, 0.0, 0.5384684335273707, 0.0, 0.21524971756673417, 0.4963922980972075, 0.0, 0.0, 0.0, 0.0, 0.18940210229325644, 0.5277692784584271, 0.7718932464687741, 0.7210929692294604, 0.0, 0.0, 0.0, 0.0, 0.48286176484120297, 0.8517937989915767, 0.3931693184679991, 0.0, 0.0, 0.06755455710060922, 0.0, 0.026695131792948763, 1.4844324548606433, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4524914530619723, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4694831016582333, 0.0, 0.42831526212260856, 0.6074590079807168, 0.30066361967157035, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6129938591206631, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6008436638333436, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.43882326364474644, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8591062832739853, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6928708028466394, 0.2819039698547807, 0.08752108546971657, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05246236611269018, 0.0, 0.0, 0.5428804251437249, 0.022819504909203123, 0.3729965675892053, 0.0, 0.5741583158437262, 0.0, 0.1935811346150516, 0.0, 0.5023321549740235, 0.2611826745866744, 0.0, 0.056899028261467276, 0.37961815387770637, 0.22527271986010186, 0.05171423855571594, 0.058968538904135746, 0.0, 0.02892983665470066, 0.003313037290954743, 0.0, 0.0, 0.15785301822506514, 0.0, 0.0, 0.07773433689527456, 0.1049811110510813, 0.0, 0.02912372760696772, 0.0, 0.3114315285072337, 0.5703037753007745, 0.0, 0.04813466284828647, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02241933195791073, 0.0, 0.0, 0.0, 0.0, 0.23199999736075347, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1927795141790272, 0.2407119020891451, 0.0, 0.21960445663579467, 0.5770903406753464, 0.15415530724008072, 0.23155572792080611, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3142922871488459, 0.0, 0.0, 0.0, 0.0, 0.3042889785067072, 0.0, 0.5129566600174419, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3746354155106774, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4789154917746846, 0.17517544375428362, 0.0, 0.0, 0.0, 0.2637662382252967, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2102700997979013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.126545263019808, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.332133943612647, 0.0, 0.0, 0.0, 0.06184093060913505, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3212574037659458, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24673989573277713, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3017167941185386, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6233354196759152, 0.0, 0.0, 0.0, 0.5447611694646652, 0.0, 0.0, 0.216176776357065, 0.0, 0.19855221622967104, 0.8686764576101142, 0.16350923987929902, 0.0, 0.0, 0.02334951098786776, 0.17107621812888604, 0.48682879160279025, 0.7109808359466632, 0.6651558420918936, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6192268761337199, 0.31206921876898447, 0.0, 0.0, 0.24595989001208304, 0.11068536977374843, 0.0, 0.6618395820988949, 0.11362642836904417, 0.0, 0.0, 0.23765422406147768, 0.0, 0.0, 0.8073352785417658, 0.0, 0.0, 0.48485062583878286, 1.055137179889336, 0.2671063045394923, 0.0, 0.8476204266733893, 0.473385026956602, 0.5030912229948215, 0.0, 0.0, 0.0, 0.17678971866264329, 0.4076988147485064, 0.0, 0.6776909084507561, 0.13779930009477406, 0.5691281649873949, 0.16622169517158358, 0.433469475882236, 0.818379113845578, 0.9106844436778354, 0.0, 0.499393081506665, 0.0, 0.5725309586159512, 0.6160013948015824, 0.5125607980557373, 0.2778645861379971, 0.0, 0.0, 0.0, 0.0, 0.0, 0.58929804834674, 0.0, 0.8046233984476477, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3967677816937078, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11707526901952116, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.383435421983313, 0.11707115655719894, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07864429232511502, 0.0, 0.0, 0.3002587300128159, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2266804769859352, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24215921984980293, 0.09852579316681935, 0.030588729804574537, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18874358875246125, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3978422171614565, 0.1936032919321414, 0.0, 0.0, 0.2542147176776134, 0.0, 0.0, 0.0, 0.11057553114503467, 0.0, 6.012518808232222e-5, 0.0008825884581384356, 0.6460696181307314, 0.0, 0.0, 0.06879188140017427, 0.0, 0.0, 0.04716298956935701, 0.1540138997690347, 0.1854894997474166, 0.003124358567077274, 0.35109153378778224, 0.0, 0.0, 0.016293742009993128, 0.0, 0.0, 0.3747805868672189, 0.025859295570033313, 0.214029422856965, 0.003742959361061961, 0.0002933458280023473, 0.0, 0.0, 0.0, 0.030501494612752977, 0.0, 0.6996784734474946, 0.0, 0.0, 0.05616866413207192, 0.0, 0.0018184995370819535, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.020171782722387992, 0.0, 0.0, 0.33279196588498333, 0.0, 0.0, 0.6323890570808377, 0.0, 0.0, 0.0, 0.03594525644730097, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004527887543653786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17039388977135247, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6309056496928738, 0.0, 0.0, 0.0, 0.0, 0.260280820884557, 0.0, 0.0, 0.5107183088816271, 0.7967464980324664, 0.14485492608681305, 0.0, 0.009558078807310686, 0.754701551784825, 0.0, 0.0, 0.0, 0.0, 0.7598764239846039, 0.0, 0.029177780358136646, 0.10253044625069853, 0.03763219091970284, 0.8115624154017409, 0.0, 0.5779584654853126, 0.7162312164421211, 0.0, 0.0, 0.9107472399622886, 0.7029540573396418, 0.0, 1.0969174796040306, 0.0, 0.0, 0.0, 0.0, 0.0038591832437520454, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15366266383288085, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.558080611304664, 0.0, 0.0, 0.0, 0.0, 0.30736701150515244, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04311886842935436, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32751189175201845, 0.0, 0.20963216887545572, 0.1760259950046517, 0.0, 0.23753864749234863, 0.24093292162050975, 0.024684548149881243, 0.4936183719527589, 0.7064246796060082, 0.0, 0.06677453327599289, 0.8542035190842152, 0.0, 0.025534429812218047, 0.011379900282647532, 0.039800411165778926, 0.013727111201321645, 0.27843394547131894, 0.24161261590501448, 0.2499939278392831, 0.0, 0.0, 0.3450248607837782, 0.0, 0.0, 0.15272914557490577, 0.10495111476871369, 0.0, 0.0, 0.0, 0.18866875753074405, 0.0, 0.2225813946448797, 0.0, 0.0, 0.3661590836002555, 0.0, 0.0, 0.0, 0.8998957690359772, 0.30889178773893766, 0.6078813570942335, 0.0, 0.6840699471933163, 0.0, 0.0, 0.0, 0.36308986165522683, 0.752528074611531, 0.7191770460546526, 0.49508503625401296, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7784554319844289, 0.16352298326175332, 0.0, 0.042948548224867954, 0.375190336410357, 0.0, 0.6830715485727474, 0.6403864588932121, 0.7831097846364896, 0.46112164648188003, 0.14556009485746954, 0.0, 0.0, 0.0, 0.8585580212631712, 0.0, 0.253359163441029, 0.0, 0.0, 0.0, 0.45902026051340783, 0.0, 0.0, 0.0, 0.0, 0.166881895984427, 0.0, 0.0, 0.837727301005, 0.0, 0.0, 0.7629510291223568, 0.0, 0.34201996071392393, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3670598185817387, 0.0, 0.9533138689466589, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8365046398061449, 0.0, 0.9590136929209965, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.801491142663501, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16957493050977235, 0.0, 0.2507477829737011, 0.0, 0.0, 0.11532054524043628, 0.07735685692161769, 0.5247858743947099, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02100484631395434, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8201592179395716, 0.0, 0.0, 0.04562437343117348, 0.0, 0.22915724847477928, 0.0, 0.0, 0.7159205767218768, 0.0, 0.0, 0.0, 0.0, 0.29228977882295926, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17928588753235497, 0.10348218971035608, 0.8147006956016374, 0.08438351505236888, 0.0, 0.0, 0.0, 0.1070859593707194, 0.7148756921758321, 0.0, 0.8195717571774336, 0.12249576952187838, 0.0, 0.2397374334824377, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05225556550152024, 0.0, 0.0, 0.0, 0.1707240047839942, 0.0, 0.11920584928810601, 0.0, 0.14514911616615112, 0.4284534617057244, 0.04403067305952579, 0.0, 0.012688229227290206, 0.3654383338493288, 0.04642776495318284, 0.0, 0.0, 0.31371261026073766, 0.1364760956744218, 0.5008825042361101, 0.0, 0.04802625911306818, 0.021403808257108425, 0.0, 0.12191697007589085, 0.33632693219045084, 0.49073784844916374, 0.5066599946239788, 0.0, 0.0, 0.033354950181247504, 0.0, 0.15690710970564234, 0.3397139005999492, 0.4535410643500978, 0.0, 0.0, 0.49050280987387757, 0.0, 0.0, 0.45491953624514714, 0.0, 0.0, 0.33864218894794285, 0.0, 0.0, 0.041024172335819876, 0.0, 0.0, 0.0, 0.36175943329836924, 0.0, 0.39749358702806525, 0.0, 0.5595492530984049, 0.0, 0.0, 0.2573403608635483, 0.17262354625512744, 0.0, 0.0, 0.0, 0.3776391490751126, 0.0, 0.0, 0.1445911005474468, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.45961437114556436, 0.08073146338811468, 0.0, 0.0, 0.0, 0.5680662673212686, 0.0, 0.14301647595845865, 0.4278925860448857, 0.2624303541096862, 0.0, 0.5619603114708978, 0.5488835922357254, 0.0, 0.10445139145624531, 0.9180806504163392, 0.5113694952971799, 0.0, 0.4737323723594051, 0.4474251824766889, 0.10616343839228443, 0.0, 0.02745363380188561, 0.0, 0.28312699798757224, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6983886824821985, 0.38943652344243257, 1.2223890565530993, 0.05586381199212052, 0.0, 0.07686093310040262, 0.10701921729681718, 0.0, 0.4467721663826107, 0.0, 0.5122035249872549, 1.008045581843232, 0.10571972464185753, 0.6235175832869809, 0.0, 0.0, 0.0, 0.0, 0.7054625658357997, 0.0, 0.0, 0.17326833225856653, 0.0, 0.0, 0.0, 1.0813156328128786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0927477810868, 0.0, 0.599657110852462, 0.22383250773975968, 0.19685563542122056, 0.0, 0.05605157239206448, 0.41837305013296433, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18996852120778085, 0.0, 0.28856245320282303, 0.0, 0.0, 0.0, 0.26772611418599673, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1616947156362974, 0.0, 0.0, 0.0, 0.0, 0.36168541397352055, 0.0, 0.0, 0.0, 0.1573219565054934, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13761515434984456, 0.07943022011077468, 0.0, 0.21912413885604493, 0.0, 0.0, 0.40654019224262405, 0.0, 0.0, 0.022840701875983912, 0.0, 0.09402454628178203, 0.5332211799090736, 0.14433851006651358, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.043396172364084024, 0.04011000425692938, 0.0, 0.0, 0.0, 0.13104327726482687, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10232284486723907, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10523174379677519, 0.0, 0.10079612361252216, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04415728315159431, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11805369977437472, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6523402818477722, 0.04871612610613401, 0.0, 0.19287524873967893, 0.0, 0.3592812200503388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.050401634126662875, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8285325211040351, 0.0, 0.0, 0.0, 0.42701794948426475, 0.33826599655789313, 0.0, 0.0, 0.0063200711569476415, 0.0, 0.0, 0.4430530345512502, 0.0, 0.6935424923816391, 0.9428504267370209, 0.42746265456576077, 0.0025457381888520196, 0.0, 0.1593559778661365, 0.0, 0.8273232796667221, 0.04988580847200336, 0.9484876902255591, 0.5784846962232053, 0.0, 0.4437739313478008, 0.0, 0.0, 0.29414816951171024, 0.0, 0.022355194883774517, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02069724212749366, 0.0, 0.0, 0.0, 0.0, 0.7860463101009033, 0.0, 0.0, 0.0, 0.8499064420418566, 0.0, 0.014821364995218649, 0.0, 0.004694386740689857, 0.25038082548050006, 0.5774089497757802, 0.0, 0.0, 0.0, 0.0, 0.006270331329794731, 0.6139069964758506, 0.8351435200462407, 1.0242327730345495, 0.0, 0.029307532281045708, 0.0, 0.0, 0.0, 0.5726801471740839, 0.4962238989829506, 0.0, 0.07225356949876899, 0.10746103390935668, 0.0, 0.0, 0.8346013157058231, 0.0, 0.0, 0.12871551917858068, 0.0, 0.0, 0.05722051841888945, 0.0, 0.08248659071056784, 0.08634381582594033, 0.0, 0.14691645141749232, 0.0, 0.0, 0.0, 0.12530859946217338, 0.0, 0.10215231917559951, 0.07032216186532725, 0.0, 0.8790426858900641, 0.10792096194290268, 0.054388076691659265, 0.0, 0.0, 0.0, 0.05001396409640395, 0.114742650990913, 0.28339886512623463, 0.15677327627325063, 0.0, 0.03258480102579557, 0.09096085908673467, 0.0, 0.0, 0.15530131741375458, 0.4726591715297998, 0.7751806988017736, 0.0, 0.51208607063286, 0.0, 0.0, 0.8142774797804637, 0.037795557638802935, 0.0, 0.03542525158598919, 0.07905092197782795, 0.0, 0.0, 0.1322231578644953, 0.0, 0.0, 0.008286484320060336, 0.670492082894006, 0.0, 0.0, 0.2274177128809876, 0.20430769763068007, 0.27374263149272277, 0.0, 0.0, 0.0, 0.0, 0.22105379716709922, 0.08605636125516496, 0.023058224273634728, 0.03343036365050954, 0.7905997431838073, 0.031091378094046798, 0.32331562706461314, 0.0, 0.048595513480849374, 0.0, 0.6695135011372569, 0.01079155413526415, 0.7675661133629853, 0.01950494389053299, 0.0, 0.06609079415505228, 0.15915608286937477, 0.0, 0.17610090955799163, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05278940542005462, 0.0, 0.04363140001862599, 0.3747258422202424, 0.18235409289517635]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.24622058278177836, 0.0, 0.0, 0.1261597862603059, 0.07342085928314178, 0.12871077894157168, 0.0, 0.0, 0.8034179790657067, 0.0, 0.0, 0.056025142012607894, 1.0596276779513034, 0.0, 0.12141212330168466, 0.0, 0.5574009533856183, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3327944495595785, 0.0, 0.8694342868598712, 0.0, 0.7416396915765561, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7569986463219165, 0.05683836078786318, 0.0, 0.0, 0.8725529080345216, 0.0, 0.2047777547094641, 0.5614660149749067, 0.0, 0.0, 0.36223551246779223, 0.0, 0.0, 0.0, 0.22107392894943306, 0.0, 0.0, 0.0, 0.3259321271119929, 0.5055955427859341, 0.27515457195781157, 0.4169876847813729, 0.018631329176858533, 0.3876953885710935, 0.0, 0.021531556327917045, 0.0, 0.0, 0.28223766305057085, 0.48287552686851865, 0.0, 0.0, 0.10175887870070799, 0.0, 0.0, 0.0, 0.06032870137556734, 0.018726053338837593, 0.045366945649236726, 0.0, 0.0, 0.0, 0.5790914418316278, 0.6815353846022115, 0.0, 0.1332216207413034, 0.0, 0.04017082185996856, 0.0, 0.0, 0.0, 0.0, 0.03484741576880692, 0.893850322287328, 0.4479341395605485, 0.5025126461241762, 0.1987665376735214, 0.31067608319719825, 0.0, 0.0, 0.0, 0.46442597522784795, 0.0, 0.0, 0.4431570212945692, 0.0, 0.0, 0.5121406140989466, 0.0, 0.49477960883115907, 0.0, 0.0, 0.0, 0.0, 0.47025922462023484, 0.3616621631765011, 0.5907253850051586, 0.0, 0.0, 0.44541009068477694, 0.03445733103321199, 0.0, 0.02309502433018302, 0.0, 0.03777890472311954, 0.16345317623186756, 0.16813336048226513, 0.0, 0.0, 0.09235605661534649, 0.0, 0.0, 0.01896246145159963, 0.02753978144349941, 0.0, 0.0, 0.0, 0.30135789429977294, 0.6764584765695312, 0.0, 0.0, 0.3151319553463997, 0.0, 0.04554105431298512, 0.0, 0.08378021558986462, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09849622821166114, 0.0, 0.25488776315346307, 0.0, 0.2781851808227525, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2839462446541717, 0.00854309647598918, 0.0, 0.0, 0.3272900456325508, 0.10375527349591217, 0.8492672297194694, 0.0, 0.5876718077641173, 0.03093892983747342, 0.0, 0.0, 0.0, 0.3385535490482335, 0.0, 0.0, 0.0, 0.29218416128587404, 0.0, 0.6966394562456512, 0.0, 0.0, 0.0, 0.522006486105503, 0.0, 0.0, 0.0, 0.11065330711314218, 0.0, 0.23311787887979893, 0.0, 0.31252070060750486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06134998798063221, 0.0, 0.0, 0.3657519298489218, 0.31899283438369924, 0.0, 0.0, 0.0, 0.3676864240590821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0010478172394749591, 0.5287716819761857, 0.0, 0.3903081303690744, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0017717866111426558, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5892681933608603, 0.002977075804572329, 0.0, 0.0, 0.0, 0.0, 0.43072916849878135, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.045384364903179854, 0.0, 0.0, 0.0018618199412216315, 0.0, 0.17111256306326456, 0.2672837889083413, 0.0, 0.0, 0.19576072012760673, 0.5948736598005219, 0.08413627091493711, 0.7573648130796338, 0.0, 0.0, 0.0, 0.0, 0.0, 0.33101786250771764, 0.16289357736810944, 0.16515314938780928, 0.0, 0.0, 0.0, 0.0, 0.0, 0.662932866371622, 0.6905568008213746, 0.0, 0.0, 0.0, 0.0, 0.4845748090935882, 0.061923683856559844, 0.0, 0.028719251839850298, 0.0, 0.02009827057946138, 0.0, 0.0, 0.0, 0.11124419756806017, 0.4147463454400596, 0.0, 0.0, 0.34783853396429565, 0.0, 0.09260170356894369, 0.0, 0.0, 0.0, 1.1401462738363544, 0.915922599074042, 0.0, 0.0, 0.0, 0.0, 0.6274522680730893, 0.0, 0.3139030754242789, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3751134192842195, 0.0, 1.257728265907189, 0.0, 0.35074493350028346, 0.268137845429166, 0.0, 0.0, 0.0, 0.0, 0.0, 0.016899841379555174, 0.7155448975358032, 0.1680074523773585, 0.0, 0.0, 0.30581125296894957, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9366277987154731, 0.0, 0.0, 0.0, 0.0, 0.07522986257761975, 0.06328419096078892, 0.0, 0.02479071082883737, 0.0, 0.7915629916935427, 0.031935353301522654, 0.0, 0.0, 0.070458258165472, 0.0, 0.0, 0.0, 0.0, 0.052737602183104026, 0.0, 0.013647273418699125, 0.3169788666986562, 0.17235734856254364, 0.0, 0.0, 0.0, 0.0661528775144355, 0.0, 0.027308490724219276, 0.0, 0.0, 0.0, 0.7971915175033586, 0.0, 0.5343175730821937, 0.0, 0.8740381649643706, 0.04598025590229294, 0.029012248678093225, 0.0, 0.0, 0.11141095490761138, 0.0, 0.0, 0.13001430753376275, 0.0, 0.0, 0.0, 0.22549966134722088, 0.0, 0.0, 0.0, 0.3726692665495664, 0.3774382964295704, 0.20411971872540274, 0.06057654493015839, 0.0, 0.5744310538348768, 0.0, 0.0, 0.6232315714035893, 0.0, 0.5072896743166587, 0.0, 0.005553340050755054, 0.5689868928162961, 0.06836125145830099, 0.0, 0.0, 0.49734376521104756, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27904969776436467, 0.0, 0.7814242677772039, 0.5117851675292832, 0.0, 0.0, 0.04886194301383263, 0.0, 0.3067365939854962, 0.0, 0.0, 0.4115088709036164, 1.405104579225751, 0.42840174089528493, 0.48760195358213543, 0.0, 0.0, 0.663844265848651, 0.0, 0.38778436442248837, 0.7776635401136125, 0.15032072106029123, 0.18953081567758903, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7044650329571657, 0.7235946500790119, 0.12987194286479317, 0.19647866132545186, 0.45582545423087456, 0.0, 0.0, 0.0, 0.032958397990191235, 0.0, 0.0, 0.7570462349991403, 0.0941136312544236, 0.0, 0.1276645560961348, 0.0, 0.0, 0.0, 0.755417985546979, 0.8458204729185679, 0.12543050025210123, 0.006393660363144921, 0.0, 0.0, 0.28926738179087036, 0.0, 0.0, 0.4731345211962404, 0.0, 0.7203970460167203, 0.0, 0.0, 0.0, 0.4891311717243447, 0.0031333060836164625, 0.003950606766695812, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8250852706661534, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1940012409565178, 0.0, 0.7255195358366966, 0.0, 0.4862794311033925, 0.0, 0.7981182971725221, 0.0, 0.26385403496014914, 0.0, 0.5139863704027979, 0.35381636124647037, 0.06016159688024159, 0.0, 0.0, 0.0, 0.07675121814682248, 0.0, 0.0, 0.12553662505708466, 0.0, 0.301350309711505, 0.0, 0.0, 0.0, 0.12978101101826656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2180668401971053, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09272141980768678, 0.0, 0.3034931056908601, 0.0, 0.203416238280828, 0.0, 0.33274884560755447, 0.0, 0.12655518438173288, 0.0, 0.13637583261219158, 0.0, 0.0, 0.0, 0.0, 0.020115042222633606, 0.0, 0.11478942012015081, 0.0, 0.044967175485766994, 0.0, 0.27969782401606164, 0.1383242818414881, 0.0, 0.0, 0.18685369035983804, 0.0, 0.06810955828519266, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17579267922314348, 0.0, 0.0, 0.11999285025017485, 0.0, 0.0, 0.14209169595972287, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11399414163060874, 0.019825113051252268, 0.0, 0.049971986914216976, 0.07235420154739257, 0.0, 0.0, 0.08331368376199759, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07280640355864025, 0.0, 0.0, 0.35152520960031586, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13676901662991092, 0.0, 0.0, 0.0, 0.015204774707799058, 0.0, 0.0, 0.0, 0.0, 0.5304031136005922, 0.0, 0.0, 0.0, 0.32819195551919517, 0.1622165373359131, 0.0, 0.0, 0.0, 0.1321652778478459, 0.0, 0.0, 0.2161735452720934, 0.0, 0.27952564740678887, 0.0, 0.0, 0.0, 0.22348236021207268, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.375510190195534, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2500091160813631, 0.0, 0.2815132558946093, 0.0, 0.18868424509978618, 0.0, 0.30865021038590384, 0.0, 0.341236683480638, 0.0, 0.23483861551802387, 0.0, 0.0, 0.0, 0.12117745385937667, 0.0, 0.0, 0.3973467888918919, 0.0, 0.2920101397985984, 0.0, 0.12988448302264086, 0.0, 0.3517844506342411, 0.0, 0.0, 0.0, 0.6519761543079575, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4428070420734244, 0.0, 0.3964317892338393, 0.0, 0.0, 0.0, 0.3236724995283946, 0.0, 0.0567229736921611, 0.0, 0.0, 0.0, 0.25146743826064083, 0.0, 0.0, 0.011207888208677623, 0.08869787998517195, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0436070974131627, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05218480148875932, 0.0, 0.0, 0.0, 0.28668060177386556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16806127510824798, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1010038649276795, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24411150965510042, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3252831829639798, 0.0, 0.13696611429551586, 0.0, 0.08809099936621054, 0.0, 0.0, 0.0, 0.5834039633369968, 0.2573783852497724, 0.0, 0.34353142253711105, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8226681209013311, 0.43635481618924155, 0.0, 0.21222851603946533, 0.0, 0.6640973088333184, 0.0, 0.1716321278580885, 0.7312656094018032, 0.46618173092618587, 0.7638215749927391, 0.5281765059497923, 0.012259008816529623, 0.9144713112403178, 0.0, 0.0, 0.0, 0.0, 0.7953741970864907, 0.0, 0.0, 0.5850872742568098, 0.0, 0.0, 0.0, 0.7307808207285703, 0.0, 0.6199309753815017, 0.37291372178799176, 0.0, 0.0, 0.22356724549482568, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3221254739496775, 0.11781870844111127, 0.04460774210115785, 0.7133319766560491, 0.17115949268039302, 0.47397294440775345, 0.0, 0.10101149129956093, 0.11755718548933392, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.057090584067732354, 0.6447844891876003, 0.0, 0.0, 0.033829519264607456, 0.0, 0.1190337187097033, 0.30523421948716617, 0.0, 0.0, 0.0, 0.0, 0.6213057774307251, 0.842768502451811, 0.0, 0.3906048759812801, 0.7719833104847825, 0.41168363040706235, 0.1712307445975339, 0.0, 0.05992936357237096, 0.04890539039186202, 0.0, 0.0, 0.012380496199171342, 0.0, 0.2674194407541521, 0.0, 0.0014443996714777229, 0.0, 0.16387003646802972, 0.0, 0.0, 0.03594122433913304, 0.24159569520366886, 0.3747703785250739, 0.0, 0.054699683547073226, 0.0, 0.2873774296478163, 0.0, 0.0, 0.0, 0.14956132991470428, 0.0, 0.3888645476970781, 0.0, 0.0, 0.07542830239130101, 0.07080076609705026, 0.0, 0.0, 0.0, 0.0, 0.09852911382155678, 0.19548481725379033, 0.0, 0.0, 0.4350977845419587, 0.00557774494203208, 0.0, 0.09874991570897035, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6034262468294622, 0.2713368059843151, 0.6497013107648627, 0.0, 0.8007029601130917, 0.0, 0.0, 0.0, 0.0, 0.01616961592030159, 0.0, 0.0, 0.0, 0.0, 0.2502876057454169, 0.49212467358206446, 0.2134864810859512, 0.1765833209669342, 0.0, 0.0, 0.0, 0.5401972297237567, 0.03318857704329382, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12219566143679067, 0.0, 0.04829725298673487, 0.0, 0.0, 0.0, 0.0, 0.0, 1.2356793204214815, 0.02263120223723859, 0.7256596881722004, 0.3263003275955702, 0.7654157892976137, 0.08145618747845872, 0.6387218661983024, 0.0, 0.5276231408957645, 0.8184646008092085, 0.0, 0.0, 0.0, 0.6276063069977658, 0.0, 0.6132063830791735, 0.006204111701464058, 0.18851722870999638, 0.375149258411478, 0.7816851453263511, 0.0, 0.587776400734769, 0.16472858834087942, 1.1016458158754883, 0.1459604994495737, 0.0, 0.0, 0.0, 0.037075917094288376, 0.0, 0.2815459504132854, 0.2536212145780303, 0.559150690052304, 0.48027689889482117, 0.0, 0.21566088189458643, 0.058080618345779114, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008439821738835876, 0.0, 0.36408664087256903, 0.0, 0.16156000319694572, 0.22471190561828702, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10732980278519261, 0.0, 0.0, 0.12403718878006863, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27901056312251676, 0.4801492052284416, 0.0, 0.0, 0.10787548181472921, 0.0, 0.0, 0.0, 0.15654727928350437, 0.0, 0.13104284110293218, 0.13666096202593647, 0.0, 0.0, 0.0, 0.07276575816635268, 0.0, 0.0, 0.0, 0.0, 0.6100450928472326, 0.0, 0.0, 0.0, 0.4238237484103886, 0.9941317988293357, 0.0, 0.0, 0.0, 0.0, 0.3355479309040112, 0.0, 0.0, 0.0, 0.0, 0.5350029094771915, 0.0, 0.008586567333100323, 1.1385513331902584, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1850917274468032, 0.0, 0.0, 0.06716099014107918, 1.1525784735402484, 0.0, 0.0, 0.036572260841491885, 0.0, 0.26119964749940466, 0.0, 0.0, 0.8459335464772313, 0.0, 0.0, 0.0, 0.0, 0.38438887602945404, 0.0, 0.0, 0.0, 0.0, 0.7204933523373307, 0.0, 0.0, 0.16060697060474402, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7112792652633437, 0.0, 0.935521710131386, 0.26536974069831215, 0.2935825392525973, 0.0, 0.0, 0.13719141489981915, 0.0, 0.10324823792839577, 0.0, 0.0, 0.0, 0.7256165269576538, 0.0, 0.48634443939716193, 0.0, 0.7955635800994527, 0.1927019559074891, 0.0, 0.0, 0.7058981437597585, 0.0, 0.5236895266156559, 0.0, 0.08128104063747256, 0.0, 0.0, 0.0, 0.5731212091054763, 0.0, 0.0, 0.0419831484236368, 0.11625926299639212, 0.0, 0.0, 0.08927614896350113, 0.217346651106267, 0.13128361330254273, 0.0, 0.07219885291348893, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4218130442222412, 0.0, 0.0, 0.0, 0.0, 0.1699892215644571, 0.0, 0.14639742856012483, 0.0, 0.0, 0.04200062557179813, 0.0, 0.0, 0.0, 0.31146013043119736, 0.0, 0.0, 0.0, 0.24384030368566587, 0.9260558729858251, 0.4296955936776912, 0.0, 0.0, 0.0, 0.73790516731229, 0.0, 0.0, 0.0, 0.16295488074282302, 0.26550524353964333, 0.0, 0.0, 0.0, 0.31144107126852844, 0.0, 0.485858439126786, 0.0, 0.6914937323909329, 0.0, 0.0, 0.0, 0.0, 0.3162528337434342, 0.0, 0.0, 0.0, 0.0, 1.5785215576611167, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5161924043112004, 0.0, 0.0, 0.2568302026164213, 0.0, 0.3023415151909343, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5030068615133427, 0.0, 0.0, 0.0, 0.2741080207900236, 0.17120972783029909, 0.0, 0.0, 0.0, 0.0, 0.43685119598979993, 0.02712666041421048, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2451085199735546, 0.0, 0.1576437689621315, 0.0, 0.0, 0.0, 0.6857487349281931, 0.05917052173435364, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6537568461306704, 0.0, 0.0, 0.5395442735782994, 0.05374109131453472, 0.0, 0.5917732326059808, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0008206716541601089, 0.19818937147807536, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.535053682582317, 0.0, 0.3513819151899916, 0.04333888481337121, 0.5747915094439204, 0.19540689526232177, 0.01899860952318465, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06595709778063945, 0.0, 0.08799217533170228, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03735300199555871, 0.19147688509049948, 0.0, 0.0, 0.0, 0.2914125830050192, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04799459307428656, 0.0, 0.16480769798416883, 0.0, 0.0, 0.0, 0.04840048223798238, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.027156548216558336, 0.0, 0.047181418535814645, 0.0, 0.0, 0.0, 0.0, 0.35341760898781915, 0.5999981948389704, 0.024572219243726254, 0.0, 0.0, 0.08667332426569417, 0.4875808312926843, 0.06369622265280388, 0.0, 0.0, 0.0, 0.07133443039288194, 0.0, 0.0, 0.47894471690358564, 0.4793008357816607, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09658957720985865, 0.3016070141903076, 0.061398864173637636, 0.0, 0.0, 0.0, 0.07060273869520314, 0.35885594789448355, 0.0, 0.06446892769447045, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2497207855356876, 0.018509596151814908, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2926774045716465, 0.0, 0.013651758929637155, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03597721563910695, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07068090962707653, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03642909404914556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2749443358980585, 0.0, 0.0, 0.0, 0.0, 0.5096842842109697, 0.0, 0.0, 0.0, 0.028086239659725638, 0.7421154878137212, 0.0, 0.48123810905471315, 0.0, 0.3067030382176026, 0.6866619523091189, 0.0008295150087239233, 0.5016528107597976, 0.0, 0.08848804808651539, 1.3805931747462472, 0.0, 0.0, 1.04718815925786, 0.0, 0.0, 0.0, 0.42746548493362363, 0.0, 0.5817357352379013, 0.8450882691967682, 0.41665385220387907, 1.0915687546509307, 1.108964330219497, 0.0, 0.0, 0.0, 0.04066069749695377, 0.032733248007639555, 0.0, 0.0, 0.0, 0.07163077100441487, 0.6487063582321942, 0.0, 0.2995103130321618, 0.10283702762113958, 0.33384701220391544, 0.41258982728857174, 0.0, 0.5449670143554067, 0.0, 0.3217489265559145, 0.0, 0.0, 0.0, 0.2849908553676538, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.01610871320352385, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2570528176713379, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2969662795916102, 0.0, 0.12312876081315716, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09075655657480966, 0.0, 0.3633373647258237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06617087939273322, 0.0, 0.0, 0.0, 0.00923594008230594, 0.17805875048711786, 0.22450411347361834, 0.0, 0.0, 0.09502241267674551, 0.0, 0.024589605765570302, 0.0, 0.1826423790293924, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039040067948029694, 0.0, 0.06664139722445166, 0.0, 0.04466639301844483, 0.0, 0.22428735118617732, 0.08284705163804024, 0.05227416022819031, 0.0, 0.19522102914015915, 0.8685310451611696, 0.0, 0.0, 0.0, 0.0, 0.8702352191794189, 0.0, 0.0, 0.15684527219370442, 0.0, 0.9243788213991903, 0.22207735215974056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.40507055158794986, 0.30718446392066534, 0.0, 0.46812545232304087, 0.0, 0.5780009938921578, 0.18279458657604497, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02896217836710352, 0.0, 0.0, 0.40712998428742797, 0.7449999863100496, 0.0, 0.49933620201845186, 0.0, 0.8168155413547457, 0.11457346224809285, 0.0, 0.0, 0.0, 0.15332753334456128, 0.11864376215788304, 0.0, 0.0, 0.04572095120049149, 0.0, 0.0, 0.31683394463012315, 0.5003078767139268, 0.14059206617597214, 0.19554784897288408, 0.0, 0.43178409369310355, 0.0, 0.07560627618395319, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16352131380333873, 0.0, 0.34449708571742155, 0.0, 0.4618370375665847, 0.0, 0.0, 0.41783342102021986, 0.0, 0.0, 0.0, 0.02165252564332241, 0.0, 0.0, 0.0, 0.47140143149032104, 0.39181349979635294, 0.11892452733738064, 0.0, 0.5433598750764469, 0.0, 0.0, 0.0, 0.07266999506080335, 0.0, 0.6735755940113932, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0041630866962457744, 0.2109647750127205, 0.0, 0.0, 0.0, 0.3715024914369038, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1845463840294256, 0.0, 0.6075440706050301, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29101469974401967, 0.0, 0.0, 0.032739778024003775, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4875593392929034, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20371408580482323, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0439075644510851, 0.0, 0.5496827874572944, 0.40327797474842975, 0.37238046622077875, 0.0, 0.0, 0.17401376516444506, 0.0, 0.11278871866256229, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15394336215607962, 0.0, 0.0, 0.0]), 42), 42)),) julia> @finch_code begin Ct .= 0 for j = parallel(_) @@ -734,7 +734,7 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.01855804465451247, 0.0, 0.0, 0.03641425883740431, 0.0568080930379847, 0.10109716846875504, 0.0, 0.0, 0.0, 0.0, 0.005424838537552436, 0.0, 0.0, 0.5251896042062963, 0.0, 0.0, 0.0, 0.00515342598991506, 0.045980273053842245, 0.0, 0.4033688458623361, 0.0510673466163073, 0.0, 0.0, 0.02134197385615031, 0.01687808266981965, 0.0, 0.4932447371732914, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7178045198025068, 0.2106682695954306, 0.0, 0.3115118572371521, 0.5170963380295581, 0.39595498771521426, 0.1432663403816299, 0.5698542189659496, 0.0, 0.0, 0.0, 0.5317966816929195, 0.0, 0.5315818882594147, 0.8168445783005969, 0.0, 0.0, 0.0, 0.01222733860627223, 0.0, 0.716756885645577, 0.0, 0.8217284580618865, 0.48234209517721377, 0.15545502627894098, 0.04826321760798536, 0.0, 0.0, 0.1394038038151463, 0.0, 0.056802678199824076, 0.0, 0.0, 0.0, 0.3128541399180126, 0.0, 0.0, 0.596593418834028, 0.0, 0.2846892571697076, 0.0, 0.0, 0.0, 0.23365792107187477, 0.0, 0.0, 0.4584793374366712, 0.7152510496888798, 0.0, 0.0, 0.0, 0.8190896825195866, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11127793558853107, 0.0, 0.5789217135796446, 0.0, 0.0, 0.6429712972008511, 0.0, 0.0, 0.661506988212563, 0.7629272979371657, 0.0, 0.4234710523361336, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4257443064600869, 0.0, 0.20425497460318195, 0.0, 0.5184318202957809, 0.5906121758765186, 0.0, 0.9091367634018797, 0.0, 0.30652125262867885, 0.0, 0.7954054080966687, 0.0, 0.0, 0.0, 1.0559083316811368, 0.0, 0.04427154393293609, 0.8228955354751877, 0.46658038808648383, 0.0, 0.02688606839966265, 0.0, 0.0, 0.6276611460113729, 0.22522673327345408, 0.0, 0.12308651028821192, 0.3657688390111318, 0.0, 0.046115245088609334, 0.0, 0.5342436705087195, 0.0, 0.1923886832463953, 0.07621763959827882, 0.0, 0.0, 0.0, 0.6725528112574624, 0.7483589153917343, 0.0, 0.0, 0.0, 0.0, 0.38949567271561986, 0.16492548861911044, 0.10519585180914466, 0.8853743380662012, 0.957787822214843, 0.0, 0.05459549529270359, 0.25656057396140347, 0.14167223917141744, 0.03949155262056029, 0.0, 0.0, 0.2703834370419471, 0.0, 0.723362221877522, 0.0, 0.0, 0.0, 0.7883757417725614, 0.0, 0.03340589062163017, 0.18896261922152233, 0.0, 0.0, 0.8122657251866786, 0.029607718570353176, 0.0, 0.008213735995679807, 0.0, 0.08605746445745502, 0.0, 0.3070376563830936, 0.10398717208817806, 0.0, 0.0, 0.0, 0.383984202548332, 0.0, 0.0, 0.3036396360576457, 0.0, 0.0, 0.0, 0.0, 0.11965354383371518, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04825455862354496, 0.3335108938296942, 0.0, 0.0, 0.0, 0.0, 0.04121745447265487, 0.30594446336043757, 0.0, 0.33550494159326405, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029116195807012437, 0.0, 0.0, 0.0, 0.0, 0.0, 0.020041236855252602, 0.0, 0.4850188795993097, 0.0, 0.16403823255879735, 0.0, 0.60023572778736, 0.0, 0.1787344157826609, 0.0, 0.0, 0.17233073276918714, 0.17532212882841147, 0.6209016656456683, 0.5984929062073807, 0.8843163905991084, 0.3337919143714591, 0.0, 1.0919707374354302, 0.8166713304287454, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8330317657834686, 0.27201200741148646, 0.0, 0.8995473587201992, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6388227016456749, 0.0, 0.3682672817259989, 0.0, 0.5422113050459496, 0.0, 0.028602469161704683, 0.0, 0.0, 0.3611222515381231, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.031337192831751, 0.0, 0.0, 0.7687924758178234, 0.012617011188267763, 0.0, 0.0, 0.37315715294884366, 0.0, 0.0, 0.0, 0.0, 0.6888779809403613, 0.121001715761302, 0.0, 0.0, 0.3680175749172942, 0.47420475938210593, 0.0, 0.7604201795169553, 0.0, 0.11917670920609563, 0.0, 0.20848198246903302, 0.24926285864223433, 0.0, 0.5553692000145817, 0.4169252107806106, 0.16597755096800731, 0.7334771026528798, 0.0, 0.0, 0.09908991746260937, 0.0, 0.14652270264303283, 0.006759647910977647, 0.0, 0.9351545954529237, 1.2960299208884896, 0.0, 0.0, 0.21191619141709428, 0.0, 0.0, 0.0, 0.01204540426582532, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06493914883934329, 0.7726981572397796, 0.0, 0.4370686273737238, 0.1778273534538074, 0.055209023869020324, 0.0, 0.0, 0.0, 0.05709969797354255, 0.0, 0.0, 0.0, 0.0, 0.44808598581285264, 0.0, 0.0, 0.0, 0.21141909545938053, 0.13390642572615394, 0.0, 0.0, 0.0, 0.25844994675864025, 0.0, 0.51617125876173, 0.2544268105667549, 0.0, 0.17576058376064335, 0.29087109088619356, 0.0, 0.0, 0.3286889977164017, 0.0, 0.0644707079973061, 0.0, 0.018682819036845075, 0.008522941045952347, 0.0, 0.0, 0.2520720928277996, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.146066293561638, 0.08856351358209161, 0.0, 0.0, 0.0, 0.1407746062228793, 0.5246446552397386, 0.0, 0.0, 0.0, 0.3279179855015388, 0.46137944574560436, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14330339619658897, 0.11500988018505275, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7444467047874328, 0.0, 0.0, 0.40713437972280675, 0.0, 0.0, 0.0, 0.5717679971406524, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4877440937322302, 0.6991654372087778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2369682176872117, 0.0, 0.0, 0.6757556051622259, 0.0, 0.0, 0.0, 0.576368321209737, 0.04986303698751877, 0.0, 0.5384684335273707, 0.0, 0.21524971756673417, 0.4963922980972075, 0.0, 0.0, 0.0, 0.0, 0.18940210229325644, 0.5277692784584271, 0.7718932464687741, 0.7210929692294604, 0.0, 0.0, 0.0, 0.0, 0.48286176484120297, 0.8517937989915767, 0.3931693184679991, 0.0, 0.0, 0.06755455710060922, 0.0, 0.026695131792948763, 1.4844324548606433, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4524914530619723, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4694831016582333, 0.0, 0.42831526212260856, 0.6074590079807168, 0.30066361967157035, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6129938591206631, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6008436638333436, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.43882326364474644, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8591062832739853, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6928708028466394, 0.2819039698547807, 0.08752108546971657, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05246236611269018, 0.0, 0.0, 0.5428804251437249, 0.022819504909203123, 0.3729965675892053, 0.0, 0.5741583158437262, 0.0, 0.1935811346150516, 0.0, 0.5023321549740235, 0.2611826745866744, 0.0, 0.056899028261467276, 0.37961815387770637, 0.22527271986010186, 0.05171423855571594, 0.058968538904135746, 0.0, 0.02892983665470066, 0.003313037290954743, 0.0, 0.0, 0.15785301822506514, 0.0, 0.0, 0.07773433689527456, 0.1049811110510813, 0.0, 0.02912372760696772, 0.0, 0.3114315285072337, 0.5703037753007745, 0.0, 0.04813466284828647, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02241933195791073, 0.0, 0.0, 0.0, 0.0, 0.23199999736075347, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1927795141790272, 0.2407119020891451, 0.0, 0.21960445663579467, 0.5770903406753464, 0.15415530724008072, 0.23155572792080611, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3142922871488459, 0.0, 0.0, 0.0, 0.0, 0.3042889785067072, 0.0, 0.5129566600174419, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3746354155106774, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4789154917746846, 0.17517544375428362, 0.0, 0.0, 0.0, 0.2637662382252967, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2102700997979013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.126545263019808, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.332133943612647, 0.0, 0.0, 0.0, 0.06184093060913505, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3212574037659458, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24673989573277713, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3017167941185386, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6233354196759152, 0.0, 0.0, 0.0, 0.5447611694646652, 0.0, 0.0, 0.216176776357065, 0.0, 0.19855221622967104, 0.8686764576101142, 0.16350923987929902, 0.0, 0.0, 0.02334951098786776, 0.17107621812888604, 0.48682879160279025, 0.7109808359466632, 0.6651558420918936, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6192268761337199, 0.31206921876898447, 0.0, 0.0, 0.24595989001208304, 0.11068536977374843, 0.0, 0.6618395820988949, 0.11362642836904417, 0.0, 0.0, 0.23765422406147768, 0.0, 0.0, 0.8073352785417658, 0.0, 0.0, 0.48485062583878286, 1.055137179889336, 0.2671063045394923, 0.0, 0.8476204266733893, 0.473385026956602, 0.5030912229948215, 0.0, 0.0, 0.0, 0.17678971866264329, 0.4076988147485064, 0.0, 0.6776909084507561, 0.13779930009477406, 0.5691281649873949, 0.16622169517158358, 0.433469475882236, 0.818379113845578, 0.9106844436778354, 0.0, 0.499393081506665, 0.0, 0.5725309586159512, 0.6160013948015824, 0.5125607980557373, 0.2778645861379971, 0.0, 0.0, 0.0, 0.0, 0.0, 0.58929804834674, 0.0, 0.8046233984476477, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3967677816937078, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11707526901952116, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.383435421983313, 0.11707115655719894, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07864429232511502, 0.0, 0.0, 0.3002587300128159, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2266804769859352, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24215921984980293, 0.09852579316681935, 0.030588729804574537, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18874358875246125, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3978422171614565, 0.1936032919321414, 0.0, 0.0, 0.2542147176776134, 0.0, 0.0, 0.0, 0.11057553114503467, 0.0, 6.012518808232222e-5, 0.0008825884581384356, 0.6460696181307314, 0.0, 0.0, 0.06879188140017427, 0.0, 0.0, 0.04716298956935701, 0.1540138997690347, 0.1854894997474166, 0.003124358567077274, 0.35109153378778224, 0.0, 0.0, 0.016293742009993128, 0.0, 0.0, 0.3747805868672189, 0.025859295570033313, 0.214029422856965, 0.003742959361061961, 0.0002933458280023473, 0.0, 0.0, 0.0, 0.030501494612752977, 0.0, 0.6996784734474946, 0.0, 0.0, 0.05616866413207192, 0.0, 0.0018184995370819535, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.020171782722387992, 0.0, 0.0, 0.33279196588498333, 0.0, 0.0, 0.6323890570808377, 0.0, 0.0, 0.0, 0.03594525644730097, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004527887543653786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17039388977135247, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6309056496928738, 0.0, 0.0, 0.0, 0.0, 0.260280820884557, 0.0, 0.0, 0.5107183088816271, 0.7967464980324664, 0.14485492608681305, 0.0, 0.009558078807310686, 0.754701551784825, 0.0, 0.0, 0.0, 0.0, 0.7598764239846039, 0.0, 0.029177780358136646, 0.10253044625069853, 0.03763219091970284, 0.8115624154017409, 0.0, 0.5779584654853126, 0.7162312164421211, 0.0, 0.0, 0.9107472399622886, 0.7029540573396418, 0.0, 1.0969174796040306, 0.0, 0.0, 0.0, 0.0, 0.0038591832437520454, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15366266383288085, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.558080611304664, 0.0, 0.0, 0.0, 0.0, 0.30736701150515244, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04311886842935436, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32751189175201845, 0.0, 0.20963216887545572, 0.1760259950046517, 0.0, 0.23753864749234863, 0.24093292162050975, 0.024684548149881243, 0.4936183719527589, 0.7064246796060082, 0.0, 0.06677453327599289, 0.8542035190842152, 0.0, 0.025534429812218047, 0.011379900282647532, 0.039800411165778926, 0.013727111201321645, 0.27843394547131894, 0.24161261590501448, 0.2499939278392831, 0.0, 0.0, 0.3450248607837782, 0.0, 0.0, 0.15272914557490577, 0.10495111476871369, 0.0, 0.0, 0.0, 0.18866875753074405, 0.0, 0.2225813946448797, 0.0, 0.0, 0.3661590836002555, 0.0, 0.0, 0.0, 0.8998957690359772, 0.30889178773893766, 0.6078813570942335, 0.0, 0.6840699471933163, 0.0, 0.0, 0.0, 0.36308986165522683, 0.752528074611531, 0.7191770460546526, 0.49508503625401296, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7784554319844289, 0.16352298326175332, 0.0, 0.042948548224867954, 0.375190336410357, 0.0, 0.6830715485727474, 0.6403864588932121, 0.7831097846364896, 0.46112164648188003, 0.14556009485746954, 0.0, 0.0, 0.0, 0.8585580212631712, 0.0, 0.253359163441029, 0.0, 0.0, 0.0, 0.45902026051340783, 0.0, 0.0, 0.0, 0.0, 0.166881895984427, 0.0, 0.0, 0.837727301005, 0.0, 0.0, 0.7629510291223568, 0.0, 0.34201996071392393, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3670598185817387, 0.0, 0.9533138689466589, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8365046398061449, 0.0, 0.9590136929209965, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.801491142663501, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16957493050977235, 0.0, 0.2507477829737011, 0.0, 0.0, 0.11532054524043628, 0.07735685692161769, 0.5247858743947099, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02100484631395434, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8201592179395716, 0.0, 0.0, 0.04562437343117348, 0.0, 0.22915724847477928, 0.0, 0.0, 0.7159205767218768, 0.0, 0.0, 0.0, 0.0, 0.29228977882295926, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17928588753235497, 0.10348218971035608, 0.8147006956016374, 0.08438351505236888, 0.0, 0.0, 0.0, 0.1070859593707194, 0.7148756921758321, 0.0, 0.8195717571774336, 0.12249576952187838, 0.0, 0.2397374334824377, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05225556550152024, 0.0, 0.0, 0.0, 0.1707240047839942, 0.0, 0.11920584928810601, 0.0, 0.14514911616615112, 0.4284534617057244, 0.04403067305952579, 0.0, 0.012688229227290206, 0.3654383338493288, 0.04642776495318284, 0.0, 0.0, 0.31371261026073766, 0.1364760956744218, 0.5008825042361101, 0.0, 0.04802625911306818, 0.021403808257108425, 0.0, 0.12191697007589085, 0.33632693219045084, 0.49073784844916374, 0.5066599946239788, 0.0, 0.0, 0.033354950181247504, 0.0, 0.15690710970564234, 0.3397139005999492, 0.4535410643500978, 0.0, 0.0, 0.49050280987387757, 0.0, 0.0, 0.45491953624514714, 0.0, 0.0, 0.33864218894794285, 0.0, 0.0, 0.041024172335819876, 0.0, 0.0, 0.0, 0.36175943329836924, 0.0, 0.39749358702806525, 0.0, 0.5595492530984049, 0.0, 0.0, 0.2573403608635483, 0.17262354625512744, 0.0, 0.0, 0.0, 0.3776391490751126, 0.0, 0.0, 0.1445911005474468, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.45961437114556436, 0.08073146338811468, 0.0, 0.0, 0.0, 0.5680662673212686, 0.0, 0.14301647595845865, 0.4278925860448857, 0.2624303541096862, 0.0, 0.5619603114708978, 0.5488835922357254, 0.0, 0.10445139145624531, 0.9180806504163392, 0.5113694952971799, 0.0, 0.4737323723594051, 0.4474251824766889, 0.10616343839228443, 0.0, 0.02745363380188561, 0.0, 0.28312699798757224, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6983886824821985, 0.38943652344243257, 1.2223890565530993, 0.05586381199212052, 0.0, 0.07686093310040262, 0.10701921729681718, 0.0, 0.4467721663826107, 0.0, 0.5122035249872549, 1.008045581843232, 0.10571972464185753, 0.6235175832869809, 0.0, 0.0, 0.0, 0.0, 0.7054625658357997, 0.0, 0.0, 0.17326833225856653, 0.0, 0.0, 0.0, 1.0813156328128786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0927477810868, 0.0, 0.599657110852462, 0.22383250773975968, 0.19685563542122056, 0.0, 0.05605157239206448, 0.41837305013296433, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18996852120778085, 0.0, 0.28856245320282303, 0.0, 0.0, 0.0, 0.26772611418599673, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1616947156362974, 0.0, 0.0, 0.0, 0.0, 0.36168541397352055, 0.0, 0.0, 0.0, 0.1573219565054934, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13761515434984456, 0.07943022011077468, 0.0, 0.21912413885604493, 0.0, 0.0, 0.40654019224262405, 0.0, 0.0, 0.022840701875983912, 0.0, 0.09402454628178203, 0.5332211799090736, 0.14433851006651358, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.043396172364084024, 0.04011000425692938, 0.0, 0.0, 0.0, 0.13104327726482687, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10232284486723907, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10523174379677519, 0.0, 0.10079612361252216, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04415728315159431, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11805369977437472, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6523402818477722, 0.04871612610613401, 0.0, 0.19287524873967893, 0.0, 0.3592812200503388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.050401634126662875, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8285325211040351, 0.0, 0.0, 0.0, 0.42701794948426475, 0.33826599655789313, 0.0, 0.0, 0.0063200711569476415, 0.0, 0.0, 0.4430530345512502, 0.0, 0.6935424923816391, 0.9428504267370209, 0.42746265456576077, 0.0025457381888520196, 0.0, 0.1593559778661365, 0.0, 0.8273232796667221, 0.04988580847200336, 0.9484876902255591, 0.5784846962232053, 0.0, 0.4437739313478008, 0.0, 0.0, 0.29414816951171024, 0.0, 0.022355194883774517, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02069724212749366, 0.0, 0.0, 0.0, 0.0, 0.7860463101009033, 0.0, 0.0, 0.0, 0.8499064420418566, 0.0, 0.014821364995218649, 0.0, 0.004694386740689857, 0.25038082548050006, 0.5774089497757802, 0.0, 0.0, 0.0, 0.0, 0.006270331329794731, 0.6139069964758506, 0.8351435200462407, 1.0242327730345495, 0.0, 0.029307532281045708, 0.0, 0.0, 0.0, 0.5726801471740839, 0.4962238989829506, 0.0, 0.07225356949876899, 0.10746103390935668, 0.0, 0.0, 0.8346013157058231, 0.0, 0.0, 0.12871551917858068, 0.0, 0.0, 0.05722051841888945, 0.0, 0.08248659071056784, 0.08634381582594033, 0.0, 0.14691645141749232, 0.0, 0.0, 0.0, 0.12530859946217338, 0.0, 0.10215231917559951, 0.07032216186532725, 0.0, 0.8790426858900641, 0.10792096194290268, 0.054388076691659265, 0.0, 0.0, 0.0, 0.05001396409640395, 0.114742650990913, 0.28339886512623463, 0.15677327627325063, 0.0, 0.03258480102579557, 0.09096085908673467, 0.0, 0.0, 0.15530131741375458, 0.4726591715297998, 0.7751806988017736, 0.0, 0.51208607063286, 0.0, 0.0, 0.8142774797804637, 0.037795557638802935, 0.0, 0.03542525158598919, 0.07905092197782795, 0.0, 0.0, 0.1322231578644953, 0.0, 0.0, 0.008286484320060336, 0.670492082894006, 0.0, 0.0, 0.2274177128809876, 0.20430769763068007, 0.27374263149272277, 0.0, 0.0, 0.0, 0.0, 0.22105379716709922, 0.08605636125516496, 0.023058224273634728, 0.03343036365050954, 0.7905997431838073, 0.031091378094046798, 0.32331562706461314, 0.0, 0.048595513480849374, 0.0, 0.6695135011372569, 0.01079155413526415, 0.7675661133629853, 0.01950494389053299, 0.0, 0.06609079415505228, 0.15915608286937477, 0.0, 0.17610090955799163, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05278940542005462, 0.0, 0.04363140001862599, 0.3747258422202424, 0.18235409289517635]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.24622058278177836, 0.0, 0.0, 0.1261597862603059, 0.07342085928314178, 0.12871077894157168, 0.0, 0.0, 0.8034179790657067, 0.0, 0.0, 0.056025142012607894, 1.0596276779513034, 0.0, 0.12141212330168466, 0.0, 0.5574009533856183, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3327944495595785, 0.0, 0.8694342868598712, 0.0, 0.7416396915765561, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7569986463219165, 0.05683836078786318, 0.0, 0.0, 0.8725529080345216, 0.0, 0.2047777547094641, 0.5614660149749067, 0.0, 0.0, 0.36223551246779223, 0.0, 0.0, 0.0, 0.22107392894943306, 0.0, 0.0, 0.0, 0.3259321271119929, 0.5055955427859341, 0.27515457195781157, 0.4169876847813729, 0.018631329176858533, 0.3876953885710935, 0.0, 0.021531556327917045, 0.0, 0.0, 0.28223766305057085, 0.48287552686851865, 0.0, 0.0, 0.10175887870070799, 0.0, 0.0, 0.0, 0.06032870137556734, 0.018726053338837593, 0.045366945649236726, 0.0, 0.0, 0.0, 0.5790914418316278, 0.6815353846022115, 0.0, 0.1332216207413034, 0.0, 0.04017082185996856, 0.0, 0.0, 0.0, 0.0, 0.03484741576880692, 0.893850322287328, 0.4479341395605485, 0.5025126461241762, 0.1987665376735214, 0.31067608319719825, 0.0, 0.0, 0.0, 0.46442597522784795, 0.0, 0.0, 0.4431570212945692, 0.0, 0.0, 0.5121406140989466, 0.0, 0.49477960883115907, 0.0, 0.0, 0.0, 0.0, 0.47025922462023484, 0.3616621631765011, 0.5907253850051586, 0.0, 0.0, 0.44541009068477694, 0.03445733103321199, 0.0, 0.02309502433018302, 0.0, 0.03777890472311954, 0.16345317623186756, 0.16813336048226513, 0.0, 0.0, 0.09235605661534649, 0.0, 0.0, 0.01896246145159963, 0.02753978144349941, 0.0, 0.0, 0.0, 0.30135789429977294, 0.6764584765695312, 0.0, 0.0, 0.3151319553463997, 0.0, 0.04554105431298512, 0.0, 0.08378021558986462, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09849622821166114, 0.0, 0.25488776315346307, 0.0, 0.2781851808227525, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2839462446541717, 0.00854309647598918, 0.0, 0.0, 0.3272900456325508, 0.10375527349591217, 0.8492672297194694, 0.0, 0.5876718077641173, 0.03093892983747342, 0.0, 0.0, 0.0, 0.3385535490482335, 0.0, 0.0, 0.0, 0.29218416128587404, 0.0, 0.6966394562456512, 0.0, 0.0, 0.0, 0.522006486105503, 0.0, 0.0, 0.0, 0.11065330711314218, 0.0, 0.23311787887979893, 0.0, 0.31252070060750486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06134998798063221, 0.0, 0.0, 0.3657519298489218, 0.31899283438369924, 0.0, 0.0, 0.0, 0.3676864240590821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0010478172394749591, 0.5287716819761857, 0.0, 0.3903081303690744, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0017717866111426558, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5892681933608603, 0.002977075804572329, 0.0, 0.0, 0.0, 0.0, 0.43072916849878135, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.045384364903179854, 0.0, 0.0, 0.0018618199412216315, 0.0, 0.17111256306326456, 0.2672837889083413, 0.0, 0.0, 0.19576072012760673, 0.5948736598005219, 0.08413627091493711, 0.7573648130796338, 0.0, 0.0, 0.0, 0.0, 0.0, 0.33101786250771764, 0.16289357736810944, 0.16515314938780928, 0.0, 0.0, 0.0, 0.0, 0.0, 0.662932866371622, 0.6905568008213746, 0.0, 0.0, 0.0, 0.0, 0.4845748090935882, 0.061923683856559844, 0.0, 0.028719251839850298, 0.0, 0.02009827057946138, 0.0, 0.0, 0.0, 0.11124419756806017, 0.4147463454400596, 0.0, 0.0, 0.34783853396429565, 0.0, 0.09260170356894369, 0.0, 0.0, 0.0, 1.1401462738363544, 0.915922599074042, 0.0, 0.0, 0.0, 0.0, 0.6274522680730893, 0.0, 0.3139030754242789, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3751134192842195, 0.0, 1.257728265907189, 0.0, 0.35074493350028346, 0.268137845429166, 0.0, 0.0, 0.0, 0.0, 0.0, 0.016899841379555174, 0.7155448975358032, 0.1680074523773585, 0.0, 0.0, 0.30581125296894957, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9366277987154731, 0.0, 0.0, 0.0, 0.0, 0.07522986257761975, 0.06328419096078892, 0.0, 0.02479071082883737, 0.0, 0.7915629916935427, 0.031935353301522654, 0.0, 0.0, 0.070458258165472, 0.0, 0.0, 0.0, 0.0, 0.052737602183104026, 0.0, 0.013647273418699125, 0.3169788666986562, 0.17235734856254364, 0.0, 0.0, 0.0, 0.0661528775144355, 0.0, 0.027308490724219276, 0.0, 0.0, 0.0, 0.7971915175033586, 0.0, 0.5343175730821937, 0.0, 0.8740381649643706, 0.04598025590229294, 0.029012248678093225, 0.0, 0.0, 0.11141095490761138, 0.0, 0.0, 0.13001430753376275, 0.0, 0.0, 0.0, 0.22549966134722088, 0.0, 0.0, 0.0, 0.3726692665495664, 0.3774382964295704, 0.20411971872540274, 0.06057654493015839, 0.0, 0.5744310538348768, 0.0, 0.0, 0.6232315714035893, 0.0, 0.5072896743166587, 0.0, 0.005553340050755054, 0.5689868928162961, 0.06836125145830099, 0.0, 0.0, 0.49734376521104756, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27904969776436467, 0.0, 0.7814242677772039, 0.5117851675292832, 0.0, 0.0, 0.04886194301383263, 0.0, 0.3067365939854962, 0.0, 0.0, 0.4115088709036164, 1.405104579225751, 0.42840174089528493, 0.48760195358213543, 0.0, 0.0, 0.663844265848651, 0.0, 0.38778436442248837, 0.7776635401136125, 0.15032072106029123, 0.18953081567758903, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7044650329571657, 0.7235946500790119, 0.12987194286479317, 0.19647866132545186, 0.45582545423087456, 0.0, 0.0, 0.0, 0.032958397990191235, 0.0, 0.0, 0.7570462349991403, 0.0941136312544236, 0.0, 0.1276645560961348, 0.0, 0.0, 0.0, 0.755417985546979, 0.8458204729185679, 0.12543050025210123, 0.006393660363144921, 0.0, 0.0, 0.28926738179087036, 0.0, 0.0, 0.4731345211962404, 0.0, 0.7203970460167203, 0.0, 0.0, 0.0, 0.4891311717243447, 0.0031333060836164625, 0.003950606766695812, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8250852706661534, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1940012409565178, 0.0, 0.7255195358366966, 0.0, 0.4862794311033925, 0.0, 0.7981182971725221, 0.0, 0.26385403496014914, 0.0, 0.5139863704027979, 0.35381636124647037, 0.06016159688024159, 0.0, 0.0, 0.0, 0.07675121814682248, 0.0, 0.0, 0.12553662505708466, 0.0, 0.301350309711505, 0.0, 0.0, 0.0, 0.12978101101826656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2180668401971053, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09272141980768678, 0.0, 0.3034931056908601, 0.0, 0.203416238280828, 0.0, 0.33274884560755447, 0.0, 0.12655518438173288, 0.0, 0.13637583261219158, 0.0, 0.0, 0.0, 0.0, 0.020115042222633606, 0.0, 0.11478942012015081, 0.0, 0.044967175485766994, 0.0, 0.27969782401606164, 0.1383242818414881, 0.0, 0.0, 0.18685369035983804, 0.0, 0.06810955828519266, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17579267922314348, 0.0, 0.0, 0.11999285025017485, 0.0, 0.0, 0.14209169595972287, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11399414163060874, 0.019825113051252268, 0.0, 0.049971986914216976, 0.07235420154739257, 0.0, 0.0, 0.08331368376199759, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07280640355864025, 0.0, 0.0, 0.35152520960031586, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13676901662991092, 0.0, 0.0, 0.0, 0.015204774707799058, 0.0, 0.0, 0.0, 0.0, 0.5304031136005922, 0.0, 0.0, 0.0, 0.32819195551919517, 0.1622165373359131, 0.0, 0.0, 0.0, 0.1321652778478459, 0.0, 0.0, 0.2161735452720934, 0.0, 0.27952564740678887, 0.0, 0.0, 0.0, 0.22348236021207268, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.375510190195534, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2500091160813631, 0.0, 0.2815132558946093, 0.0, 0.18868424509978618, 0.0, 0.30865021038590384, 0.0, 0.341236683480638, 0.0, 0.23483861551802387, 0.0, 0.0, 0.0, 0.12117745385937667, 0.0, 0.0, 0.3973467888918919, 0.0, 0.2920101397985984, 0.0, 0.12988448302264086, 0.0, 0.3517844506342411, 0.0, 0.0, 0.0, 0.6519761543079575, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4428070420734244, 0.0, 0.3964317892338393, 0.0, 0.0, 0.0, 0.3236724995283946, 0.0, 0.0567229736921611, 0.0, 0.0, 0.0, 0.25146743826064083, 0.0, 0.0, 0.011207888208677623, 0.08869787998517195, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0436070974131627, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05218480148875932, 0.0, 0.0, 0.0, 0.28668060177386556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16806127510824798, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1010038649276795, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24411150965510042, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3252831829639798, 0.0, 0.13696611429551586, 0.0, 0.08809099936621054, 0.0, 0.0, 0.0, 0.5834039633369968, 0.2573783852497724, 0.0, 0.34353142253711105, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8226681209013311, 0.43635481618924155, 0.0, 0.21222851603946533, 0.0, 0.6640973088333184, 0.0, 0.1716321278580885, 0.7312656094018032, 0.46618173092618587, 0.7638215749927391, 0.5281765059497923, 0.012259008816529623, 0.9144713112403178, 0.0, 0.0, 0.0, 0.0, 0.7953741970864907, 0.0, 0.0, 0.5850872742568098, 0.0, 0.0, 0.0, 0.7307808207285703, 0.0, 0.6199309753815017, 0.37291372178799176, 0.0, 0.0, 0.22356724549482568, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3221254739496775, 0.11781870844111127, 0.04460774210115785, 0.7133319766560491, 0.17115949268039302, 0.47397294440775345, 0.0, 0.10101149129956093, 0.11755718548933392, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.057090584067732354, 0.6447844891876003, 0.0, 0.0, 0.033829519264607456, 0.0, 0.1190337187097033, 0.30523421948716617, 0.0, 0.0, 0.0, 0.0, 0.6213057774307251, 0.842768502451811, 0.0, 0.3906048759812801, 0.7719833104847825, 0.41168363040706235, 0.1712307445975339, 0.0, 0.05992936357237096, 0.04890539039186202, 0.0, 0.0, 0.012380496199171342, 0.0, 0.2674194407541521, 0.0, 0.0014443996714777229, 0.0, 0.16387003646802972, 0.0, 0.0, 0.03594122433913304, 0.24159569520366886, 0.3747703785250739, 0.0, 0.054699683547073226, 0.0, 0.2873774296478163, 0.0, 0.0, 0.0, 0.14956132991470428, 0.0, 0.3888645476970781, 0.0, 0.0, 0.07542830239130101, 0.07080076609705026, 0.0, 0.0, 0.0, 0.0, 0.09852911382155678, 0.19548481725379033, 0.0, 0.0, 0.4350977845419587, 0.00557774494203208, 0.0, 0.09874991570897035, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6034262468294622, 0.2713368059843151, 0.6497013107648627, 0.0, 0.8007029601130917, 0.0, 0.0, 0.0, 0.0, 0.01616961592030159, 0.0, 0.0, 0.0, 0.0, 0.2502876057454169, 0.49212467358206446, 0.2134864810859512, 0.1765833209669342, 0.0, 0.0, 0.0, 0.5401972297237567, 0.03318857704329382, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12219566143679067, 0.0, 0.04829725298673487, 0.0, 0.0, 0.0, 0.0, 0.0, 1.2356793204214815, 0.02263120223723859, 0.7256596881722004, 0.3263003275955702, 0.7654157892976137, 0.08145618747845872, 0.6387218661983024, 0.0, 0.5276231408957645, 0.8184646008092085, 0.0, 0.0, 0.0, 0.6276063069977658, 0.0, 0.6132063830791735, 0.006204111701464058, 0.18851722870999638, 0.375149258411478, 0.7816851453263511, 0.0, 0.587776400734769, 0.16472858834087942, 1.1016458158754883, 0.1459604994495737, 0.0, 0.0, 0.0, 0.037075917094288376, 0.0, 0.2815459504132854, 0.2536212145780303, 0.559150690052304, 0.48027689889482117, 0.0, 0.21566088189458643, 0.058080618345779114, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008439821738835876, 0.0, 0.36408664087256903, 0.0, 0.16156000319694572, 0.22471190561828702, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10732980278519261, 0.0, 0.0, 0.12403718878006863, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27901056312251676, 0.4801492052284416, 0.0, 0.0, 0.10787548181472921, 0.0, 0.0, 0.0, 0.15654727928350437, 0.0, 0.13104284110293218, 0.13666096202593647, 0.0, 0.0, 0.0, 0.07276575816635268, 0.0, 0.0, 0.0, 0.0, 0.6100450928472326, 0.0, 0.0, 0.0, 0.4238237484103886, 0.9941317988293357, 0.0, 0.0, 0.0, 0.0, 0.3355479309040112, 0.0, 0.0, 0.0, 0.0, 0.5350029094771915, 0.0, 0.008586567333100323, 1.1385513331902584, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1850917274468032, 0.0, 0.0, 0.06716099014107918, 1.1525784735402484, 0.0, 0.0, 0.036572260841491885, 0.0, 0.26119964749940466, 0.0, 0.0, 0.8459335464772313, 0.0, 0.0, 0.0, 0.0, 0.38438887602945404, 0.0, 0.0, 0.0, 0.0, 0.7204933523373307, 0.0, 0.0, 0.16060697060474402, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7112792652633437, 0.0, 0.935521710131386, 0.26536974069831215, 0.2935825392525973, 0.0, 0.0, 0.13719141489981915, 0.0, 0.10324823792839577, 0.0, 0.0, 0.0, 0.7256165269576538, 0.0, 0.48634443939716193, 0.0, 0.7955635800994527, 0.1927019559074891, 0.0, 0.0, 0.7058981437597585, 0.0, 0.5236895266156559, 0.0, 0.08128104063747256, 0.0, 0.0, 0.0, 0.5731212091054763, 0.0, 0.0, 0.0419831484236368, 0.11625926299639212, 0.0, 0.0, 0.08927614896350113, 0.217346651106267, 0.13128361330254273, 0.0, 0.07219885291348893, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4218130442222412, 0.0, 0.0, 0.0, 0.0, 0.1699892215644571, 0.0, 0.14639742856012483, 0.0, 0.0, 0.04200062557179813, 0.0, 0.0, 0.0, 0.31146013043119736, 0.0, 0.0, 0.0, 0.24384030368566587, 0.9260558729858251, 0.4296955936776912, 0.0, 0.0, 0.0, 0.73790516731229, 0.0, 0.0, 0.0, 0.16295488074282302, 0.26550524353964333, 0.0, 0.0, 0.0, 0.31144107126852844, 0.0, 0.485858439126786, 0.0, 0.6914937323909329, 0.0, 0.0, 0.0, 0.0, 0.3162528337434342, 0.0, 0.0, 0.0, 0.0, 1.5785215576611167, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5161924043112004, 0.0, 0.0, 0.2568302026164213, 0.0, 0.3023415151909343, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5030068615133427, 0.0, 0.0, 0.0, 0.2741080207900236, 0.17120972783029909, 0.0, 0.0, 0.0, 0.0, 0.43685119598979993, 0.02712666041421048, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2451085199735546, 0.0, 0.1576437689621315, 0.0, 0.0, 0.0, 0.6857487349281931, 0.05917052173435364, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6537568461306704, 0.0, 0.0, 0.5395442735782994, 0.05374109131453472, 0.0, 0.5917732326059808, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0008206716541601089, 0.19818937147807536, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.535053682582317, 0.0, 0.3513819151899916, 0.04333888481337121, 0.5747915094439204, 0.19540689526232177, 0.01899860952318465, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06595709778063945, 0.0, 0.08799217533170228, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03735300199555871, 0.19147688509049948, 0.0, 0.0, 0.0, 0.2914125830050192, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04799459307428656, 0.0, 0.16480769798416883, 0.0, 0.0, 0.0, 0.04840048223798238, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.027156548216558336, 0.0, 0.047181418535814645, 0.0, 0.0, 0.0, 0.0, 0.35341760898781915, 0.5999981948389704, 0.024572219243726254, 0.0, 0.0, 0.08667332426569417, 0.4875808312926843, 0.06369622265280388, 0.0, 0.0, 0.0, 0.07133443039288194, 0.0, 0.0, 0.47894471690358564, 0.4793008357816607, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09658957720985865, 0.3016070141903076, 0.061398864173637636, 0.0, 0.0, 0.0, 0.07060273869520314, 0.35885594789448355, 0.0, 0.06446892769447045, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2497207855356876, 0.018509596151814908, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2926774045716465, 0.0, 0.013651758929637155, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03597721563910695, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07068090962707653, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03642909404914556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2749443358980585, 0.0, 0.0, 0.0, 0.0, 0.5096842842109697, 0.0, 0.0, 0.0, 0.028086239659725638, 0.7421154878137212, 0.0, 0.48123810905471315, 0.0, 0.3067030382176026, 0.6866619523091189, 0.0008295150087239233, 0.5016528107597976, 0.0, 0.08848804808651539, 1.3805931747462472, 0.0, 0.0, 1.04718815925786, 0.0, 0.0, 0.0, 0.42746548493362363, 0.0, 0.5817357352379013, 0.8450882691967682, 0.41665385220387907, 1.0915687546509307, 1.108964330219497, 0.0, 0.0, 0.0, 0.04066069749695377, 0.032733248007639555, 0.0, 0.0, 0.0, 0.07163077100441487, 0.6487063582321942, 0.0, 0.2995103130321618, 0.10283702762113958, 0.33384701220391544, 0.41258982728857174, 0.0, 0.5449670143554067, 0.0, 0.3217489265559145, 0.0, 0.0, 0.0, 0.2849908553676538, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.01610871320352385, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2570528176713379, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2969662795916102, 0.0, 0.12312876081315716, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09075655657480966, 0.0, 0.3633373647258237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06617087939273322, 0.0, 0.0, 0.0, 0.00923594008230594, 0.17805875048711786, 0.22450411347361834, 0.0, 0.0, 0.09502241267674551, 0.0, 0.024589605765570302, 0.0, 0.1826423790293924, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039040067948029694, 0.0, 0.06664139722445166, 0.0, 0.04466639301844483, 0.0, 0.22428735118617732, 0.08284705163804024, 0.05227416022819031, 0.0, 0.19522102914015915, 0.8685310451611696, 0.0, 0.0, 0.0, 0.0, 0.8702352191794189, 0.0, 0.0, 0.15684527219370442, 0.0, 0.9243788213991903, 0.22207735215974056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.40507055158794986, 0.30718446392066534, 0.0, 0.46812545232304087, 0.0, 0.5780009938921578, 0.18279458657604497, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02896217836710352, 0.0, 0.0, 0.40712998428742797, 0.7449999863100496, 0.0, 0.49933620201845186, 0.0, 0.8168155413547457, 0.11457346224809285, 0.0, 0.0, 0.0, 0.15332753334456128, 0.11864376215788304, 0.0, 0.0, 0.04572095120049149, 0.0, 0.0, 0.31683394463012315, 0.5003078767139268, 0.14059206617597214, 0.19554784897288408, 0.0, 0.43178409369310355, 0.0, 0.07560627618395319, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16352131380333873, 0.0, 0.34449708571742155, 0.0, 0.4618370375665847, 0.0, 0.0, 0.41783342102021986, 0.0, 0.0, 0.0, 0.02165252564332241, 0.0, 0.0, 0.0, 0.47140143149032104, 0.39181349979635294, 0.11892452733738064, 0.0, 0.5433598750764469, 0.0, 0.0, 0.0, 0.07266999506080335, 0.0, 0.6735755940113932, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0041630866962457744, 0.2109647750127205, 0.0, 0.0, 0.0, 0.3715024914369038, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1845463840294256, 0.0, 0.6075440706050301, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29101469974401967, 0.0, 0.0, 0.032739778024003775, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4875593392929034, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20371408580482323, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0439075644510851, 0.0, 0.5496827874572944, 0.40327797474842975, 0.37238046622077875, 0.0, 0.0, 0.17401376516444506, 0.0, 0.11278871866256229, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15394336215607962, 0.0, 0.0, 0.0]), 42), 42)),) julia> @finch_code begin Ct .= 0 for j = _ @@ -1015,7 +1015,7 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.01855804465451247, 0.0, 0.0, 0.03641425883740431, 0.0568080930379847, 0.10109716846875504, 0.0, 0.0, 0.0, 0.0, 0.005424838537552436, 0.0, 0.0, 0.5251896042062963, 0.0, 0.0, 0.0, 0.00515342598991506, 0.045980273053842245, 0.0, 0.4033688458623361, 0.0510673466163073, 0.0, 0.0, 0.02134197385615031, 0.01687808266981965, 0.0, 0.4932447371732914, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7178045198025068, 0.2106682695954306, 0.0, 0.3115118572371521, 0.5170963380295581, 0.39595498771521426, 0.1432663403816299, 0.5698542189659496, 0.0, 0.0, 0.0, 0.5317966816929195, 0.0, 0.5315818882594147, 0.8168445783005969, 0.0, 0.0, 0.0, 0.01222733860627223, 0.0, 0.716756885645577, 0.0, 0.8217284580618865, 0.48234209517721377, 0.15545502627894098, 0.04826321760798536, 0.0, 0.0, 0.1394038038151463, 0.0, 0.056802678199824076, 0.0, 0.0, 0.0, 0.3128541399180126, 0.0, 0.0, 0.596593418834028, 0.0, 0.2846892571697076, 0.0, 0.0, 0.0, 0.23365792107187477, 0.0, 0.0, 0.4584793374366712, 0.7152510496888798, 0.0, 0.0, 0.0, 0.8190896825195866, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11127793558853107, 0.0, 0.5789217135796446, 0.0, 0.0, 0.6429712972008511, 0.0, 0.0, 0.661506988212563, 0.7629272979371657, 0.0, 0.4234710523361336, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4257443064600869, 0.0, 0.20425497460318195, 0.0, 0.5184318202957809, 0.5906121758765186, 0.0, 0.9091367634018797, 0.0, 0.30652125262867885, 0.0, 0.7954054080966687, 0.0, 0.0, 0.0, 1.0559083316811368, 0.0, 0.04427154393293609, 0.8228955354751877, 0.46658038808648383, 0.0, 0.02688606839966265, 0.0, 0.0, 0.6276611460113729, 0.22522673327345408, 0.0, 0.12308651028821192, 0.3657688390111318, 0.0, 0.046115245088609334, 0.0, 0.5342436705087195, 0.0, 0.1923886832463953, 0.07621763959827882, 0.0, 0.0, 0.0, 0.6725528112574624, 0.7483589153917343, 0.0, 0.0, 0.0, 0.0, 0.38949567271561986, 0.16492548861911044, 0.10519585180914466, 0.8853743380662012, 0.957787822214843, 0.0, 0.05459549529270359, 0.25656057396140347, 0.14167223917141744, 0.03949155262056029, 0.0, 0.0, 0.2703834370419471, 0.0, 0.723362221877522, 0.0, 0.0, 0.0, 0.7883757417725614, 0.0, 0.03340589062163017, 0.18896261922152233, 0.0, 0.0, 0.8122657251866786, 0.029607718570353176, 0.0, 0.008213735995679807, 0.0, 0.08605746445745502, 0.0, 0.3070376563830936, 0.10398717208817806, 0.0, 0.0, 0.0, 0.383984202548332, 0.0, 0.0, 0.3036396360576457, 0.0, 0.0, 0.0, 0.0, 0.11965354383371518, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04825455862354496, 0.3335108938296942, 0.0, 0.0, 0.0, 0.0, 0.04121745447265487, 0.30594446336043757, 0.0, 0.33550494159326405, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029116195807012437, 0.0, 0.0, 0.0, 0.0, 0.0, 0.020041236855252602, 0.0, 0.4850188795993097, 0.0, 0.16403823255879735, 0.0, 0.60023572778736, 0.0, 0.1787344157826609, 0.0, 0.0, 0.17233073276918714, 0.17532212882841147, 0.6209016656456683, 0.5984929062073807, 0.8843163905991084, 0.3337919143714591, 0.0, 1.0919707374354302, 0.8166713304287454, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8330317657834686, 0.27201200741148646, 0.0, 0.8995473587201992, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6388227016456749, 0.0, 0.3682672817259989, 0.0, 0.5422113050459496, 0.0, 0.028602469161704683, 0.0, 0.0, 0.3611222515381231, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.031337192831751, 0.0, 0.0, 0.7687924758178234, 0.012617011188267763, 0.0, 0.0, 0.37315715294884366, 0.0, 0.0, 0.0, 0.0, 0.6888779809403613, 0.121001715761302, 0.0, 0.0, 0.3680175749172942, 0.47420475938210593, 0.0, 0.7604201795169553, 0.0, 0.11917670920609563, 0.0, 0.20848198246903302, 0.24926285864223433, 0.0, 0.5553692000145817, 0.4169252107806106, 0.16597755096800731, 0.7334771026528798, 0.0, 0.0, 0.09908991746260937, 0.0, 0.14652270264303283, 0.006759647910977647, 0.0, 0.9351545954529237, 1.2960299208884896, 0.0, 0.0, 0.21191619141709428, 0.0, 0.0, 0.0, 0.01204540426582532, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06493914883934329, 0.7726981572397796, 0.0, 0.4370686273737238, 0.1778273534538074, 0.055209023869020324, 0.0, 0.0, 0.0, 0.05709969797354255, 0.0, 0.0, 0.0, 0.0, 0.44808598581285264, 0.0, 0.0, 0.0, 0.21141909545938053, 0.13390642572615394, 0.0, 0.0, 0.0, 0.25844994675864025, 0.0, 0.51617125876173, 0.2544268105667549, 0.0, 0.17576058376064335, 0.29087109088619356, 0.0, 0.0, 0.3286889977164017, 0.0, 0.0644707079973061, 0.0, 0.018682819036845075, 0.008522941045952347, 0.0, 0.0, 0.2520720928277996, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.146066293561638, 0.08856351358209161, 0.0, 0.0, 0.0, 0.1407746062228793, 0.5246446552397386, 0.0, 0.0, 0.0, 0.3279179855015388, 0.46137944574560436, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14330339619658897, 0.11500988018505275, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7444467047874328, 0.0, 0.0, 0.40713437972280675, 0.0, 0.0, 0.0, 0.5717679971406524, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4877440937322302, 0.6991654372087778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2369682176872117, 0.0, 0.0, 0.6757556051622259, 0.0, 0.0, 0.0, 0.576368321209737, 0.04986303698751877, 0.0, 0.5384684335273707, 0.0, 0.21524971756673417, 0.4963922980972075, 0.0, 0.0, 0.0, 0.0, 0.18940210229325644, 0.5277692784584271, 0.7718932464687741, 0.7210929692294604, 0.0, 0.0, 0.0, 0.0, 0.48286176484120297, 0.8517937989915767, 0.3931693184679991, 0.0, 0.0, 0.06755455710060922, 0.0, 0.026695131792948763, 1.4844324548606433, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4524914530619723, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4694831016582333, 0.0, 0.42831526212260856, 0.6074590079807168, 0.30066361967157035, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6129938591206631, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6008436638333436, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.43882326364474644, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8591062832739853, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6928708028466394, 0.2819039698547807, 0.08752108546971657, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05246236611269018, 0.0, 0.0, 0.5428804251437249, 0.022819504909203123, 0.3729965675892053, 0.0, 0.5741583158437262, 0.0, 0.1935811346150516, 0.0, 0.5023321549740235, 0.2611826745866744, 0.0, 0.056899028261467276, 0.37961815387770637, 0.22527271986010186, 0.05171423855571594, 0.058968538904135746, 0.0, 0.02892983665470066, 0.003313037290954743, 0.0, 0.0, 0.15785301822506514, 0.0, 0.0, 0.07773433689527456, 0.1049811110510813, 0.0, 0.02912372760696772, 0.0, 0.3114315285072337, 0.5703037753007745, 0.0, 0.04813466284828647, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02241933195791073, 0.0, 0.0, 0.0, 0.0, 0.23199999736075347, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1927795141790272, 0.2407119020891451, 0.0, 0.21960445663579467, 0.5770903406753464, 0.15415530724008072, 0.23155572792080611, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3142922871488459, 0.0, 0.0, 0.0, 0.0, 0.3042889785067072, 0.0, 0.5129566600174419, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3746354155106774, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4789154917746846, 0.17517544375428362, 0.0, 0.0, 0.0, 0.2637662382252967, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2102700997979013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.126545263019808, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.332133943612647, 0.0, 0.0, 0.0, 0.06184093060913505, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3212574037659458, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24673989573277713, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3017167941185386, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6233354196759152, 0.0, 0.0, 0.0, 0.5447611694646652, 0.0, 0.0, 0.216176776357065, 0.0, 0.19855221622967104, 0.8686764576101142, 0.16350923987929902, 0.0, 0.0, 0.02334951098786776, 0.17107621812888604, 0.48682879160279025, 0.7109808359466632, 0.6651558420918936, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6192268761337199, 0.31206921876898447, 0.0, 0.0, 0.24595989001208304, 0.11068536977374843, 0.0, 0.6618395820988949, 0.11362642836904417, 0.0, 0.0, 0.23765422406147768, 0.0, 0.0, 0.8073352785417658, 0.0, 0.0, 0.48485062583878286, 1.055137179889336, 0.2671063045394923, 0.0, 0.8476204266733893, 0.473385026956602, 0.5030912229948215, 0.0, 0.0, 0.0, 0.17678971866264329, 0.4076988147485064, 0.0, 0.6776909084507561, 0.13779930009477406, 0.5691281649873949, 0.16622169517158358, 0.433469475882236, 0.818379113845578, 0.9106844436778354, 0.0, 0.499393081506665, 0.0, 0.5725309586159512, 0.6160013948015824, 0.5125607980557373, 0.2778645861379971, 0.0, 0.0, 0.0, 0.0, 0.0, 0.58929804834674, 0.0, 0.8046233984476477, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3967677816937078, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11707526901952116, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.383435421983313, 0.11707115655719894, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07864429232511502, 0.0, 0.0, 0.3002587300128159, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2266804769859352, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24215921984980293, 0.09852579316681935, 0.030588729804574537, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18874358875246125, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3978422171614565, 0.1936032919321414, 0.0, 0.0, 0.2542147176776134, 0.0, 0.0, 0.0, 0.11057553114503467, 0.0, 6.012518808232222e-5, 0.0008825884581384356, 0.6460696181307314, 0.0, 0.0, 0.06879188140017427, 0.0, 0.0, 0.04716298956935701, 0.1540138997690347, 0.1854894997474166, 0.003124358567077274, 0.35109153378778224, 0.0, 0.0, 0.016293742009993128, 0.0, 0.0, 0.3747805868672189, 0.025859295570033313, 0.214029422856965, 0.003742959361061961, 0.0002933458280023473, 0.0, 0.0, 0.0, 0.030501494612752977, 0.0, 0.6996784734474946, 0.0, 0.0, 0.05616866413207192, 0.0, 0.0018184995370819535, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.020171782722387992, 0.0, 0.0, 0.33279196588498333, 0.0, 0.0, 0.6323890570808377, 0.0, 0.0, 0.0, 0.03594525644730097, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004527887543653786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17039388977135247, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6309056496928738, 0.0, 0.0, 0.0, 0.0, 0.260280820884557, 0.0, 0.0, 0.5107183088816271, 0.7967464980324664, 0.14485492608681305, 0.0, 0.009558078807310686, 0.754701551784825, 0.0, 0.0, 0.0, 0.0, 0.7598764239846039, 0.0, 0.029177780358136646, 0.10253044625069853, 0.03763219091970284, 0.8115624154017409, 0.0, 0.5779584654853126, 0.7162312164421211, 0.0, 0.0, 0.9107472399622886, 0.7029540573396418, 0.0, 1.0969174796040306, 0.0, 0.0, 0.0, 0.0, 0.0038591832437520454, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15366266383288085, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.558080611304664, 0.0, 0.0, 0.0, 0.0, 0.30736701150515244, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04311886842935436, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32751189175201845, 0.0, 0.20963216887545572, 0.1760259950046517, 0.0, 0.23753864749234863, 0.24093292162050975, 0.024684548149881243, 0.4936183719527589, 0.7064246796060082, 0.0, 0.06677453327599289, 0.8542035190842152, 0.0, 0.025534429812218047, 0.011379900282647532, 0.039800411165778926, 0.013727111201321645, 0.27843394547131894, 0.24161261590501448, 0.2499939278392831, 0.0, 0.0, 0.3450248607837782, 0.0, 0.0, 0.15272914557490577, 0.10495111476871369, 0.0, 0.0, 0.0, 0.18866875753074405, 0.0, 0.2225813946448797, 0.0, 0.0, 0.3661590836002555, 0.0, 0.0, 0.0, 0.8998957690359772, 0.30889178773893766, 0.6078813570942335, 0.0, 0.6840699471933163, 0.0, 0.0, 0.0, 0.36308986165522683, 0.752528074611531, 0.7191770460546526, 0.49508503625401296, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7784554319844289, 0.16352298326175332, 0.0, 0.042948548224867954, 0.375190336410357, 0.0, 0.6830715485727474, 0.6403864588932121, 0.7831097846364896, 0.46112164648188003, 0.14556009485746954, 0.0, 0.0, 0.0, 0.8585580212631712, 0.0, 0.253359163441029, 0.0, 0.0, 0.0, 0.45902026051340783, 0.0, 0.0, 0.0, 0.0, 0.166881895984427, 0.0, 0.0, 0.837727301005, 0.0, 0.0, 0.7629510291223568, 0.0, 0.34201996071392393, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3670598185817387, 0.0, 0.9533138689466589, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8365046398061449, 0.0, 0.9590136929209965, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.801491142663501, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16957493050977235, 0.0, 0.2507477829737011, 0.0, 0.0, 0.11532054524043628, 0.07735685692161769, 0.5247858743947099, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02100484631395434, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8201592179395716, 0.0, 0.0, 0.04562437343117348, 0.0, 0.22915724847477928, 0.0, 0.0, 0.7159205767218768, 0.0, 0.0, 0.0, 0.0, 0.29228977882295926, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17928588753235497, 0.10348218971035608, 0.8147006956016374, 0.08438351505236888, 0.0, 0.0, 0.0, 0.1070859593707194, 0.7148756921758321, 0.0, 0.8195717571774336, 0.12249576952187838, 0.0, 0.2397374334824377, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05225556550152024, 0.0, 0.0, 0.0, 0.1707240047839942, 0.0, 0.11920584928810601, 0.0, 0.14514911616615112, 0.4284534617057244, 0.04403067305952579, 0.0, 0.012688229227290206, 0.3654383338493288, 0.04642776495318284, 0.0, 0.0, 0.31371261026073766, 0.1364760956744218, 0.5008825042361101, 0.0, 0.04802625911306818, 0.021403808257108425, 0.0, 0.12191697007589085, 0.33632693219045084, 0.49073784844916374, 0.5066599946239788, 0.0, 0.0, 0.033354950181247504, 0.0, 0.15690710970564234, 0.3397139005999492, 0.4535410643500978, 0.0, 0.0, 0.49050280987387757, 0.0, 0.0, 0.45491953624514714, 0.0, 0.0, 0.33864218894794285, 0.0, 0.0, 0.041024172335819876, 0.0, 0.0, 0.0, 0.36175943329836924, 0.0, 0.39749358702806525, 0.0, 0.5595492530984049, 0.0, 0.0, 0.2573403608635483, 0.17262354625512744, 0.0, 0.0, 0.0, 0.3776391490751126, 0.0, 0.0, 0.1445911005474468, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.45961437114556436, 0.08073146338811468, 0.0, 0.0, 0.0, 0.5680662673212686, 0.0, 0.14301647595845865, 0.4278925860448857, 0.2624303541096862, 0.0, 0.5619603114708978, 0.5488835922357254, 0.0, 0.10445139145624531, 0.9180806504163392, 0.5113694952971799, 0.0, 0.4737323723594051, 0.4474251824766889, 0.10616343839228443, 0.0, 0.02745363380188561, 0.0, 0.28312699798757224, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6983886824821985, 0.38943652344243257, 1.2223890565530993, 0.05586381199212052, 0.0, 0.07686093310040262, 0.10701921729681718, 0.0, 0.4467721663826107, 0.0, 0.5122035249872549, 1.008045581843232, 0.10571972464185753, 0.6235175832869809, 0.0, 0.0, 0.0, 0.0, 0.7054625658357997, 0.0, 0.0, 0.17326833225856653, 0.0, 0.0, 0.0, 1.0813156328128786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0927477810868, 0.0, 0.599657110852462, 0.22383250773975968, 0.19685563542122056, 0.0, 0.05605157239206448, 0.41837305013296433, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18996852120778085, 0.0, 0.28856245320282303, 0.0, 0.0, 0.0, 0.26772611418599673, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1616947156362974, 0.0, 0.0, 0.0, 0.0, 0.36168541397352055, 0.0, 0.0, 0.0, 0.1573219565054934, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13761515434984456, 0.07943022011077468, 0.0, 0.21912413885604493, 0.0, 0.0, 0.40654019224262405, 0.0, 0.0, 0.022840701875983912, 0.0, 0.09402454628178203, 0.5332211799090736, 0.14433851006651358, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.043396172364084024, 0.04011000425692938, 0.0, 0.0, 0.0, 0.13104327726482687, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10232284486723907, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10523174379677519, 0.0, 0.10079612361252216, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04415728315159431, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11805369977437472, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6523402818477722, 0.04871612610613401, 0.0, 0.19287524873967893, 0.0, 0.3592812200503388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.050401634126662875, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8285325211040351, 0.0, 0.0, 0.0, 0.42701794948426475, 0.33826599655789313, 0.0, 0.0, 0.0063200711569476415, 0.0, 0.0, 0.4430530345512502, 0.0, 0.6935424923816391, 0.9428504267370209, 0.42746265456576077, 0.0025457381888520196, 0.0, 0.1593559778661365, 0.0, 0.8273232796667221, 0.04988580847200336, 0.9484876902255591, 0.5784846962232053, 0.0, 0.4437739313478008, 0.0, 0.0, 0.29414816951171024, 0.0, 0.022355194883774517, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02069724212749366, 0.0, 0.0, 0.0, 0.0, 0.7860463101009033, 0.0, 0.0, 0.0, 0.8499064420418566, 0.0, 0.014821364995218649, 0.0, 0.004694386740689857, 0.25038082548050006, 0.5774089497757802, 0.0, 0.0, 0.0, 0.0, 0.006270331329794731, 0.6139069964758506, 0.8351435200462407, 1.0242327730345495, 0.0, 0.029307532281045708, 0.0, 0.0, 0.0, 0.5726801471740839, 0.4962238989829506, 0.0, 0.07225356949876899, 0.10746103390935668, 0.0, 0.0, 0.8346013157058231, 0.0, 0.0, 0.12871551917858068, 0.0, 0.0, 0.05722051841888945, 0.0, 0.08248659071056784, 0.08634381582594033, 0.0, 0.14691645141749232, 0.0, 0.0, 0.0, 0.12530859946217338, 0.0, 0.10215231917559951, 0.07032216186532725, 0.0, 0.8790426858900641, 0.10792096194290268, 0.054388076691659265, 0.0, 0.0, 0.0, 0.05001396409640395, 0.114742650990913, 0.28339886512623463, 0.15677327627325063, 0.0, 0.03258480102579557, 0.09096085908673467, 0.0, 0.0, 0.15530131741375458, 0.4726591715297998, 0.7751806988017736, 0.0, 0.51208607063286, 0.0, 0.0, 0.8142774797804637, 0.037795557638802935, 0.0, 0.03542525158598919, 0.07905092197782795, 0.0, 0.0, 0.1322231578644953, 0.0, 0.0, 0.008286484320060336, 0.670492082894006, 0.0, 0.0, 0.2274177128809876, 0.20430769763068007, 0.27374263149272277, 0.0, 0.0, 0.0, 0.0, 0.22105379716709922, 0.08605636125516496, 0.023058224273634728, 0.03343036365050954, 0.7905997431838073, 0.031091378094046798, 0.32331562706461314, 0.0, 0.048595513480849374, 0.0, 0.6695135011372569, 0.01079155413526415, 0.7675661133629853, 0.01950494389053299, 0.0, 0.06609079415505228, 0.15915608286937477, 0.0, 0.17610090955799163, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05278940542005462, 0.0, 0.04363140001862599, 0.3747258422202424, 0.18235409289517635]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.24622058278177836, 0.0, 0.0, 0.1261597862603059, 0.07342085928314178, 0.12871077894157168, 0.0, 0.0, 0.8034179790657067, 0.0, 0.0, 0.056025142012607894, 1.0596276779513034, 0.0, 0.12141212330168466, 0.0, 0.5574009533856183, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3327944495595785, 0.0, 0.8694342868598712, 0.0, 0.7416396915765561, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7569986463219165, 0.05683836078786318, 0.0, 0.0, 0.8725529080345216, 0.0, 0.2047777547094641, 0.5614660149749067, 0.0, 0.0, 0.36223551246779223, 0.0, 0.0, 0.0, 0.22107392894943306, 0.0, 0.0, 0.0, 0.3259321271119929, 0.5055955427859341, 0.27515457195781157, 0.4169876847813729, 0.018631329176858533, 0.3876953885710935, 0.0, 0.021531556327917045, 0.0, 0.0, 0.28223766305057085, 0.48287552686851865, 0.0, 0.0, 0.10175887870070799, 0.0, 0.0, 0.0, 0.06032870137556734, 0.018726053338837593, 0.045366945649236726, 0.0, 0.0, 0.0, 0.5790914418316278, 0.6815353846022115, 0.0, 0.1332216207413034, 0.0, 0.04017082185996856, 0.0, 0.0, 0.0, 0.0, 0.03484741576880692, 0.893850322287328, 0.4479341395605485, 0.5025126461241762, 0.1987665376735214, 0.31067608319719825, 0.0, 0.0, 0.0, 0.46442597522784795, 0.0, 0.0, 0.4431570212945692, 0.0, 0.0, 0.5121406140989466, 0.0, 0.49477960883115907, 0.0, 0.0, 0.0, 0.0, 0.47025922462023484, 0.3616621631765011, 0.5907253850051586, 0.0, 0.0, 0.44541009068477694, 0.03445733103321199, 0.0, 0.02309502433018302, 0.0, 0.03777890472311954, 0.16345317623186756, 0.16813336048226513, 0.0, 0.0, 0.09235605661534649, 0.0, 0.0, 0.01896246145159963, 0.02753978144349941, 0.0, 0.0, 0.0, 0.30135789429977294, 0.6764584765695312, 0.0, 0.0, 0.3151319553463997, 0.0, 0.04554105431298512, 0.0, 0.08378021558986462, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09849622821166114, 0.0, 0.25488776315346307, 0.0, 0.2781851808227525, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2839462446541717, 0.00854309647598918, 0.0, 0.0, 0.3272900456325508, 0.10375527349591217, 0.8492672297194694, 0.0, 0.5876718077641173, 0.03093892983747342, 0.0, 0.0, 0.0, 0.3385535490482335, 0.0, 0.0, 0.0, 0.29218416128587404, 0.0, 0.6966394562456512, 0.0, 0.0, 0.0, 0.522006486105503, 0.0, 0.0, 0.0, 0.11065330711314218, 0.0, 0.23311787887979893, 0.0, 0.31252070060750486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06134998798063221, 0.0, 0.0, 0.3657519298489218, 0.31899283438369924, 0.0, 0.0, 0.0, 0.3676864240590821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0010478172394749591, 0.5287716819761857, 0.0, 0.3903081303690744, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0017717866111426558, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5892681933608603, 0.002977075804572329, 0.0, 0.0, 0.0, 0.0, 0.43072916849878135, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.045384364903179854, 0.0, 0.0, 0.0018618199412216315, 0.0, 0.17111256306326456, 0.2672837889083413, 0.0, 0.0, 0.19576072012760673, 0.5948736598005219, 0.08413627091493711, 0.7573648130796338, 0.0, 0.0, 0.0, 0.0, 0.0, 0.33101786250771764, 0.16289357736810944, 0.16515314938780928, 0.0, 0.0, 0.0, 0.0, 0.0, 0.662932866371622, 0.6905568008213746, 0.0, 0.0, 0.0, 0.0, 0.4845748090935882, 0.061923683856559844, 0.0, 0.028719251839850298, 0.0, 0.02009827057946138, 0.0, 0.0, 0.0, 0.11124419756806017, 0.4147463454400596, 0.0, 0.0, 0.34783853396429565, 0.0, 0.09260170356894369, 0.0, 0.0, 0.0, 1.1401462738363544, 0.915922599074042, 0.0, 0.0, 0.0, 0.0, 0.6274522680730893, 0.0, 0.3139030754242789, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3751134192842195, 0.0, 1.257728265907189, 0.0, 0.35074493350028346, 0.268137845429166, 0.0, 0.0, 0.0, 0.0, 0.0, 0.016899841379555174, 0.7155448975358032, 0.1680074523773585, 0.0, 0.0, 0.30581125296894957, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9366277987154731, 0.0, 0.0, 0.0, 0.0, 0.07522986257761975, 0.06328419096078892, 0.0, 0.02479071082883737, 0.0, 0.7915629916935427, 0.031935353301522654, 0.0, 0.0, 0.070458258165472, 0.0, 0.0, 0.0, 0.0, 0.052737602183104026, 0.0, 0.013647273418699125, 0.3169788666986562, 0.17235734856254364, 0.0, 0.0, 0.0, 0.0661528775144355, 0.0, 0.027308490724219276, 0.0, 0.0, 0.0, 0.7971915175033586, 0.0, 0.5343175730821937, 0.0, 0.8740381649643706, 0.04598025590229294, 0.029012248678093225, 0.0, 0.0, 0.11141095490761138, 0.0, 0.0, 0.13001430753376275, 0.0, 0.0, 0.0, 0.22549966134722088, 0.0, 0.0, 0.0, 0.3726692665495664, 0.3774382964295704, 0.20411971872540274, 0.06057654493015839, 0.0, 0.5744310538348768, 0.0, 0.0, 0.6232315714035893, 0.0, 0.5072896743166587, 0.0, 0.005553340050755054, 0.5689868928162961, 0.06836125145830099, 0.0, 0.0, 0.49734376521104756, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27904969776436467, 0.0, 0.7814242677772039, 0.5117851675292832, 0.0, 0.0, 0.04886194301383263, 0.0, 0.3067365939854962, 0.0, 0.0, 0.4115088709036164, 1.405104579225751, 0.42840174089528493, 0.48760195358213543, 0.0, 0.0, 0.663844265848651, 0.0, 0.38778436442248837, 0.7776635401136125, 0.15032072106029123, 0.18953081567758903, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7044650329571657, 0.7235946500790119, 0.12987194286479317, 0.19647866132545186, 0.45582545423087456, 0.0, 0.0, 0.0, 0.032958397990191235, 0.0, 0.0, 0.7570462349991403, 0.0941136312544236, 0.0, 0.1276645560961348, 0.0, 0.0, 0.0, 0.755417985546979, 0.8458204729185679, 0.12543050025210123, 0.006393660363144921, 0.0, 0.0, 0.28926738179087036, 0.0, 0.0, 0.4731345211962404, 0.0, 0.7203970460167203, 0.0, 0.0, 0.0, 0.4891311717243447, 0.0031333060836164625, 0.003950606766695812, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8250852706661534, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1940012409565178, 0.0, 0.7255195358366966, 0.0, 0.4862794311033925, 0.0, 0.7981182971725221, 0.0, 0.26385403496014914, 0.0, 0.5139863704027979, 0.35381636124647037, 0.06016159688024159, 0.0, 0.0, 0.0, 0.07675121814682248, 0.0, 0.0, 0.12553662505708466, 0.0, 0.301350309711505, 0.0, 0.0, 0.0, 0.12978101101826656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2180668401971053, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09272141980768678, 0.0, 0.3034931056908601, 0.0, 0.203416238280828, 0.0, 0.33274884560755447, 0.0, 0.12655518438173288, 0.0, 0.13637583261219158, 0.0, 0.0, 0.0, 0.0, 0.020115042222633606, 0.0, 0.11478942012015081, 0.0, 0.044967175485766994, 0.0, 0.27969782401606164, 0.1383242818414881, 0.0, 0.0, 0.18685369035983804, 0.0, 0.06810955828519266, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17579267922314348, 0.0, 0.0, 0.11999285025017485, 0.0, 0.0, 0.14209169595972287, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11399414163060874, 0.019825113051252268, 0.0, 0.049971986914216976, 0.07235420154739257, 0.0, 0.0, 0.08331368376199759, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07280640355864025, 0.0, 0.0, 0.35152520960031586, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13676901662991092, 0.0, 0.0, 0.0, 0.015204774707799058, 0.0, 0.0, 0.0, 0.0, 0.5304031136005922, 0.0, 0.0, 0.0, 0.32819195551919517, 0.1622165373359131, 0.0, 0.0, 0.0, 0.1321652778478459, 0.0, 0.0, 0.2161735452720934, 0.0, 0.27952564740678887, 0.0, 0.0, 0.0, 0.22348236021207268, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.375510190195534, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2500091160813631, 0.0, 0.2815132558946093, 0.0, 0.18868424509978618, 0.0, 0.30865021038590384, 0.0, 0.341236683480638, 0.0, 0.23483861551802387, 0.0, 0.0, 0.0, 0.12117745385937667, 0.0, 0.0, 0.3973467888918919, 0.0, 0.2920101397985984, 0.0, 0.12988448302264086, 0.0, 0.3517844506342411, 0.0, 0.0, 0.0, 0.6519761543079575, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4428070420734244, 0.0, 0.3964317892338393, 0.0, 0.0, 0.0, 0.3236724995283946, 0.0, 0.0567229736921611, 0.0, 0.0, 0.0, 0.25146743826064083, 0.0, 0.0, 0.011207888208677623, 0.08869787998517195, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0436070974131627, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05218480148875932, 0.0, 0.0, 0.0, 0.28668060177386556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16806127510824798, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1010038649276795, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24411150965510042, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3252831829639798, 0.0, 0.13696611429551586, 0.0, 0.08809099936621054, 0.0, 0.0, 0.0, 0.5834039633369968, 0.2573783852497724, 0.0, 0.34353142253711105, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8226681209013311, 0.43635481618924155, 0.0, 0.21222851603946533, 0.0, 0.6640973088333184, 0.0, 0.1716321278580885, 0.7312656094018032, 0.46618173092618587, 0.7638215749927391, 0.5281765059497923, 0.012259008816529623, 0.9144713112403178, 0.0, 0.0, 0.0, 0.0, 0.7953741970864907, 0.0, 0.0, 0.5850872742568098, 0.0, 0.0, 0.0, 0.7307808207285703, 0.0, 0.6199309753815017, 0.37291372178799176, 0.0, 0.0, 0.22356724549482568, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3221254739496775, 0.11781870844111127, 0.04460774210115785, 0.7133319766560491, 0.17115949268039302, 0.47397294440775345, 0.0, 0.10101149129956093, 0.11755718548933392, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.057090584067732354, 0.6447844891876003, 0.0, 0.0, 0.033829519264607456, 0.0, 0.1190337187097033, 0.30523421948716617, 0.0, 0.0, 0.0, 0.0, 0.6213057774307251, 0.842768502451811, 0.0, 0.3906048759812801, 0.7719833104847825, 0.41168363040706235, 0.1712307445975339, 0.0, 0.05992936357237096, 0.04890539039186202, 0.0, 0.0, 0.012380496199171342, 0.0, 0.2674194407541521, 0.0, 0.0014443996714777229, 0.0, 0.16387003646802972, 0.0, 0.0, 0.03594122433913304, 0.24159569520366886, 0.3747703785250739, 0.0, 0.054699683547073226, 0.0, 0.2873774296478163, 0.0, 0.0, 0.0, 0.14956132991470428, 0.0, 0.3888645476970781, 0.0, 0.0, 0.07542830239130101, 0.07080076609705026, 0.0, 0.0, 0.0, 0.0, 0.09852911382155678, 0.19548481725379033, 0.0, 0.0, 0.4350977845419587, 0.00557774494203208, 0.0, 0.09874991570897035, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6034262468294622, 0.2713368059843151, 0.6497013107648627, 0.0, 0.8007029601130917, 0.0, 0.0, 0.0, 0.0, 0.01616961592030159, 0.0, 0.0, 0.0, 0.0, 0.2502876057454169, 0.49212467358206446, 0.2134864810859512, 0.1765833209669342, 0.0, 0.0, 0.0, 0.5401972297237567, 0.03318857704329382, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12219566143679067, 0.0, 0.04829725298673487, 0.0, 0.0, 0.0, 0.0, 0.0, 1.2356793204214815, 0.02263120223723859, 0.7256596881722004, 0.3263003275955702, 0.7654157892976137, 0.08145618747845872, 0.6387218661983024, 0.0, 0.5276231408957645, 0.8184646008092085, 0.0, 0.0, 0.0, 0.6276063069977658, 0.0, 0.6132063830791735, 0.006204111701464058, 0.18851722870999638, 0.375149258411478, 0.7816851453263511, 0.0, 0.587776400734769, 0.16472858834087942, 1.1016458158754883, 0.1459604994495737, 0.0, 0.0, 0.0, 0.037075917094288376, 0.0, 0.2815459504132854, 0.2536212145780303, 0.559150690052304, 0.48027689889482117, 0.0, 0.21566088189458643, 0.058080618345779114, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008439821738835876, 0.0, 0.36408664087256903, 0.0, 0.16156000319694572, 0.22471190561828702, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10732980278519261, 0.0, 0.0, 0.12403718878006863, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27901056312251676, 0.4801492052284416, 0.0, 0.0, 0.10787548181472921, 0.0, 0.0, 0.0, 0.15654727928350437, 0.0, 0.13104284110293218, 0.13666096202593647, 0.0, 0.0, 0.0, 0.07276575816635268, 0.0, 0.0, 0.0, 0.0, 0.6100450928472326, 0.0, 0.0, 0.0, 0.4238237484103886, 0.9941317988293357, 0.0, 0.0, 0.0, 0.0, 0.3355479309040112, 0.0, 0.0, 0.0, 0.0, 0.5350029094771915, 0.0, 0.008586567333100323, 1.1385513331902584, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1850917274468032, 0.0, 0.0, 0.06716099014107918, 1.1525784735402484, 0.0, 0.0, 0.036572260841491885, 0.0, 0.26119964749940466, 0.0, 0.0, 0.8459335464772313, 0.0, 0.0, 0.0, 0.0, 0.38438887602945404, 0.0, 0.0, 0.0, 0.0, 0.7204933523373307, 0.0, 0.0, 0.16060697060474402, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7112792652633437, 0.0, 0.935521710131386, 0.26536974069831215, 0.2935825392525973, 0.0, 0.0, 0.13719141489981915, 0.0, 0.10324823792839577, 0.0, 0.0, 0.0, 0.7256165269576538, 0.0, 0.48634443939716193, 0.0, 0.7955635800994527, 0.1927019559074891, 0.0, 0.0, 0.7058981437597585, 0.0, 0.5236895266156559, 0.0, 0.08128104063747256, 0.0, 0.0, 0.0, 0.5731212091054763, 0.0, 0.0, 0.0419831484236368, 0.11625926299639212, 0.0, 0.0, 0.08927614896350113, 0.217346651106267, 0.13128361330254273, 0.0, 0.07219885291348893, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4218130442222412, 0.0, 0.0, 0.0, 0.0, 0.1699892215644571, 0.0, 0.14639742856012483, 0.0, 0.0, 0.04200062557179813, 0.0, 0.0, 0.0, 0.31146013043119736, 0.0, 0.0, 0.0, 0.24384030368566587, 0.9260558729858251, 0.4296955936776912, 0.0, 0.0, 0.0, 0.73790516731229, 0.0, 0.0, 0.0, 0.16295488074282302, 0.26550524353964333, 0.0, 0.0, 0.0, 0.31144107126852844, 0.0, 0.485858439126786, 0.0, 0.6914937323909329, 0.0, 0.0, 0.0, 0.0, 0.3162528337434342, 0.0, 0.0, 0.0, 0.0, 1.5785215576611167, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5161924043112004, 0.0, 0.0, 0.2568302026164213, 0.0, 0.3023415151909343, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5030068615133427, 0.0, 0.0, 0.0, 0.2741080207900236, 0.17120972783029909, 0.0, 0.0, 0.0, 0.0, 0.43685119598979993, 0.02712666041421048, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2451085199735546, 0.0, 0.1576437689621315, 0.0, 0.0, 0.0, 0.6857487349281931, 0.05917052173435364, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6537568461306704, 0.0, 0.0, 0.5395442735782994, 0.05374109131453472, 0.0, 0.5917732326059808, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0008206716541601089, 0.19818937147807536, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.535053682582317, 0.0, 0.3513819151899916, 0.04333888481337121, 0.5747915094439204, 0.19540689526232177, 0.01899860952318465, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06595709778063945, 0.0, 0.08799217533170228, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03735300199555871, 0.19147688509049948, 0.0, 0.0, 0.0, 0.2914125830050192, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04799459307428656, 0.0, 0.16480769798416883, 0.0, 0.0, 0.0, 0.04840048223798238, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.027156548216558336, 0.0, 0.047181418535814645, 0.0, 0.0, 0.0, 0.0, 0.35341760898781915, 0.5999981948389704, 0.024572219243726254, 0.0, 0.0, 0.08667332426569417, 0.4875808312926843, 0.06369622265280388, 0.0, 0.0, 0.0, 0.07133443039288194, 0.0, 0.0, 0.47894471690358564, 0.4793008357816607, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09658957720985865, 0.3016070141903076, 0.061398864173637636, 0.0, 0.0, 0.0, 0.07060273869520314, 0.35885594789448355, 0.0, 0.06446892769447045, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2497207855356876, 0.018509596151814908, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2926774045716465, 0.0, 0.013651758929637155, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03597721563910695, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07068090962707653, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03642909404914556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2749443358980585, 0.0, 0.0, 0.0, 0.0, 0.5096842842109697, 0.0, 0.0, 0.0, 0.028086239659725638, 0.7421154878137212, 0.0, 0.48123810905471315, 0.0, 0.3067030382176026, 0.6866619523091189, 0.0008295150087239233, 0.5016528107597976, 0.0, 0.08848804808651539, 1.3805931747462472, 0.0, 0.0, 1.04718815925786, 0.0, 0.0, 0.0, 0.42746548493362363, 0.0, 0.5817357352379013, 0.8450882691967682, 0.41665385220387907, 1.0915687546509307, 1.108964330219497, 0.0, 0.0, 0.0, 0.04066069749695377, 0.032733248007639555, 0.0, 0.0, 0.0, 0.07163077100441487, 0.6487063582321942, 0.0, 0.2995103130321618, 0.10283702762113958, 0.33384701220391544, 0.41258982728857174, 0.0, 0.5449670143554067, 0.0, 0.3217489265559145, 0.0, 0.0, 0.0, 0.2849908553676538, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.01610871320352385, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2570528176713379, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2969662795916102, 0.0, 0.12312876081315716, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09075655657480966, 0.0, 0.3633373647258237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06617087939273322, 0.0, 0.0, 0.0, 0.00923594008230594, 0.17805875048711786, 0.22450411347361834, 0.0, 0.0, 0.09502241267674551, 0.0, 0.024589605765570302, 0.0, 0.1826423790293924, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039040067948029694, 0.0, 0.06664139722445166, 0.0, 0.04466639301844483, 0.0, 0.22428735118617732, 0.08284705163804024, 0.05227416022819031, 0.0, 0.19522102914015915, 0.8685310451611696, 0.0, 0.0, 0.0, 0.0, 0.8702352191794189, 0.0, 0.0, 0.15684527219370442, 0.0, 0.9243788213991903, 0.22207735215974056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.40507055158794986, 0.30718446392066534, 0.0, 0.46812545232304087, 0.0, 0.5780009938921578, 0.18279458657604497, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02896217836710352, 0.0, 0.0, 0.40712998428742797, 0.7449999863100496, 0.0, 0.49933620201845186, 0.0, 0.8168155413547457, 0.11457346224809285, 0.0, 0.0, 0.0, 0.15332753334456128, 0.11864376215788304, 0.0, 0.0, 0.04572095120049149, 0.0, 0.0, 0.31683394463012315, 0.5003078767139268, 0.14059206617597214, 0.19554784897288408, 0.0, 0.43178409369310355, 0.0, 0.07560627618395319, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16352131380333873, 0.0, 0.34449708571742155, 0.0, 0.4618370375665847, 0.0, 0.0, 0.41783342102021986, 0.0, 0.0, 0.0, 0.02165252564332241, 0.0, 0.0, 0.0, 0.47140143149032104, 0.39181349979635294, 0.11892452733738064, 0.0, 0.5433598750764469, 0.0, 0.0, 0.0, 0.07266999506080335, 0.0, 0.6735755940113932, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0041630866962457744, 0.2109647750127205, 0.0, 0.0, 0.0, 0.3715024914369038, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1845463840294256, 0.0, 0.6075440706050301, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29101469974401967, 0.0, 0.0, 0.032739778024003775, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4875593392929034, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20371408580482323, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0439075644510851, 0.0, 0.5496827874572944, 0.40327797474842975, 0.37238046622077875, 0.0, 0.0, 0.17401376516444506, 0.0, 0.11278871866256229, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15394336215607962, 0.0, 0.0, 0.0]), 42), 42)),) julia> @finch_code begin Ct .= 0 for j = parallel(_) @@ -1313,5 +1313,5 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.01855804465451247, 0.0, 0.0, 0.03641425883740431, 0.0568080930379847, 0.10109716846875504, 0.0, 0.0, 0.0, 0.0, 0.005424838537552436, 0.0, 0.0, 0.5251896042062963, 0.0, 0.0, 0.0, 0.00515342598991506, 0.045980273053842245, 0.0, 0.4033688458623361, 0.0510673466163073, 0.0, 0.0, 0.02134197385615031, 0.01687808266981965, 0.0, 0.4932447371732914, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7178045198025068, 0.2106682695954306, 0.0, 0.3115118572371521, 0.5170963380295581, 0.39595498771521426, 0.1432663403816299, 0.5698542189659496, 0.0, 0.0, 0.0, 0.5317966816929195, 0.0, 0.5315818882594147, 0.8168445783005969, 0.0, 0.0, 0.0, 0.01222733860627223, 0.0, 0.716756885645577, 0.0, 0.8217284580618865, 0.48234209517721377, 0.15545502627894098, 0.04826321760798536, 0.0, 0.0, 0.1394038038151463, 0.0, 0.056802678199824076, 0.0, 0.0, 0.0, 0.3128541399180126, 0.0, 0.0, 0.596593418834028, 0.0, 0.2846892571697076, 0.0, 0.0, 0.0, 0.23365792107187477, 0.0, 0.0, 0.4584793374366712, 0.7152510496888798, 0.0, 0.0, 0.0, 0.8190896825195866, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11127793558853107, 0.0, 0.5789217135796446, 0.0, 0.0, 0.6429712972008511, 0.0, 0.0, 0.661506988212563, 0.7629272979371657, 0.0, 0.4234710523361336, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4257443064600869, 0.0, 0.20425497460318195, 0.0, 0.5184318202957809, 0.5906121758765186, 0.0, 0.9091367634018797, 0.0, 0.30652125262867885, 0.0, 0.7954054080966687, 0.0, 0.0, 0.0, 1.0559083316811368, 0.0, 0.04427154393293609, 0.8228955354751877, 0.46658038808648383, 0.0, 0.02688606839966265, 0.0, 0.0, 0.6276611460113729, 0.22522673327345408, 0.0, 0.12308651028821192, 0.3657688390111318, 0.0, 0.046115245088609334, 0.0, 0.5342436705087195, 0.0, 0.1923886832463953, 0.07621763959827882, 0.0, 0.0, 0.0, 0.6725528112574624, 0.7483589153917343, 0.0, 0.0, 0.0, 0.0, 0.38949567271561986, 0.16492548861911044, 0.10519585180914466, 0.8853743380662012, 0.957787822214843, 0.0, 0.05459549529270359, 0.25656057396140347, 0.14167223917141744, 0.03949155262056029, 0.0, 0.0, 0.2703834370419471, 0.0, 0.723362221877522, 0.0, 0.0, 0.0, 0.7883757417725614, 0.0, 0.03340589062163017, 0.18896261922152233, 0.0, 0.0, 0.8122657251866786, 0.029607718570353176, 0.0, 0.008213735995679807, 0.0, 0.08605746445745502, 0.0, 0.3070376563830936, 0.10398717208817806, 0.0, 0.0, 0.0, 0.383984202548332, 0.0, 0.0, 0.3036396360576457, 0.0, 0.0, 0.0, 0.0, 0.11965354383371518, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04825455862354496, 0.3335108938296942, 0.0, 0.0, 0.0, 0.0, 0.04121745447265487, 0.30594446336043757, 0.0, 0.33550494159326405, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029116195807012437, 0.0, 0.0, 0.0, 0.0, 0.0, 0.020041236855252602, 0.0, 0.4850188795993097, 0.0, 0.16403823255879735, 0.0, 0.60023572778736, 0.0, 0.1787344157826609, 0.0, 0.0, 0.17233073276918714, 0.17532212882841147, 0.6209016656456683, 0.5984929062073807, 0.8843163905991084, 0.3337919143714591, 0.0, 1.0919707374354302, 0.8166713304287454, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8330317657834686, 0.27201200741148646, 0.0, 0.8995473587201992, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6388227016456749, 0.0, 0.3682672817259989, 0.0, 0.5422113050459496, 0.0, 0.028602469161704683, 0.0, 0.0, 0.3611222515381231, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.031337192831751, 0.0, 0.0, 0.7687924758178234, 0.012617011188267763, 0.0, 0.0, 0.37315715294884366, 0.0, 0.0, 0.0, 0.0, 0.6888779809403613, 0.121001715761302, 0.0, 0.0, 0.3680175749172942, 0.47420475938210593, 0.0, 0.7604201795169553, 0.0, 0.11917670920609563, 0.0, 0.20848198246903302, 0.24926285864223433, 0.0, 0.5553692000145817, 0.4169252107806106, 0.16597755096800731, 0.7334771026528798, 0.0, 0.0, 0.09908991746260937, 0.0, 0.14652270264303283, 0.006759647910977647, 0.0, 0.9351545954529237, 1.2960299208884896, 0.0, 0.0, 0.21191619141709428, 0.0, 0.0, 0.0, 0.01204540426582532, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06493914883934329, 0.7726981572397796, 0.0, 0.4370686273737238, 0.1778273534538074, 0.055209023869020324, 0.0, 0.0, 0.0, 0.05709969797354255, 0.0, 0.0, 0.0, 0.0, 0.44808598581285264, 0.0, 0.0, 0.0, 0.21141909545938053, 0.13390642572615394, 0.0, 0.0, 0.0, 0.25844994675864025, 0.0, 0.51617125876173, 0.2544268105667549, 0.0, 0.17576058376064335, 0.29087109088619356, 0.0, 0.0, 0.3286889977164017, 0.0, 0.0644707079973061, 0.0, 0.018682819036845075, 0.008522941045952347, 0.0, 0.0, 0.2520720928277996, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.146066293561638, 0.08856351358209161, 0.0, 0.0, 0.0, 0.1407746062228793, 0.5246446552397386, 0.0, 0.0, 0.0, 0.3279179855015388, 0.46137944574560436, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14330339619658897, 0.11500988018505275, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7444467047874328, 0.0, 0.0, 0.40713437972280675, 0.0, 0.0, 0.0, 0.5717679971406524, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4877440937322302, 0.6991654372087778, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2369682176872117, 0.0, 0.0, 0.6757556051622259, 0.0, 0.0, 0.0, 0.576368321209737, 0.04986303698751877, 0.0, 0.5384684335273707, 0.0, 0.21524971756673417, 0.4963922980972075, 0.0, 0.0, 0.0, 0.0, 0.18940210229325644, 0.5277692784584271, 0.7718932464687741, 0.7210929692294604, 0.0, 0.0, 0.0, 0.0, 0.48286176484120297, 0.8517937989915767, 0.3931693184679991, 0.0, 0.0, 0.06755455710060922, 0.0, 0.026695131792948763, 1.4844324548606433, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4524914530619723, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4694831016582333, 0.0, 0.42831526212260856, 0.6074590079807168, 0.30066361967157035, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6129938591206631, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6008436638333436, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.43882326364474644, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8591062832739853, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6928708028466394, 0.2819039698547807, 0.08752108546971657, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05246236611269018, 0.0, 0.0, 0.5428804251437249, 0.022819504909203123, 0.3729965675892053, 0.0, 0.5741583158437262, 0.0, 0.1935811346150516, 0.0, 0.5023321549740235, 0.2611826745866744, 0.0, 0.056899028261467276, 0.37961815387770637, 0.22527271986010186, 0.05171423855571594, 0.058968538904135746, 0.0, 0.02892983665470066, 0.003313037290954743, 0.0, 0.0, 0.15785301822506514, 0.0, 0.0, 0.07773433689527456, 0.1049811110510813, 0.0, 0.02912372760696772, 0.0, 0.3114315285072337, 0.5703037753007745, 0.0, 0.04813466284828647, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02241933195791073, 0.0, 0.0, 0.0, 0.0, 0.23199999736075347, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1927795141790272, 0.2407119020891451, 0.0, 0.21960445663579467, 0.5770903406753464, 0.15415530724008072, 0.23155572792080611, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3142922871488459, 0.0, 0.0, 0.0, 0.0, 0.3042889785067072, 0.0, 0.5129566600174419, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3746354155106774, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4789154917746846, 0.17517544375428362, 0.0, 0.0, 0.0, 0.2637662382252967, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2102700997979013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.126545263019808, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.332133943612647, 0.0, 0.0, 0.0, 0.06184093060913505, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3212574037659458, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24673989573277713, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3017167941185386, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6233354196759152, 0.0, 0.0, 0.0, 0.5447611694646652, 0.0, 0.0, 0.216176776357065, 0.0, 0.19855221622967104, 0.8686764576101142, 0.16350923987929902, 0.0, 0.0, 0.02334951098786776, 0.17107621812888604, 0.48682879160279025, 0.7109808359466632, 0.6651558420918936, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6192268761337199, 0.31206921876898447, 0.0, 0.0, 0.24595989001208304, 0.11068536977374843, 0.0, 0.6618395820988949, 0.11362642836904417, 0.0, 0.0, 0.23765422406147768, 0.0, 0.0, 0.8073352785417658, 0.0, 0.0, 0.48485062583878286, 1.055137179889336, 0.2671063045394923, 0.0, 0.8476204266733893, 0.473385026956602, 0.5030912229948215, 0.0, 0.0, 0.0, 0.17678971866264329, 0.4076988147485064, 0.0, 0.6776909084507561, 0.13779930009477406, 0.5691281649873949, 0.16622169517158358, 0.433469475882236, 0.818379113845578, 0.9106844436778354, 0.0, 0.499393081506665, 0.0, 0.5725309586159512, 0.6160013948015824, 0.5125607980557373, 0.2778645861379971, 0.0, 0.0, 0.0, 0.0, 0.0, 0.58929804834674, 0.0, 0.8046233984476477, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3967677816937078, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11707526901952116, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.383435421983313, 0.11707115655719894, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07864429232511502, 0.0, 0.0, 0.3002587300128159, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2266804769859352, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24215921984980293, 0.09852579316681935, 0.030588729804574537, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18874358875246125, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3978422171614565, 0.1936032919321414, 0.0, 0.0, 0.2542147176776134, 0.0, 0.0, 0.0, 0.11057553114503467, 0.0, 6.012518808232222e-5, 0.0008825884581384356, 0.6460696181307314, 0.0, 0.0, 0.06879188140017427, 0.0, 0.0, 0.04716298956935701, 0.1540138997690347, 0.1854894997474166, 0.003124358567077274, 0.35109153378778224, 0.0, 0.0, 0.016293742009993128, 0.0, 0.0, 0.3747805868672189, 0.025859295570033313, 0.214029422856965, 0.003742959361061961, 0.0002933458280023473, 0.0, 0.0, 0.0, 0.030501494612752977, 0.0, 0.6996784734474946, 0.0, 0.0, 0.05616866413207192, 0.0, 0.0018184995370819535, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.020171782722387992, 0.0, 0.0, 0.33279196588498333, 0.0, 0.0, 0.6323890570808377, 0.0, 0.0, 0.0, 0.03594525644730097, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004527887543653786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17039388977135247, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6309056496928738, 0.0, 0.0, 0.0, 0.0, 0.260280820884557, 0.0, 0.0, 0.5107183088816271, 0.7967464980324664, 0.14485492608681305, 0.0, 0.009558078807310686, 0.754701551784825, 0.0, 0.0, 0.0, 0.0, 0.7598764239846039, 0.0, 0.029177780358136646, 0.10253044625069853, 0.03763219091970284, 0.8115624154017409, 0.0, 0.5779584654853126, 0.7162312164421211, 0.0, 0.0, 0.9107472399622886, 0.7029540573396418, 0.0, 1.0969174796040306, 0.0, 0.0, 0.0, 0.0, 0.0038591832437520454, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15366266383288085, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.558080611304664, 0.0, 0.0, 0.0, 0.0, 0.30736701150515244, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04311886842935436, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32751189175201845, 0.0, 0.20963216887545572, 0.1760259950046517, 0.0, 0.23753864749234863, 0.24093292162050975, 0.024684548149881243, 0.4936183719527589, 0.7064246796060082, 0.0, 0.06677453327599289, 0.8542035190842152, 0.0, 0.025534429812218047, 0.011379900282647532, 0.039800411165778926, 0.013727111201321645, 0.27843394547131894, 0.24161261590501448, 0.2499939278392831, 0.0, 0.0, 0.3450248607837782, 0.0, 0.0, 0.15272914557490577, 0.10495111476871369, 0.0, 0.0, 0.0, 0.18866875753074405, 0.0, 0.2225813946448797, 0.0, 0.0, 0.3661590836002555, 0.0, 0.0, 0.0, 0.8998957690359772, 0.30889178773893766, 0.6078813570942335, 0.0, 0.6840699471933163, 0.0, 0.0, 0.0, 0.36308986165522683, 0.752528074611531, 0.7191770460546526, 0.49508503625401296, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7784554319844289, 0.16352298326175332, 0.0, 0.042948548224867954, 0.375190336410357, 0.0, 0.6830715485727474, 0.6403864588932121, 0.7831097846364896, 0.46112164648188003, 0.14556009485746954, 0.0, 0.0, 0.0, 0.8585580212631712, 0.0, 0.253359163441029, 0.0, 0.0, 0.0, 0.45902026051340783, 0.0, 0.0, 0.0, 0.0, 0.166881895984427, 0.0, 0.0, 0.837727301005, 0.0, 0.0, 0.7629510291223568, 0.0, 0.34201996071392393, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3670598185817387, 0.0, 0.9533138689466589, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8365046398061449, 0.0, 0.9590136929209965, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.801491142663501, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16957493050977235, 0.0, 0.2507477829737011, 0.0, 0.0, 0.11532054524043628, 0.07735685692161769, 0.5247858743947099, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02100484631395434, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8201592179395716, 0.0, 0.0, 0.04562437343117348, 0.0, 0.22915724847477928, 0.0, 0.0, 0.7159205767218768, 0.0, 0.0, 0.0, 0.0, 0.29228977882295926, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17928588753235497, 0.10348218971035608, 0.8147006956016374, 0.08438351505236888, 0.0, 0.0, 0.0, 0.1070859593707194, 0.7148756921758321, 0.0, 0.8195717571774336, 0.12249576952187838, 0.0, 0.2397374334824377, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05225556550152024, 0.0, 0.0, 0.0, 0.1707240047839942, 0.0, 0.11920584928810601, 0.0, 0.14514911616615112, 0.4284534617057244, 0.04403067305952579, 0.0, 0.012688229227290206, 0.3654383338493288, 0.04642776495318284, 0.0, 0.0, 0.31371261026073766, 0.1364760956744218, 0.5008825042361101, 0.0, 0.04802625911306818, 0.021403808257108425, 0.0, 0.12191697007589085, 0.33632693219045084, 0.49073784844916374, 0.5066599946239788, 0.0, 0.0, 0.033354950181247504, 0.0, 0.15690710970564234, 0.3397139005999492, 0.4535410643500978, 0.0, 0.0, 0.49050280987387757, 0.0, 0.0, 0.45491953624514714, 0.0, 0.0, 0.33864218894794285, 0.0, 0.0, 0.041024172335819876, 0.0, 0.0, 0.0, 0.36175943329836924, 0.0, 0.39749358702806525, 0.0, 0.5595492530984049, 0.0, 0.0, 0.2573403608635483, 0.17262354625512744, 0.0, 0.0, 0.0, 0.3776391490751126, 0.0, 0.0, 0.1445911005474468, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.45961437114556436, 0.08073146338811468, 0.0, 0.0, 0.0, 0.5680662673212686, 0.0, 0.14301647595845865, 0.4278925860448857, 0.2624303541096862, 0.0, 0.5619603114708978, 0.5488835922357254, 0.0, 0.10445139145624531, 0.9180806504163392, 0.5113694952971799, 0.0, 0.4737323723594051, 0.4474251824766889, 0.10616343839228443, 0.0, 0.02745363380188561, 0.0, 0.28312699798757224, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6983886824821985, 0.38943652344243257, 1.2223890565530993, 0.05586381199212052, 0.0, 0.07686093310040262, 0.10701921729681718, 0.0, 0.4467721663826107, 0.0, 0.5122035249872549, 1.008045581843232, 0.10571972464185753, 0.6235175832869809, 0.0, 0.0, 0.0, 0.0, 0.7054625658357997, 0.0, 0.0, 0.17326833225856653, 0.0, 0.0, 0.0, 1.0813156328128786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0927477810868, 0.0, 0.599657110852462, 0.22383250773975968, 0.19685563542122056, 0.0, 0.05605157239206448, 0.41837305013296433, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18996852120778085, 0.0, 0.28856245320282303, 0.0, 0.0, 0.0, 0.26772611418599673, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1616947156362974, 0.0, 0.0, 0.0, 0.0, 0.36168541397352055, 0.0, 0.0, 0.0, 0.1573219565054934, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13761515434984456, 0.07943022011077468, 0.0, 0.21912413885604493, 0.0, 0.0, 0.40654019224262405, 0.0, 0.0, 0.022840701875983912, 0.0, 0.09402454628178203, 0.5332211799090736, 0.14433851006651358, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.043396172364084024, 0.04011000425692938, 0.0, 0.0, 0.0, 0.13104327726482687, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10232284486723907, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10523174379677519, 0.0, 0.10079612361252216, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04415728315159431, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11805369977437472, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6523402818477722, 0.04871612610613401, 0.0, 0.19287524873967893, 0.0, 0.3592812200503388, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.050401634126662875, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8285325211040351, 0.0, 0.0, 0.0, 0.42701794948426475, 0.33826599655789313, 0.0, 0.0, 0.0063200711569476415, 0.0, 0.0, 0.4430530345512502, 0.0, 0.6935424923816391, 0.9428504267370209, 0.42746265456576077, 0.0025457381888520196, 0.0, 0.1593559778661365, 0.0, 0.8273232796667221, 0.04988580847200336, 0.9484876902255591, 0.5784846962232053, 0.0, 0.4437739313478008, 0.0, 0.0, 0.29414816951171024, 0.0, 0.022355194883774517, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02069724212749366, 0.0, 0.0, 0.0, 0.0, 0.7860463101009033, 0.0, 0.0, 0.0, 0.8499064420418566, 0.0, 0.014821364995218649, 0.0, 0.004694386740689857, 0.25038082548050006, 0.5774089497757802, 0.0, 0.0, 0.0, 0.0, 0.006270331329794731, 0.6139069964758506, 0.8351435200462407, 1.0242327730345495, 0.0, 0.029307532281045708, 0.0, 0.0, 0.0, 0.5726801471740839, 0.4962238989829506, 0.0, 0.07225356949876899, 0.10746103390935668, 0.0, 0.0, 0.8346013157058231, 0.0, 0.0, 0.12871551917858068, 0.0, 0.0, 0.05722051841888945, 0.0, 0.08248659071056784, 0.08634381582594033, 0.0, 0.14691645141749232, 0.0, 0.0, 0.0, 0.12530859946217338, 0.0, 0.10215231917559951, 0.07032216186532725, 0.0, 0.8790426858900641, 0.10792096194290268, 0.054388076691659265, 0.0, 0.0, 0.0, 0.05001396409640395, 0.114742650990913, 0.28339886512623463, 0.15677327627325063, 0.0, 0.03258480102579557, 0.09096085908673467, 0.0, 0.0, 0.15530131741375458, 0.4726591715297998, 0.7751806988017736, 0.0, 0.51208607063286, 0.0, 0.0, 0.8142774797804637, 0.037795557638802935, 0.0, 0.03542525158598919, 0.07905092197782795, 0.0, 0.0, 0.1322231578644953, 0.0, 0.0, 0.008286484320060336, 0.670492082894006, 0.0, 0.0, 0.2274177128809876, 0.20430769763068007, 0.27374263149272277, 0.0, 0.0, 0.0, 0.0, 0.22105379716709922, 0.08605636125516496, 0.023058224273634728, 0.03343036365050954, 0.7905997431838073, 0.031091378094046798, 0.32331562706461314, 0.0, 0.048595513480849374, 0.0, 0.6695135011372569, 0.01079155413526415, 0.7675661133629853, 0.01950494389053299, 0.0, 0.06609079415505228, 0.15915608286937477, 0.0, 0.17610090955799163, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05278940542005462, 0.0, 0.04363140001862599, 0.3747258422202424, 0.18235409289517635]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.24622058278177836, 0.0, 0.0, 0.1261597862603059, 0.07342085928314178, 0.12871077894157168, 0.0, 0.0, 0.8034179790657067, 0.0, 0.0, 0.056025142012607894, 1.0596276779513034, 0.0, 0.12141212330168466, 0.0, 0.5574009533856183, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3327944495595785, 0.0, 0.8694342868598712, 0.0, 0.7416396915765561, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7569986463219165, 0.05683836078786318, 0.0, 0.0, 0.8725529080345216, 0.0, 0.2047777547094641, 0.5614660149749067, 0.0, 0.0, 0.36223551246779223, 0.0, 0.0, 0.0, 0.22107392894943306, 0.0, 0.0, 0.0, 0.3259321271119929, 0.5055955427859341, 0.27515457195781157, 0.4169876847813729, 0.018631329176858533, 0.3876953885710935, 0.0, 0.021531556327917045, 0.0, 0.0, 0.28223766305057085, 0.48287552686851865, 0.0, 0.0, 0.10175887870070799, 0.0, 0.0, 0.0, 0.06032870137556734, 0.018726053338837593, 0.045366945649236726, 0.0, 0.0, 0.0, 0.5790914418316278, 0.6815353846022115, 0.0, 0.1332216207413034, 0.0, 0.04017082185996856, 0.0, 0.0, 0.0, 0.0, 0.03484741576880692, 0.893850322287328, 0.4479341395605485, 0.5025126461241762, 0.1987665376735214, 0.31067608319719825, 0.0, 0.0, 0.0, 0.46442597522784795, 0.0, 0.0, 0.4431570212945692, 0.0, 0.0, 0.5121406140989466, 0.0, 0.49477960883115907, 0.0, 0.0, 0.0, 0.0, 0.47025922462023484, 0.3616621631765011, 0.5907253850051586, 0.0, 0.0, 0.44541009068477694, 0.03445733103321199, 0.0, 0.02309502433018302, 0.0, 0.03777890472311954, 0.16345317623186756, 0.16813336048226513, 0.0, 0.0, 0.09235605661534649, 0.0, 0.0, 0.01896246145159963, 0.02753978144349941, 0.0, 0.0, 0.0, 0.30135789429977294, 0.6764584765695312, 0.0, 0.0, 0.3151319553463997, 0.0, 0.04554105431298512, 0.0, 0.08378021558986462, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09849622821166114, 0.0, 0.25488776315346307, 0.0, 0.2781851808227525, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2839462446541717, 0.00854309647598918, 0.0, 0.0, 0.3272900456325508, 0.10375527349591217, 0.8492672297194694, 0.0, 0.5876718077641173, 0.03093892983747342, 0.0, 0.0, 0.0, 0.3385535490482335, 0.0, 0.0, 0.0, 0.29218416128587404, 0.0, 0.6966394562456512, 0.0, 0.0, 0.0, 0.522006486105503, 0.0, 0.0, 0.0, 0.11065330711314218, 0.0, 0.23311787887979893, 0.0, 0.31252070060750486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06134998798063221, 0.0, 0.0, 0.3657519298489218, 0.31899283438369924, 0.0, 0.0, 0.0, 0.3676864240590821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0010478172394749591, 0.5287716819761857, 0.0, 0.3903081303690744, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0017717866111426558, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5892681933608603, 0.002977075804572329, 0.0, 0.0, 0.0, 0.0, 0.43072916849878135, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.045384364903179854, 0.0, 0.0, 0.0018618199412216315, 0.0, 0.17111256306326456, 0.2672837889083413, 0.0, 0.0, 0.19576072012760673, 0.5948736598005219, 0.08413627091493711, 0.7573648130796338, 0.0, 0.0, 0.0, 0.0, 0.0, 0.33101786250771764, 0.16289357736810944, 0.16515314938780928, 0.0, 0.0, 0.0, 0.0, 0.0, 0.662932866371622, 0.6905568008213746, 0.0, 0.0, 0.0, 0.0, 0.4845748090935882, 0.061923683856559844, 0.0, 0.028719251839850298, 0.0, 0.02009827057946138, 0.0, 0.0, 0.0, 0.11124419756806017, 0.4147463454400596, 0.0, 0.0, 0.34783853396429565, 0.0, 0.09260170356894369, 0.0, 0.0, 0.0, 1.1401462738363544, 0.915922599074042, 0.0, 0.0, 0.0, 0.0, 0.6274522680730893, 0.0, 0.3139030754242789, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3751134192842195, 0.0, 1.257728265907189, 0.0, 0.35074493350028346, 0.268137845429166, 0.0, 0.0, 0.0, 0.0, 0.0, 0.016899841379555174, 0.7155448975358032, 0.1680074523773585, 0.0, 0.0, 0.30581125296894957, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9366277987154731, 0.0, 0.0, 0.0, 0.0, 0.07522986257761975, 0.06328419096078892, 0.0, 0.02479071082883737, 0.0, 0.7915629916935427, 0.031935353301522654, 0.0, 0.0, 0.070458258165472, 0.0, 0.0, 0.0, 0.0, 0.052737602183104026, 0.0, 0.013647273418699125, 0.3169788666986562, 0.17235734856254364, 0.0, 0.0, 0.0, 0.0661528775144355, 0.0, 0.027308490724219276, 0.0, 0.0, 0.0, 0.7971915175033586, 0.0, 0.5343175730821937, 0.0, 0.8740381649643706, 0.04598025590229294, 0.029012248678093225, 0.0, 0.0, 0.11141095490761138, 0.0, 0.0, 0.13001430753376275, 0.0, 0.0, 0.0, 0.22549966134722088, 0.0, 0.0, 0.0, 0.3726692665495664, 0.3774382964295704, 0.20411971872540274, 0.06057654493015839, 0.0, 0.5744310538348768, 0.0, 0.0, 0.6232315714035893, 0.0, 0.5072896743166587, 0.0, 0.005553340050755054, 0.5689868928162961, 0.06836125145830099, 0.0, 0.0, 0.49734376521104756, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27904969776436467, 0.0, 0.7814242677772039, 0.5117851675292832, 0.0, 0.0, 0.04886194301383263, 0.0, 0.3067365939854962, 0.0, 0.0, 0.4115088709036164, 1.405104579225751, 0.42840174089528493, 0.48760195358213543, 0.0, 0.0, 0.663844265848651, 0.0, 0.38778436442248837, 0.7776635401136125, 0.15032072106029123, 0.18953081567758903, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7044650329571657, 0.7235946500790119, 0.12987194286479317, 0.19647866132545186, 0.45582545423087456, 0.0, 0.0, 0.0, 0.032958397990191235, 0.0, 0.0, 0.7570462349991403, 0.0941136312544236, 0.0, 0.1276645560961348, 0.0, 0.0, 0.0, 0.755417985546979, 0.8458204729185679, 0.12543050025210123, 0.006393660363144921, 0.0, 0.0, 0.28926738179087036, 0.0, 0.0, 0.4731345211962404, 0.0, 0.7203970460167203, 0.0, 0.0, 0.0, 0.4891311717243447, 0.0031333060836164625, 0.003950606766695812, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8250852706661534, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1940012409565178, 0.0, 0.7255195358366966, 0.0, 0.4862794311033925, 0.0, 0.7981182971725221, 0.0, 0.26385403496014914, 0.0, 0.5139863704027979, 0.35381636124647037, 0.06016159688024159, 0.0, 0.0, 0.0, 0.07675121814682248, 0.0, 0.0, 0.12553662505708466, 0.0, 0.301350309711505, 0.0, 0.0, 0.0, 0.12978101101826656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2180668401971053, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09272141980768678, 0.0, 0.3034931056908601, 0.0, 0.203416238280828, 0.0, 0.33274884560755447, 0.0, 0.12655518438173288, 0.0, 0.13637583261219158, 0.0, 0.0, 0.0, 0.0, 0.020115042222633606, 0.0, 0.11478942012015081, 0.0, 0.044967175485766994, 0.0, 0.27969782401606164, 0.1383242818414881, 0.0, 0.0, 0.18685369035983804, 0.0, 0.06810955828519266, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17579267922314348, 0.0, 0.0, 0.11999285025017485, 0.0, 0.0, 0.14209169595972287, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11399414163060874, 0.019825113051252268, 0.0, 0.049971986914216976, 0.07235420154739257, 0.0, 0.0, 0.08331368376199759, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07280640355864025, 0.0, 0.0, 0.35152520960031586, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13676901662991092, 0.0, 0.0, 0.0, 0.015204774707799058, 0.0, 0.0, 0.0, 0.0, 0.5304031136005922, 0.0, 0.0, 0.0, 0.32819195551919517, 0.1622165373359131, 0.0, 0.0, 0.0, 0.1321652778478459, 0.0, 0.0, 0.2161735452720934, 0.0, 0.27952564740678887, 0.0, 0.0, 0.0, 0.22348236021207268, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.375510190195534, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2500091160813631, 0.0, 0.2815132558946093, 0.0, 0.18868424509978618, 0.0, 0.30865021038590384, 0.0, 0.341236683480638, 0.0, 0.23483861551802387, 0.0, 0.0, 0.0, 0.12117745385937667, 0.0, 0.0, 0.3973467888918919, 0.0, 0.2920101397985984, 0.0, 0.12988448302264086, 0.0, 0.3517844506342411, 0.0, 0.0, 0.0, 0.6519761543079575, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4428070420734244, 0.0, 0.3964317892338393, 0.0, 0.0, 0.0, 0.3236724995283946, 0.0, 0.0567229736921611, 0.0, 0.0, 0.0, 0.25146743826064083, 0.0, 0.0, 0.011207888208677623, 0.08869787998517195, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0436070974131627, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05218480148875932, 0.0, 0.0, 0.0, 0.28668060177386556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16806127510824798, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1010038649276795, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24411150965510042, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3252831829639798, 0.0, 0.13696611429551586, 0.0, 0.08809099936621054, 0.0, 0.0, 0.0, 0.5834039633369968, 0.2573783852497724, 0.0, 0.34353142253711105, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8226681209013311, 0.43635481618924155, 0.0, 0.21222851603946533, 0.0, 0.6640973088333184, 0.0, 0.1716321278580885, 0.7312656094018032, 0.46618173092618587, 0.7638215749927391, 0.5281765059497923, 0.012259008816529623, 0.9144713112403178, 0.0, 0.0, 0.0, 0.0, 0.7953741970864907, 0.0, 0.0, 0.5850872742568098, 0.0, 0.0, 0.0, 0.7307808207285703, 0.0, 0.6199309753815017, 0.37291372178799176, 0.0, 0.0, 0.22356724549482568, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3221254739496775, 0.11781870844111127, 0.04460774210115785, 0.7133319766560491, 0.17115949268039302, 0.47397294440775345, 0.0, 0.10101149129956093, 0.11755718548933392, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.057090584067732354, 0.6447844891876003, 0.0, 0.0, 0.033829519264607456, 0.0, 0.1190337187097033, 0.30523421948716617, 0.0, 0.0, 0.0, 0.0, 0.6213057774307251, 0.842768502451811, 0.0, 0.3906048759812801, 0.7719833104847825, 0.41168363040706235, 0.1712307445975339, 0.0, 0.05992936357237096, 0.04890539039186202, 0.0, 0.0, 0.012380496199171342, 0.0, 0.2674194407541521, 0.0, 0.0014443996714777229, 0.0, 0.16387003646802972, 0.0, 0.0, 0.03594122433913304, 0.24159569520366886, 0.3747703785250739, 0.0, 0.054699683547073226, 0.0, 0.2873774296478163, 0.0, 0.0, 0.0, 0.14956132991470428, 0.0, 0.3888645476970781, 0.0, 0.0, 0.07542830239130101, 0.07080076609705026, 0.0, 0.0, 0.0, 0.0, 0.09852911382155678, 0.19548481725379033, 0.0, 0.0, 0.4350977845419587, 0.00557774494203208, 0.0, 0.09874991570897035, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6034262468294622, 0.2713368059843151, 0.6497013107648627, 0.0, 0.8007029601130917, 0.0, 0.0, 0.0, 0.0, 0.01616961592030159, 0.0, 0.0, 0.0, 0.0, 0.2502876057454169, 0.49212467358206446, 0.2134864810859512, 0.1765833209669342, 0.0, 0.0, 0.0, 0.5401972297237567, 0.03318857704329382, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12219566143679067, 0.0, 0.04829725298673487, 0.0, 0.0, 0.0, 0.0, 0.0, 1.2356793204214815, 0.02263120223723859, 0.7256596881722004, 0.3263003275955702, 0.7654157892976137, 0.08145618747845872, 0.6387218661983024, 0.0, 0.5276231408957645, 0.8184646008092085, 0.0, 0.0, 0.0, 0.6276063069977658, 0.0, 0.6132063830791735, 0.006204111701464058, 0.18851722870999638, 0.375149258411478, 0.7816851453263511, 0.0, 0.587776400734769, 0.16472858834087942, 1.1016458158754883, 0.1459604994495737, 0.0, 0.0, 0.0, 0.037075917094288376, 0.0, 0.2815459504132854, 0.2536212145780303, 0.559150690052304, 0.48027689889482117, 0.0, 0.21566088189458643, 0.058080618345779114, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008439821738835876, 0.0, 0.36408664087256903, 0.0, 0.16156000319694572, 0.22471190561828702, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10732980278519261, 0.0, 0.0, 0.12403718878006863, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27901056312251676, 0.4801492052284416, 0.0, 0.0, 0.10787548181472921, 0.0, 0.0, 0.0, 0.15654727928350437, 0.0, 0.13104284110293218, 0.13666096202593647, 0.0, 0.0, 0.0, 0.07276575816635268, 0.0, 0.0, 0.0, 0.0, 0.6100450928472326, 0.0, 0.0, 0.0, 0.4238237484103886, 0.9941317988293357, 0.0, 0.0, 0.0, 0.0, 0.3355479309040112, 0.0, 0.0, 0.0, 0.0, 0.5350029094771915, 0.0, 0.008586567333100323, 1.1385513331902584, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1850917274468032, 0.0, 0.0, 0.06716099014107918, 1.1525784735402484, 0.0, 0.0, 0.036572260841491885, 0.0, 0.26119964749940466, 0.0, 0.0, 0.8459335464772313, 0.0, 0.0, 0.0, 0.0, 0.38438887602945404, 0.0, 0.0, 0.0, 0.0, 0.7204933523373307, 0.0, 0.0, 0.16060697060474402, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7112792652633437, 0.0, 0.935521710131386, 0.26536974069831215, 0.2935825392525973, 0.0, 0.0, 0.13719141489981915, 0.0, 0.10324823792839577, 0.0, 0.0, 0.0, 0.7256165269576538, 0.0, 0.48634443939716193, 0.0, 0.7955635800994527, 0.1927019559074891, 0.0, 0.0, 0.7058981437597585, 0.0, 0.5236895266156559, 0.0, 0.08128104063747256, 0.0, 0.0, 0.0, 0.5731212091054763, 0.0, 0.0, 0.0419831484236368, 0.11625926299639212, 0.0, 0.0, 0.08927614896350113, 0.217346651106267, 0.13128361330254273, 0.0, 0.07219885291348893, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4218130442222412, 0.0, 0.0, 0.0, 0.0, 0.1699892215644571, 0.0, 0.14639742856012483, 0.0, 0.0, 0.04200062557179813, 0.0, 0.0, 0.0, 0.31146013043119736, 0.0, 0.0, 0.0, 0.24384030368566587, 0.9260558729858251, 0.4296955936776912, 0.0, 0.0, 0.0, 0.73790516731229, 0.0, 0.0, 0.0, 0.16295488074282302, 0.26550524353964333, 0.0, 0.0, 0.0, 0.31144107126852844, 0.0, 0.485858439126786, 0.0, 0.6914937323909329, 0.0, 0.0, 0.0, 0.0, 0.3162528337434342, 0.0, 0.0, 0.0, 0.0, 1.5785215576611167, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5161924043112004, 0.0, 0.0, 0.2568302026164213, 0.0, 0.3023415151909343, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5030068615133427, 0.0, 0.0, 0.0, 0.2741080207900236, 0.17120972783029909, 0.0, 0.0, 0.0, 0.0, 0.43685119598979993, 0.02712666041421048, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2451085199735546, 0.0, 0.1576437689621315, 0.0, 0.0, 0.0, 0.6857487349281931, 0.05917052173435364, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6537568461306704, 0.0, 0.0, 0.5395442735782994, 0.05374109131453472, 0.0, 0.5917732326059808, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0008206716541601089, 0.19818937147807536, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.535053682582317, 0.0, 0.3513819151899916, 0.04333888481337121, 0.5747915094439204, 0.19540689526232177, 0.01899860952318465, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06595709778063945, 0.0, 0.08799217533170228, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03735300199555871, 0.19147688509049948, 0.0, 0.0, 0.0, 0.2914125830050192, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04799459307428656, 0.0, 0.16480769798416883, 0.0, 0.0, 0.0, 0.04840048223798238, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.027156548216558336, 0.0, 0.047181418535814645, 0.0, 0.0, 0.0, 0.0, 0.35341760898781915, 0.5999981948389704, 0.024572219243726254, 0.0, 0.0, 0.08667332426569417, 0.4875808312926843, 0.06369622265280388, 0.0, 0.0, 0.0, 0.07133443039288194, 0.0, 0.0, 0.47894471690358564, 0.4793008357816607, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09658957720985865, 0.3016070141903076, 0.061398864173637636, 0.0, 0.0, 0.0, 0.07060273869520314, 0.35885594789448355, 0.0, 0.06446892769447045, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2497207855356876, 0.018509596151814908, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2926774045716465, 0.0, 0.013651758929637155, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03597721563910695, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07068090962707653, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03642909404914556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2749443358980585, 0.0, 0.0, 0.0, 0.0, 0.5096842842109697, 0.0, 0.0, 0.0, 0.028086239659725638, 0.7421154878137212, 0.0, 0.48123810905471315, 0.0, 0.3067030382176026, 0.6866619523091189, 0.0008295150087239233, 0.5016528107597976, 0.0, 0.08848804808651539, 1.3805931747462472, 0.0, 0.0, 1.04718815925786, 0.0, 0.0, 0.0, 0.42746548493362363, 0.0, 0.5817357352379013, 0.8450882691967682, 0.41665385220387907, 1.0915687546509307, 1.108964330219497, 0.0, 0.0, 0.0, 0.04066069749695377, 0.032733248007639555, 0.0, 0.0, 0.0, 0.07163077100441487, 0.6487063582321942, 0.0, 0.2995103130321618, 0.10283702762113958, 0.33384701220391544, 0.41258982728857174, 0.0, 0.5449670143554067, 0.0, 0.3217489265559145, 0.0, 0.0, 0.0, 0.2849908553676538, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.01610871320352385, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2570528176713379, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2969662795916102, 0.0, 0.12312876081315716, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09075655657480966, 0.0, 0.3633373647258237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06617087939273322, 0.0, 0.0, 0.0, 0.00923594008230594, 0.17805875048711786, 0.22450411347361834, 0.0, 0.0, 0.09502241267674551, 0.0, 0.024589605765570302, 0.0, 0.1826423790293924, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039040067948029694, 0.0, 0.06664139722445166, 0.0, 0.04466639301844483, 0.0, 0.22428735118617732, 0.08284705163804024, 0.05227416022819031, 0.0, 0.19522102914015915, 0.8685310451611696, 0.0, 0.0, 0.0, 0.0, 0.8702352191794189, 0.0, 0.0, 0.15684527219370442, 0.0, 0.9243788213991903, 0.22207735215974056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.40507055158794986, 0.30718446392066534, 0.0, 0.46812545232304087, 0.0, 0.5780009938921578, 0.18279458657604497, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02896217836710352, 0.0, 0.0, 0.40712998428742797, 0.7449999863100496, 0.0, 0.49933620201845186, 0.0, 0.8168155413547457, 0.11457346224809285, 0.0, 0.0, 0.0, 0.15332753334456128, 0.11864376215788304, 0.0, 0.0, 0.04572095120049149, 0.0, 0.0, 0.31683394463012315, 0.5003078767139268, 0.14059206617597214, 0.19554784897288408, 0.0, 0.43178409369310355, 0.0, 0.07560627618395319, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16352131380333873, 0.0, 0.34449708571742155, 0.0, 0.4618370375665847, 0.0, 0.0, 0.41783342102021986, 0.0, 0.0, 0.0, 0.02165252564332241, 0.0, 0.0, 0.0, 0.47140143149032104, 0.39181349979635294, 0.11892452733738064, 0.0, 0.5433598750764469, 0.0, 0.0, 0.0, 0.07266999506080335, 0.0, 0.6735755940113932, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0041630866962457744, 0.2109647750127205, 0.0, 0.0, 0.0, 0.3715024914369038, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1845463840294256, 0.0, 0.6075440706050301, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29101469974401967, 0.0, 0.0, 0.032739778024003775, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4875593392929034, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20371408580482323, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0439075644510851, 0.0, 0.5496827874572944, 0.40327797474842975, 0.37238046622077875, 0.0, 0.0, 0.17401376516444506, 0.0, 0.11278871866256229, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15394336215607962, 0.0, 0.0, 0.0]), 42), 42)),) From b108da54c9aa7bd09fc976fdd88f2b3ec605d267 Mon Sep 17 00:00:00 2001 From: teocollin1995 Date: Thu, 29 Feb 2024 10:20:49 -0500 Subject: [PATCH 29/41] this will pass with atomic element level. --- .../debug_parallel_spmms_atomics.txt | 2 +- .../debug_parallel_spmms_no_atomics.txt | 12 ++++----- test/test_parallel.jl | 25 +++++++++++++++++++ 3 files changed, 32 insertions(+), 7 deletions(-) diff --git a/test/reference64/debug_parallel_spmms_atomics.txt b/test/reference64/debug_parallel_spmms_atomics.txt index 2b0f314ed..df74db1ab 100644 --- a/test/reference64/debug_parallel_spmms_atomics.txt +++ b/test/reference64/debug_parallel_spmms_atomics.txt @@ -8,5 +8,5 @@ julia> @finch begin end end end -(CR = Tensor(Dense{Int64}(Dense{Int64}(Element{0, Int64, Int64}([1677270629509293562, -7174588820717922134, 4982350406799639908, 6004575306495011618, -4065073037680844111, -7036652420036258235, 5638668630751777490, -4693072359306649020, -1725738188961893206, 40949769622623708, 7350757019053419180, 5972809638842520582, 4229267187305955336, -2324072545902029373, -2207597298939627979, 582722099874513022, 9072165465889394468, -321758197209098198, -1977399405956158830, -7955269362226140786, 5091030977746570866, 6082188055549488553, 6195353771579510290, -3674794680678893561, 2915914449179386271, -1971909325719692904, -2632406172928410175, -2593336216223012503, -7710518320454535629, 6106651696619046251, 441801102114769577, -764006251176288900, 3144411021178571250, 7075325798686727040, 7996628552437087398, -2001139132297178931, -1998469451232943666, -8345779408008815994, 6769722793021798949, -3838601971265388520, 7555558387401955592, 5028370742954058017, -1641641222923509642, 811296524925701828, 8739088162631415961, -9003204345336380020, -5068743517896087233, -6072536032406563915, -1619185042941851556, 5742337028896457211, 4367938024652443133, -6777770903791224667, 1346473303051029835, 1431595621579345113, 1444365629630182749, 2118048423300440838, -3076299167412564312, 3862103344999901728, -2744191677068971235, 3519486853140118221, -562420137224484726, -2657462673619290770, -2728434470083069491, 9104427598053297684, 3743798455424562976, -159511467607315305, 1687102392833992300, 8774597200745035117, -6234815049804823818, 339029472597355930, 1073176856908877851, 7333940578000933627, 7543416385217978341, -5618817725309519663, -3732978478110923196, 4729775418924530027, 5415659146713528942, 1805248865544707952, -1457046423755598237, 4765123704142617159, 6572662904468529092, 5817232327383400299, 9081095240421046848, 6447075447425573526, -4642588973769769608, -5503701075089270325, 5433878957053827441, 1810641650481304140, -6074284472145952610, 5010825263160213988, 1440768229727432972, -4335018425502336547, 3936171562189036599, -3120322572833847445, -2924105885627258097, -3338952417844267911, 1251761857719850105, -2645571286696615660, -523297823706198912, 7711822176498563289, -56827788658712047, -3884320141540038020, 6390733882415166245, 7758351651296531659, -5116419273962657260, -4452143444130820002, 6019296145785204189, -1698121655345507645, 2449374316009348428, -8978372362526420552, -8660875431518373671, -3182863253235226393, -7949438967876709669, -462668530165964163, 5636929411439370064, -1011025255329422738, -756885859389560823, -331264710788294231, 8216635162250358259, 6402258611477527696, 1544645109357931660, -3949041951738202511, -3944006688715736150, 913848672375276287, 2550068931137838161, -8293531089577258125, 6716560683165388681, 5003627804088451642, 3064187442152168340, -6648848029896880663, -6568537479310908190, -5626066436457553790, 8579911889718937373, -103464984839396546, 3610167301414204449, 1942050521267682043, 7691005840368556897, -3888654056495178384, -3762756637882811313, -6651917273839315190, 825824585491216811, 1800928177599741117, 4208491245789437750, 8874261523713775202, 45836887866191406, -7910206231668513962, -4988265022579528156, -6256247887763223226, 3747858888112922926, -5812423386617508206, -9193143099131112087, -5272657138795541439, -3817827379190283026, 8546457323872953303, 2688261299341785319, -3538731669284659709, 2199425262601873922, 300153975732592343, 456707555528321685, -4315575576196128352, 1099407057019131182, -7395211302869873411, -8778701644082090466, -3493419288128994025, 3301038717982366720, -104840980289946258, -8226481138541069199, -624106317146205428, -156711244640472404, 6673758534395833770, -1361268453396164586, -6759201205268151581, -7326793368460143691, 3440677189250096398, 9053496459509194745, -4124497021656573234, -7099495831319883640, -5912967150461077944, 2919470565662260287, 1387950421190649316, -9149424709160077078, -3843612618224745306, -3028855547642790, 16964167837995312, 1533013996192098350, -8326032640158053477, -3816280727533390712, 7768610867568415451, -3221852796507229639, -6757769789929815635, -3083389278220508110, -1879042993877068801, -2836728464154771145, 2841355538848845799, -8731145361934242856, -7929070077550712173, 5841323222536130634, 1250656924898200417, 7799429322305398334, -7588476876785138456, -788721816258401963, -1118745772655195389, -8937230447546732806, 9114176567918614582, 3571004724063084991, -5020461155128328083, 194777804597335843, -3933809850985491267, -9128114338943733159, 6843556642424663866, 4318926916609127926, -300066644149788958, -5462720410180779445, 6409541792097195316, 4908879171558774303, -5271661392314950845, -7079508122592787378, -5436167827326192354, -7374836997159455131, -3140287590893366690, -8563675323647183475, -633665607187335893, -8560909452060853962, -7293836376637394993, -2641659270599183456, 8079053709753739857, -6361162201152264689, -4405439130120564311, -3892820321104841264, -6279605833864646816, -6079837499913394587, -8866005773878083068, 6066713257514514087, 5288367691461168023, -1598742348531206598, -2777316037279701631, 2198795739159402034, 9061756651168636341, 4858989359874464621, 3977286901472653939, -362664077449404099, -3490328702522819290, -5662959167154325088, -7336707677937719823, 7823379529456769701, -4586184257316881775, -7558101142366249484, -449002782987500598, -1431268531988975696, -86511751075371368, 3974454517915526076, -804472963520752875, 7471613544610400924, -3396105359147171232, 3095461075854102054, -2411768177398492469, -5623234300321819701, 8111534700383534119, -158701501459447030, -4395427123711365807, 437339219416888668, 5763571146478711325, -5428872092501320028, -3574253511498236324, -2021164797809167920, -884427093632144100, 3318980598205688698, 5619275088876900532, 8702713859578406518, 5155798979002669642, -9098448330179700732, 4786184579760699477, 7074300040268878505, 4113392373790825632, 8110975753317694921, 5210220750467937053, -829964025319462914, -5207346021088936763, 8716723539152015298, -7162216083176936937, -372942455799610320, 1901394334331706198, -8851444616721510677, -2774444187097785679, 8767037434457902466, -2838591694014432934, 5639342209728245070, 2417840955663893864, 2280691376448340895, -804896688078063867, -5562818359310242887, -3902063285553144655, 247798783192576525, -8287391343422688574, 7654852285280768195, 8199327211870147684, -7371045115201178808, 2808815945033284790, 8014005766125244094, -6540867730089662953, 6044398504000426879, -5355969054533634450, 1758439280073151899, -3624308255672000922, -5365016818678540007, 1681480343166431315, -9005181425430122824, -5656921226592646467, 6633074549499191760, -5678885986170601396, 3054631394601685889, 5639449062640554530, -6699536508442704315, -763522547043004299, -5757065947768060061, -1306872769930342645, -1261375785498121485, -5258933872526015308, 2329722914000597253, 6594444226936726831, 223195247111988246, -7273332832483541152, 4086641101301619430, 7391768729452155248, -4739881338578725414, -6619491003295788736, -685271773318105157, 246160801649852636, 3696318999807707452, 3461069036505303638, -8473274943604431344, 1196694474093988573, -9010072248325323069, 6930772497228753422, 6942266897591696384, -6611094448364590209, -3097262459925462356, 4516340939700360214, -414889362029292241, 3997237955642265020, -8743626081460619109, -2995446292781178524, -2724931864971260790, -6984804810275402552, -7836106425758742538, 1660327717890933216, 3941323798946315725, 8524968490861832259, 7144536990780841742, -7012774470377416863, -2414777125459406339, 729633162649738742, -2148296691123972729, -8230806901780951523, 6354973709081228571, 1756107823764428404, -2076658388824927987, -7890569762578693444, -438105193512806632, -7752960505450046285, 6557186089443805492, -2454638118288809795, 7640408931171015747, -6650817069419513516, 1324560169854399145, 7898657417641174841, 4269709565150502385, -5645370342812034135, -7230955113091210053, 7782415986233997773, 4364690018658472231, 814745940865079198, 107049065352236645, 4992742686480075320, -5076352245870015517, 1077306688599186542, 6716112717590582305, -1793059801246048133, -3402596618797825956, -1382435783405829750, -4512378872570009707, -9027262839901727281, -5478390106461241056, -1715385621547750876, -8665025206647393195, 2843843145340102658, -2443760900309878824, 5953785931841719473, -4640278790520944678, -6488022686324325496, 762714631491774366, -5260549151975689717, 5189064434499235461, -1597707950343890519, 7121202546441793890, 3941347055168069554, -1588829307798068771, 981802716444244209, 3699196854367587847, 9090353826244602787, -7196545669297349424, 8991802087322296026, -6996751702337135909, 1241945113691284721, 1856039614848931925, -3586244806372645941, -1514096101797172377, 876315126089072314, 3934820017358829997, -6095096490662719552, -8578152211466331578, 6202512340478101389, -1696242401425547182, 4962648827320161377, 219870885327533913, -6730696756041689554, -4229940339762579790, 8533710586833414053, -542558387162661281, -8591038849034187979, 3837500323519964112, -4441190141383918577, 8709936576773042269, 1236274441851065666, 518723536970383575, 535513379775648255, -2450619330097057344, 7834756618975879560, -5721257128040501964, -8488007752156831419, 7167586588754512363, 4042511322631424363, -8844766075897039719, -8712870133767841607, 3906514836780515406, -795556927663350722, -768338037865968516, 5858762720073347108, -3897421460014327410, 4634254716616188520, 6085442356422673964, -1863405755511847967, 4339469325434265804, -2487921362082429501, -3578936469061688875, -6801103323116878906, -972449229050672735, 454206038338751415, -1486759243558970162, 5438534844551114705, -286792789814308014, 3062170278808806204, -3239719860428266568, -5104812477821847637, -2945553453028684699, 289898537431707373, 7035057126148300391, 7982049619244731875, 322780202140398991, 4945754233839279698, 8410193975589136755, -3404141629002717763, 6673237294367507795, -7469444891103497397, 201633796195380211, -7252148981601896528, 6450093307063105234, -919480452395957389, 4198181541163936300, -6912403264283834693, 6744503657915812296, 6801256255246575893, -581429294097997951, 4698347948181005075, -5782677963882570066, -2510605927680626640, -4927130407218508190, 49230076077342347, 7494331989820251230, -1775679409301755930, 3065264725601113274, 1382112223486471654, 6855725250753750593, -7235544551967697259, -4844825588524406036, 7046895046789552104, -1544625215832538340, -1462332938045165828, 8336902559677289437, -1472312753032723407, 464570007256833509, -2841212654759868870, -8140640181307045932, -5407787643725107205, -4851016047923301705, -808896819049043374, 2199167343425839682, -6452817118340023210, -7650076746716397866, -4684423698840874690, -2110085194007832771, -4196495384356842083, -7355870869545978453, 8295158303833340193, 9203430665215634247, -5704375420998039329, 9202612771146411409, -2279778080299023850, -2361607645845928517, 651207550227801016, 4256132542441119100, -8539950987869537652, -479973678677984864, -1580461284754877625, 6931927919714263646, 1470718416840658812, 3890691356818006664, -8875283365261065693, 4831731075249656314, -1369661587431933337, -6986944981540111212, -4173431852662676898, 8398454849467241279, 7693363415431453478, 7261959854384580284, -4106902012375160317, -6951220911387267132, 7947531176128471006, -7104833492728828281, -4180932071472707865, 123734294527434595, -4227154409564646259, 1670806066448864573, -6169563406606482064, 1653243598995507073, -2625117865990908510, -7029351391413676785, 7710137121750458026, -5054449670793205550, -3190716002214607187, 8878540099121489268, -9128837968063924877, -5910059726045083540, -8985138055762613782, 5344400146874178572, 2666524971322015429, 6423258917777361903, -4560466303459026499, 8590879898129028068, 151791652887966387, 236781276746781734, 6610466393243173221, -6482535139675414973, -4133945436025681025, 2829648626512064981, -3164234646049780302, -7702140312373353694, -2267119632377546118, 3176523267017806239, -2714588510135843968, 4583969186378983863, 3848265699128525329, 7571609735693104004, -8250847883328889964, 6849568076514321633, -8704829972898797423, 7427686330032981536, -2235065763991046269, 7099543940686300003, -5216910216054918292, -7869578931726633548, -6892343521009331920, 4741066706349641670, -3203073219765549475, 2145114398851475587, -13683309976476550, -1334674355438614546, -1283134343121859994, -1599135267810742624, -8069751567836510789, 718983346595808350, 9088104125498623395, -5586147288854137898, -905658394408320464, -3758794794696386572, -6685532807959997961, 3831947048346150663, -5997144708393268050, -7335928570827599763, -5819196781443184281, -625005195302265671, 3761189083175547696, 1336107465982885684, 5313710133095916701, 7586535322086021804, 1426716311263670589, -3360350803402077623, 8079078011496226664, -3091352400636034823, 1154776227610682784, 6097901555984108277, -5863193394774162580, -1648934595081108726, 2597537392661061707, -6359885302205384467, -6920595236531555428, 7143570830307042549, 4822380408367952751, 8232543206294460181, 4755875274239781900, 5178278160400158766, 6271773147438134231, -1478520069461708556, 2310149569204006227, -9040314202548044500, 3301190785823333673, -4072850159273251, -7118226916908664615, -733790552032009827, -3003997466911824541, -4325570052037227426, 7064977307969495293, -8252994000105178866, -1301691290350493456, 1458456072983296923, -8860896783892886006, -8917812915168701763, -2229505986159751208, 5532845446095020505, 5912718143468715444, 5945919269146122368, -3552648667988127690, -3087232248616855890, 4378958493207963066, 1018304281564262546, 1348763371055457326, -3307361503165284441, -3099786188871740925, 7866154936949483372, 8804744769138390521, 7335901275596703627, 6443646405779432994, -7338664545137872319, -8044860620034896974, -875995196457953880, -1445875885049798445, -6499138537720468046, -5091178273027577134, -597558397233851138, 7773786318663624680, -3503794008437369845, 8813349309104512933, 7856338647898081270, 1104393198002968844, -7660016918855374231, -5853595393136742304, -1756358764923362731, 8273154173084614368, -1499219280054793624, 4525006020797523729, -549804765488772006, 356501713116674651, 1135210311207210128, 7867718229747186850, 7826688221201519236, -8317387764396245900, 2019447342298929617, -2931602810763159030, 5231170006871182477, 6626350286481636945, -5611595563725717568, -3566411688236025079, -1915591304304498636, -5733956498220569489, -440513273389181738, -7244319040211806950, 3965520871319985904, 2368044709423189067, 3139885428769999134, -655167085408448263, -6778339535459020982, -735339254429413452, 8638320685678062312, 6387610349083914916, -6053754171956472494, 5876529423652723099, 6742146074953066854, 6439682262851689579, 5401962912453175867, 6441683253298109315, -4866240639797176349, -1172860014752836574, -1505480240490423545, 1816142427768533529, 8818458158619452006, 3794125145285708754, 3014796970001049230, 4979132682436076240, 736495112200944992, -939174078249558781, -3230849635864162872, -9207463995515021398, -362486595758493910, -6861569285337168196, -1580138971661299853, 2208032121042831535, 1301580457449932436, 3502709101299782868, -3067897110823236410, -4692035115412895994, -5365115760765564974, -3849733140704734592, -922352153675603650, 4564241969823387046, -2961755835746786507, -5947739157912709589, -4660253702728200146, -6682147892477933167, 3126050278425678928, 5021254965934405197, 1031656256584523109, -4802741061774704626, -2497227644985002638, -5122177248107191070, 3746001652977745363, -7901717486899308522, -3260999654912485351, -8952610747347356656, -9104645823620664302, -7786466982883992041, -1350186980170397618, 1702624606242053565, 8802172731496498538, 207172044306322992, 4189954437709119075, 7603005788467982583, -5626430802272070603, -5379603062233781787, 7923607496514919333, -8785425574821286484, -6027786275156391733, -6136275890671367006, -3568723337436825900, 6912195357113538195, -7810954747493221963, 7443218553240378331, 2878210472205386060, 5137484487700793176, 2720108185055236350, 1315068274188359634, -4410527471022015095, -7874523193101856503, -4850781265898309558, -3236613039257685320, -1819476599087469665, 7017352924933700946, 8877059852959589099, 3348889235400036342, -549667731388297365, -1885453624208965098, -2540169916673280115, -1400044379515939375, -7736174760509345378, -2006478173572354105, 2730633009923032698, 4841725122792785917, 2597919813967689129, 3916452716508765057, -5498279397439115641, -7961044225435730321, -5185130612193404035, 1557607322964103010, -6700673331659411786, -5334830939120548671, -3280097941150134270, -7910519016839756764, 8557224957682654782, 7521339487490009436, -7016036511054060719, -1908510978629085089, 5778494804695304976, 3603338205508003784, 1738480565089120671, -6114750176445073309, -5513897610917183686, -4031320647450058369, 2957093100101370602, -5961283691677732574, 8112676605611427784, -3637272941101017101, -1206003829814374663, -4352572726119402979, 8960428543801900631, -5483044081013166506, -3631482279082854759, 3327017370286143970, 5623119224258559526, 3368948938890758585, 1379666313654718364, -573007418274604292, 2773835471435441926, 1022482194181968823, 5754532832894636105, 7967286625185817381, 6034482421942272487, -4638896337828585993, -1023104397721615736, 2069017588175726197, -8079010770295314264, -2456572720746276736, -3464157632130814961, 5995965512437630007, -6384277744313731895, -6921504957890122446, 8851031922304298165, 3693000072029401867, -6783885099461947155, -2262483537511548321, 538226576448013058, -612394001140825614, -3862424940609201428, 4109513510709064122, -279470764170567435, -6425989944734782905, -9108344729281253233, -7875324877544500340, -2192580900952202066, -3054699340608275664, 2078733422395155473, -7864180978851817316, 206636048777274999, -6167948937505917309, 2427223974943465417, 218537706818544159, -5965597288000067499, 1836370723425217928, -5765235691020858354, 5658115442076694966, 4382337612537480449, 3061034214977580781, -5798656539922509217, 1708340649708735233, -4971967461612477662, 4460196422387430136, 4006039910308053817, -8188607418080010944, -2161879953046537471, 5248088250455874759, -2189712474880946102, 901719202613644063, -4371034482168811624, -2906895702983200253, -7482537535857820747, 8294522124537529323, 8407884438315788350, 8253450342604907647, -462548973075601105, 7015567858525452257, 6172126470939923419, -3525449863029006383, -7275460644869822457, -860821702066401923, 8339054751755991751, -1550883618436912913, 2771549400576891984, 3900161920826331642, 4248374996863607650, -8772404663126297054, -5184417202433863571, 2641542239393344329, 6330251836012261698, 2118349017921366626, 1795997213736653601, -8119639942119059624, -8340503853165813883, -7007196819029135993, 2406258691801033805, -2006505026312063615, -6606217866315538596, 592124600619502014, -1972060930287370742, -236487336240157435, 7007458982880491920, 6244186320028049146, 3593583837625121398, 7335322273451007046, 5140138794924404779, -3713467164284824738, 3528839366487732251, 2364853623082233618, -3775477086648049130, -9016392222817726692, 8078506413656212756, 8641314894762788390, 7815708015682759824, 6409842045300954199, 2044682802216409602, 3712173779620653394, 6490787036568439026, -8891805728445642331, -3892882259671300695, 737244413534997087, 3807963283169898911, 343403486448177821, -150178725772549654, -6868495753908151499, -7014256943912768202, -5966447630086830333, -1170231756485694980, 6450549967984571806, 2394755952806291394, -495646518865244671, -8325232132313480421, 7933104079043435605, -4048111252114294645, 2129260356228956280, 145542367902595648, 3171265540475590377, 2994854716477137000, 8014611135494758059, 1193640127289564762, -4764590530098562851, -6376730848822490928, -3104433302162472537, -5925830521342264, -5790588635566578423, -3281287691703191755, -2116587596745925042, -7563715910941912751, -1558160381092874454, -8262489453184844307, 5430435325270056653, -6281795349960580869, 2765639203914359334, -2237802246943841836, -3150928540903085761, -6103822005551245648, 8144235982030690785, -172218327478327257, -7348530553160351297, 4036194473627890612, -2523997025592901666, 1109407262416525967, -6890293674884070944, 8621669787622162546, 270019806269493755, -5001639725748045676, -6083344047605518336, 5340336847798899383, -7366265149966142065, 14248524647085610, -5541644688586352879, 5372648764772448746, 2271720182722452155, 4228066264509258692, 2951506193061619469, -5645202807808937316, -4377094735133235161, -2222443507632266502, -8951407603034803270, 2196299215175469935, 2951502173698884955, 4026956744303139986, 3520022584721158647, 5845420208834687041, -9220308382628083333, -8387949286117477732, 2515503853374085279, 414794256419298899, -557283269755341520, -8260648376132537827, -5935975888532269938, 7958026189064261795, 3332436201582701744, 7199024219473003671, -5874456416269303522, 4148211191400372665, -151118860394046540, 3683382273210223252, 3121932881401357627, 6681639530793565165, 4213608483510050842, -5413314315048524758, -573036298662292674, -8066445463307793875, 8798023981866001875, -6239805349716691251, -6794978681961499507, 6931083686853152355, 4533650537624514078, -6512033661806411902, -5241239486600299157, -4650352752838657365, 4513997987670743665, -7986803975549971387, -4744257859911148124, -4964234892530729389, 6383342460018401372, 7327212679404374731, 2178557742266304282, -1512541162952951099, 7070449616356279393, 5316688147762395292, 1153283384194156374, 3252143636162324675, -3432501562225203604, -1036098826569440380, -2368226923736256362, 8997000030648029918, 3523523958601497910, 381615390497577024, 2533225274094742151, -1072255071005509784, 5094885208348951802, -2456197940553265518, 3152879321100787021, -8111506503155966948, 2271530087210511493, -7019383346879146706, 3193573886615694114, 3959215662808403398, 3220565406923706460, 496296638996964844, 6798045150625141619, 5511284923000986079, 7301570621863309402, -8322061438112548198, 8830404409140707660, -7297347137984457012, -2894022736956862995, -6040707378233500532, -3863890195553614988, 2512136232469420347, 791443503710666932, -6573450058339425949, -6787040790431539539, 2257056041337480288, 2940221467155933017, 179885315903739799, -3659689398916859674, -3787896340628026012, -2347882842652049110, 7041975579644729741, 5930831955084951661, -5480670146180837930, 7014991747075606522, -5402248450289331844, -1431126741805459641, -6328783162703284561, -3689199087458631965, -2986861310215239177, 5546862799539359120, -347473713848097910, 2741367081142131714, 5961545166076837656, -7515038212944914440, 86880597984508324, -8052451218963270334, -7156614943674008671, -8822676070737588348, 8575138517886775405, 2395664968321957503, 9107583903027061320, 6260395270270118474, 4454611953553418365, 5622300764370785173, 435847826577859675, -49437141425326862, -8135448699334060049, 8739658228224513987, 3179864353064585881, -5915722418031355050, -3583487693076039302, -4369828654864151884, -2172029238822483064, -2058968748956565252, 5843736179494890762, 8006114386096679111, -8431897063500210274, 8309138525936752006, 193940296601694891, -7242282832750930845, -288411670661809288, 4382018507648888102, 578069411030148438, 7837198284202669366, 8349852579983817922, -4247145818844811225, -3991960492909034149, -1825297755967255916, 1973163181010912105, 7440201554418105871, 2644838310619638995, 6074380352227431219, -2078853416799278218, 4561913972023060404, 250613113452881312, -1386363435909376154, -993223609195745099, 3138901979091442535, -5619506914836129844, 2019452320911509893, -7867037340160118993, -6501033669679603011, -5541285844158767633, 4992335507066857556, 6821256764240184180, -6201326667416837002, -587579658689753173, 707859757053528464, 3259801270922610669, 3057006252556337459, 405020391630160949, -1728635494704435254, -3374166262111824691, -6414099565195015216, -512556278618454305, 4944269743245091295, -1820653216015886550, 6391783544417340413, 2146396889054500159, 5788410462730476230, -6366109100863375700, -8647051309530337401, 4041531470256874928, -3957799737620632813, -8185800264564941688, -5807867280697647319, 7676598208073183052, -3242825989452131940, 1748223304759388900, -8046506227174585977, 4183389222465704997, -1704122601758706338, -4062713034106956294, 7687665623983628933, -926794209386101802, 6959532424912731367, -414408171109399335, 7889098494482444734, 4141954151751731474, -8861834700046789360, -5669718920560134654, -4351051382920564690, 3751101204096838600, -2966639132280427699, 3501973749390945128, 1996351166383501855, 2178085457721440751, -5981183559624430635, -4353319288501797652, -7406837888076852416, -6612124569829942171, 4002839714274908340, 5824768143387069630, 7300453340756378066, -5932287732008374958, 5543392546740461619, 3727352776771531885, -9078764638541497719, -4618475785067970103, -7660595691278409406, -655997130448311962, -3786437279613254045, -2595155343935305367, 7712873925150012618, 3743019225999186689, 4048390806669647720, 4805310822162446505, 4872038863367497502, -8428362854759882225, 8518477028043859713, -4239307318660575577, -1320958323441686566, -3545483148273914786, -4725747179790968892, -7928334261734361633, -2825909768436218289, 3450030333851207705, -4958149553928358313, 8138764482731493629, -4779577601967311636, -4998042866717682325, -1858637207999565768, 3062574574392248144, 3116156765992656014, 1443407627425508482, -453658987385733784, 5491561163396620198, -7292153975898714433, -3408322613737433238, 6524882149484465999, -6958537913651013747, -2938955943156942532, 2119366256343572933, 8901345897321046656, 3710924790031570444, 4551417599278414310, -2778749910083568988, 2348456219835669910, 1151457399438747946, -7769478377065331564, 4176399005145328638, -2644477417234502830, 2803031759208497383, 8697718780765983452, -3625600536012928137, 6735867306988040761, 7763266442554830837, 7770179690150502214, -7023916353477970482, 1432847252998295218, 2379301439120692648, -2470710259551001385, -4365037186101393423, 5657426733893218212, -198512364452142674, 4887314334572260017, 4413867830110241883, 4546750100594333328, 8366282322712181124, 7369219926080077976, -387447231888143743, 5401097044855564288, 7264294370309556955, -8414350561296785337, -6496784017302300426, 2110967893684903080, 196782530168353485, -4505376237635795676, -3586375420318201809, -6178837092705300632, -5415492461523612766, -6307288380592162535, 1909668364236311764, 7240014093820059488, 8225542133951521250, -303235625728535800, -9044835080205337217, 6395006392178963592, 3163001317536088328, 7980373436662151667, -384751106947219159, 3308616481993172093, 8193432909377460285, -2598826481200283813, -7672462299522481767, -5456470707672989773, -8183821663907951556, -4970082400874402330, -4927385277170352178, 5894511271954263647, -3898405833678350854, -4421937658782130914, -1426830103984582558, -5239846170358473213, 430549003329243930, -984064397281017418, -5707986003372548772, 1127770049382340239, -576670764435697235, -503665728889942386, -5575822317312681154, -7997132451289296112, -4335496770195196981, 6672529110134661148, -833249965440304903, -3611109599159964635, 1690265237394909097, -2378668441066911517, -4626527467669318108, -2044308008717107725, -7886462386406782664, 2599964402330270246, 1626099455070265011, -775389214411099703, 5009168442291859908, 1377571790230059812, -5950605858467181739, 3096557645419320029, -3568382933419721503, 7707351743416573934, 926482390280014008, -2738582395667167116, 3097243728802892808, -7187156508675486643, 7621468742620992642, -1563526926278978242, -4458772053950050018, -7918363255801947858, -5961399321310079768, 6376696704007439194, 9052647802412551288, -5665075737049933023, 8628225763182163568, -8234834498395305799, -6809749581555231821, -8458259746115122910, -4809798283344268574, 3318923672289849625, 6941534339033842220, -3272193828273482559, 5415695341097619215, -932925270768642252, 2845623526449995518, -8600719038766952184, -7505282763082070454, -6258711559255572699, -2323684458687719845, 7877045974728227686, 3695702625850460234, 4669557671600209257, -1900890566815581581, 5767173377736389424, -2008320345085831309, -814213951654447096, -2558456533666834270, -1440781600541849885, 3504329054216013385, -8361448567964563974, -5483050688223800146, -5764520578200964391, -6022473089279669174, 9124491906080172247, 1578375542353633733, 353727137960621243, 1260472700042362235, 7337345616150458761, -6347506725579883106, 3659478108789423593, 5837429070999405182, 5717506812864188060, -5582722319367469103, 5827687732585787012, 7324379135891986629, -2375372229257830003, 6199026524661379758, -9055904165649480863, 905454976708041766, 203060893183262057, -5600131743523206601, -4200425772138227646, -2654142927577482246, -8365470585354819958, 3053764856536443423, -1806320191001350095, -5682621707956083674, 5809343431935102775, 4480763765298346108, -1054964545550254008, -6891522298209038624, -5167545232524967544, 5554932100903180690, 2113122217850366805, -6861793957889202245, -617642715601868305, -1333965336248103824, 4394188400048411694, 8703695848685186630, -6951264421403583736, -6361059640096909095, 4805076007585936685, -5849108162598230051, -7110418169759697196, -3502538031708026365, 2305292847440708612, 3155951074720467060, -5614280570162977270, -7049866075960793726, 8499188298761549455, -7974781437580541420, 6908668767714377786, 2225604609249720320, 4760193832197546248, -1659403661643273013, 8117642118682142422, -1939980534191271669, -5440582913574991141, -7440216349994421978, 8258770640683229685, -9050606670322287902, -4655159621785908167, -295154581231632345, 7541929543991115925, -9071253916561750327, -7099933592500701263, 1910252927582353590, -1005875032891500815, 5715184563872901998, 2825752556769786929, -6247666548874229181, 5714961578523458200, 9007907860779683012, -7380292642667156761, -1524832632011532665, -3374359386145182614, -2068805132386665979, 8803129764207014869, 8408524196185653597, 1357852477599430333, 4851240964872333350, 6354507917073389720, -6525385194479205571, -5005813697572257455, 8759666014457395348, 7231825111096299967, -2252915289412377586, 3025689968990879713, 416379953467703010, 6132877881350737581, -8325054453843241881, 398566175089964315, 6380089253749342112, 6899238197653901474, 260536913037137534, -8273300546952503795, 1201703089789317043, 4532253953973030156, -2190628739463907950, 6116258341121362857, 3038344520832171176, 257693478102836437, -8926208255556237182, -7823478332043464059, 2553284350029303299, 4843296137343849707, -4830895017388855049, -3744853171948149692, -4418408956555579950, 3029935929026739853, -3666744609314822028, -5461795137653632278, -4036413704657199763, -2977579195124864722, 517512010729885454, 4574535867716027685, 91758552062890822, -394081514386882625, 9156526437927936041, -5488065600528041958, -7193577414241648791, -2722001358788145979, -1098377621057756697, -4960787574269088524, -6558023541990818803, -5184920236263284897, 1874544521859901252, 4198267997979723742, 4313931058319214978, 219572853464344050, -6108962201502654128, 8774908943924544477, -6514662121147222306, 6166903051841634608, 6562127280754337451, 7137324888511370503, 1491874714442024521, 7177295442861594493, 3345140940979807129, 6371568033607218984, -5834248167878052352, -2624195870914090513, 3252156470967156833, 3565183278632744959, 3442339004211668733, -3419425074063443206, -2066120272615235670, -9075548200745564962, -4434400619981760518, -4659126436837700068, 5065599417881459524, -7437869453128909779, 3683573505417631603, 3371057234402781466, 7996858620797736453, 5846947560683969171, -4203103903330318317, -5950334430178444971, 6831236220152369580, 2361851270573420870, -2510752377202513553, 5177061595883123946, -2863483895118452888, 6611882725976512826, -460810565332499828, 3127860751338688982, 3615659045891234958, 6790872602665561293, 3300050258700510464, -7370098739670560933, -5294874571074340741, 7726280406636794555, -415944409348159654, 7076031249204190348, -3108826506584892292, -8041802035032385852, -8995653324609818363, 69743839962285310, 7480158148029832136, 2272999696068825575, -7642227759928988359, 7596973422110551826, -991964884536876421, 4661787773254997906, -7240328064126099311, 7379162217684472607, -1939975918685722702, 2422840905913776649, -8912130039509636495, 7113072887354628885, 3863731520204459546, -3543354642569924856, 9158242481381522797, 7697136308675219667, -5909867584340906592, -3746222636160688905, -1227972700169734907, -7083260410391093782, -3344444025119195410, 4752490300217792158, -4476676750767629792, 1289599182467864439, -822904268290164744, 1831098321169576735, -3838955636938692708, 1907014263132106008, 2878855715915197864, -207023922267204389, -9173449034107235012, 7041295105879826346, 2326748895600643252, -6844122885200084642, 5951503081756844115, -8328942063338398119, 512917325115194875, 9152671550062380316, -9073723623387702921, 5414540504996419850, 6627952531201869502, 4308720465763512286, -7453314138775061838, -1041471669786698386, -7554740703880420322, 8412639278759774999, -1765745488046381355, 1329502153213530431, -8757140117994942413, -5266550751915688684, -6288158124393531405, -7888526426157514162, -8439789099521709571, -3355690895578523287, 4875413955255141692, 8351341077680878938, -6696767563461568322, -6204450681423187457, -6067036480906088694, 8217520698077522701, -2230971468435934471, 5821608479175761856, 1606487358477167205, 3830443207405240898, -2972780692273517843, 2908983701220817143, -7812448514531075065, 696699845903532426, 7391295549434797336, -547860074706335664, 4519109969717000934, -7001676377865009743, 4919983971210957521, 8010392212239862319, 743151461902870026, 8317986145510024262, 5557590515687555898, 3488115256542944221, 2365424253239732235, 7851189039436894725, 7163234098568022576, -199592888473543654, 5635516511073976961, 1488244339121644588, 2897880537600522852, -4395740398912718834, 8111576065844227697, -1264966674463178249, -7874014090680020319, 3567005815204947760, -2485321431002657785, -185427014019128250, -173927118620276260, 8167955355923876013, 264692553073865802, 3960591282265424977, 3469589772645482918, 3157593651882212907, 6095346034651693115, -716700184819251676, -2376946619935511933, 290294819945037201, -7252612484808493572, -5058140104511140806, -3454463189600880779, 6572833412553238997, 9081813968043801888, 3808992870775478834, 4321815728455950478, 1202382649892625719, -9004785123535677175, -657866554437070455, 7136684572849969979, 6161002818637209277, -3814807932082606619, 720840350682837931, -1535606711404819451, -1312707627863366421, -7830884572877114161, -1301477861093585111, 5958035901737316162, 4633966933991528833, 8163718426222198780, 8298006740902217292, -4026049130797173923, -3375162246959841238, 249113105584952304, -1256851504859310242, -6050207542654650020, 5201041383955061109, -4250865160614369420, -8952250883428366678, -3246801092177608435, 8857943200502247741, -4101641055145843129, 7120810276580448524, -2102395493685764208, 7236724800438577638, -3044006873787606728, 8271611792647722028, -9154864609265057335, -5776787647525502674, 3499464054187605986, 7298180223225248590, -3479889498634347813, 4481355936339637639, -1534186487991511191, 7792290749497927168, 6859096356999320742, -7952351188991058561, 5725063377884259549, -1162201617070538753, 5290638522787839191, 525902359921691554, -3425037384024684922, -8905136369062318572, -1678832544743210699, -1656744562909208595, 5934591747712884793, 8713113449450988118, -6487279933617434264, -6017250810025346909, -7187221513097947273, 3435505288213305225, -6815348477884992185, 6098389112987903917, -298831395758824402, 2382817466626843135, -972086245780624403, 2282248607701031570, -2044892523992484118, 3970834560547821408, -2517107421520099407, -5106204542705141233, -3701739701586065671, -3519452008168640469, -5266715844119435398, -757938092115916610, -4100285246366614589, -3955126659607167378, -4538652064162043459, -7851488370810517404, -6378562022142737908, 142789853321324029, 7051751573933471321, 8872204544402270712, -3871819368960279726, 5014665949381082971, -6129778061989846386, 6187241938016660976, -5707100654003666676, 7982705033554873700, -5736274657152582059, -9062091212472699951, 6173323558929659637, -5345073612688291286, 825185204317976397, 44456822139112358, 3935198567045533508, -5845573752098467868, 4695754090374498600, -5549748460502463909, 8767300528800433593, -597320943589815521, 8507086802081434156, 6014877320003647458, -1951929335872228119, 4285789547904390338, -2699801820797421006, 5943127995972358190, 6288440246900461541, 261004613848747643, 5447118173788220005, 5630128827397937413, -4008590032843971044, -4680937778354571482, 1752238206490980916, 1387016282198738161, 2651942420504900858, 3701400566262440751, -1437995353788387338, -2767630519224229244, -4703176886812378004, 1677530378717965903, -565611956824228852, 6812882457096661492, -7851888881034033708, -8637409618996943634, 2744486613503555072, 2814532793353162697, -8532616932220342384, 9212318296359620086, 7407607526578808266, -902918451998184828, 8688335837670420112, -4232048668589306798, 2576564261683915429, 6007480017621431837, 5051606809584976980, 1059709833245129796, -7106106665960407840, -8946863552440740811, 4213857994912358072, -8481244292043240832, 9194418540500593311, -7478485335835818152, -7836269212752462281, -7104247507365390408, 5804808485437000799, 2370769985445904113, -4503694910331659468, 4265121172046578286, -6831012984448795410, -1407729596279203600, 4700089902740173393, 170439184174822875, 8010038733393578738, -106436605339515772, 3476126135840134882, -1412132094598766133, -7285964107389118477, 117256142337938804, 5646439734106196523, 5850342702504144984, 7968180693831092092, 1964800800443459167]), 42), 42)),) +(CR = Tensor(Dense{Int64}(Dense{Int64}(Element{0, Int64, Int64}([3181970843987905448, -3850056869099523067, -4204843097075662118, -4127505234153259466, -7448145861255385442, 4215895315195742200, 7998833515547779022, -2332870056518785556, -8655795771438517657, 2346628281792595786, 5168462670218741546, -4546044364532006657, -7066614092185186792, 7711607679338119117, -2215980418627622170, -2961180033960777632, -2052368183891862705, 6918062046201944172, 5333425266345424700, -1883409538577270133, 3070718374851501973, -584557342293968000, -8599591255011453020, 1024144893304443815, 2076995081199603242, -7802182914905457992, -4167699252459599539, -3887593858282510867, -8329811636297293631, 2403502548425943999, -8992535261859431141, 7732879934538403489, 8580850193526551279, 8600424622852042205, 8409357027799742939, 7967558442536203272, -5332322484799506010, -1167875789224190240, -1560483637596481957, -7170268037711889920, 8536885208722912629, 1933971302746356103, 592084962047442655, -3325740022144620352, 7148687607170556858, -2827329136887248760, -8474383359358847311, -375176215073168848, -328845714335337097, -7093012325411060305, 7270928228981681573, 7801224415125572934, -1200011290295899247, -5883234664733751303, -3456060509312948237, 8930477183810983995, -7246126003624817290, -7230438601934072480, -796695102327918106, -7623615471911285244, 3984965219492178243, -3751133482976466843, 8628616154337416834, 5169018776259566451, 5666724502482543874, -7181846852244309982, 510032945754605292, -2036443600711618716, -3875936270383245534, -6401583512195394850, -6408463767670387346, 3637236484351011295, -5446245249874253500, -7721983993101947424, -2717121262768700294, -6339515824641771380, -491082432901457237, -3959961207515965645, -5606163275063373420, -598012196426132205, 1513688757000086373, 1976564786397409403, -2197641393863414744, -8936929132254312124, -3039048052889020088, -4957275612570012121, -8861816435927656278, 274537212489260569, -1085858551661955789, 8264608449500061415, -2655490290771322480, 8224088687495394898, 6222853122742716623, -4479686358103321537, 312455838922025831, -6068485155351571811, -1403337492944694147, -708155436908109347, -8437482921311081929, 5059588658283146233, 5358651936556075541, 5828556772389204118, 3484560634958130574, 2140760747834136408, 2689189380958344715, -1231614974295164235, 2789253172328390945, -2576686889163373367, 8161088155605216235, -5928436064036350668, -1023953918500745676, 3193349290797258914, -593310538774713629, -5473113675865404999, -300206505291400158, -8731905762698655874, 1413715850722171139, 1552688768827583696, 6987713428188283235, 608718224843749440, 9214998724442064410, -6277222077483500903, 3740915251760168018, 3522941123973735295, 7535943865236219345, 472136439446252604, -4044890150797338480, -6427338134862359312, -8032253032489364151, -7504552028263408802, 3491192171787655831, 7170919161873775622, -8363910902886312684, 101148124793698855, -548978419920827590, 5016629710983913833, 908941305389523822, -3300228693767642321, -1553391401309748907, 3254281837361621528, -2646123048634437729, 3651217885743686721, -7209790749291984852, 6484293950532162776, -6932624455724965003, 5830415732221788358, -3759811259077961296, -890473731316933869, 2840485702573192240, 725319099675139417, -4450340975248100659, -6067341295793260641, 1077622207944413489, -5425231652195594354, -1406333024860500942, 5884936055865974293, 9180115908712258600, 546873286539806995, 2007149814478564313, -7564970747919527478, -4068638238230270839, 8669336576334016907, -2066176776598428446, 2683738255085345889, -8135532428761650604, 7728913764556534262, -3735755454946303170, -6852017222228375156, -8546542286526847610, 8179367461137952329, -3393520720059475030, -3484994194630084597, 6673602022770340261, 8455663976163612706, -4212588172370543816, 7562812692119199354, 8884831217853111537, 1519813207992835898, 9204060391950175344, 4790385613020725546, -695043056225075203, -2088237545770637843, -5835236838428209727, -6513447960974116663, 5184423621363333703, 2880514522909316358, -6885101066484554598, 5099200159441754323, -4431566498207589639, 198163613886007299, -8146401554251845729, -5230403922773691522, 4241793009277348609, -8414097471550650292, 5876054894975216636, -4360822335183390040, 4929286375133259248, -9123446621149807210, 2730627716160595477, 6997146714182098881, 22537673922245572, 8384322330090227166, -8430930550925068831, 4963308809230992206, 9054799744333458048, 5278709756892082150, -5732463865833337026, 7457474318149187622, 8973654646368849383, -5828119643988801352, -6998622253720465610, 6802012211169429393, -4117347963047535807, -4341004926726168370, 7750217515066620195, 7222394143116643268, -6506427335075755017, 3208392202814699182, 7267113194182834249, 878197186607368266, 8979920976205087867, 5682824910850072941, -5316375387931669837, -7409856751041270340, -3665315003502248518, -3019319637535263073, -1459974104658062118, 4788716285048589225, -8306776436166340931, -7901481308153257317, -4597109274859359791, -6382850280333102641, 5526962378148444782, -6228222457660245416, -5410005753076135215, 5825082713338262907, 4536026421021731886, 8289028358931238358, 2995045453405484176, 6072530796000898281, -7334829869957765128, -1414016308814093606, 738861144771574442, 3944941504634358760, 827914513949320136, 3273612581244904095, 5967547548091751296, 5355438394656442028, -6487319124325986220, -3004599436119910836, -2813146693865556533, -4385818330461015033, -1344540663518395616, -1532793139149058021, 132218475126736528, -2163819095523500752, 4276207791856666392, 4106414165160305454, 8721974359179999962, 7150135769328769148, -6025812628155046318, 4662525576651279512, -1433742508133268083, 6270076104596189629, -5756139140508697738, -8901187970063977504, -1436584464987571413, 2743053735673017405, 4363241872317329644, -2759125424203423154, 3720510633532327477, 5006386652003108522, 469390950672548518, -6370848878573150692, 8381768680309848972, 5910557453156194421, 8597915859825020507, 7295340751829376627, -6645799360981374445, -3768633298557525127, 6604243952581093050, 3883789839948827776, 3297274003466300652, -5940680995955509998, 8626378573962917078, 1934045068018525046, 2420600470540399238, 6201358753651461405, 6171383600189441566, 2438940665717633026, -2036034789068960839, 1061282539109862794, -7811400112309110218, -2087841935858306311, 4453033478250939160, 2090690010728068356, 8279879557005301929, 8203050140399983475, 1340412063494841506, -2769855271746900903, -4359585879755207513, -2314210915725906679, -5088543706493574343, -1600381159551291550, 5429359666444640466, 4358995816511012533, 1014495868971190628, -7832333855251665301, -2170672031533445919, 2423542234870821706, 3423825551927538809, -9035138176098021900, -370216007490059858, -6509583281484340677, 5353482050200144249, 8813492599773103310, 7982254444650566245, -2860353429166062431, -1334107210814308351, 8452961053357190501, 8666177271350310359, 3811520367162623078, 5897384351664637039, 6735042555538327942, -1020974104037943740, 5464707557961847026, -1766665848980041394, 1914427988741657811, -8512805285374605480, 5109592656370952389, 7426589604593046401, -1932557584372992591, -578749433830321756, -7922203875914675096, -4456833760082067550, 1844456327512524956, 4166512513681905445, 1596886082294031148, 8410851655593711267, -1614219335193089918, -5994217749949249716, -6409151210356268170, -4307495971922673738, -7446547187169455649, 5872808645150055093, -3875433738849222364, -3399810294776140572, 8446414476298515099, 701445569591098124, 1865083393456801515, 5815654404975814596, 3638703453688268831, -533807494571241636, 6364804383335608635, 425056221750346919, 1964742970035220502, -2452292118882326330, 8062632884746849081, 8376971727573382053, -5431604539643607469, 7837130951287290495, 4332520410352232945, 8975347559970765515, -6682145075233701650, 3444841688622480542, -4327171716460925990, -6916318882861965729, -8708121476660821285, -4095291224056331927, 695066600472552220, -5549506866012526284, -2786728877672533429, 5737874292414337997, 4016367750909379513, 4684196674034754483, -4779951985560068558, -2801053444648265378, 6546098599497193358, 6661706172807062179, -5451659769336253935, -6798185872045544851, 8117124099189252126, -2244232681855890472, -8569573688733903788, -5123101448292461830, 8875385754394612276, -6192148155760510077, -2439677379889853848, -8116025351122255378, -7259015087308053155, -3836623265652591711, -6851959711738197653, 4702704586075608149, 3554455553749487804, 1208229087631991948, -7601044345589583810, -3222354634459296773, 2713044992806543010, 1307000751017877479, 7893516534073975911, -6471069436762416993, 4286369100146448066, 7469649274609154228, -1520352324442205515, -2282915798683674671, 6793399868769117018, 6587133192300108608, 2665196295694034641, -5528535853897634937, 7298640037748180967, -8599408336148004786, -854623590747517409, 1749054646334470057, 7005542417475236603, -6223563913290118972, 7458609708963784366, -4191621808744023533, -476825722096220119, 6720086268497692306, 2283692511679719861, -4886163418139150401, 2770582334679262777, 67183777345760071, -9019650260004097572, 5533555647908420862, 7710129867560887388, 321784340762885578, -8450979317743588629, -6011664871692843385, 8051674332252848275, -4968878855226913449, 3668886519710227516, 4973456359201411003, -2222469230497361804, -3780739240122309340, 4122181335056487542, -7375241210115366788, -7456667173273164169, 1905323704673164429, -5607189634051453762, -448949673592724761, 2704937170274218032, 6211619123698033311, -297560388853574033, -7973387032184082467, 333966721796280459, -5286572687223023239, -4181728603238699670, -7414291261399062874, -4766691938907913831, 8605619376330386992, 116482691951779708, 8027342191572768936, -1869058823282186923, -7788956870416672680, -2097174266566589679, 4539954461562653574, -3846049751132736737, 4614883122386325096, 5690682742133847884, 3903538520631819469, 626765007171476942, -6136831629207253169, -7849590177655009557, 9026969610418961105, 1240223135872375561, 4794974537724296325, 2558263810002910749, -7036689251366187335, -8250054706829199185, -5830863372543946672, -5566722646582014133, 3499929882665732110, -4716072647268265443, -6994847484538666087, 6202658398536042929, 150941740476624681, -786155471515185327, 8358267036701292069, -1350320304660429831, -7873783934848585310, -7055608198307268835, 1120588522179773814, -6139834770205482269, 529698297989234444, 7047115715927053091, 2590662420539480660, 8092931287016944960, 6523751230836392335, 8579523333388122842, 1235369983472494308, 3363052291714795708, -4371794177969464594, 4386393025600156315, -999995286438539136, -4298608191610539692, 5489951772214416518, -344889797933644118, -4649501890310587535, -426245385812669971, 8959691818859071492, -3714224211400998478, -481864102938098835, -3219744519184113323, 7808357100731372619, 5144759106511714857, -1621017192841263207, -7733917838713639316, 8346525065860359349, -1022675741067094829, -7831592155044953220, 2243752361238141209, 4937191037705384333, 1703833955705349720, 1277220326732572094, 6642836126769522152, -2015089747902264688, 8397744139773779341, -8754246721200920959, 5030943183274130399, 2255664978669803139, 398194130056459981, -5538783663860721336, 3525521270241659677, 4568846248079226595, -2366806056330501543, 670542083363928958, -7349635100114963949, -2758708108294126823, 6518001729379055044, 8185233477846281784, 507512537375306251, 7251119308042129217, -419541723839125188, -9164320270675460253, 1677975380085138244, -3727841627222742216, -1648674141051628485, 686318495143900865, -8978915409449450409, 4875195316137236532, -8232347764463501160, -6439341289876475777, -468904761235802403, 4419355599306252080, -764348943507295662, -2881962201749269714, -862357860147047260, -554746556126711215, 665535063351884615, -1071580913294255047, -1474581988990492802, 5358360692134853739, 7593810623808509014, -4389763359039516643, 4790976631094662067, 8602066635910207695, -2073525837375342595, -3264155184151559472, 7413238124946251566, -8267203190047340337, 2524073160846348532, -1261338882487386361, 606626175998446947, -797078102177998290, 1254102430124929233, 9111678429941237030, 2217417475113781175, 3961285526745336629, -3815101613658868125, -7785417973692634750, 6744357070019667819, -4199399435713983462, 347886064776979335, 6519442808226222658, 8263395652264984787, 6700286935096843272, 6891052467629489805, 7536802834433512012, 7238261230549383239, 2171331922696715341, -7533103057279125716, 9222123843876777258, 4782489311648144493, -8951764690709529498, 4261263594624861924, -7165845354142462976, -284595862098035157, 5908021728522803814, -6589427981426083794, 5195967567108669015, 6042781203619832038, -7288256735084472398, 3890651964747049753, -5465445678316582073, -1602758104812258592, 7025163633367653584, 6371704729012101924, 9076330547015180904, -277752999677611287, 2341708161002851753, 1276992211326518965, 8134282328411156096, 5750108339109251744, -4450071425902531716, -4035661961932059908, 7784690546898215441, 4042067938691922258, 5594956258798853518, 8820360892845552603, -927985534545850780, -1738223906490307422, 7873802301890530367, 5496866230478130350, 6890185447067627918, 7111335868363173779, 4058786941396195803, -2713141987512003659, -5094531893167405948, 1602193888069332957, 5467561702004983955, -9110588277367219758, 5792821396953538442, 7502722827846167302, -765393583428309830, 6259144697823292327, 7091541854849322517, -3474153726805554676, 269983468933392775, -3104785476722097992, 1283378465322523954, 6264322424734798914, -1847161620898170249, 1399411110916017109, -5832370880879301177, 6858741992933703093, -7647294045148909450, -2429150354907079008, 8813035802539622375, 8519452802863276469, 4764552369546218773, -6662585272212890187, 4829548878469240624, 1726934843234645183, 5030098427578119272, 2876296201517247815, 2283779242971036346, -5889906923781792564, -4183471508048944104, 3668652741266155347, -261793770864219923, -6681862137698572073, -6643080116093433623, 1552410359999544983, -1909657199041168467, 1473889061277033665, 6003381346144915137, -1772274420909035815, 3032818516081424385, -6261889912991183081, -8737378639105639340, 6088285686002848033, -6695208174623828055, 5140907125836336682, -7581378165490056099, -7843164663530894225, -7640383705662386286, -1000517442342162410, 3697790436293135244, 4352869489135655853, 7390868897552125467, -733529623512770420, 5995006982338288453, 6615055133521276743, 5208846398424867932, -6806012926450004088, 1749407397154167653, -7524522094355617082, -2651875468404818190, 2929649945903148502, 5405928240201875925, -8121108988368625080, -4788888534392357503, -6237024874527851413, -6799700511060043972, 372787976963359163, -3950831220486862945, -1074266190497660581, 53966247007192725, -1953822884504770038, -1593787140720458678, -4438729694324061292, -2484124499477747238, 132479963018821901, -469757579161326412, -7963602685611128985, -5431886488035667961, -5031788717104934643, -5899761189930355675, -6849547884233454994, 6494785306457637180, 8860157917503708350, -1492718035220061659, -5776757506223411037, 8873585935269026980, -6214089325649815347, 2159629264830343034, -3578345496882199402, -6520205499067174098, -4289015989591097560, 2589076400782820850, 1932173867623798148, 3655086406237098867, 1058405920846872542, -5085992435028863195, -6756982862622802364, 1759979147475732289, -4956682537734973333, 1747484022075041157, -8010789107463204508, 1374320913033896307, -6262567463558726211, -8961444530702048179, -6022059227121479819, -1039341458755478739, -2715621808836670767, -4419025076234732745, 6276663990342162931, -6246585764721293924, 6472588440420846252, -2740651791374742514, -4300137564908384497, -8446750873265233805, 2187427167996175584, -8948856581465340257, -7037399322307386525, 3384614778360829398, 8650438058841399920, 727404544262665698, 9002557235110564908, 8045494209687566956, -8842174440921301765, 4697569690776103363, -6211545345805059934, -4566076775909840271, 1304555628725388481, -7240592876643173974, -7477235753956265183, -1370961510586011213, -4437744936451623672, 2676041276138306875, 6365683191926955844, 3738487080214977077, 5179578147043996407, -5174441899682912369, -2247579844307325787, 2099073561112423639, -3574389912844348008, 7844144738998798820, 7094074834040956103, -6075813603619410555, 5524387877116700274, -5264633485723240347, 1398160585013866263, 6651279121795127026, -5237091415383974308, 4606984162704223504, 4786103526128584525, -6501986550892418278, 2616881957223423446, -3369073595229717169, 5177501602850888719, -1010045361692376562, -9047738360122226481, 3511367611808785028, -6632193551846458222, 1785298653356423522, 662393845497381708, 2612973951930449936, 4847078168615300436, 2267937584373417730, -268725554496826066, -3153565509644201163, -5676613740638583074, -442090382920406345, -1165105710351670434, 3111496902072733141, -7439263928018798890, -637884479226538418, 8360639472829240952, 1436597737576156422, 8352370661194907059, 8495866536247364613, -8431965252297662302, 5202579245345442215, 8859294385486236803, -3344101369546780119, 633320410143639494, -8059862116622679859, 941968234043210544, -3467300913655193114, -5915905467462443930, -2604455509385509474, 3965856517830472036, 4249775469874959917, 294358395001535763, 449216842051633814, -2299082301664696095, 3438650898962314879, 1326252147599425653, -8639533679961572632, -4586890788311553107, 2079957748266810093, -607931890122845459, 7549561779263843220, -8004235533426179179, -6382463985765766022, -5893868483230106951, 5931091027920092216, 2461645856059600997, 6437518165106995095, 6449157557348575280, 5051174385004726402, -1739484161430739697, 2907098286850689123, -3301767967618826786, -2967191408774200117, 8848597363928139931, -2669579561088735867, 1041764300542063645, -3046208811374404249, 4089827711490987238, 162918292256246823, 7728985407243913454, 6683788456036082450, -65372412454279033, -4777641038456627516, 4518719576241788864, -2892385704559923483, -11873350006891468, 414118238763389275, -4203585648885831455, 7113732426458513521, 7124116837093330308, 8031738774809630896, -2957455807996467653, -396966644507959256, -2480532201225795867, -4730124632920518009, 7653065390416899965, 2303145489527459607, -1785902409240441396, -4904090046186379805, 7378684674243916604, 1986873130903010395, -4024443721092708779, 4142341594930520054, -3155680742006657638, 7755411428349838450, -6713886245299813948, 1207567601993306755, 3013004574101004567, 8535388564800379920, -5052558026165831802, -8095651774067732238, -2016719882002032781, 2666376835632200904, 4151826685200814622, -8053035760722952426, 2867306104553014458, -1997649160623091696, -8529685204300492964, -5444492969183937845, -5004630252646825240, 2258504148089306867, 2239304804515258045, 1833341305236292090, -1153995974233577889, 971255248630258795, 7156553464850931669, 2058847092537045689, -7098748185061118633, 3063235549897274382, -6818293460406551623, -5368008927736608129, -5847004881185342333, 666338667701603633, -1430281350263851708, -7173894175478689970, 8110217969878070696, -4381125134626259806, 4283534925993594767, 3440111263021072960, -4651621317936956643, 7357849512395603908, 4335100373585394798, -8997817946656946314, -7684245557083988018, -2482673156102390091, 3479183989268718287, -6216093121578403693, 57701043061110366, -2071748640732340309, 7871329688920369468, -5897078693994933543, 1018670761067640318, -5752603781799876412, -8316354169557976636, 5346081508003183977, -2576789302622478166, 2097167527447183117, -4684195631774507513, 4458471691269507108, 301841919179895890, -4384717580308058099, 3691875550279032397, 6084262928215168855, 7228260429002091319, -4012763255949585995, -3898391863225096418, 5591519968330308357, 8130467655323772980, -3187900718754744805, -6316176023284770717, 5935034804304913849, 9112650124100200013, 3684452634871078883, -6349281288005107120, 6104103955788842764, 4978817595886154095, 2736791807423621256, -2949230092093273253, -8441824337967283177, -8055623501435422734, 8218329528371628605, 997355400186453577, 4207908766655140620, 4289779634965258975, 1986154740350606974, -490931445085678176, 7420735507295705926, 4772463540721640615, -6454751122770122603, 6893318926907003577, 1113809225533508202, -4937160178673003272, 3466561426759839824, -4865697881485138164, -7762301013705701585, -3517905777365560928, -7467842237618933115, -6829354818686583241, -1853790882244705913, 2837254862960774925, -9447693526596756, 5160227848791401033, 3243135821035883507, 1837872866663800019, -6495149537191159275, 2793347884052472949, -6869039539732354486, 1733002901539311043, -4534759035643988094, -3077372244066166280, -7486188295316145149, -4207270884822750635, 4885435555892183229, -194210391538762563, 7569417524132138422, -6616638346488783500, -9157069907087907840, -4788470207897655748, -101051817816644249, -5905159537882624564, 2517974846974293279, 3288067126608690142, -5880936751843755284, -8748515549285929255, -2747211292706341330, 817479330228429669, 5472116010713556352, -1368039994561669275, 3077391132058962641, 7350200978338397579, 5674299766598758746, -7443474920878748255, -8311421115375546701, -2225701961632933931, 4964420079252309235, 5317356918048027323, 7169242865412277308, 7431442768858260572, 9188249157545665782, -8531318597802076987, 5528247945159447556, -365872420343213660, -3601147154117513932, 4572364663344249901, -3147973343481323134, -5096309377621954314, 6644130316584259514, -5212517079152828072, -4332004539950394560, 4429081980322938075, 6794590205694238055, 8552455300491284526, 2435408871436868589, 2642846024497826810, 6436708708388562461, -3064889242738158862, -1936147481151317487, 4963190048371039808, -2945646189057478220, 3964324362948670579, 8140170110173081978, -7654012653370997729, 7803192176664019869, -5225952706230089466, 6424175497118454134, -4797587508735745474, 5482455902099626205, -8726112702248696656, -6177261973663585151, 5396077864951767606, -9104614936936506195, 3269989460396869728, -6307913583762684601, 555990801194999658, -1775686637124430529, -1936857268591116943, 8082121154391489838, -3675545554408028481, -1210844020140922893, 1314455896362078687, 3905941137392355873, -1634955695732166500, -7729411899238838166, 7750412208254986762, -7626623065304168776, 550536335990080106, -3061213652286224176, 7349510043722130369, -7601440924448410910, 2053534615379089302, -3588636000831199886, -7825436438852880929, -336194864311713279, 8093281490640911671, 4071694280951834956, -2315987233992714808, 7368925053245671853, 924671947379134291, 7540388522988114734, 8478943043783266143, 6133988380787355444, 4479208141476023363, -1929106257729455248, 2008807732834265318, -6333045173492242468, 4021800267014083027, -4873427382772391803, 421264777132831034, -1486477869400563478, 621543626085662711, -3746063520496597394, 4180686833354924605, -6961382740795067774, 6175190664372734221, -6158031312190422204, 4455307650012290456, -1557180089025543884, 4614639966756299731, 1403571411973645473, -2941956486824874475, -3441743391900967885, 3274453795289446985, -7393764712051979990, 3376663692575294712, -7756759130581259809, -7234218870751220823, -595018065050761384, 5256137035825994942, -3097747956275781961, -2832970358237690520, -1836471353471437085, -2926762270012483342, -763575997099229173, -3820984474634528072, 453254782353207005, -6307444510021481612, 6256571306530317370, -4115762715315019110, 9126106790423179890, 996569772564294797, -983718737747222200, 7461015198536216044, 1725108730638160655, 6249329592864340126, -3524807508971938631, -3392306447709157456, -4581611153342250858, 3301580664277535074, -5487447831592793254, -2208341968902491958, 2110772413920577175, 4565165552067841965, 5826207817182738922, 3798133625868022499, -1227610582517206754, -9191540567461327403, 7942942598813804488, 1865769997356640476, -1467835330421369733, 6726551205934106582, 8441276065563109186, -2558103189350830609, -1878900609363560403, -3252708595851103644, 3876480768477846528, -5269272055314305319, 5588768481455550805, -1896204439232145943, -1666584407352177973, 5053013470537406012, 6106284614330841759, -4073022357540706919, -7093711680576088870, 2601976610716135718, -575890931649267867, 5016682608700701541, 1172397610829330356, 9206002274663363819, 265049619966115753, 5344911310666103826, -2682807614596125205, -8384930143012565407, -2716089791689870331, 1027452025944454701, 4007852459459799597, -5929635169336237603, 5269456427532488373, 4336900886962150032, 1350572943722361044, 4325957098337475498, 4838710684790330282, 2927916414853728668, 3020597732987283658, -3398565715772162208, 6733332792715278658, 5664632712338843721, 2009918740256997064, 4868028162747753635, 4327939461001800975, 8217614181935855368, 1718701290844673914, -1798186621247456405, -6913201003433615404, -6884503339551513023, -2040487672660990717, 2806914009653506050, 922680140278116149, -4702909803138413169, 1948707764882705792, -7742478707056650959, 3993431291875983922, 2782891139470091136, 8786063050324205264, 8084246937480174481, -8684287071517760477, 1245395092237560079, -6934009814868737362, 495148840377852466, -7190291652144804300, -8755622134616872198, -3811202266127590136, 5266775544256548901, 8458645673177730466, -965634030279604382, 8345136840994908671, -8071372459627582198, 4482156607288639979, 5688252301014384925, 3445005132969818174, 6070711756250107251, 4007896194330587088, 813126130355188794, -1584662439125373672, -8407164423127120688, 7439262670787973662, -688899465164773032, 4615734786073745717, -2437281364283929357, 617012517644204353, -6619638149011470499, -4889514512109121366, 7454117674415558019, -5698704445496660515, 3994271769236617754, 5446468999671501308, 5736259849254271926, -8642812986340621423, -583011731964099132, -2926691450768663514, -1194198455404030415, 7475472262793221381, -8310601722091691408, -1437277838666368312, -6380476024704913537, -1277400398787363613, 1419347154732867098, -4520260502560971987, 7526029215584491007, -5943997614758437911, -337658195703663171, 6774993639412317453, -7714634158645601256, 4815222174204335545, -4952168174357016062, -5793046562878742771, -8920515934510695927, -288995673987103004, 2824045364515934351, -5748995248573767991, 2257454339833046181, -5224208434825451830, -6882609820075376975, 8410436100500044683, -1376249325477499770, -3906422818814122990, -783597181158534533, -6009867409221681336, -3293405695714109185, 8675813657150466011, -8058326620349371698, -285065852448487502, -1225573426734107146, -4601059017243720726, 4084028197118468907, 6487904068052390229, -1820616949678355805, -3773963992069377924, -5149723650269880452, -6415228234246024171, 936885761292148023, -7717974005587500031, -3375897415239696724, 9108384570117718724, -4457845603424340988, 5030220292679300786, -4707740975132817872, 8278134656359194062, -3468238245912885502, -2938215604290741286, 8140717819802520009, -3765989377007407599, -2249374082118253884, -4436470888586229964, 1255386089519507444, -6108419722732715068, 1884455844347521187, -7363700602120425196, -4274424125849966157, 8201396851015323146, 8540425957568425736, 3442323321209032937, -912826319661273678, -348919317266134063, 2066975352179296245, 827889732456124399, 4352551795038759652, 3562535537799568974, 7957120632233685583, 8092001819669438142, 2207733957146298574, 3511574845081293743, 2413359821882192047, -1019045447946299796, 1411938279722298698, -5175300874779542532, 8482766041865774164, -2278090885308603511, 7061318340061233752, 1008821039791232059, 9162307797698077320, 5288815981954591074, -602373589325277344, -1759226767857279959, 6206940165081730538, 3023051488316270795, 7575442146983023729, 4945174521896902163, 2741788845699687368, 4590933243185764922, 7816511252172055110, 6358241157129445235, 9187107482417171658, -1281977053187510727, -227269077626406346, -9003884733013628217, -210476970903578753, 1007968487683827657, -6419500365891811238, 651955615724909324, 4758604786654897695, -3106686174327441219, -4394229568348016627, 7792691814741396274, 4124480489979995822, 7248401268127208915, -6443731781417104080, 1841917485746978022, 149683498308967887, 8501506152893163244, -4922719548324121558, -1614432766461792058, 5138452215957487546, -1893383305297420866, 9107790183109286037, 4783924481765535806, -8726002374529958219, -5702146162130551140, 7837979004825184101, -3906850842351474863, -7227882618837290522, 2523964112581813021, 509332173133840922, 5159277301165651847, 2328117760146693825, 6117433150688168829, 2708798717867211380, -8010967045320201970, 4510563065499940465, -7993145419280777958, -6741100588632372157, -7631697164018981618, 1876558019715612308, 7349413052163553064, 4877906531316752186, -3254243699433672893, -8687740360762659743, -5025036919859021222, 7022389913663328758, -2310493879105750152, 8196908358655780321, -3728284603908387076, -2503210930523782639, -8745147445493018220, 9011368771554030009, 6030240688041778213, 2800390585718837973, -3770472595385907753, 4773052503760863734, 3430174519129445354, -4545022552596372783, 6387167537135456874, 6035281277549535946, -923971773047752640, 5408518104801811838, 2598051786511293516, -8049967367738793131, 6858957987381476427, -2669577650057990826, -9022734199297167621, 6659426145560280467, 3980818749375178968, -1030217208484823363, -62836209100018287, -8832651835358956354, -848924083365592166, -8743433568217499695, -712846903371555239, 4560026882385447011, -4176416695987098993, 6146057051702549319, 4493215883365396699, 3396023680221497090, 6440581730994992840, -5704087334564839125, -7152069110234326925, 4115001281928487624, 8543665573478083568, -1135786561288462781, -1271183583915724531, -1855165361309098732, 5366973524658295417, 4895396333359975237, 6344108073934140264, -1534716643805645254, -6709406980847747737, -8298194062543898539, 8019110654735819436, -9112887483246436878, 8944860471378373481, -3998019850733743692, 989686331648018746, 5992977260580780288, -5351242175456184231, 5353001084551135471, -7352583439567949150, 4481177542188226838, 1521007579335312329, -6860426354435535242, -4859703814430272779, -3663246900157960324, 6513770149830775867, 2335542135487245797, -4896755646129276295, 7984450765668265555, -939989752011362461, 5752023737593299119, 1493390377093897162, 1240453570529758578, -1830578949083804220, -7977326292376017572, -1308568368616250961, 2949731555599641018, -9100024717468720024, 6393193864525644542, 5264803656562925603, 8566969644508007247, 6089921946307142529, 7918934666077103198, 2172859887548280396, 6463371214642117610, -3618004608315246234, 8568561446560905237, 4020094372997884373, 2520650259922446874, 4265189651161100902, -967236549840633909, 260894937912975445, -3747284071859006843, 1829526389153527669, 4020617734255008804, -6946559150546724160, 2119972795835000361, -4393663869911065574, -2464909439654259036, 5224056174284865227, 8226154172979122789, -6316966878236467596, -5187185719887850596, 11414717738219979, -516703854011505603, -4951647681976681995, 4498548266850965618, 6306079439780399385, 2759676382714007828, 6125593664061382475, -9138519961821031640, -2623207551791607464, -3739132014679033441, 2380216385476166094, 5977642599535936106, 2542358305219869396, -5268011229950745389, -4396488348303555882, -3939190386320494923, 7478932198409492875, 4174048870730039108, 7438437192891617954, -147513524743035808, -3832619788410512260, 3987503151358391990, -4612688915386150726, 3395339460050854630, 8335283846767636532, 2941918641058183296, -7527908778524886249, -8892700035405018134, 5917734334557584150, -6263889992050961311, -6541365298405043666, 3371012074962830346, 4621719185625401576, 4580822504579602060, -6982602664517095287, 1182504501881148068, -1346677433206889160, -6828579590715650944, -8713704635270354083, 4440279802003891180, -5815066984311984800, 2628762652675707363, -8600682496283321075, 915363196802763645, 8518220973112871416, 1786032845792547058, -4304394604103397832, -7467523558659708066, -6950080326506702290, -2681110654000868965, -5306746115413812519, -7251985747639567396, -7848528097940931516, 3496757496113344330, 5577673348282157939, 6808759700668497948, 8715271051919501214, 2663204759402537614, -1582268976318043227, 7447556984218790077, -2630318196214681333, -7902158018368498187, 3333933222981245654, 5744001590473497770, -4684104629507757570, 2106694203010892595, -8216691416526260498, -3678807723331405248, -3839960041512289841, -2336953089931622376, -1538668871606542045, 5358597456436765474, 2445699084870599033, -9089058203633555793, 6044817817698231003, 8378178222357460011, 7840582989765582367, -1321350038011777617, -720910515722249181, 6359945168635536203, -1607938468964736667, 5966434425173411624, 1966410331413048854, -1311183636452055318, 4585637283806195615, 3513432218963383490, 7158964330756493919, -4195015170750340667, 3534690942839240941, 8361669288877412269, 6505992042444115571, -6207022462833433903, 8812460778797932401, 9083137801536431026, -8078018779750619416, 894097608264271300, -6953321529243579336, -116056154669982379, -2557809626111263901, -3510386473595612711, -4487843924839173815, -5839537040469174288, -3673751780693175966, 7940272540238079774, 1598315895372447033, 889871322738488510, 4710780434430015628, 2068814801066788894, 7777946852513672682, -8179692204684749580, 2166884132758700812, 353041270104985620, -4621402136289555237, 2263160192782691047, -1349945856937583052, 5955144394979027143, 8307880107870069113, 2688916064128269102, -407989652350519839, 5219783697250212409, 4973741104426083733, -6182074856509654296, -1666440768293972668, -701148280993898806, -398959251817728929, -5407032279198520525, -2932655128193425722, -6247470246189569526, 6735192254804344011, 2162598699140457686, -5987482569879380553, 2539033979738881297, 2589148914907949722, -7898714535084485443, 6302435857376117278, 8014814557159061864, -7030863816348913033, 7915582109081325646, 8120262022734473733, 8683811524916396584, 8772939046791803337, 6974897061506142602, -5044955722305325828, -3490771405380852357, 7943820646204332657, -8312802100992484515, -3231585645580442686, -263863943419959369, 4697028335211981163, -4678040393981627157, -4590257241685246612, 8852608517365016021, -3970562645438308308, -8847302180049998917, 606625461102818428, -2137468853120962462, 8183808316429213478, -97597181799577744, 9125273539701660939, -5731463640215317536, -7745838123781425812, 2819149286126538539, 7334397315000605527, 5797110364575092917, 930302753373025354, 8924752300792482151, 8041129301447546859, -389411944109012693, -7879498442150939068, 5221232819703646387, -6398695145759479926, 7907856197171507078, 208231946334746780, -1484610169562397944, 3587285019099681096, -4477002144838405824, 6417387770821246874, 8249025440733933452, 9027236798018893194, -6468724362550540673, -4567893507408146971, -4826782809053002043, -6239155979900473884, 5579224863775840254, -609991430360288078, -1822351553937133196, 883436181533947214, 6564415721589073009, 2412591415983835604, -3544070033210223209, -7008781486437226635, 936534348984729676, 1110186151976196542, 4964024627844281073, 8227043438023568084, 2618689541274789508, -9056306900042220944, 1103906863551162946, -279851762864408136, -7641714448518484596, -6900923920193425485, -1820862963394467106, 7664081857260457367, -7306002467676577357, -6903298643341245952, 3417282558409543587, 9050577773419667739, 9119832078608664942, -707174453789840105, 472814007023253199, -104181339406961499, -8370057778581959607, -3974468355832305738, 5255987391986935228, 297067598459806377, 2589189458439987991, -2589173494071557003, -8730920685410476021, -5906875287274019445, -684662640223990230, -7177896609814000952, -9111421713717073540, 8205678914089361237, -3555334672630877880, 4394024244034970714, 588487952354601118, -8411171964438288373, 7498709734211377709, -1819440124487651194, 7095521620357081833, 5695280821746792541, 6974709515631306820, -7076597020563594116, -252243746281426410, 7440354760011598547, -6008599353336531402, 8484493711832455902, 4306480278486545675, 6595955333087806107, -488102575889973314, -546133198702985741, 5687947892835791269, -2165830342600968931, 7455617691341332084, -2963782892111677453, 7056917819516594282, -6666292722341242417, -8929969735332339222, -6044880579246224930, -8019095202784240132, 1009310103084032902, -3444474903149522040, -2645749376229405956, -6234183123153635558, -2419558957173020152, -3322660758801536257, -7474840672967221900, 4265856282256726270, 2729257402811907665, -4312413227174703050, -5229876809167396064, -8193054727419014173, -148751236165694836, -3962066310795110196, 1010138028995970464, 5363942908780794134, -6984563722612986290, 6525605698701321409, 655360101871782721, 4504150728226686215, -3991414721573150031, 1749244788066744200, 2766401501483822738, -2632607959370358668, -1958159625000719856, -1879993784577425750, -2049824293365734417, -3779376781359351411, 6064551705338358975, -8546098223713157879, 134082739074796653, -8685242221421453379, 2770560047693024090, 150260798527960524, 5701787667997127806, -8619335990338611029, -6491926966176810057, 1111903184387892461, 1608232994542879527, 4301296624838374579, -5391929738161247066, 5682524613383787131, -3327000181747425956, -7105611198972028108, 1743446291681256792, 600452601856108329, -3243657478460163012, 5734826754831358480, -4870523859542545479, 7770711778884756727, -4014082245681077539, 4025782325585952717, -1121128785393742473, -1128645881328323507, -6322639398489886955, 5846501610849025634, -1477754364053336742, 2392169126958517515, -2905745635734156674, 3807668018105965762, -7360991014178984546, 14361841245102693, 1270954888750974884, 9173553516512340784, 7478338925787029229, 3279367286517366472, -7274108753188627075, 1335322857100899906, 4716826294735210519, 2061541829668448515, 7363739487364031593, -7610234256992503460]), 42), 42)),) diff --git a/test/reference64/debug_parallel_spmms_no_atomics.txt b/test/reference64/debug_parallel_spmms_no_atomics.txt index 5f4416c31..636bb2621 100644 --- a/test/reference64/debug_parallel_spmms_no_atomics.txt +++ b/test/reference64/debug_parallel_spmms_no_atomics.txt @@ -8,7 +8,7 @@ julia> @finch begin end end end -(CR = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.24622058278177836, 0.0, 0.0, 0.1261597862603059, 0.07342085928314178, 0.12871077894157168, 0.0, 0.0, 0.8034179790657067, 0.0, 0.0, 0.056025142012607894, 1.0596276779513034, 0.0, 0.12141212330168466, 0.0, 0.5574009533856183, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3327944495595785, 0.0, 0.8694342868598712, 0.0, 0.7416396915765561, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7569986463219165, 0.05683836078786318, 0.0, 0.0, 0.8725529080345216, 0.0, 0.2047777547094641, 0.5614660149749067, 0.0, 0.0, 0.36223551246779223, 0.0, 0.0, 0.0, 0.22107392894943306, 0.0, 0.0, 0.0, 0.3259321271119929, 0.5055955427859341, 0.27515457195781157, 0.4169876847813729, 0.018631329176858533, 0.3876953885710935, 0.0, 0.021531556327917045, 0.0, 0.0, 0.28223766305057085, 0.48287552686851865, 0.0, 0.0, 0.10175887870070799, 0.0, 0.0, 0.0, 0.06032870137556734, 0.018726053338837593, 0.045366945649236726, 0.0, 0.0, 0.0, 0.5790914418316278, 0.6815353846022115, 0.0, 0.1332216207413034, 0.0, 0.04017082185996856, 0.0, 0.0, 0.0, 0.0, 0.03484741576880692, 0.893850322287328, 0.4479341395605485, 0.5025126461241762, 0.1987665376735214, 0.31067608319719825, 0.0, 0.0, 0.0, 0.46442597522784795, 0.0, 0.0, 0.4431570212945692, 0.0, 0.0, 0.5121406140989466, 0.0, 0.49477960883115907, 0.0, 0.0, 0.0, 0.0, 0.47025922462023484, 0.3616621631765011, 0.5907253850051586, 0.0, 0.0, 0.44541009068477694, 0.03445733103321199, 0.0, 0.02309502433018302, 0.0, 0.03777890472311954, 0.16345317623186756, 0.16813336048226513, 0.0, 0.0, 0.09235605661534649, 0.0, 0.0, 0.01896246145159963, 0.02753978144349941, 0.0, 0.0, 0.0, 0.30135789429977294, 0.6764584765695312, 0.0, 0.0, 0.3151319553463997, 0.0, 0.04554105431298512, 0.0, 0.08378021558986462, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09849622821166114, 0.0, 0.25488776315346307, 0.0, 0.2781851808227525, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2839462446541717, 0.00854309647598918, 0.0, 0.0, 0.3272900456325508, 0.10375527349591217, 0.8492672297194694, 0.0, 0.5876718077641173, 0.03093892983747342, 0.0, 0.0, 0.0, 0.3385535490482335, 0.0, 0.0, 0.0, 0.29218416128587404, 0.0, 0.6966394562456512, 0.0, 0.0, 0.0, 0.522006486105503, 0.0, 0.0, 0.0, 0.11065330711314218, 0.0, 0.23311787887979893, 0.0, 0.31252070060750486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06134998798063221, 0.0, 0.0, 0.3657519298489218, 0.31899283438369924, 0.0, 0.0, 0.0, 0.3676864240590821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0010478172394749591, 0.5287716819761857, 0.0, 0.3903081303690744, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0017717866111426558, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5892681933608603, 0.002977075804572329, 0.0, 0.0, 0.0, 0.0, 0.43072916849878135, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.045384364903179854, 0.0, 0.0, 0.0018618199412216315, 0.0, 0.17111256306326456, 0.2672837889083413, 0.0, 0.0, 0.19576072012760673, 0.5948736598005219, 0.08413627091493711, 0.7573648130796338, 0.0, 0.0, 0.0, 0.0, 0.0, 0.33101786250771764, 0.16289357736810944, 0.16515314938780928, 0.0, 0.0, 0.0, 0.0, 0.0, 0.662932866371622, 0.6905568008213746, 0.0, 0.0, 0.0, 0.0, 0.4845748090935882, 0.061923683856559844, 0.0, 0.028719251839850298, 0.0, 0.02009827057946138, 0.0, 0.0, 0.0, 0.11124419756806017, 0.4147463454400596, 0.0, 0.0, 0.34783853396429565, 0.0, 0.09260170356894369, 0.0, 0.0, 0.0, 1.1401462738363544, 0.915922599074042, 0.0, 0.0, 0.0, 0.0, 0.6274522680730893, 0.0, 0.3139030754242789, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3751134192842195, 0.0, 1.257728265907189, 0.0, 0.35074493350028346, 0.268137845429166, 0.0, 0.0, 0.0, 0.0, 0.0, 0.016899841379555174, 0.7155448975358032, 0.1680074523773585, 0.0, 0.0, 0.30581125296894957, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9366277987154731, 0.0, 0.0, 0.0, 0.0, 0.07522986257761975, 0.06328419096078892, 0.0, 0.02479071082883737, 0.0, 0.7915629916935427, 0.031935353301522654, 0.0, 0.0, 0.070458258165472, 0.0, 0.0, 0.0, 0.0, 0.052737602183104026, 0.0, 0.013647273418699125, 0.3169788666986562, 0.17235734856254364, 0.0, 0.0, 0.0, 0.0661528775144355, 0.0, 0.027308490724219276, 0.0, 0.0, 0.0, 0.7971915175033586, 0.0, 0.5343175730821937, 0.0, 0.8740381649643706, 0.04598025590229294, 0.029012248678093225, 0.0, 0.0, 0.11141095490761138, 0.0, 0.0, 0.13001430753376275, 0.0, 0.0, 0.0, 0.22549966134722088, 0.0, 0.0, 0.0, 0.3726692665495664, 0.3774382964295704, 0.20411971872540274, 0.06057654493015839, 0.0, 0.5744310538348768, 0.0, 0.0, 0.6232315714035893, 0.0, 0.5072896743166587, 0.0, 0.005553340050755054, 0.5689868928162961, 0.06836125145830099, 0.0, 0.0, 0.49734376521104756, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27904969776436467, 0.0, 0.7814242677772039, 0.5117851675292832, 0.0, 0.0, 0.04886194301383263, 0.0, 0.3067365939854962, 0.0, 0.0, 0.4115088709036164, 1.405104579225751, 0.42840174089528493, 0.48760195358213543, 0.0, 0.0, 0.663844265848651, 0.0, 0.38778436442248837, 0.7776635401136125, 0.15032072106029123, 0.18953081567758903, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7044650329571657, 0.7235946500790119, 0.12987194286479317, 0.19647866132545186, 0.45582545423087456, 0.0, 0.0, 0.0, 0.032958397990191235, 0.0, 0.0, 0.7570462349991403, 0.0941136312544236, 0.0, 0.1276645560961348, 0.0, 0.0, 0.0, 0.755417985546979, 0.8458204729185679, 0.12543050025210123, 0.006393660363144921, 0.0, 0.0, 0.28926738179087036, 0.0, 0.0, 0.4731345211962404, 0.0, 0.7203970460167203, 0.0, 0.0, 0.0, 0.4891311717243447, 0.0031333060836164625, 0.003950606766695812, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8250852706661534, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1940012409565178, 0.0, 0.7255195358366966, 0.0, 0.4862794311033925, 0.0, 0.7981182971725221, 0.0, 0.26385403496014914, 0.0, 0.5139863704027979, 0.35381636124647037, 0.06016159688024159, 0.0, 0.0, 0.0, 0.07675121814682248, 0.0, 0.0, 0.12553662505708466, 0.0, 0.301350309711505, 0.0, 0.0, 0.0, 0.12978101101826656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2180668401971053, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09272141980768678, 0.0, 0.3034931056908601, 0.0, 0.203416238280828, 0.0, 0.33274884560755447, 0.0, 0.12655518438173288, 0.0, 0.13637583261219158, 0.0, 0.0, 0.0, 0.0, 0.020115042222633606, 0.0, 0.11478942012015081, 0.0, 0.044967175485766994, 0.0, 0.27969782401606164, 0.1383242818414881, 0.0, 0.0, 0.18685369035983804, 0.0, 0.06810955828519266, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17579267922314348, 0.0, 0.0, 0.11999285025017485, 0.0, 0.0, 0.14209169595972287, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11399414163060874, 0.019825113051252268, 0.0, 0.049971986914216976, 0.07235420154739257, 0.0, 0.0, 0.08331368376199759, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07280640355864025, 0.0, 0.0, 0.35152520960031586, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13676901662991092, 0.0, 0.0, 0.0, 0.015204774707799058, 0.0, 0.0, 0.0, 0.0, 0.5304031136005922, 0.0, 0.0, 0.0, 0.32819195551919517, 0.1622165373359131, 0.0, 0.0, 0.0, 0.1321652778478459, 0.0, 0.0, 0.2161735452720934, 0.0, 0.27952564740678887, 0.0, 0.0, 0.0, 0.22348236021207268, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.375510190195534, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2500091160813631, 0.0, 0.2815132558946093, 0.0, 0.18868424509978618, 0.0, 0.30865021038590384, 0.0, 0.341236683480638, 0.0, 0.23483861551802387, 0.0, 0.0, 0.0, 0.12117745385937667, 0.0, 0.0, 0.3973467888918919, 0.0, 0.2920101397985984, 0.0, 0.12988448302264086, 0.0, 0.3517844506342411, 0.0, 0.0, 0.0, 0.6519761543079575, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4428070420734244, 0.0, 0.3964317892338393, 0.0, 0.0, 0.0, 0.3236724995283946, 0.0, 0.0567229736921611, 0.0, 0.0, 0.0, 0.25146743826064083, 0.0, 0.0, 0.011207888208677623, 0.08869787998517195, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0436070974131627, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05218480148875932, 0.0, 0.0, 0.0, 0.28668060177386556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16806127510824798, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1010038649276795, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24411150965510042, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3252831829639798, 0.0, 0.13696611429551586, 0.0, 0.08809099936621054, 0.0, 0.0, 0.0, 0.5834039633369968, 0.2573783852497724, 0.0, 0.34353142253711105, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8226681209013311, 0.43635481618924155, 0.0, 0.21222851603946533, 0.0, 0.6640973088333184, 0.0, 0.1716321278580885, 0.7312656094018032, 0.46618173092618587, 0.7638215749927391, 0.5281765059497923, 0.012259008816529623, 0.9144713112403178, 0.0, 0.0, 0.0, 0.0, 0.7953741970864907, 0.0, 0.0, 0.5850872742568098, 0.0, 0.0, 0.0, 0.7307808207285703, 0.0, 0.6199309753815017, 0.37291372178799176, 0.0, 0.0, 0.22356724549482568, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3221254739496775, 0.11781870844111127, 0.04460774210115785, 0.7133319766560491, 0.17115949268039302, 0.47397294440775345, 0.0, 0.10101149129956093, 0.11755718548933392, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.057090584067732354, 0.6447844891876003, 0.0, 0.0, 0.033829519264607456, 0.0, 0.1190337187097033, 0.30523421948716617, 0.0, 0.0, 0.0, 0.0, 0.6213057774307251, 0.842768502451811, 0.0, 0.3906048759812801, 0.7719833104847825, 0.41168363040706235, 0.1712307445975339, 0.0, 0.05992936357237096, 0.04890539039186202, 0.0, 0.0, 0.012380496199171342, 0.0, 0.2674194407541521, 0.0, 0.0014443996714777229, 0.0, 0.16387003646802972, 0.0, 0.0, 0.03594122433913304, 0.24159569520366886, 0.3747703785250739, 0.0, 0.054699683547073226, 0.0, 0.2873774296478163, 0.0, 0.0, 0.0, 0.14956132991470428, 0.0, 0.3888645476970781, 0.0, 0.0, 0.07542830239130101, 0.07080076609705026, 0.0, 0.0, 0.0, 0.0, 0.09852911382155678, 0.19548481725379033, 0.0, 0.0, 0.4350977845419587, 0.00557774494203208, 0.0, 0.09874991570897035, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6034262468294622, 0.2713368059843151, 0.6497013107648627, 0.0, 0.8007029601130917, 0.0, 0.0, 0.0, 0.0, 0.01616961592030159, 0.0, 0.0, 0.0, 0.0, 0.2502876057454169, 0.49212467358206446, 0.2134864810859512, 0.1765833209669342, 0.0, 0.0, 0.0, 0.5401972297237567, 0.03318857704329382, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12219566143679067, 0.0, 0.04829725298673487, 0.0, 0.0, 0.0, 0.0, 0.0, 1.2356793204214815, 0.02263120223723859, 0.7256596881722004, 0.3263003275955702, 0.7654157892976137, 0.08145618747845872, 0.6387218661983024, 0.0, 0.5276231408957645, 0.8184646008092085, 0.0, 0.0, 0.0, 0.6276063069977658, 0.0, 0.6132063830791735, 0.006204111701464058, 0.18851722870999638, 0.375149258411478, 0.7816851453263511, 0.0, 0.587776400734769, 0.16472858834087942, 1.1016458158754883, 0.1459604994495737, 0.0, 0.0, 0.0, 0.037075917094288376, 0.0, 0.2815459504132854, 0.2536212145780303, 0.559150690052304, 0.48027689889482117, 0.0, 0.21566088189458643, 0.058080618345779114, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008439821738835876, 0.0, 0.36408664087256903, 0.0, 0.16156000319694572, 0.22471190561828702, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10732980278519261, 0.0, 0.0, 0.12403718878006863, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27901056312251676, 0.4801492052284416, 0.0, 0.0, 0.10787548181472921, 0.0, 0.0, 0.0, 0.15654727928350437, 0.0, 0.13104284110293218, 0.13666096202593647, 0.0, 0.0, 0.0, 0.07276575816635268, 0.0, 0.0, 0.0, 0.0, 0.6100450928472326, 0.0, 0.0, 0.0, 0.4238237484103886, 0.9941317988293357, 0.0, 0.0, 0.0, 0.0, 0.3355479309040112, 0.0, 0.0, 0.0, 0.0, 0.5350029094771915, 0.0, 0.008586567333100323, 1.1385513331902584, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1850917274468032, 0.0, 0.0, 0.06716099014107918, 1.1525784735402484, 0.0, 0.0, 0.036572260841491885, 0.0, 0.26119964749940466, 0.0, 0.0, 0.8459335464772313, 0.0, 0.0, 0.0, 0.0, 0.38438887602945404, 0.0, 0.0, 0.0, 0.0, 0.7204933523373307, 0.0, 0.0, 0.16060697060474402, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7112792652633437, 0.0, 0.935521710131386, 0.26536974069831215, 0.2935825392525973, 0.0, 0.0, 0.13719141489981915, 0.0, 0.10324823792839577, 0.0, 0.0, 0.0, 0.7256165269576538, 0.0, 0.48634443939716193, 0.0, 0.7955635800994527, 0.1927019559074891, 0.0, 0.0, 0.7058981437597585, 0.0, 0.5236895266156559, 0.0, 0.08128104063747256, 0.0, 0.0, 0.0, 0.5731212091054763, 0.0, 0.0, 0.0419831484236368, 0.11625926299639212, 0.0, 0.0, 0.08927614896350113, 0.217346651106267, 0.13128361330254273, 0.0, 0.07219885291348893, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4218130442222412, 0.0, 0.0, 0.0, 0.0, 0.1699892215644571, 0.0, 0.14639742856012483, 0.0, 0.0, 0.04200062557179813, 0.0, 0.0, 0.0, 0.31146013043119736, 0.0, 0.0, 0.0, 0.24384030368566587, 0.9260558729858251, 0.4296955936776912, 0.0, 0.0, 0.0, 0.73790516731229, 0.0, 0.0, 0.0, 0.16295488074282302, 0.26550524353964333, 0.0, 0.0, 0.0, 0.31144107126852844, 0.0, 0.485858439126786, 0.0, 0.6914937323909329, 0.0, 0.0, 0.0, 0.0, 0.3162528337434342, 0.0, 0.0, 0.0, 0.0, 1.5785215576611167, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5161924043112004, 0.0, 0.0, 0.2568302026164213, 0.0, 0.3023415151909343, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5030068615133427, 0.0, 0.0, 0.0, 0.2741080207900236, 0.17120972783029909, 0.0, 0.0, 0.0, 0.0, 0.43685119598979993, 0.02712666041421048, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2451085199735546, 0.0, 0.1576437689621315, 0.0, 0.0, 0.0, 0.6857487349281931, 0.05917052173435364, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6537568461306704, 0.0, 0.0, 0.5395442735782994, 0.05374109131453472, 0.0, 0.5917732326059808, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0008206716541601089, 0.19818937147807536, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.535053682582317, 0.0, 0.3513819151899916, 0.04333888481337121, 0.5747915094439204, 0.19540689526232177, 0.01899860952318465, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06595709778063945, 0.0, 0.08799217533170228, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03735300199555871, 0.19147688509049948, 0.0, 0.0, 0.0, 0.2914125830050192, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04799459307428656, 0.0, 0.16480769798416883, 0.0, 0.0, 0.0, 0.04840048223798238, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.027156548216558336, 0.0, 0.047181418535814645, 0.0, 0.0, 0.0, 0.0, 0.35341760898781915, 0.5999981948389704, 0.024572219243726254, 0.0, 0.0, 0.08667332426569417, 0.4875808312926843, 0.06369622265280388, 0.0, 0.0, 0.0, 0.07133443039288194, 0.0, 0.0, 0.47894471690358564, 0.4793008357816607, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09658957720985865, 0.3016070141903076, 0.061398864173637636, 0.0, 0.0, 0.0, 0.07060273869520314, 0.35885594789448355, 0.0, 0.06446892769447045, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2497207855356876, 0.018509596151814908, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2926774045716465, 0.0, 0.013651758929637155, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03597721563910695, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07068090962707653, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03642909404914556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2749443358980585, 0.0, 0.0, 0.0, 0.0, 0.5096842842109697, 0.0, 0.0, 0.0, 0.028086239659725638, 0.7421154878137212, 0.0, 0.48123810905471315, 0.0, 0.3067030382176026, 0.6866619523091189, 0.0008295150087239233, 0.5016528107597976, 0.0, 0.08848804808651539, 1.3805931747462472, 0.0, 0.0, 1.04718815925786, 0.0, 0.0, 0.0, 0.42746548493362363, 0.0, 0.5817357352379013, 0.8450882691967682, 0.41665385220387907, 1.0915687546509307, 1.108964330219497, 0.0, 0.0, 0.0, 0.04066069749695377, 0.032733248007639555, 0.0, 0.0, 0.0, 0.07163077100441487, 0.6487063582321942, 0.0, 0.2995103130321618, 0.10283702762113958, 0.33384701220391544, 0.41258982728857174, 0.0, 0.5449670143554067, 0.0, 0.3217489265559145, 0.0, 0.0, 0.0, 0.2849908553676538, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.01610871320352385, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2570528176713379, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2969662795916102, 0.0, 0.12312876081315716, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09075655657480966, 0.0, 0.3633373647258237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06617087939273322, 0.0, 0.0, 0.0, 0.00923594008230594, 0.17805875048711786, 0.22450411347361834, 0.0, 0.0, 0.09502241267674551, 0.0, 0.024589605765570302, 0.0, 0.1826423790293924, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039040067948029694, 0.0, 0.06664139722445166, 0.0, 0.04466639301844483, 0.0, 0.22428735118617732, 0.08284705163804024, 0.05227416022819031, 0.0, 0.19522102914015915, 0.8685310451611696, 0.0, 0.0, 0.0, 0.0, 0.8702352191794189, 0.0, 0.0, 0.15684527219370442, 0.0, 0.9243788213991903, 0.22207735215974056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.40507055158794986, 0.30718446392066534, 0.0, 0.46812545232304087, 0.0, 0.5780009938921578, 0.18279458657604497, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02896217836710352, 0.0, 0.0, 0.40712998428742797, 0.7449999863100496, 0.0, 0.49933620201845186, 0.0, 0.8168155413547457, 0.11457346224809285, 0.0, 0.0, 0.0, 0.15332753334456128, 0.11864376215788304, 0.0, 0.0, 0.04572095120049149, 0.0, 0.0, 0.31683394463012315, 0.5003078767139268, 0.14059206617597214, 0.19554784897288408, 0.0, 0.43178409369310355, 0.0, 0.07560627618395319, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16352131380333873, 0.0, 0.34449708571742155, 0.0, 0.4618370375665847, 0.0, 0.0, 0.41783342102021986, 0.0, 0.0, 0.0, 0.02165252564332241, 0.0, 0.0, 0.0, 0.47140143149032104, 0.39181349979635294, 0.11892452733738064, 0.0, 0.5433598750764469, 0.0, 0.0, 0.0, 0.07266999506080335, 0.0, 0.6735755940113932, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0041630866962457744, 0.2109647750127205, 0.0, 0.0, 0.0, 0.3715024914369038, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1845463840294256, 0.0, 0.6075440706050301, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29101469974401967, 0.0, 0.0, 0.032739778024003775, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4875593392929034, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20371408580482323, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0439075644510851, 0.0, 0.5496827874572944, 0.40327797474842975, 0.37238046622077875, 0.0, 0.0, 0.17401376516444506, 0.0, 0.11278871866256229, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15394336215607962, 0.0, 0.0, 0.0]), 42), 42)),) +(CR = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.1619393094464903, 0.0, 0.0, 0.0, 0.0, 0.11373910752308043, 0.0, 0.32533429668145175, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5405512925681031, 0.0, 0.0, 0.5409817971066755, 0.6726532010052559, 0.0, 0.0, 0.0, 0.04498001780375231, 0.0, 0.7446527460595233, 0.0, 0.0, 0.0, 0.0648053115514859, 0.0, 0.20542126000594346, 0.0, 0.2489342378383824, 0.0, 0.0, 0.2446702787341799, 0.0, 0.0, 0.4075132486743765, 0.372693911014397, 0.0, 0.03990868671702989, 0.32865292999993995, 0.0, 0.0, 0.0, 0.037570880212435515, 0.0, 0.0, 0.2585440952996821, 0.0, 0.0, 0.5429032184680616, 0.0, 0.0, 0.0, 0.7310331654112876, 1.6974310666890076, 0.13434284643730737, 0.0, 0.15388431962676646, 0.0, 0.018799628425153446, 0.026448056346556916, 0.020943024178172204, 0.08671614507629592, 0.19272805440861934, 0.07015243227726202, 0.0, 0.1267665206913561, 0.1014023431949165, 0.494724963965631, 0.0, 0.6317423070706343, 0.0, 0.4351905463586081, 0.019451367524410516, 0.11392026534019284, 0.0, 0.7674183972620773, 0.0, 0.0, 0.009728790198518009, 0.0, 0.0, 0.03627546054320975, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0140288190005624, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4229718175600567, 0.0752980218883111, 0.013070459322559402, 0.0, 0.4793455258509991, 0.0, 0.0, 0.0, 0.0, 0.08811633730455204, 0.08467555208376226, 0.0, 0.0, 1.4824413586764027, 0.27442978968992093, 0.0, 0.0028104905637611507, 0.1480443868451215, 0.6744061467564826, 0.043998508948338316, 0.8697701045107844, 0.8469834954000914, 0.0, 0.02425613445444166, 0.0, 0.0, 0.0, 0.9679232213808633, 0.6774894982888419, 0.35310753741950685, 0.0, 0.2841919624705342, 0.0, 0.0, 0.7349602036514661, 0.0, 0.2186035505612502, 0.04416466424315345, 0.0, 0.0, 0.25133653271826356, 0.11160837067772013, 0.0, 0.14048007630402903, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.035048636482553235, 0.038653696504083, 0.10014641420794519, 0.0, 0.0837599459565703, 0.10942537757376403, 0.0, 0.0, 0.0, 0.08204362658289192, 0.0, 0.0, 0.011591138384550418, 0.0, 0.038004261053570694, 0.0066189468466051875, 0.06306237088337384, 0.0, 0.0, 0.03121664575636558, 0.0, 0.0, 0.02910081181829685, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08506408857544866, 0.0, 0.0, 0.0, 0.7712870388819855, 0.2285263236705729, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6966121466049721, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6540220401149287, 0.0, 0.0, 0.2336670223432043, 0.0, 0.0, 0.005339227289024509, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4930665741229495, 0.0, 0.029559863815954657, 0.0, 0.0, 0.10760363562562023, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15061269543615943, 0.6107211710602042, 0.0, 0.0, 0.733057860494869, 0.057362855000467054, 0.17650444882735677, 0.0, 0.0, 0.014677698725170102, 0.0, 0.17821555119599314, 0.0025555492556658746, 0.14808219427948163, 0.0, 0.11979690859781277, 0.0, 0.0, 0.13110894332781436, 0.04449679654819995, 0.0, 0.1133902344080122, 0.0, 0.0, 0.0017495044850376442, 0.013900993801975209, 0.03729472110086185, 0.19173933242455474, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1709634942172136, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13051636625786148, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4357713541613571, 0.0, 0.0, 0.0, 0.0, 0.07073267416682687, 0.0, 0.0, 0.0, 0.0, 0.06443354393704691, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.28238918313491895, 0.0, 0.0, 0.0, 0.28219752132848275, 0.0, 0.0, 0.0, 0.3045252869011713, 0.0, 0.0, 0.019083741024338748, 0.0, 0.06257051306836219, 0.7837995208867943, 0.05061887468267648, 0.0, 0.0, 0.05139533007879884, 0.0, 0.0, 0.04791180451081585, 0.0, 0.5281077501137272, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7571506519409951, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.026654196669850944, 0.0, 0.0, 0.0, 0.0, 0.23843473688023176, 0.0, 0.0, 0.6051386294410329, 0.0, 0.0, 0.0, 0.0, 0.04194764240896927, 0.13628497764809444, 0.0, 0.0, 0.0, 0.0, 0.06043639304510901, 0.04344269031549197, 0.0, 0.7296328391677986, 0.6312346675367022, 0.0, 0.0, 0.22817557354519388, 0.0, 0.05073205279897938, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1594527848545218, 0.1381227206057285, 0.0, 0.0, 0.0, 0.0, 0.4217049712314433, 0.0, 0.0, 0.31027130374464373, 0.0, 0.0, 0.08118863628632204, 0.8304208532182848, 0.983137215831116, 0.0, 0.24897028906526258, 0.14034260442091134, 0.0, 0.691731307052974, 0.7500207108166317, 0.833859795824118, 0.0, 0.05053828036951065, 0.8139843305766208, 0.0, 0.0, 1.3856822465181273, 1.0343729450047436, 0.0, 0.0, 1.09811525132565, 0.0, 0.0, 0.005748580563865145, 0.0, 0.0, 0.8634025361175751, 0.0, 0.14616020357939458, 0.7514377111323272, 0.0, 0.0, 0.1732108049991939, 0.0, 0.0, 0.0, 0.1879649588465491, 0.0, 0.0, 0.0, 0.00817965091901661, 0.0, 0.0, 0.0, 0.5779500058438248, 0.0, 0.0, 0.0, 0.005249336837927155, 0.0, 0.0, 0.0, 0.3064350538312218, 0.0, 0.001890320177282059, 0.45976772975798436, 0.40475012946470096, 0.3442380471075082, 0.017185108496187197, 0.288035784498987, 0.0, 0.0, 0.2827566402954316, 0.0, 0.0, 0.2635916697723135, 0.0, 0.0, 0.0, 0.3588181656747819, 0.0, 0.0, 0.0, 0.17570163169455902, 0.0, 0.2076868163288207, 0.0, 0.0, 0.0, 0.5097341557191223, 0.14587016095283192, 0.0, 0.4172405362928458, 0.0, 0.13951021052730417, 0.0, 0.6033798708626249, 0.0, 0.0, 0.0, 0.0, 0.4512081190066747, 1.1915177253624374, 0.0, 0.53626862172996, 0.26267190873847124, 0.024946529615964698, 0.630282563668714, 0.0, 0.7072072219187049, 0.2557442098535857, 0.0, 0.0, 0.0, 0.027439980552710016, 0.0, 0.2634523244708942, 0.750190928083991, 0.31925762502388877, 0.0, 0.0, 0.0, 0.17667054707398389, 1.689395274403252, 0.0, 0.5386556936239477, 0.21507940395745773, 0.30698899212442304, 0.11255638742238075, 0.12042909174810443, 0.1983506487023661, 0.0, 0.2156156778918424, 0.0, 0.6179686549930762, 0.0, 0.0, 0.0, 0.011162873807723371, 0.003307472295366656, 0.5417377310206691, 0.1038404263557644, 0.0, 0.0, 0.0, 0.010082100558503525, 0.5759566406752274, 0.5373731999014957, 0.24497595431253502, 0.3628321361534925, 0.4271139218413104, 0.0888079037091352, 0.013607634508588288, 0.5254304747208627, 0.0, 0.0, 0.0033818738704913948, 0.0, 0.3894178985059293, 7.727488918331624e-5, 0.4719056234120719, 0.0, 0.0, 0.7548965169480935, 0.0, 0.0, 0.0, 0.0, 0.04295271297559638, 0.3048341885265102, 0.0, 0.16015654700904233, 0.0, 0.03255288417829475, 0.0, 0.0, 0.0, 0.0, 0.16019347860889097, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3426629556463706, 0.0, 0.33591507158653605, 0.0, 0.0, 0.04025140372585128, 0.0, 0.5756230062735465, 0.0, 0.0, 0.0, 0.0, 0.0017523850398583757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32421546356710995, 0.0, 0.011282618188498251, 0.6937716630434633, 0.2529924781123921, 0.2596235239889639, 0.0, 0.043120476743740394, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2793513283874615, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7775441119273626, 0.14515455310675088, 0.0, 0.13510821830370037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44716225485327055, 0.0, 0.0, 0.0, 0.8291790553392753, 0.0, 0.0, 0.26334889102262177, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15479667093058366, 0.0, 0.0, 0.0, 0.36993623982653, 0.0, 0.0, 0.0, 0.0, 0.3623559014178924, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029233403628440607, 0.1427335193249464, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051251957334763225, 0.691166524717783, 0.29938181148714105, 0.5349464228115411, 0.06157899241792075, 0.0, 0.0, 0.2102727260204982, 0.0, 0.60145477594229, 0.0, 0.0, 0.03062034252430008, 0.1635016794080344, 0.7915679370358879, 0.0, 0.07317711878131836, 0.9809574403621903, 0.0, 0.0, 0.44926990137304107, 0.21608537407152922, 0.0, 0.05777727499408966, 0.039929965496851884, 0.0, 0.29915326656993935, 0.31099294960838475, 0.13414679708282617, 0.10949528327933863, 0.0, 0.10753728810972799, 0.0, 0.3797681313373244, 0.5019126906002389, 0.8077076191871431, 0.02575673641821252, 0.0, 0.0, 0.0, 0.0, 0.08748647908145589, 0.0, 0.0, 0.2775216739406583, 0.0, 0.0, 0.0, 0.0, 0.19491911889837882, 0.0, 0.626470449065492, 0.0, 0.1610321350235478, 0.0, 0.6250193931691284, 0.18518836301307043, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5645059221744597, 0.0, 0.30319370972913895, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5299926460898494, 0.0, 0.0, 0.18935417444624433, 0.0, 0.3520383786660897, 0.004326690884129795, 0.4266082560323472, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04753484047689839, 0.0, 0.0, 0.0, 0.2507515224933452, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.011126595947621928, 0.0, 0.0, 0.0, 0.0, 0.07883374294223121, 0.0, 0.0, 0.06158319631443835, 0.0, 0.0, 0.0, 0.0, 0.18599923723367912, 0.0, 0.0, 0.0, 0.0, 0.07225540391146344, 0.0, 0.17222213577613948, 0.0, 0.07109258970520838, 0.30622054435699597, 0.0, 0.0, 0.021600783197372013, 0.0, 0.0, 0.0, 0.0, 0.08747962563792125, 0.0, 0.0, 0.6661127453751955, 0.20906059268184987, 0.0, 0.14050781836020196, 0.0, 0.0, 0.38775347026983786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.016520556870922822, 0.08066242485362363, 0.0, 0.0, 0.008507877750707929, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19963971549104562, 0.0, 0.0, 0.0, 0.0, 0.1517009343251733, 0.5312750255062002, 0.0, 0.0, 0.1147421120346578, 0.0, 0.0, 0.0, 0.0, 0.35500190337758014, 0.0, 0.045597713545061126, 0.0, 0.5209586802357347, 0.021862434298379425, 0.0, 0.0, 0.0, 1.0378291015579089, 0.0, 0.0, 0.0, 0.08585205631703301, 0.0483968201096062, 0.0, 0.025471357792783925, 0.0, 0.22080976260076224, 1.166729214929465, 0.0, 0.677323308302816, 0.18535083381370177, 0.0, 0.0, 0.8704056171514745, 0.0, 0.8935663748182991, 0.015577429284835683, 0.13855228421849528, 0.0, 0.0, 0.1744139155099896, 0.15132491229634354, 0.0, 0.02513332482807071, 0.0, 0.17525145412541498, 0.0, 0.0, 0.0, 0.0, 0.02694350993020697, 0.162823516985682, 0.0, 0.0, 0.6457319525792288, 0.07238426196350153, 0.05745965468198706, 0.0, 0.0, 0.46532195926191927, 0.08460519940877058, 0.22064747420300995, 0.07874956387307873, 0.02873453791303352, 0.04102153493571428, 0.0, 0.0, 0.0, 0.0, 0.49780157894039, 0.0, 0.0, 0.301057479311315, 0.0, 0.0, 0.0016911663416444849, 0.0, 0.2606342751929628, 0.0, 0.0, 0.0, 0.4832976838898257, 0.2663912296088851, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16074512474220395, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0418820657562929, 0.0, 0.04820286684177523, 0.0, 0.1580443847885599, 0.0, 0.1278562139832909, 0.0, 0.0, 0.12981743196566292, 0.0, 0.0, 0.12101853247948517, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13204408757174144, 0.0, 0.0, 0.0, 0.0, 0.0, 0.024933507022188058, 0.0, 0.0, 0.0, 0.22607531711845172, 0.06698435016959209, 0.0, 0.0, 0.38137808720681626, 0.04452538198512276, 0.13682477248336336, 0.20418703285947667, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19170326048233127, 0.0, 0.0, 0.0684911628398921, 0.0, 0.0, 0.0015650042612973304, 0.0, 0.0, 0.0, 0.0, 0.3663518735291969, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27889642218469224, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09171777647431381, 0.0, 0.031206336760942092, 0.04657190125204274, 0.0, 0.21168995340334643, 0.0, 0.0, 0.2715554536912592, 0.0, 0.0, 0.0476752915188213, 0.0, 0.0, 0.0, 0.0, 0.36410628949886475, 0.021118814521733104, 0.0, 0.25524059151149175, 0.22081888489064375, 0.0, 0.0008303397905156581, 0.0, 0.0, 0.0, 0.0, 0.07229346662213895, 0.0, 0.0, 0.820696989198259, 0.541933064129384, 0.0, 0.6976372073851678, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6559268620540256, 0.0, 0.0, 0.00593765430305966, 0.0, 0.03489392321475427, 0.14772313877299487, 0.20501704987333305, 0.04206924698360076, 0.15444861072003166, 0.0, 0.8226903093195739, 0.0, 0.15641473972332146, 0.790869654262485, 0.6842130952365706, 0.03633117370294634, 0.0, 0.18980663716791113, 0.0, 0.0, 0.038558748063994376, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.40339029653363123, 0.0, 0.0, 0.0, 0.0, 0.43960663038458647, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08136147927839638, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16190486570077617, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2992216626110986, 0.0, 0.0, 0.0, 0.17882109545054858, 0.0, 0.0796930212837386, 0.0, 0.620119218817229, 0.06539128749913568, 0.09575080072237417, 0.0, 0.0, 0.0, 0.31047674992819635, 0.0, 0.0, 0.3258789812741783, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03198183278340688, 0.0, 0.0, 0.05159425685765124, 0.22600144774467618, 0.0, 0.17025710615993656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27035127710875223, 0.6595462305837041, 0.0, 0.0, 0.0, 0.5146584726996519, 0.0, 0.4337121439657544, 0.0, 0.0, 0.006091807521893999, 0.0, 0.0, 0.0, 0.0, 0.012888743397998564, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.336652909816104, 0.0, 0.0, 0.33692102610329455, 0.41892538326879675, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4637663755690806, 0.004049689433712162, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2537974154183676, 0.0, 0.0, 0.0, 0.01941920682276314, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2625647477298457, 0.0, 0.0, 0.0, 0.28333914754514417, 0.0, 0.009497623447163565, 0.0, 0.0, 0.015321911880061054, 0.7292697770823527, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4913667474115824, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8188140725936274, 0.23538609489199455, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004251660745273512, 0.2915534718195699, 0.8234990979680312, 0.15784851698528854, 0.31856705993041073, 0.0, 0.0, 0.0, 0.0, 0.8168645454274115, 0.2887084121601819, 0.0, 0.0, 0.0, 0.020685054965967595, 0.784321469374656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5719438351419199, 0.0, 0.0, 0.0, 0.0, 0.23810583942791758, 0.0, 0.0, 0.13190421809771516, 0.2355353163505223, 0.21414939137204708, 0.0, 0.13824109301205073, 0.0, 0.0, 0.4059138329547745, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3839879400284894, 0.7642606292584734, 0.17337082964447778, 0.43085204172578645, 0.5071846921436626, 0.0, 0.0, 0.0, 0.0, 0.0064224562854441995, 0.45947466920879537, 0.0, 0.048013668076727356, 0.008826989297459209, 0.0, 0.10254269883954115, 0.0, 0.449628221574638, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3130138916400048, 0.0, 0.0, 0.0, 0.0, 0.2198473045188841, 0.0, 0.7854658854954149, 0.0, 0.0, 0.0, 0.27482511606730614, 0.0, 0.0, 0.0, 0.10051459327881847, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03619595572786272, 0.2919384825550201, 0.0, 0.27020767480793234, 0.32906141180848986, 0.4014761358710767, 0.0, 0.0, 0.22194819820968317, 0.0, 0.397060529897469, 0.20690476484626705, 0.4811671410392035, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10602724763101144, 0.0, 0.9180290974697203, 0.32581440887276836, 0.11505868376784396, 0.5289668394733107, 0.0, 0.5268986674479775, 0.2483018891728648, 0.0, 0.0, 0.014289568621041568, 0.0, 0.0, 0.0, 0.0, 1.010481071564644, 0.06469540823739603, 0.19880648111582097, 0.580377081863938, 0.3701240890884847, 0.00033976241032705203, 0.5120222312956857, 0.54263963710411, 0.24775903677393285, 0.13070835967347635, 0.9915175816548458, 0.2899273698579516, 0.0, 0.0, 1.1703372022756595, 0.02329003991510475, 0.11859776061629382, 0.69977713771051, 0.6054053013517017, 0.707408250006164, 0.0, 0.2196427786747048, 0.5323095043727097, 0.027197936547729912, 0.0, 0.0, 0.6744130710240275, 0.0, 0.0, 0.009472629890788111, 0.0, 0.0, 0.0, 0.0, 0.11454144616825819, 0.0, 0.0, 0.0, 1.3982199856641506, 0.2538753491205552, 0.20096391172061562, 0.0, 0.0, 0.04239072289345119, 0.0, 0.773883065549572, 0.0, 0.0, 0.41373255777296347, 0.0, 0.0, 0.0, 0.0, 0.7328658795072667, 0.0, 0.0, 0.8143261048934798, 0.0, 0.0, 0.005931475071506779, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5479468542821576, 0.0, 0.32433512795769415, 0.7968405650512658, 0.0, 0.0, 0.2823749754870304, 0.0, 0.08888138290002096, 0.0, 0.0, 0.0, 0.17925820791427197, 0.2000876096746871, 0.0, 0.0, 0.40815111826084144, 0.16385977895936904, 0.06986036185280928, 0.0, 0.0, 0.0, 0.0, 0.05375441115395932, 0.0, 0.1762464226118615, 0.0, 0.3587964347388992, 0.0, 0.8015475518237312, 0.175514484083294, 0.0, 0.0, 0.13495628742382593, 0.0, 0.3105505922199702, 0.7248528773530782, 0.0, 0.18705292898123585, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1748071953278316, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7043431257504623, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13971141189132677, 0.0, 0.0, 0.0, 0.0, 0.0, 0.031464801155366616, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16845401890236414, 0.14573633601571054, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13998624971109908, 0.0, 0.07426203609200491, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2049851695927226, 0.0, 0.0, 0.17338949919280155, 0.0, 0.0, 0.18945472552918335, 0.0, 0.0, 0.0, 0.0, 0.0, 0.036320374032721404, 0.15648907735824633, 0.0, 0.05859334953381536, 0.0, 0.0, 0.0, 0.0, 0.5224897007715829, 0.0, 0.0, 0.0, 0.0, 0.08480845151311803, 0.0, 0.0, 0.0, 0.0, 0.07725579657733653, 0.0, 0.14447765770967222, 0.0, 0.0, 0.0, 0.15678431253622274, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.255601945951803, 0.0, 0.0, 0.2867970808516741, 0.3376079838842544, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29929546323980694, 0.0, 0.0, 0.0]), 42), 42)),) julia> @finch_code begin Ct .= 0 for i = parallel(_) @@ -246,7 +246,7 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.24622058278177836, 0.0, 0.0, 0.1261597862603059, 0.07342085928314178, 0.12871077894157168, 0.0, 0.0, 0.8034179790657067, 0.0, 0.0, 0.056025142012607894, 1.0596276779513034, 0.0, 0.12141212330168466, 0.0, 0.5574009533856183, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3327944495595785, 0.0, 0.8694342868598712, 0.0, 0.7416396915765561, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7569986463219165, 0.05683836078786318, 0.0, 0.0, 0.8725529080345216, 0.0, 0.2047777547094641, 0.5614660149749067, 0.0, 0.0, 0.36223551246779223, 0.0, 0.0, 0.0, 0.22107392894943306, 0.0, 0.0, 0.0, 0.3259321271119929, 0.5055955427859341, 0.27515457195781157, 0.4169876847813729, 0.018631329176858533, 0.3876953885710935, 0.0, 0.021531556327917045, 0.0, 0.0, 0.28223766305057085, 0.48287552686851865, 0.0, 0.0, 0.10175887870070799, 0.0, 0.0, 0.0, 0.06032870137556734, 0.018726053338837593, 0.045366945649236726, 0.0, 0.0, 0.0, 0.5790914418316278, 0.6815353846022115, 0.0, 0.1332216207413034, 0.0, 0.04017082185996856, 0.0, 0.0, 0.0, 0.0, 0.03484741576880692, 0.893850322287328, 0.4479341395605485, 0.5025126461241762, 0.1987665376735214, 0.31067608319719825, 0.0, 0.0, 0.0, 0.46442597522784795, 0.0, 0.0, 0.4431570212945692, 0.0, 0.0, 0.5121406140989466, 0.0, 0.49477960883115907, 0.0, 0.0, 0.0, 0.0, 0.47025922462023484, 0.3616621631765011, 0.5907253850051586, 0.0, 0.0, 0.44541009068477694, 0.03445733103321199, 0.0, 0.02309502433018302, 0.0, 0.03777890472311954, 0.16345317623186756, 0.16813336048226513, 0.0, 0.0, 0.09235605661534649, 0.0, 0.0, 0.01896246145159963, 0.02753978144349941, 0.0, 0.0, 0.0, 0.30135789429977294, 0.6764584765695312, 0.0, 0.0, 0.3151319553463997, 0.0, 0.04554105431298512, 0.0, 0.08378021558986462, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09849622821166114, 0.0, 0.25488776315346307, 0.0, 0.2781851808227525, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2839462446541717, 0.00854309647598918, 0.0, 0.0, 0.3272900456325508, 0.10375527349591217, 0.8492672297194694, 0.0, 0.5876718077641173, 0.03093892983747342, 0.0, 0.0, 0.0, 0.3385535490482335, 0.0, 0.0, 0.0, 0.29218416128587404, 0.0, 0.6966394562456512, 0.0, 0.0, 0.0, 0.522006486105503, 0.0, 0.0, 0.0, 0.11065330711314218, 0.0, 0.23311787887979893, 0.0, 0.31252070060750486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06134998798063221, 0.0, 0.0, 0.3657519298489218, 0.31899283438369924, 0.0, 0.0, 0.0, 0.3676864240590821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0010478172394749591, 0.5287716819761857, 0.0, 0.3903081303690744, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0017717866111426558, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5892681933608603, 0.002977075804572329, 0.0, 0.0, 0.0, 0.0, 0.43072916849878135, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.045384364903179854, 0.0, 0.0, 0.0018618199412216315, 0.0, 0.17111256306326456, 0.2672837889083413, 0.0, 0.0, 0.19576072012760673, 0.5948736598005219, 0.08413627091493711, 0.7573648130796338, 0.0, 0.0, 0.0, 0.0, 0.0, 0.33101786250771764, 0.16289357736810944, 0.16515314938780928, 0.0, 0.0, 0.0, 0.0, 0.0, 0.662932866371622, 0.6905568008213746, 0.0, 0.0, 0.0, 0.0, 0.4845748090935882, 0.061923683856559844, 0.0, 0.028719251839850298, 0.0, 0.02009827057946138, 0.0, 0.0, 0.0, 0.11124419756806017, 0.4147463454400596, 0.0, 0.0, 0.34783853396429565, 0.0, 0.09260170356894369, 0.0, 0.0, 0.0, 1.1401462738363544, 0.915922599074042, 0.0, 0.0, 0.0, 0.0, 0.6274522680730893, 0.0, 0.3139030754242789, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3751134192842195, 0.0, 1.257728265907189, 0.0, 0.35074493350028346, 0.268137845429166, 0.0, 0.0, 0.0, 0.0, 0.0, 0.016899841379555174, 0.7155448975358032, 0.1680074523773585, 0.0, 0.0, 0.30581125296894957, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9366277987154731, 0.0, 0.0, 0.0, 0.0, 0.07522986257761975, 0.06328419096078892, 0.0, 0.02479071082883737, 0.0, 0.7915629916935427, 0.031935353301522654, 0.0, 0.0, 0.070458258165472, 0.0, 0.0, 0.0, 0.0, 0.052737602183104026, 0.0, 0.013647273418699125, 0.3169788666986562, 0.17235734856254364, 0.0, 0.0, 0.0, 0.0661528775144355, 0.0, 0.027308490724219276, 0.0, 0.0, 0.0, 0.7971915175033586, 0.0, 0.5343175730821937, 0.0, 0.8740381649643706, 0.04598025590229294, 0.029012248678093225, 0.0, 0.0, 0.11141095490761138, 0.0, 0.0, 0.13001430753376275, 0.0, 0.0, 0.0, 0.22549966134722088, 0.0, 0.0, 0.0, 0.3726692665495664, 0.3774382964295704, 0.20411971872540274, 0.06057654493015839, 0.0, 0.5744310538348768, 0.0, 0.0, 0.6232315714035893, 0.0, 0.5072896743166587, 0.0, 0.005553340050755054, 0.5689868928162961, 0.06836125145830099, 0.0, 0.0, 0.49734376521104756, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27904969776436467, 0.0, 0.7814242677772039, 0.5117851675292832, 0.0, 0.0, 0.04886194301383263, 0.0, 0.3067365939854962, 0.0, 0.0, 0.4115088709036164, 1.405104579225751, 0.42840174089528493, 0.48760195358213543, 0.0, 0.0, 0.663844265848651, 0.0, 0.38778436442248837, 0.7776635401136125, 0.15032072106029123, 0.18953081567758903, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7044650329571657, 0.7235946500790119, 0.12987194286479317, 0.19647866132545186, 0.45582545423087456, 0.0, 0.0, 0.0, 0.032958397990191235, 0.0, 0.0, 0.7570462349991403, 0.0941136312544236, 0.0, 0.1276645560961348, 0.0, 0.0, 0.0, 0.755417985546979, 0.8458204729185679, 0.12543050025210123, 0.006393660363144921, 0.0, 0.0, 0.28926738179087036, 0.0, 0.0, 0.4731345211962404, 0.0, 0.7203970460167203, 0.0, 0.0, 0.0, 0.4891311717243447, 0.0031333060836164625, 0.003950606766695812, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8250852706661534, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1940012409565178, 0.0, 0.7255195358366966, 0.0, 0.4862794311033925, 0.0, 0.7981182971725221, 0.0, 0.26385403496014914, 0.0, 0.5139863704027979, 0.35381636124647037, 0.06016159688024159, 0.0, 0.0, 0.0, 0.07675121814682248, 0.0, 0.0, 0.12553662505708466, 0.0, 0.301350309711505, 0.0, 0.0, 0.0, 0.12978101101826656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2180668401971053, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09272141980768678, 0.0, 0.3034931056908601, 0.0, 0.203416238280828, 0.0, 0.33274884560755447, 0.0, 0.12655518438173288, 0.0, 0.13637583261219158, 0.0, 0.0, 0.0, 0.0, 0.020115042222633606, 0.0, 0.11478942012015081, 0.0, 0.044967175485766994, 0.0, 0.27969782401606164, 0.1383242818414881, 0.0, 0.0, 0.18685369035983804, 0.0, 0.06810955828519266, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17579267922314348, 0.0, 0.0, 0.11999285025017485, 0.0, 0.0, 0.14209169595972287, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11399414163060874, 0.019825113051252268, 0.0, 0.049971986914216976, 0.07235420154739257, 0.0, 0.0, 0.08331368376199759, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07280640355864025, 0.0, 0.0, 0.35152520960031586, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13676901662991092, 0.0, 0.0, 0.0, 0.015204774707799058, 0.0, 0.0, 0.0, 0.0, 0.5304031136005922, 0.0, 0.0, 0.0, 0.32819195551919517, 0.1622165373359131, 0.0, 0.0, 0.0, 0.1321652778478459, 0.0, 0.0, 0.2161735452720934, 0.0, 0.27952564740678887, 0.0, 0.0, 0.0, 0.22348236021207268, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.375510190195534, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2500091160813631, 0.0, 0.2815132558946093, 0.0, 0.18868424509978618, 0.0, 0.30865021038590384, 0.0, 0.341236683480638, 0.0, 0.23483861551802387, 0.0, 0.0, 0.0, 0.12117745385937667, 0.0, 0.0, 0.3973467888918919, 0.0, 0.2920101397985984, 0.0, 0.12988448302264086, 0.0, 0.3517844506342411, 0.0, 0.0, 0.0, 0.6519761543079575, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4428070420734244, 0.0, 0.3964317892338393, 0.0, 0.0, 0.0, 0.3236724995283946, 0.0, 0.0567229736921611, 0.0, 0.0, 0.0, 0.25146743826064083, 0.0, 0.0, 0.011207888208677623, 0.08869787998517195, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0436070974131627, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05218480148875932, 0.0, 0.0, 0.0, 0.28668060177386556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16806127510824798, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1010038649276795, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24411150965510042, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3252831829639798, 0.0, 0.13696611429551586, 0.0, 0.08809099936621054, 0.0, 0.0, 0.0, 0.5834039633369968, 0.2573783852497724, 0.0, 0.34353142253711105, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8226681209013311, 0.43635481618924155, 0.0, 0.21222851603946533, 0.0, 0.6640973088333184, 0.0, 0.1716321278580885, 0.7312656094018032, 0.46618173092618587, 0.7638215749927391, 0.5281765059497923, 0.012259008816529623, 0.9144713112403178, 0.0, 0.0, 0.0, 0.0, 0.7953741970864907, 0.0, 0.0, 0.5850872742568098, 0.0, 0.0, 0.0, 0.7307808207285703, 0.0, 0.6199309753815017, 0.37291372178799176, 0.0, 0.0, 0.22356724549482568, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3221254739496775, 0.11781870844111127, 0.04460774210115785, 0.7133319766560491, 0.17115949268039302, 0.47397294440775345, 0.0, 0.10101149129956093, 0.11755718548933392, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.057090584067732354, 0.6447844891876003, 0.0, 0.0, 0.033829519264607456, 0.0, 0.1190337187097033, 0.30523421948716617, 0.0, 0.0, 0.0, 0.0, 0.6213057774307251, 0.842768502451811, 0.0, 0.3906048759812801, 0.7719833104847825, 0.41168363040706235, 0.1712307445975339, 0.0, 0.05992936357237096, 0.04890539039186202, 0.0, 0.0, 0.012380496199171342, 0.0, 0.2674194407541521, 0.0, 0.0014443996714777229, 0.0, 0.16387003646802972, 0.0, 0.0, 0.03594122433913304, 0.24159569520366886, 0.3747703785250739, 0.0, 0.054699683547073226, 0.0, 0.2873774296478163, 0.0, 0.0, 0.0, 0.14956132991470428, 0.0, 0.3888645476970781, 0.0, 0.0, 0.07542830239130101, 0.07080076609705026, 0.0, 0.0, 0.0, 0.0, 0.09852911382155678, 0.19548481725379033, 0.0, 0.0, 0.4350977845419587, 0.00557774494203208, 0.0, 0.09874991570897035, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6034262468294622, 0.2713368059843151, 0.6497013107648627, 0.0, 0.8007029601130917, 0.0, 0.0, 0.0, 0.0, 0.01616961592030159, 0.0, 0.0, 0.0, 0.0, 0.2502876057454169, 0.49212467358206446, 0.2134864810859512, 0.1765833209669342, 0.0, 0.0, 0.0, 0.5401972297237567, 0.03318857704329382, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12219566143679067, 0.0, 0.04829725298673487, 0.0, 0.0, 0.0, 0.0, 0.0, 1.2356793204214815, 0.02263120223723859, 0.7256596881722004, 0.3263003275955702, 0.7654157892976137, 0.08145618747845872, 0.6387218661983024, 0.0, 0.5276231408957645, 0.8184646008092085, 0.0, 0.0, 0.0, 0.6276063069977658, 0.0, 0.6132063830791735, 0.006204111701464058, 0.18851722870999638, 0.375149258411478, 0.7816851453263511, 0.0, 0.587776400734769, 0.16472858834087942, 1.1016458158754883, 0.1459604994495737, 0.0, 0.0, 0.0, 0.037075917094288376, 0.0, 0.2815459504132854, 0.2536212145780303, 0.559150690052304, 0.48027689889482117, 0.0, 0.21566088189458643, 0.058080618345779114, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008439821738835876, 0.0, 0.36408664087256903, 0.0, 0.16156000319694572, 0.22471190561828702, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10732980278519261, 0.0, 0.0, 0.12403718878006863, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27901056312251676, 0.4801492052284416, 0.0, 0.0, 0.10787548181472921, 0.0, 0.0, 0.0, 0.15654727928350437, 0.0, 0.13104284110293218, 0.13666096202593647, 0.0, 0.0, 0.0, 0.07276575816635268, 0.0, 0.0, 0.0, 0.0, 0.6100450928472326, 0.0, 0.0, 0.0, 0.4238237484103886, 0.9941317988293357, 0.0, 0.0, 0.0, 0.0, 0.3355479309040112, 0.0, 0.0, 0.0, 0.0, 0.5350029094771915, 0.0, 0.008586567333100323, 1.1385513331902584, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1850917274468032, 0.0, 0.0, 0.06716099014107918, 1.1525784735402484, 0.0, 0.0, 0.036572260841491885, 0.0, 0.26119964749940466, 0.0, 0.0, 0.8459335464772313, 0.0, 0.0, 0.0, 0.0, 0.38438887602945404, 0.0, 0.0, 0.0, 0.0, 0.7204933523373307, 0.0, 0.0, 0.16060697060474402, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7112792652633437, 0.0, 0.935521710131386, 0.26536974069831215, 0.2935825392525973, 0.0, 0.0, 0.13719141489981915, 0.0, 0.10324823792839577, 0.0, 0.0, 0.0, 0.7256165269576538, 0.0, 0.48634443939716193, 0.0, 0.7955635800994527, 0.1927019559074891, 0.0, 0.0, 0.7058981437597585, 0.0, 0.5236895266156559, 0.0, 0.08128104063747256, 0.0, 0.0, 0.0, 0.5731212091054763, 0.0, 0.0, 0.0419831484236368, 0.11625926299639212, 0.0, 0.0, 0.08927614896350113, 0.217346651106267, 0.13128361330254273, 0.0, 0.07219885291348893, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4218130442222412, 0.0, 0.0, 0.0, 0.0, 0.1699892215644571, 0.0, 0.14639742856012483, 0.0, 0.0, 0.04200062557179813, 0.0, 0.0, 0.0, 0.31146013043119736, 0.0, 0.0, 0.0, 0.24384030368566587, 0.9260558729858251, 0.4296955936776912, 0.0, 0.0, 0.0, 0.73790516731229, 0.0, 0.0, 0.0, 0.16295488074282302, 0.26550524353964333, 0.0, 0.0, 0.0, 0.31144107126852844, 0.0, 0.485858439126786, 0.0, 0.6914937323909329, 0.0, 0.0, 0.0, 0.0, 0.3162528337434342, 0.0, 0.0, 0.0, 0.0, 1.5785215576611167, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5161924043112004, 0.0, 0.0, 0.2568302026164213, 0.0, 0.3023415151909343, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5030068615133427, 0.0, 0.0, 0.0, 0.2741080207900236, 0.17120972783029909, 0.0, 0.0, 0.0, 0.0, 0.43685119598979993, 0.02712666041421048, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2451085199735546, 0.0, 0.1576437689621315, 0.0, 0.0, 0.0, 0.6857487349281931, 0.05917052173435364, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6537568461306704, 0.0, 0.0, 0.5395442735782994, 0.05374109131453472, 0.0, 0.5917732326059808, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0008206716541601089, 0.19818937147807536, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.535053682582317, 0.0, 0.3513819151899916, 0.04333888481337121, 0.5747915094439204, 0.19540689526232177, 0.01899860952318465, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06595709778063945, 0.0, 0.08799217533170228, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03735300199555871, 0.19147688509049948, 0.0, 0.0, 0.0, 0.2914125830050192, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04799459307428656, 0.0, 0.16480769798416883, 0.0, 0.0, 0.0, 0.04840048223798238, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.027156548216558336, 0.0, 0.047181418535814645, 0.0, 0.0, 0.0, 0.0, 0.35341760898781915, 0.5999981948389704, 0.024572219243726254, 0.0, 0.0, 0.08667332426569417, 0.4875808312926843, 0.06369622265280388, 0.0, 0.0, 0.0, 0.07133443039288194, 0.0, 0.0, 0.47894471690358564, 0.4793008357816607, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09658957720985865, 0.3016070141903076, 0.061398864173637636, 0.0, 0.0, 0.0, 0.07060273869520314, 0.35885594789448355, 0.0, 0.06446892769447045, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2497207855356876, 0.018509596151814908, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2926774045716465, 0.0, 0.013651758929637155, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03597721563910695, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07068090962707653, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03642909404914556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2749443358980585, 0.0, 0.0, 0.0, 0.0, 0.5096842842109697, 0.0, 0.0, 0.0, 0.028086239659725638, 0.7421154878137212, 0.0, 0.48123810905471315, 0.0, 0.3067030382176026, 0.6866619523091189, 0.0008295150087239233, 0.5016528107597976, 0.0, 0.08848804808651539, 1.3805931747462472, 0.0, 0.0, 1.04718815925786, 0.0, 0.0, 0.0, 0.42746548493362363, 0.0, 0.5817357352379013, 0.8450882691967682, 0.41665385220387907, 1.0915687546509307, 1.108964330219497, 0.0, 0.0, 0.0, 0.04066069749695377, 0.032733248007639555, 0.0, 0.0, 0.0, 0.07163077100441487, 0.6487063582321942, 0.0, 0.2995103130321618, 0.10283702762113958, 0.33384701220391544, 0.41258982728857174, 0.0, 0.5449670143554067, 0.0, 0.3217489265559145, 0.0, 0.0, 0.0, 0.2849908553676538, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.01610871320352385, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2570528176713379, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2969662795916102, 0.0, 0.12312876081315716, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09075655657480966, 0.0, 0.3633373647258237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06617087939273322, 0.0, 0.0, 0.0, 0.00923594008230594, 0.17805875048711786, 0.22450411347361834, 0.0, 0.0, 0.09502241267674551, 0.0, 0.024589605765570302, 0.0, 0.1826423790293924, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039040067948029694, 0.0, 0.06664139722445166, 0.0, 0.04466639301844483, 0.0, 0.22428735118617732, 0.08284705163804024, 0.05227416022819031, 0.0, 0.19522102914015915, 0.8685310451611696, 0.0, 0.0, 0.0, 0.0, 0.8702352191794189, 0.0, 0.0, 0.15684527219370442, 0.0, 0.9243788213991903, 0.22207735215974056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.40507055158794986, 0.30718446392066534, 0.0, 0.46812545232304087, 0.0, 0.5780009938921578, 0.18279458657604497, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02896217836710352, 0.0, 0.0, 0.40712998428742797, 0.7449999863100496, 0.0, 0.49933620201845186, 0.0, 0.8168155413547457, 0.11457346224809285, 0.0, 0.0, 0.0, 0.15332753334456128, 0.11864376215788304, 0.0, 0.0, 0.04572095120049149, 0.0, 0.0, 0.31683394463012315, 0.5003078767139268, 0.14059206617597214, 0.19554784897288408, 0.0, 0.43178409369310355, 0.0, 0.07560627618395319, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16352131380333873, 0.0, 0.34449708571742155, 0.0, 0.4618370375665847, 0.0, 0.0, 0.41783342102021986, 0.0, 0.0, 0.0, 0.02165252564332241, 0.0, 0.0, 0.0, 0.47140143149032104, 0.39181349979635294, 0.11892452733738064, 0.0, 0.5433598750764469, 0.0, 0.0, 0.0, 0.07266999506080335, 0.0, 0.6735755940113932, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0041630866962457744, 0.2109647750127205, 0.0, 0.0, 0.0, 0.3715024914369038, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1845463840294256, 0.0, 0.6075440706050301, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29101469974401967, 0.0, 0.0, 0.032739778024003775, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4875593392929034, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20371408580482323, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0439075644510851, 0.0, 0.5496827874572944, 0.40327797474842975, 0.37238046622077875, 0.0, 0.0, 0.17401376516444506, 0.0, 0.11278871866256229, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15394336215607962, 0.0, 0.0, 0.0]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.1619393094464903, 0.0, 0.0, 0.0, 0.0, 0.11373910752308043, 0.0, 0.32533429668145175, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5405512925681031, 0.0, 0.0, 0.5409817971066755, 0.6726532010052559, 0.0, 0.0, 0.0, 0.04498001780375231, 0.0, 0.7446527460595233, 0.0, 0.0, 0.0, 0.0648053115514859, 0.0, 0.20542126000594346, 0.0, 0.2489342378383824, 0.0, 0.0, 0.2446702787341799, 0.0, 0.0, 0.4075132486743765, 0.372693911014397, 0.0, 0.03990868671702989, 0.32865292999993995, 0.0, 0.0, 0.0, 0.037570880212435515, 0.0, 0.0, 0.2585440952996821, 0.0, 0.0, 0.5429032184680616, 0.0, 0.0, 0.0, 0.7310331654112876, 1.6974310666890076, 0.13434284643730737, 0.0, 0.15388431962676646, 0.0, 0.018799628425153446, 0.026448056346556916, 0.020943024178172204, 0.08671614507629592, 0.19272805440861934, 0.07015243227726202, 0.0, 0.1267665206913561, 0.1014023431949165, 0.494724963965631, 0.0, 0.6317423070706343, 0.0, 0.4351905463586081, 0.019451367524410516, 0.11392026534019284, 0.0, 0.7674183972620773, 0.0, 0.0, 0.009728790198518009, 0.0, 0.0, 0.03627546054320975, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0140288190005624, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4229718175600567, 0.0752980218883111, 0.013070459322559402, 0.0, 0.4793455258509991, 0.0, 0.0, 0.0, 0.0, 0.08811633730455204, 0.08467555208376226, 0.0, 0.0, 1.4824413586764027, 0.27442978968992093, 0.0, 0.0028104905637611507, 0.1480443868451215, 0.6744061467564826, 0.043998508948338316, 0.8697701045107844, 0.8469834954000914, 0.0, 0.02425613445444166, 0.0, 0.0, 0.0, 0.9679232213808633, 0.6774894982888419, 0.35310753741950685, 0.0, 0.2841919624705342, 0.0, 0.0, 0.7349602036514661, 0.0, 0.2186035505612502, 0.04416466424315345, 0.0, 0.0, 0.25133653271826356, 0.11160837067772013, 0.0, 0.14048007630402903, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.035048636482553235, 0.038653696504083, 0.10014641420794519, 0.0, 0.0837599459565703, 0.10942537757376403, 0.0, 0.0, 0.0, 0.08204362658289192, 0.0, 0.0, 0.011591138384550418, 0.0, 0.038004261053570694, 0.0066189468466051875, 0.06306237088337384, 0.0, 0.0, 0.03121664575636558, 0.0, 0.0, 0.02910081181829685, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08506408857544866, 0.0, 0.0, 0.0, 0.7712870388819855, 0.2285263236705729, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6966121466049721, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6540220401149287, 0.0, 0.0, 0.2336670223432043, 0.0, 0.0, 0.005339227289024509, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4930665741229495, 0.0, 0.029559863815954657, 0.0, 0.0, 0.10760363562562023, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15061269543615943, 0.6107211710602042, 0.0, 0.0, 0.733057860494869, 0.057362855000467054, 0.17650444882735677, 0.0, 0.0, 0.014677698725170102, 0.0, 0.17821555119599314, 0.0025555492556658746, 0.14808219427948163, 0.0, 0.11979690859781277, 0.0, 0.0, 0.13110894332781436, 0.04449679654819995, 0.0, 0.1133902344080122, 0.0, 0.0, 0.0017495044850376442, 0.013900993801975209, 0.03729472110086185, 0.19173933242455474, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1709634942172136, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13051636625786148, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4357713541613571, 0.0, 0.0, 0.0, 0.0, 0.07073267416682687, 0.0, 0.0, 0.0, 0.0, 0.06443354393704691, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.28238918313491895, 0.0, 0.0, 0.0, 0.28219752132848275, 0.0, 0.0, 0.0, 0.3045252869011713, 0.0, 0.0, 0.019083741024338748, 0.0, 0.06257051306836219, 0.7837995208867943, 0.05061887468267648, 0.0, 0.0, 0.05139533007879884, 0.0, 0.0, 0.04791180451081585, 0.0, 0.5281077501137272, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7571506519409951, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.026654196669850944, 0.0, 0.0, 0.0, 0.0, 0.23843473688023176, 0.0, 0.0, 0.6051386294410329, 0.0, 0.0, 0.0, 0.0, 0.04194764240896927, 0.13628497764809444, 0.0, 0.0, 0.0, 0.0, 0.06043639304510901, 0.04344269031549197, 0.0, 0.7296328391677986, 0.6312346675367022, 0.0, 0.0, 0.22817557354519388, 0.0, 0.05073205279897938, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1594527848545218, 0.1381227206057285, 0.0, 0.0, 0.0, 0.0, 0.4217049712314433, 0.0, 0.0, 0.31027130374464373, 0.0, 0.0, 0.08118863628632204, 0.8304208532182848, 0.983137215831116, 0.0, 0.24897028906526258, 0.14034260442091134, 0.0, 0.691731307052974, 0.7500207108166317, 0.833859795824118, 0.0, 0.05053828036951065, 0.8139843305766208, 0.0, 0.0, 1.3856822465181273, 1.0343729450047436, 0.0, 0.0, 1.09811525132565, 0.0, 0.0, 0.005748580563865145, 0.0, 0.0, 0.8634025361175751, 0.0, 0.14616020357939458, 0.7514377111323272, 0.0, 0.0, 0.1732108049991939, 0.0, 0.0, 0.0, 0.1879649588465491, 0.0, 0.0, 0.0, 0.00817965091901661, 0.0, 0.0, 0.0, 0.5779500058438248, 0.0, 0.0, 0.0, 0.005249336837927155, 0.0, 0.0, 0.0, 0.3064350538312218, 0.0, 0.001890320177282059, 0.45976772975798436, 0.40475012946470096, 0.3442380471075082, 0.017185108496187197, 0.288035784498987, 0.0, 0.0, 0.2827566402954316, 0.0, 0.0, 0.2635916697723135, 0.0, 0.0, 0.0, 0.3588181656747819, 0.0, 0.0, 0.0, 0.17570163169455902, 0.0, 0.2076868163288207, 0.0, 0.0, 0.0, 0.5097341557191223, 0.14587016095283192, 0.0, 0.4172405362928458, 0.0, 0.13951021052730417, 0.0, 0.6033798708626249, 0.0, 0.0, 0.0, 0.0, 0.4512081190066747, 1.1915177253624374, 0.0, 0.53626862172996, 0.26267190873847124, 0.024946529615964698, 0.630282563668714, 0.0, 0.7072072219187049, 0.2557442098535857, 0.0, 0.0, 0.0, 0.027439980552710016, 0.0, 0.2634523244708942, 0.750190928083991, 0.31925762502388877, 0.0, 0.0, 0.0, 0.17667054707398389, 1.689395274403252, 0.0, 0.5386556936239477, 0.21507940395745773, 0.30698899212442304, 0.11255638742238075, 0.12042909174810443, 0.1983506487023661, 0.0, 0.2156156778918424, 0.0, 0.6179686549930762, 0.0, 0.0, 0.0, 0.011162873807723371, 0.003307472295366656, 0.5417377310206691, 0.1038404263557644, 0.0, 0.0, 0.0, 0.010082100558503525, 0.5759566406752274, 0.5373731999014957, 0.24497595431253502, 0.3628321361534925, 0.4271139218413104, 0.0888079037091352, 0.013607634508588288, 0.5254304747208627, 0.0, 0.0, 0.0033818738704913948, 0.0, 0.3894178985059293, 7.727488918331624e-5, 0.4719056234120719, 0.0, 0.0, 0.7548965169480935, 0.0, 0.0, 0.0, 0.0, 0.04295271297559638, 0.3048341885265102, 0.0, 0.16015654700904233, 0.0, 0.03255288417829475, 0.0, 0.0, 0.0, 0.0, 0.16019347860889097, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3426629556463706, 0.0, 0.33591507158653605, 0.0, 0.0, 0.04025140372585128, 0.0, 0.5756230062735465, 0.0, 0.0, 0.0, 0.0, 0.0017523850398583757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32421546356710995, 0.0, 0.011282618188498251, 0.6937716630434633, 0.2529924781123921, 0.2596235239889639, 0.0, 0.043120476743740394, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2793513283874615, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7775441119273626, 0.14515455310675088, 0.0, 0.13510821830370037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44716225485327055, 0.0, 0.0, 0.0, 0.8291790553392753, 0.0, 0.0, 0.26334889102262177, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15479667093058366, 0.0, 0.0, 0.0, 0.36993623982653, 0.0, 0.0, 0.0, 0.0, 0.3623559014178924, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029233403628440607, 0.1427335193249464, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051251957334763225, 0.691166524717783, 0.29938181148714105, 0.5349464228115411, 0.06157899241792075, 0.0, 0.0, 0.2102727260204982, 0.0, 0.60145477594229, 0.0, 0.0, 0.03062034252430008, 0.1635016794080344, 0.7915679370358879, 0.0, 0.07317711878131836, 0.9809574403621903, 0.0, 0.0, 0.44926990137304107, 0.21608537407152922, 0.0, 0.05777727499408966, 0.039929965496851884, 0.0, 0.29915326656993935, 0.31099294960838475, 0.13414679708282617, 0.10949528327933863, 0.0, 0.10753728810972799, 0.0, 0.3797681313373244, 0.5019126906002389, 0.8077076191871431, 0.02575673641821252, 0.0, 0.0, 0.0, 0.0, 0.08748647908145589, 0.0, 0.0, 0.2775216739406583, 0.0, 0.0, 0.0, 0.0, 0.19491911889837882, 0.0, 0.626470449065492, 0.0, 0.1610321350235478, 0.0, 0.6250193931691284, 0.18518836301307043, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5645059221744597, 0.0, 0.30319370972913895, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5299926460898494, 0.0, 0.0, 0.18935417444624433, 0.0, 0.3520383786660897, 0.004326690884129795, 0.4266082560323472, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04753484047689839, 0.0, 0.0, 0.0, 0.2507515224933452, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.011126595947621928, 0.0, 0.0, 0.0, 0.0, 0.07883374294223121, 0.0, 0.0, 0.06158319631443835, 0.0, 0.0, 0.0, 0.0, 0.18599923723367912, 0.0, 0.0, 0.0, 0.0, 0.07225540391146344, 0.0, 0.17222213577613948, 0.0, 0.07109258970520838, 0.30622054435699597, 0.0, 0.0, 0.021600783197372013, 0.0, 0.0, 0.0, 0.0, 0.08747962563792125, 0.0, 0.0, 0.6661127453751955, 0.20906059268184987, 0.0, 0.14050781836020196, 0.0, 0.0, 0.38775347026983786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.016520556870922822, 0.08066242485362363, 0.0, 0.0, 0.008507877750707929, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19963971549104562, 0.0, 0.0, 0.0, 0.0, 0.1517009343251733, 0.5312750255062002, 0.0, 0.0, 0.1147421120346578, 0.0, 0.0, 0.0, 0.0, 0.35500190337758014, 0.0, 0.045597713545061126, 0.0, 0.5209586802357347, 0.021862434298379425, 0.0, 0.0, 0.0, 1.0378291015579089, 0.0, 0.0, 0.0, 0.08585205631703301, 0.0483968201096062, 0.0, 0.025471357792783925, 0.0, 0.22080976260076224, 1.166729214929465, 0.0, 0.677323308302816, 0.18535083381370177, 0.0, 0.0, 0.8704056171514745, 0.0, 0.8935663748182991, 0.015577429284835683, 0.13855228421849528, 0.0, 0.0, 0.1744139155099896, 0.15132491229634354, 0.0, 0.02513332482807071, 0.0, 0.17525145412541498, 0.0, 0.0, 0.0, 0.0, 0.02694350993020697, 0.162823516985682, 0.0, 0.0, 0.6457319525792288, 0.07238426196350153, 0.05745965468198706, 0.0, 0.0, 0.46532195926191927, 0.08460519940877058, 0.22064747420300995, 0.07874956387307873, 0.02873453791303352, 0.04102153493571428, 0.0, 0.0, 0.0, 0.0, 0.49780157894039, 0.0, 0.0, 0.301057479311315, 0.0, 0.0, 0.0016911663416444849, 0.0, 0.2606342751929628, 0.0, 0.0, 0.0, 0.4832976838898257, 0.2663912296088851, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16074512474220395, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0418820657562929, 0.0, 0.04820286684177523, 0.0, 0.1580443847885599, 0.0, 0.1278562139832909, 0.0, 0.0, 0.12981743196566292, 0.0, 0.0, 0.12101853247948517, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13204408757174144, 0.0, 0.0, 0.0, 0.0, 0.0, 0.024933507022188058, 0.0, 0.0, 0.0, 0.22607531711845172, 0.06698435016959209, 0.0, 0.0, 0.38137808720681626, 0.04452538198512276, 0.13682477248336336, 0.20418703285947667, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19170326048233127, 0.0, 0.0, 0.0684911628398921, 0.0, 0.0, 0.0015650042612973304, 0.0, 0.0, 0.0, 0.0, 0.3663518735291969, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27889642218469224, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09171777647431381, 0.0, 0.031206336760942092, 0.04657190125204274, 0.0, 0.21168995340334643, 0.0, 0.0, 0.2715554536912592, 0.0, 0.0, 0.0476752915188213, 0.0, 0.0, 0.0, 0.0, 0.36410628949886475, 0.021118814521733104, 0.0, 0.25524059151149175, 0.22081888489064375, 0.0, 0.0008303397905156581, 0.0, 0.0, 0.0, 0.0, 0.07229346662213895, 0.0, 0.0, 0.820696989198259, 0.541933064129384, 0.0, 0.6976372073851678, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6559268620540256, 0.0, 0.0, 0.00593765430305966, 0.0, 0.03489392321475427, 0.14772313877299487, 0.20501704987333305, 0.04206924698360076, 0.15444861072003166, 0.0, 0.8226903093195739, 0.0, 0.15641473972332146, 0.790869654262485, 0.6842130952365706, 0.03633117370294634, 0.0, 0.18980663716791113, 0.0, 0.0, 0.038558748063994376, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.40339029653363123, 0.0, 0.0, 0.0, 0.0, 0.43960663038458647, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08136147927839638, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16190486570077617, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2992216626110986, 0.0, 0.0, 0.0, 0.17882109545054858, 0.0, 0.0796930212837386, 0.0, 0.620119218817229, 0.06539128749913568, 0.09575080072237417, 0.0, 0.0, 0.0, 0.31047674992819635, 0.0, 0.0, 0.3258789812741783, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03198183278340688, 0.0, 0.0, 0.05159425685765124, 0.22600144774467618, 0.0, 0.17025710615993656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27035127710875223, 0.6595462305837041, 0.0, 0.0, 0.0, 0.5146584726996519, 0.0, 0.4337121439657544, 0.0, 0.0, 0.006091807521893999, 0.0, 0.0, 0.0, 0.0, 0.012888743397998564, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.336652909816104, 0.0, 0.0, 0.33692102610329455, 0.41892538326879675, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4637663755690806, 0.004049689433712162, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2537974154183676, 0.0, 0.0, 0.0, 0.01941920682276314, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2625647477298457, 0.0, 0.0, 0.0, 0.28333914754514417, 0.0, 0.009497623447163565, 0.0, 0.0, 0.015321911880061054, 0.7292697770823527, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4913667474115824, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8188140725936274, 0.23538609489199455, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004251660745273512, 0.2915534718195699, 0.8234990979680312, 0.15784851698528854, 0.31856705993041073, 0.0, 0.0, 0.0, 0.0, 0.8168645454274115, 0.2887084121601819, 0.0, 0.0, 0.0, 0.020685054965967595, 0.784321469374656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5719438351419199, 0.0, 0.0, 0.0, 0.0, 0.23810583942791758, 0.0, 0.0, 0.13190421809771516, 0.2355353163505223, 0.21414939137204708, 0.0, 0.13824109301205073, 0.0, 0.0, 0.4059138329547745, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3839879400284894, 0.7642606292584734, 0.17337082964447778, 0.43085204172578645, 0.5071846921436626, 0.0, 0.0, 0.0, 0.0, 0.0064224562854441995, 0.45947466920879537, 0.0, 0.048013668076727356, 0.008826989297459209, 0.0, 0.10254269883954115, 0.0, 0.449628221574638, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3130138916400048, 0.0, 0.0, 0.0, 0.0, 0.2198473045188841, 0.0, 0.7854658854954149, 0.0, 0.0, 0.0, 0.27482511606730614, 0.0, 0.0, 0.0, 0.10051459327881847, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03619595572786272, 0.2919384825550201, 0.0, 0.27020767480793234, 0.32906141180848986, 0.4014761358710767, 0.0, 0.0, 0.22194819820968317, 0.0, 0.397060529897469, 0.20690476484626705, 0.4811671410392035, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10602724763101144, 0.0, 0.9180290974697203, 0.32581440887276836, 0.11505868376784396, 0.5289668394733107, 0.0, 0.5268986674479775, 0.2483018891728648, 0.0, 0.0, 0.014289568621041568, 0.0, 0.0, 0.0, 0.0, 1.010481071564644, 0.06469540823739603, 0.19880648111582097, 0.580377081863938, 0.3701240890884847, 0.00033976241032705203, 0.5120222312956857, 0.54263963710411, 0.24775903677393285, 0.13070835967347635, 0.9915175816548458, 0.2899273698579516, 0.0, 0.0, 1.1703372022756595, 0.02329003991510475, 0.11859776061629382, 0.69977713771051, 0.6054053013517017, 0.707408250006164, 0.0, 0.2196427786747048, 0.5323095043727097, 0.027197936547729912, 0.0, 0.0, 0.6744130710240275, 0.0, 0.0, 0.009472629890788111, 0.0, 0.0, 0.0, 0.0, 0.11454144616825819, 0.0, 0.0, 0.0, 1.3982199856641506, 0.2538753491205552, 0.20096391172061562, 0.0, 0.0, 0.04239072289345119, 0.0, 0.773883065549572, 0.0, 0.0, 0.41373255777296347, 0.0, 0.0, 0.0, 0.0, 0.7328658795072667, 0.0, 0.0, 0.8143261048934798, 0.0, 0.0, 0.005931475071506779, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5479468542821576, 0.0, 0.32433512795769415, 0.7968405650512658, 0.0, 0.0, 0.2823749754870304, 0.0, 0.08888138290002096, 0.0, 0.0, 0.0, 0.17925820791427197, 0.2000876096746871, 0.0, 0.0, 0.40815111826084144, 0.16385977895936904, 0.06986036185280928, 0.0, 0.0, 0.0, 0.0, 0.05375441115395932, 0.0, 0.1762464226118615, 0.0, 0.3587964347388992, 0.0, 0.8015475518237312, 0.175514484083294, 0.0, 0.0, 0.13495628742382593, 0.0, 0.3105505922199702, 0.7248528773530782, 0.0, 0.18705292898123585, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1748071953278316, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7043431257504623, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13971141189132677, 0.0, 0.0, 0.0, 0.0, 0.0, 0.031464801155366616, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16845401890236414, 0.14573633601571054, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13998624971109908, 0.0, 0.07426203609200491, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2049851695927226, 0.0, 0.0, 0.17338949919280155, 0.0, 0.0, 0.18945472552918335, 0.0, 0.0, 0.0, 0.0, 0.0, 0.036320374032721404, 0.15648907735824633, 0.0, 0.05859334953381536, 0.0, 0.0, 0.0, 0.0, 0.5224897007715829, 0.0, 0.0, 0.0, 0.0, 0.08480845151311803, 0.0, 0.0, 0.0, 0.0, 0.07725579657733653, 0.0, 0.14447765770967222, 0.0, 0.0, 0.0, 0.15678431253622274, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.255601945951803, 0.0, 0.0, 0.2867970808516741, 0.3376079838842544, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29929546323980694, 0.0, 0.0, 0.0]), 42), 42)),) julia> @finch_code begin Ct .= 0 for i = _ @@ -498,7 +498,7 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.24622058278177836, 0.0, 0.0, 0.1261597862603059, 0.07342085928314178, 0.12871077894157168, 0.0, 0.0, 0.8034179790657067, 0.0, 0.0, 0.056025142012607894, 1.0596276779513034, 0.0, 0.12141212330168466, 0.0, 0.5574009533856183, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3327944495595785, 0.0, 0.8694342868598712, 0.0, 0.7416396915765561, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7569986463219165, 0.05683836078786318, 0.0, 0.0, 0.8725529080345216, 0.0, 0.2047777547094641, 0.5614660149749067, 0.0, 0.0, 0.36223551246779223, 0.0, 0.0, 0.0, 0.22107392894943306, 0.0, 0.0, 0.0, 0.3259321271119929, 0.5055955427859341, 0.27515457195781157, 0.4169876847813729, 0.018631329176858533, 0.3876953885710935, 0.0, 0.021531556327917045, 0.0, 0.0, 0.28223766305057085, 0.48287552686851865, 0.0, 0.0, 0.10175887870070799, 0.0, 0.0, 0.0, 0.06032870137556734, 0.018726053338837593, 0.045366945649236726, 0.0, 0.0, 0.0, 0.5790914418316278, 0.6815353846022115, 0.0, 0.1332216207413034, 0.0, 0.04017082185996856, 0.0, 0.0, 0.0, 0.0, 0.03484741576880692, 0.893850322287328, 0.4479341395605485, 0.5025126461241762, 0.1987665376735214, 0.31067608319719825, 0.0, 0.0, 0.0, 0.46442597522784795, 0.0, 0.0, 0.4431570212945692, 0.0, 0.0, 0.5121406140989466, 0.0, 0.49477960883115907, 0.0, 0.0, 0.0, 0.0, 0.47025922462023484, 0.3616621631765011, 0.5907253850051586, 0.0, 0.0, 0.44541009068477694, 0.03445733103321199, 0.0, 0.02309502433018302, 0.0, 0.03777890472311954, 0.16345317623186756, 0.16813336048226513, 0.0, 0.0, 0.09235605661534649, 0.0, 0.0, 0.01896246145159963, 0.02753978144349941, 0.0, 0.0, 0.0, 0.30135789429977294, 0.6764584765695312, 0.0, 0.0, 0.3151319553463997, 0.0, 0.04554105431298512, 0.0, 0.08378021558986462, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09849622821166114, 0.0, 0.25488776315346307, 0.0, 0.2781851808227525, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2839462446541717, 0.00854309647598918, 0.0, 0.0, 0.3272900456325508, 0.10375527349591217, 0.8492672297194694, 0.0, 0.5876718077641173, 0.03093892983747342, 0.0, 0.0, 0.0, 0.3385535490482335, 0.0, 0.0, 0.0, 0.29218416128587404, 0.0, 0.6966394562456512, 0.0, 0.0, 0.0, 0.522006486105503, 0.0, 0.0, 0.0, 0.11065330711314218, 0.0, 0.23311787887979893, 0.0, 0.31252070060750486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06134998798063221, 0.0, 0.0, 0.3657519298489218, 0.31899283438369924, 0.0, 0.0, 0.0, 0.3676864240590821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0010478172394749591, 0.5287716819761857, 0.0, 0.3903081303690744, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0017717866111426558, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5892681933608603, 0.002977075804572329, 0.0, 0.0, 0.0, 0.0, 0.43072916849878135, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.045384364903179854, 0.0, 0.0, 0.0018618199412216315, 0.0, 0.17111256306326456, 0.2672837889083413, 0.0, 0.0, 0.19576072012760673, 0.5948736598005219, 0.08413627091493711, 0.7573648130796338, 0.0, 0.0, 0.0, 0.0, 0.0, 0.33101786250771764, 0.16289357736810944, 0.16515314938780928, 0.0, 0.0, 0.0, 0.0, 0.0, 0.662932866371622, 0.6905568008213746, 0.0, 0.0, 0.0, 0.0, 0.4845748090935882, 0.061923683856559844, 0.0, 0.028719251839850298, 0.0, 0.02009827057946138, 0.0, 0.0, 0.0, 0.11124419756806017, 0.4147463454400596, 0.0, 0.0, 0.34783853396429565, 0.0, 0.09260170356894369, 0.0, 0.0, 0.0, 1.1401462738363544, 0.915922599074042, 0.0, 0.0, 0.0, 0.0, 0.6274522680730893, 0.0, 0.3139030754242789, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3751134192842195, 0.0, 1.257728265907189, 0.0, 0.35074493350028346, 0.268137845429166, 0.0, 0.0, 0.0, 0.0, 0.0, 0.016899841379555174, 0.7155448975358032, 0.1680074523773585, 0.0, 0.0, 0.30581125296894957, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9366277987154731, 0.0, 0.0, 0.0, 0.0, 0.07522986257761975, 0.06328419096078892, 0.0, 0.02479071082883737, 0.0, 0.7915629916935427, 0.031935353301522654, 0.0, 0.0, 0.070458258165472, 0.0, 0.0, 0.0, 0.0, 0.052737602183104026, 0.0, 0.013647273418699125, 0.3169788666986562, 0.17235734856254364, 0.0, 0.0, 0.0, 0.0661528775144355, 0.0, 0.027308490724219276, 0.0, 0.0, 0.0, 0.7971915175033586, 0.0, 0.5343175730821937, 0.0, 0.8740381649643706, 0.04598025590229294, 0.029012248678093225, 0.0, 0.0, 0.11141095490761138, 0.0, 0.0, 0.13001430753376275, 0.0, 0.0, 0.0, 0.22549966134722088, 0.0, 0.0, 0.0, 0.3726692665495664, 0.3774382964295704, 0.20411971872540274, 0.06057654493015839, 0.0, 0.5744310538348768, 0.0, 0.0, 0.6232315714035893, 0.0, 0.5072896743166587, 0.0, 0.005553340050755054, 0.5689868928162961, 0.06836125145830099, 0.0, 0.0, 0.49734376521104756, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27904969776436467, 0.0, 0.7814242677772039, 0.5117851675292832, 0.0, 0.0, 0.04886194301383263, 0.0, 0.3067365939854962, 0.0, 0.0, 0.4115088709036164, 1.405104579225751, 0.42840174089528493, 0.48760195358213543, 0.0, 0.0, 0.663844265848651, 0.0, 0.38778436442248837, 0.7776635401136125, 0.15032072106029123, 0.18953081567758903, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7044650329571657, 0.7235946500790119, 0.12987194286479317, 0.19647866132545186, 0.45582545423087456, 0.0, 0.0, 0.0, 0.032958397990191235, 0.0, 0.0, 0.7570462349991403, 0.0941136312544236, 0.0, 0.1276645560961348, 0.0, 0.0, 0.0, 0.755417985546979, 0.8458204729185679, 0.12543050025210123, 0.006393660363144921, 0.0, 0.0, 0.28926738179087036, 0.0, 0.0, 0.4731345211962404, 0.0, 0.7203970460167203, 0.0, 0.0, 0.0, 0.4891311717243447, 0.0031333060836164625, 0.003950606766695812, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8250852706661534, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1940012409565178, 0.0, 0.7255195358366966, 0.0, 0.4862794311033925, 0.0, 0.7981182971725221, 0.0, 0.26385403496014914, 0.0, 0.5139863704027979, 0.35381636124647037, 0.06016159688024159, 0.0, 0.0, 0.0, 0.07675121814682248, 0.0, 0.0, 0.12553662505708466, 0.0, 0.301350309711505, 0.0, 0.0, 0.0, 0.12978101101826656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2180668401971053, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09272141980768678, 0.0, 0.3034931056908601, 0.0, 0.203416238280828, 0.0, 0.33274884560755447, 0.0, 0.12655518438173288, 0.0, 0.13637583261219158, 0.0, 0.0, 0.0, 0.0, 0.020115042222633606, 0.0, 0.11478942012015081, 0.0, 0.044967175485766994, 0.0, 0.27969782401606164, 0.1383242818414881, 0.0, 0.0, 0.18685369035983804, 0.0, 0.06810955828519266, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17579267922314348, 0.0, 0.0, 0.11999285025017485, 0.0, 0.0, 0.14209169595972287, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11399414163060874, 0.019825113051252268, 0.0, 0.049971986914216976, 0.07235420154739257, 0.0, 0.0, 0.08331368376199759, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07280640355864025, 0.0, 0.0, 0.35152520960031586, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13676901662991092, 0.0, 0.0, 0.0, 0.015204774707799058, 0.0, 0.0, 0.0, 0.0, 0.5304031136005922, 0.0, 0.0, 0.0, 0.32819195551919517, 0.1622165373359131, 0.0, 0.0, 0.0, 0.1321652778478459, 0.0, 0.0, 0.2161735452720934, 0.0, 0.27952564740678887, 0.0, 0.0, 0.0, 0.22348236021207268, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.375510190195534, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2500091160813631, 0.0, 0.2815132558946093, 0.0, 0.18868424509978618, 0.0, 0.30865021038590384, 0.0, 0.341236683480638, 0.0, 0.23483861551802387, 0.0, 0.0, 0.0, 0.12117745385937667, 0.0, 0.0, 0.3973467888918919, 0.0, 0.2920101397985984, 0.0, 0.12988448302264086, 0.0, 0.3517844506342411, 0.0, 0.0, 0.0, 0.6519761543079575, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4428070420734244, 0.0, 0.3964317892338393, 0.0, 0.0, 0.0, 0.3236724995283946, 0.0, 0.0567229736921611, 0.0, 0.0, 0.0, 0.25146743826064083, 0.0, 0.0, 0.011207888208677623, 0.08869787998517195, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0436070974131627, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05218480148875932, 0.0, 0.0, 0.0, 0.28668060177386556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16806127510824798, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1010038649276795, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24411150965510042, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3252831829639798, 0.0, 0.13696611429551586, 0.0, 0.08809099936621054, 0.0, 0.0, 0.0, 0.5834039633369968, 0.2573783852497724, 0.0, 0.34353142253711105, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8226681209013311, 0.43635481618924155, 0.0, 0.21222851603946533, 0.0, 0.6640973088333184, 0.0, 0.1716321278580885, 0.7312656094018032, 0.46618173092618587, 0.7638215749927391, 0.5281765059497923, 0.012259008816529623, 0.9144713112403178, 0.0, 0.0, 0.0, 0.0, 0.7953741970864907, 0.0, 0.0, 0.5850872742568098, 0.0, 0.0, 0.0, 0.7307808207285703, 0.0, 0.6199309753815017, 0.37291372178799176, 0.0, 0.0, 0.22356724549482568, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3221254739496775, 0.11781870844111127, 0.04460774210115785, 0.7133319766560491, 0.17115949268039302, 0.47397294440775345, 0.0, 0.10101149129956093, 0.11755718548933392, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.057090584067732354, 0.6447844891876003, 0.0, 0.0, 0.033829519264607456, 0.0, 0.1190337187097033, 0.30523421948716617, 0.0, 0.0, 0.0, 0.0, 0.6213057774307251, 0.842768502451811, 0.0, 0.3906048759812801, 0.7719833104847825, 0.41168363040706235, 0.1712307445975339, 0.0, 0.05992936357237096, 0.04890539039186202, 0.0, 0.0, 0.012380496199171342, 0.0, 0.2674194407541521, 0.0, 0.0014443996714777229, 0.0, 0.16387003646802972, 0.0, 0.0, 0.03594122433913304, 0.24159569520366886, 0.3747703785250739, 0.0, 0.054699683547073226, 0.0, 0.2873774296478163, 0.0, 0.0, 0.0, 0.14956132991470428, 0.0, 0.3888645476970781, 0.0, 0.0, 0.07542830239130101, 0.07080076609705026, 0.0, 0.0, 0.0, 0.0, 0.09852911382155678, 0.19548481725379033, 0.0, 0.0, 0.4350977845419587, 0.00557774494203208, 0.0, 0.09874991570897035, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6034262468294622, 0.2713368059843151, 0.6497013107648627, 0.0, 0.8007029601130917, 0.0, 0.0, 0.0, 0.0, 0.01616961592030159, 0.0, 0.0, 0.0, 0.0, 0.2502876057454169, 0.49212467358206446, 0.2134864810859512, 0.1765833209669342, 0.0, 0.0, 0.0, 0.5401972297237567, 0.03318857704329382, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12219566143679067, 0.0, 0.04829725298673487, 0.0, 0.0, 0.0, 0.0, 0.0, 1.2356793204214815, 0.02263120223723859, 0.7256596881722004, 0.3263003275955702, 0.7654157892976137, 0.08145618747845872, 0.6387218661983024, 0.0, 0.5276231408957645, 0.8184646008092085, 0.0, 0.0, 0.0, 0.6276063069977658, 0.0, 0.6132063830791735, 0.006204111701464058, 0.18851722870999638, 0.375149258411478, 0.7816851453263511, 0.0, 0.587776400734769, 0.16472858834087942, 1.1016458158754883, 0.1459604994495737, 0.0, 0.0, 0.0, 0.037075917094288376, 0.0, 0.2815459504132854, 0.2536212145780303, 0.559150690052304, 0.48027689889482117, 0.0, 0.21566088189458643, 0.058080618345779114, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008439821738835876, 0.0, 0.36408664087256903, 0.0, 0.16156000319694572, 0.22471190561828702, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10732980278519261, 0.0, 0.0, 0.12403718878006863, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27901056312251676, 0.4801492052284416, 0.0, 0.0, 0.10787548181472921, 0.0, 0.0, 0.0, 0.15654727928350437, 0.0, 0.13104284110293218, 0.13666096202593647, 0.0, 0.0, 0.0, 0.07276575816635268, 0.0, 0.0, 0.0, 0.0, 0.6100450928472326, 0.0, 0.0, 0.0, 0.4238237484103886, 0.9941317988293357, 0.0, 0.0, 0.0, 0.0, 0.3355479309040112, 0.0, 0.0, 0.0, 0.0, 0.5350029094771915, 0.0, 0.008586567333100323, 1.1385513331902584, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1850917274468032, 0.0, 0.0, 0.06716099014107918, 1.1525784735402484, 0.0, 0.0, 0.036572260841491885, 0.0, 0.26119964749940466, 0.0, 0.0, 0.8459335464772313, 0.0, 0.0, 0.0, 0.0, 0.38438887602945404, 0.0, 0.0, 0.0, 0.0, 0.7204933523373307, 0.0, 0.0, 0.16060697060474402, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7112792652633437, 0.0, 0.935521710131386, 0.26536974069831215, 0.2935825392525973, 0.0, 0.0, 0.13719141489981915, 0.0, 0.10324823792839577, 0.0, 0.0, 0.0, 0.7256165269576538, 0.0, 0.48634443939716193, 0.0, 0.7955635800994527, 0.1927019559074891, 0.0, 0.0, 0.7058981437597585, 0.0, 0.5236895266156559, 0.0, 0.08128104063747256, 0.0, 0.0, 0.0, 0.5731212091054763, 0.0, 0.0, 0.0419831484236368, 0.11625926299639212, 0.0, 0.0, 0.08927614896350113, 0.217346651106267, 0.13128361330254273, 0.0, 0.07219885291348893, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4218130442222412, 0.0, 0.0, 0.0, 0.0, 0.1699892215644571, 0.0, 0.14639742856012483, 0.0, 0.0, 0.04200062557179813, 0.0, 0.0, 0.0, 0.31146013043119736, 0.0, 0.0, 0.0, 0.24384030368566587, 0.9260558729858251, 0.4296955936776912, 0.0, 0.0, 0.0, 0.73790516731229, 0.0, 0.0, 0.0, 0.16295488074282302, 0.26550524353964333, 0.0, 0.0, 0.0, 0.31144107126852844, 0.0, 0.485858439126786, 0.0, 0.6914937323909329, 0.0, 0.0, 0.0, 0.0, 0.3162528337434342, 0.0, 0.0, 0.0, 0.0, 1.5785215576611167, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5161924043112004, 0.0, 0.0, 0.2568302026164213, 0.0, 0.3023415151909343, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5030068615133427, 0.0, 0.0, 0.0, 0.2741080207900236, 0.17120972783029909, 0.0, 0.0, 0.0, 0.0, 0.43685119598979993, 0.02712666041421048, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2451085199735546, 0.0, 0.1576437689621315, 0.0, 0.0, 0.0, 0.6857487349281931, 0.05917052173435364, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6537568461306704, 0.0, 0.0, 0.5395442735782994, 0.05374109131453472, 0.0, 0.5917732326059808, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0008206716541601089, 0.19818937147807536, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.535053682582317, 0.0, 0.3513819151899916, 0.04333888481337121, 0.5747915094439204, 0.19540689526232177, 0.01899860952318465, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06595709778063945, 0.0, 0.08799217533170228, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03735300199555871, 0.19147688509049948, 0.0, 0.0, 0.0, 0.2914125830050192, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04799459307428656, 0.0, 0.16480769798416883, 0.0, 0.0, 0.0, 0.04840048223798238, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.027156548216558336, 0.0, 0.047181418535814645, 0.0, 0.0, 0.0, 0.0, 0.35341760898781915, 0.5999981948389704, 0.024572219243726254, 0.0, 0.0, 0.08667332426569417, 0.4875808312926843, 0.06369622265280388, 0.0, 0.0, 0.0, 0.07133443039288194, 0.0, 0.0, 0.47894471690358564, 0.4793008357816607, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09658957720985865, 0.3016070141903076, 0.061398864173637636, 0.0, 0.0, 0.0, 0.07060273869520314, 0.35885594789448355, 0.0, 0.06446892769447045, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2497207855356876, 0.018509596151814908, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2926774045716465, 0.0, 0.013651758929637155, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03597721563910695, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07068090962707653, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03642909404914556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2749443358980585, 0.0, 0.0, 0.0, 0.0, 0.5096842842109697, 0.0, 0.0, 0.0, 0.028086239659725638, 0.7421154878137212, 0.0, 0.48123810905471315, 0.0, 0.3067030382176026, 0.6866619523091189, 0.0008295150087239233, 0.5016528107597976, 0.0, 0.08848804808651539, 1.3805931747462472, 0.0, 0.0, 1.04718815925786, 0.0, 0.0, 0.0, 0.42746548493362363, 0.0, 0.5817357352379013, 0.8450882691967682, 0.41665385220387907, 1.0915687546509307, 1.108964330219497, 0.0, 0.0, 0.0, 0.04066069749695377, 0.032733248007639555, 0.0, 0.0, 0.0, 0.07163077100441487, 0.6487063582321942, 0.0, 0.2995103130321618, 0.10283702762113958, 0.33384701220391544, 0.41258982728857174, 0.0, 0.5449670143554067, 0.0, 0.3217489265559145, 0.0, 0.0, 0.0, 0.2849908553676538, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.01610871320352385, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2570528176713379, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2969662795916102, 0.0, 0.12312876081315716, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09075655657480966, 0.0, 0.3633373647258237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06617087939273322, 0.0, 0.0, 0.0, 0.00923594008230594, 0.17805875048711786, 0.22450411347361834, 0.0, 0.0, 0.09502241267674551, 0.0, 0.024589605765570302, 0.0, 0.1826423790293924, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039040067948029694, 0.0, 0.06664139722445166, 0.0, 0.04466639301844483, 0.0, 0.22428735118617732, 0.08284705163804024, 0.05227416022819031, 0.0, 0.19522102914015915, 0.8685310451611696, 0.0, 0.0, 0.0, 0.0, 0.8702352191794189, 0.0, 0.0, 0.15684527219370442, 0.0, 0.9243788213991903, 0.22207735215974056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.40507055158794986, 0.30718446392066534, 0.0, 0.46812545232304087, 0.0, 0.5780009938921578, 0.18279458657604497, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02896217836710352, 0.0, 0.0, 0.40712998428742797, 0.7449999863100496, 0.0, 0.49933620201845186, 0.0, 0.8168155413547457, 0.11457346224809285, 0.0, 0.0, 0.0, 0.15332753334456128, 0.11864376215788304, 0.0, 0.0, 0.04572095120049149, 0.0, 0.0, 0.31683394463012315, 0.5003078767139268, 0.14059206617597214, 0.19554784897288408, 0.0, 0.43178409369310355, 0.0, 0.07560627618395319, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16352131380333873, 0.0, 0.34449708571742155, 0.0, 0.4618370375665847, 0.0, 0.0, 0.41783342102021986, 0.0, 0.0, 0.0, 0.02165252564332241, 0.0, 0.0, 0.0, 0.47140143149032104, 0.39181349979635294, 0.11892452733738064, 0.0, 0.5433598750764469, 0.0, 0.0, 0.0, 0.07266999506080335, 0.0, 0.6735755940113932, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0041630866962457744, 0.2109647750127205, 0.0, 0.0, 0.0, 0.3715024914369038, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1845463840294256, 0.0, 0.6075440706050301, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29101469974401967, 0.0, 0.0, 0.032739778024003775, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4875593392929034, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20371408580482323, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0439075644510851, 0.0, 0.5496827874572944, 0.40327797474842975, 0.37238046622077875, 0.0, 0.0, 0.17401376516444506, 0.0, 0.11278871866256229, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15394336215607962, 0.0, 0.0, 0.0]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.1619393094464903, 0.0, 0.0, 0.0, 0.0, 0.11373910752308043, 0.0, 0.32533429668145175, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5405512925681031, 0.0, 0.0, 0.5409817971066755, 0.6726532010052559, 0.0, 0.0, 0.0, 0.04498001780375231, 0.0, 0.7446527460595233, 0.0, 0.0, 0.0, 0.0648053115514859, 0.0, 0.20542126000594346, 0.0, 0.2489342378383824, 0.0, 0.0, 0.2446702787341799, 0.0, 0.0, 0.4075132486743765, 0.372693911014397, 0.0, 0.03990868671702989, 0.32865292999993995, 0.0, 0.0, 0.0, 0.037570880212435515, 0.0, 0.0, 0.2585440952996821, 0.0, 0.0, 0.5429032184680616, 0.0, 0.0, 0.0, 0.7310331654112876, 1.6974310666890076, 0.13434284643730737, 0.0, 0.15388431962676646, 0.0, 0.018799628425153446, 0.026448056346556916, 0.020943024178172204, 0.08671614507629592, 0.19272805440861934, 0.07015243227726202, 0.0, 0.1267665206913561, 0.1014023431949165, 0.494724963965631, 0.0, 0.6317423070706343, 0.0, 0.4351905463586081, 0.019451367524410516, 0.11392026534019284, 0.0, 0.7674183972620773, 0.0, 0.0, 0.009728790198518009, 0.0, 0.0, 0.03627546054320975, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0140288190005624, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4229718175600567, 0.0752980218883111, 0.013070459322559402, 0.0, 0.4793455258509991, 0.0, 0.0, 0.0, 0.0, 0.08811633730455204, 0.08467555208376226, 0.0, 0.0, 1.4824413586764027, 0.27442978968992093, 0.0, 0.0028104905637611507, 0.1480443868451215, 0.6744061467564826, 0.043998508948338316, 0.8697701045107844, 0.8469834954000914, 0.0, 0.02425613445444166, 0.0, 0.0, 0.0, 0.9679232213808633, 0.6774894982888419, 0.35310753741950685, 0.0, 0.2841919624705342, 0.0, 0.0, 0.7349602036514661, 0.0, 0.2186035505612502, 0.04416466424315345, 0.0, 0.0, 0.25133653271826356, 0.11160837067772013, 0.0, 0.14048007630402903, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.035048636482553235, 0.038653696504083, 0.10014641420794519, 0.0, 0.0837599459565703, 0.10942537757376403, 0.0, 0.0, 0.0, 0.08204362658289192, 0.0, 0.0, 0.011591138384550418, 0.0, 0.038004261053570694, 0.0066189468466051875, 0.06306237088337384, 0.0, 0.0, 0.03121664575636558, 0.0, 0.0, 0.02910081181829685, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08506408857544866, 0.0, 0.0, 0.0, 0.7712870388819855, 0.2285263236705729, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6966121466049721, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6540220401149287, 0.0, 0.0, 0.2336670223432043, 0.0, 0.0, 0.005339227289024509, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4930665741229495, 0.0, 0.029559863815954657, 0.0, 0.0, 0.10760363562562023, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15061269543615943, 0.6107211710602042, 0.0, 0.0, 0.733057860494869, 0.057362855000467054, 0.17650444882735677, 0.0, 0.0, 0.014677698725170102, 0.0, 0.17821555119599314, 0.0025555492556658746, 0.14808219427948163, 0.0, 0.11979690859781277, 0.0, 0.0, 0.13110894332781436, 0.04449679654819995, 0.0, 0.1133902344080122, 0.0, 0.0, 0.0017495044850376442, 0.013900993801975209, 0.03729472110086185, 0.19173933242455474, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1709634942172136, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13051636625786148, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4357713541613571, 0.0, 0.0, 0.0, 0.0, 0.07073267416682687, 0.0, 0.0, 0.0, 0.0, 0.06443354393704691, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.28238918313491895, 0.0, 0.0, 0.0, 0.28219752132848275, 0.0, 0.0, 0.0, 0.3045252869011713, 0.0, 0.0, 0.019083741024338748, 0.0, 0.06257051306836219, 0.7837995208867943, 0.05061887468267648, 0.0, 0.0, 0.05139533007879884, 0.0, 0.0, 0.04791180451081585, 0.0, 0.5281077501137272, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7571506519409951, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.026654196669850944, 0.0, 0.0, 0.0, 0.0, 0.23843473688023176, 0.0, 0.0, 0.6051386294410329, 0.0, 0.0, 0.0, 0.0, 0.04194764240896927, 0.13628497764809444, 0.0, 0.0, 0.0, 0.0, 0.06043639304510901, 0.04344269031549197, 0.0, 0.7296328391677986, 0.6312346675367022, 0.0, 0.0, 0.22817557354519388, 0.0, 0.05073205279897938, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1594527848545218, 0.1381227206057285, 0.0, 0.0, 0.0, 0.0, 0.4217049712314433, 0.0, 0.0, 0.31027130374464373, 0.0, 0.0, 0.08118863628632204, 0.8304208532182848, 0.983137215831116, 0.0, 0.24897028906526258, 0.14034260442091134, 0.0, 0.691731307052974, 0.7500207108166317, 0.833859795824118, 0.0, 0.05053828036951065, 0.8139843305766208, 0.0, 0.0, 1.3856822465181273, 1.0343729450047436, 0.0, 0.0, 1.09811525132565, 0.0, 0.0, 0.005748580563865145, 0.0, 0.0, 0.8634025361175751, 0.0, 0.14616020357939458, 0.7514377111323272, 0.0, 0.0, 0.1732108049991939, 0.0, 0.0, 0.0, 0.1879649588465491, 0.0, 0.0, 0.0, 0.00817965091901661, 0.0, 0.0, 0.0, 0.5779500058438248, 0.0, 0.0, 0.0, 0.005249336837927155, 0.0, 0.0, 0.0, 0.3064350538312218, 0.0, 0.001890320177282059, 0.45976772975798436, 0.40475012946470096, 0.3442380471075082, 0.017185108496187197, 0.288035784498987, 0.0, 0.0, 0.2827566402954316, 0.0, 0.0, 0.2635916697723135, 0.0, 0.0, 0.0, 0.3588181656747819, 0.0, 0.0, 0.0, 0.17570163169455902, 0.0, 0.2076868163288207, 0.0, 0.0, 0.0, 0.5097341557191223, 0.14587016095283192, 0.0, 0.4172405362928458, 0.0, 0.13951021052730417, 0.0, 0.6033798708626249, 0.0, 0.0, 0.0, 0.0, 0.4512081190066747, 1.1915177253624374, 0.0, 0.53626862172996, 0.26267190873847124, 0.024946529615964698, 0.630282563668714, 0.0, 0.7072072219187049, 0.2557442098535857, 0.0, 0.0, 0.0, 0.027439980552710016, 0.0, 0.2634523244708942, 0.750190928083991, 0.31925762502388877, 0.0, 0.0, 0.0, 0.17667054707398389, 1.689395274403252, 0.0, 0.5386556936239477, 0.21507940395745773, 0.30698899212442304, 0.11255638742238075, 0.12042909174810443, 0.1983506487023661, 0.0, 0.2156156778918424, 0.0, 0.6179686549930762, 0.0, 0.0, 0.0, 0.011162873807723371, 0.003307472295366656, 0.5417377310206691, 0.1038404263557644, 0.0, 0.0, 0.0, 0.010082100558503525, 0.5759566406752274, 0.5373731999014957, 0.24497595431253502, 0.3628321361534925, 0.4271139218413104, 0.0888079037091352, 0.013607634508588288, 0.5254304747208627, 0.0, 0.0, 0.0033818738704913948, 0.0, 0.3894178985059293, 7.727488918331624e-5, 0.4719056234120719, 0.0, 0.0, 0.7548965169480935, 0.0, 0.0, 0.0, 0.0, 0.04295271297559638, 0.3048341885265102, 0.0, 0.16015654700904233, 0.0, 0.03255288417829475, 0.0, 0.0, 0.0, 0.0, 0.16019347860889097, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3426629556463706, 0.0, 0.33591507158653605, 0.0, 0.0, 0.04025140372585128, 0.0, 0.5756230062735465, 0.0, 0.0, 0.0, 0.0, 0.0017523850398583757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32421546356710995, 0.0, 0.011282618188498251, 0.6937716630434633, 0.2529924781123921, 0.2596235239889639, 0.0, 0.043120476743740394, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2793513283874615, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7775441119273626, 0.14515455310675088, 0.0, 0.13510821830370037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44716225485327055, 0.0, 0.0, 0.0, 0.8291790553392753, 0.0, 0.0, 0.26334889102262177, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15479667093058366, 0.0, 0.0, 0.0, 0.36993623982653, 0.0, 0.0, 0.0, 0.0, 0.3623559014178924, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029233403628440607, 0.1427335193249464, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051251957334763225, 0.691166524717783, 0.29938181148714105, 0.5349464228115411, 0.06157899241792075, 0.0, 0.0, 0.2102727260204982, 0.0, 0.60145477594229, 0.0, 0.0, 0.03062034252430008, 0.1635016794080344, 0.7915679370358879, 0.0, 0.07317711878131836, 0.9809574403621903, 0.0, 0.0, 0.44926990137304107, 0.21608537407152922, 0.0, 0.05777727499408966, 0.039929965496851884, 0.0, 0.29915326656993935, 0.31099294960838475, 0.13414679708282617, 0.10949528327933863, 0.0, 0.10753728810972799, 0.0, 0.3797681313373244, 0.5019126906002389, 0.8077076191871431, 0.02575673641821252, 0.0, 0.0, 0.0, 0.0, 0.08748647908145589, 0.0, 0.0, 0.2775216739406583, 0.0, 0.0, 0.0, 0.0, 0.19491911889837882, 0.0, 0.626470449065492, 0.0, 0.1610321350235478, 0.0, 0.6250193931691284, 0.18518836301307043, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5645059221744597, 0.0, 0.30319370972913895, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5299926460898494, 0.0, 0.0, 0.18935417444624433, 0.0, 0.3520383786660897, 0.004326690884129795, 0.4266082560323472, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04753484047689839, 0.0, 0.0, 0.0, 0.2507515224933452, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.011126595947621928, 0.0, 0.0, 0.0, 0.0, 0.07883374294223121, 0.0, 0.0, 0.06158319631443835, 0.0, 0.0, 0.0, 0.0, 0.18599923723367912, 0.0, 0.0, 0.0, 0.0, 0.07225540391146344, 0.0, 0.17222213577613948, 0.0, 0.07109258970520838, 0.30622054435699597, 0.0, 0.0, 0.021600783197372013, 0.0, 0.0, 0.0, 0.0, 0.08747962563792125, 0.0, 0.0, 0.6661127453751955, 0.20906059268184987, 0.0, 0.14050781836020196, 0.0, 0.0, 0.38775347026983786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.016520556870922822, 0.08066242485362363, 0.0, 0.0, 0.008507877750707929, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19963971549104562, 0.0, 0.0, 0.0, 0.0, 0.1517009343251733, 0.5312750255062002, 0.0, 0.0, 0.1147421120346578, 0.0, 0.0, 0.0, 0.0, 0.35500190337758014, 0.0, 0.045597713545061126, 0.0, 0.5209586802357347, 0.021862434298379425, 0.0, 0.0, 0.0, 1.0378291015579089, 0.0, 0.0, 0.0, 0.08585205631703301, 0.0483968201096062, 0.0, 0.025471357792783925, 0.0, 0.22080976260076224, 1.166729214929465, 0.0, 0.677323308302816, 0.18535083381370177, 0.0, 0.0, 0.8704056171514745, 0.0, 0.8935663748182991, 0.015577429284835683, 0.13855228421849528, 0.0, 0.0, 0.1744139155099896, 0.15132491229634354, 0.0, 0.02513332482807071, 0.0, 0.17525145412541498, 0.0, 0.0, 0.0, 0.0, 0.02694350993020697, 0.162823516985682, 0.0, 0.0, 0.6457319525792288, 0.07238426196350153, 0.05745965468198706, 0.0, 0.0, 0.46532195926191927, 0.08460519940877058, 0.22064747420300995, 0.07874956387307873, 0.02873453791303352, 0.04102153493571428, 0.0, 0.0, 0.0, 0.0, 0.49780157894039, 0.0, 0.0, 0.301057479311315, 0.0, 0.0, 0.0016911663416444849, 0.0, 0.2606342751929628, 0.0, 0.0, 0.0, 0.4832976838898257, 0.2663912296088851, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16074512474220395, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0418820657562929, 0.0, 0.04820286684177523, 0.0, 0.1580443847885599, 0.0, 0.1278562139832909, 0.0, 0.0, 0.12981743196566292, 0.0, 0.0, 0.12101853247948517, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13204408757174144, 0.0, 0.0, 0.0, 0.0, 0.0, 0.024933507022188058, 0.0, 0.0, 0.0, 0.22607531711845172, 0.06698435016959209, 0.0, 0.0, 0.38137808720681626, 0.04452538198512276, 0.13682477248336336, 0.20418703285947667, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19170326048233127, 0.0, 0.0, 0.0684911628398921, 0.0, 0.0, 0.0015650042612973304, 0.0, 0.0, 0.0, 0.0, 0.3663518735291969, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27889642218469224, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09171777647431381, 0.0, 0.031206336760942092, 0.04657190125204274, 0.0, 0.21168995340334643, 0.0, 0.0, 0.2715554536912592, 0.0, 0.0, 0.0476752915188213, 0.0, 0.0, 0.0, 0.0, 0.36410628949886475, 0.021118814521733104, 0.0, 0.25524059151149175, 0.22081888489064375, 0.0, 0.0008303397905156581, 0.0, 0.0, 0.0, 0.0, 0.07229346662213895, 0.0, 0.0, 0.820696989198259, 0.541933064129384, 0.0, 0.6976372073851678, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6559268620540256, 0.0, 0.0, 0.00593765430305966, 0.0, 0.03489392321475427, 0.14772313877299487, 0.20501704987333305, 0.04206924698360076, 0.15444861072003166, 0.0, 0.8226903093195739, 0.0, 0.15641473972332146, 0.790869654262485, 0.6842130952365706, 0.03633117370294634, 0.0, 0.18980663716791113, 0.0, 0.0, 0.038558748063994376, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.40339029653363123, 0.0, 0.0, 0.0, 0.0, 0.43960663038458647, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08136147927839638, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16190486570077617, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2992216626110986, 0.0, 0.0, 0.0, 0.17882109545054858, 0.0, 0.0796930212837386, 0.0, 0.620119218817229, 0.06539128749913568, 0.09575080072237417, 0.0, 0.0, 0.0, 0.31047674992819635, 0.0, 0.0, 0.3258789812741783, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03198183278340688, 0.0, 0.0, 0.05159425685765124, 0.22600144774467618, 0.0, 0.17025710615993656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27035127710875223, 0.6595462305837041, 0.0, 0.0, 0.0, 0.5146584726996519, 0.0, 0.4337121439657544, 0.0, 0.0, 0.006091807521893999, 0.0, 0.0, 0.0, 0.0, 0.012888743397998564, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.336652909816104, 0.0, 0.0, 0.33692102610329455, 0.41892538326879675, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4637663755690806, 0.004049689433712162, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2537974154183676, 0.0, 0.0, 0.0, 0.01941920682276314, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2625647477298457, 0.0, 0.0, 0.0, 0.28333914754514417, 0.0, 0.009497623447163565, 0.0, 0.0, 0.015321911880061054, 0.7292697770823527, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4913667474115824, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8188140725936274, 0.23538609489199455, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004251660745273512, 0.2915534718195699, 0.8234990979680312, 0.15784851698528854, 0.31856705993041073, 0.0, 0.0, 0.0, 0.0, 0.8168645454274115, 0.2887084121601819, 0.0, 0.0, 0.0, 0.020685054965967595, 0.784321469374656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5719438351419199, 0.0, 0.0, 0.0, 0.0, 0.23810583942791758, 0.0, 0.0, 0.13190421809771516, 0.2355353163505223, 0.21414939137204708, 0.0, 0.13824109301205073, 0.0, 0.0, 0.4059138329547745, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3839879400284894, 0.7642606292584734, 0.17337082964447778, 0.43085204172578645, 0.5071846921436626, 0.0, 0.0, 0.0, 0.0, 0.0064224562854441995, 0.45947466920879537, 0.0, 0.048013668076727356, 0.008826989297459209, 0.0, 0.10254269883954115, 0.0, 0.449628221574638, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3130138916400048, 0.0, 0.0, 0.0, 0.0, 0.2198473045188841, 0.0, 0.7854658854954149, 0.0, 0.0, 0.0, 0.27482511606730614, 0.0, 0.0, 0.0, 0.10051459327881847, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03619595572786272, 0.2919384825550201, 0.0, 0.27020767480793234, 0.32906141180848986, 0.4014761358710767, 0.0, 0.0, 0.22194819820968317, 0.0, 0.397060529897469, 0.20690476484626705, 0.4811671410392035, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10602724763101144, 0.0, 0.9180290974697203, 0.32581440887276836, 0.11505868376784396, 0.5289668394733107, 0.0, 0.5268986674479775, 0.2483018891728648, 0.0, 0.0, 0.014289568621041568, 0.0, 0.0, 0.0, 0.0, 1.010481071564644, 0.06469540823739603, 0.19880648111582097, 0.580377081863938, 0.3701240890884847, 0.00033976241032705203, 0.5120222312956857, 0.54263963710411, 0.24775903677393285, 0.13070835967347635, 0.9915175816548458, 0.2899273698579516, 0.0, 0.0, 1.1703372022756595, 0.02329003991510475, 0.11859776061629382, 0.69977713771051, 0.6054053013517017, 0.707408250006164, 0.0, 0.2196427786747048, 0.5323095043727097, 0.027197936547729912, 0.0, 0.0, 0.6744130710240275, 0.0, 0.0, 0.009472629890788111, 0.0, 0.0, 0.0, 0.0, 0.11454144616825819, 0.0, 0.0, 0.0, 1.3982199856641506, 0.2538753491205552, 0.20096391172061562, 0.0, 0.0, 0.04239072289345119, 0.0, 0.773883065549572, 0.0, 0.0, 0.41373255777296347, 0.0, 0.0, 0.0, 0.0, 0.7328658795072667, 0.0, 0.0, 0.8143261048934798, 0.0, 0.0, 0.005931475071506779, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5479468542821576, 0.0, 0.32433512795769415, 0.7968405650512658, 0.0, 0.0, 0.2823749754870304, 0.0, 0.08888138290002096, 0.0, 0.0, 0.0, 0.17925820791427197, 0.2000876096746871, 0.0, 0.0, 0.40815111826084144, 0.16385977895936904, 0.06986036185280928, 0.0, 0.0, 0.0, 0.0, 0.05375441115395932, 0.0, 0.1762464226118615, 0.0, 0.3587964347388992, 0.0, 0.8015475518237312, 0.175514484083294, 0.0, 0.0, 0.13495628742382593, 0.0, 0.3105505922199702, 0.7248528773530782, 0.0, 0.18705292898123585, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1748071953278316, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7043431257504623, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13971141189132677, 0.0, 0.0, 0.0, 0.0, 0.0, 0.031464801155366616, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16845401890236414, 0.14573633601571054, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13998624971109908, 0.0, 0.07426203609200491, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2049851695927226, 0.0, 0.0, 0.17338949919280155, 0.0, 0.0, 0.18945472552918335, 0.0, 0.0, 0.0, 0.0, 0.0, 0.036320374032721404, 0.15648907735824633, 0.0, 0.05859334953381536, 0.0, 0.0, 0.0, 0.0, 0.5224897007715829, 0.0, 0.0, 0.0, 0.0, 0.08480845151311803, 0.0, 0.0, 0.0, 0.0, 0.07725579657733653, 0.0, 0.14447765770967222, 0.0, 0.0, 0.0, 0.15678431253622274, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.255601945951803, 0.0, 0.0, 0.2867970808516741, 0.3376079838842544, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29929546323980694, 0.0, 0.0, 0.0]), 42), 42)),) julia> @finch_code begin Ct .= 0 for j = parallel(_) @@ -734,7 +734,7 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.24622058278177836, 0.0, 0.0, 0.1261597862603059, 0.07342085928314178, 0.12871077894157168, 0.0, 0.0, 0.8034179790657067, 0.0, 0.0, 0.056025142012607894, 1.0596276779513034, 0.0, 0.12141212330168466, 0.0, 0.5574009533856183, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3327944495595785, 0.0, 0.8694342868598712, 0.0, 0.7416396915765561, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7569986463219165, 0.05683836078786318, 0.0, 0.0, 0.8725529080345216, 0.0, 0.2047777547094641, 0.5614660149749067, 0.0, 0.0, 0.36223551246779223, 0.0, 0.0, 0.0, 0.22107392894943306, 0.0, 0.0, 0.0, 0.3259321271119929, 0.5055955427859341, 0.27515457195781157, 0.4169876847813729, 0.018631329176858533, 0.3876953885710935, 0.0, 0.021531556327917045, 0.0, 0.0, 0.28223766305057085, 0.48287552686851865, 0.0, 0.0, 0.10175887870070799, 0.0, 0.0, 0.0, 0.06032870137556734, 0.018726053338837593, 0.045366945649236726, 0.0, 0.0, 0.0, 0.5790914418316278, 0.6815353846022115, 0.0, 0.1332216207413034, 0.0, 0.04017082185996856, 0.0, 0.0, 0.0, 0.0, 0.03484741576880692, 0.893850322287328, 0.4479341395605485, 0.5025126461241762, 0.1987665376735214, 0.31067608319719825, 0.0, 0.0, 0.0, 0.46442597522784795, 0.0, 0.0, 0.4431570212945692, 0.0, 0.0, 0.5121406140989466, 0.0, 0.49477960883115907, 0.0, 0.0, 0.0, 0.0, 0.47025922462023484, 0.3616621631765011, 0.5907253850051586, 0.0, 0.0, 0.44541009068477694, 0.03445733103321199, 0.0, 0.02309502433018302, 0.0, 0.03777890472311954, 0.16345317623186756, 0.16813336048226513, 0.0, 0.0, 0.09235605661534649, 0.0, 0.0, 0.01896246145159963, 0.02753978144349941, 0.0, 0.0, 0.0, 0.30135789429977294, 0.6764584765695312, 0.0, 0.0, 0.3151319553463997, 0.0, 0.04554105431298512, 0.0, 0.08378021558986462, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09849622821166114, 0.0, 0.25488776315346307, 0.0, 0.2781851808227525, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2839462446541717, 0.00854309647598918, 0.0, 0.0, 0.3272900456325508, 0.10375527349591217, 0.8492672297194694, 0.0, 0.5876718077641173, 0.03093892983747342, 0.0, 0.0, 0.0, 0.3385535490482335, 0.0, 0.0, 0.0, 0.29218416128587404, 0.0, 0.6966394562456512, 0.0, 0.0, 0.0, 0.522006486105503, 0.0, 0.0, 0.0, 0.11065330711314218, 0.0, 0.23311787887979893, 0.0, 0.31252070060750486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06134998798063221, 0.0, 0.0, 0.3657519298489218, 0.31899283438369924, 0.0, 0.0, 0.0, 0.3676864240590821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0010478172394749591, 0.5287716819761857, 0.0, 0.3903081303690744, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0017717866111426558, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5892681933608603, 0.002977075804572329, 0.0, 0.0, 0.0, 0.0, 0.43072916849878135, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.045384364903179854, 0.0, 0.0, 0.0018618199412216315, 0.0, 0.17111256306326456, 0.2672837889083413, 0.0, 0.0, 0.19576072012760673, 0.5948736598005219, 0.08413627091493711, 0.7573648130796338, 0.0, 0.0, 0.0, 0.0, 0.0, 0.33101786250771764, 0.16289357736810944, 0.16515314938780928, 0.0, 0.0, 0.0, 0.0, 0.0, 0.662932866371622, 0.6905568008213746, 0.0, 0.0, 0.0, 0.0, 0.4845748090935882, 0.061923683856559844, 0.0, 0.028719251839850298, 0.0, 0.02009827057946138, 0.0, 0.0, 0.0, 0.11124419756806017, 0.4147463454400596, 0.0, 0.0, 0.34783853396429565, 0.0, 0.09260170356894369, 0.0, 0.0, 0.0, 1.1401462738363544, 0.915922599074042, 0.0, 0.0, 0.0, 0.0, 0.6274522680730893, 0.0, 0.3139030754242789, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3751134192842195, 0.0, 1.257728265907189, 0.0, 0.35074493350028346, 0.268137845429166, 0.0, 0.0, 0.0, 0.0, 0.0, 0.016899841379555174, 0.7155448975358032, 0.1680074523773585, 0.0, 0.0, 0.30581125296894957, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9366277987154731, 0.0, 0.0, 0.0, 0.0, 0.07522986257761975, 0.06328419096078892, 0.0, 0.02479071082883737, 0.0, 0.7915629916935427, 0.031935353301522654, 0.0, 0.0, 0.070458258165472, 0.0, 0.0, 0.0, 0.0, 0.052737602183104026, 0.0, 0.013647273418699125, 0.3169788666986562, 0.17235734856254364, 0.0, 0.0, 0.0, 0.0661528775144355, 0.0, 0.027308490724219276, 0.0, 0.0, 0.0, 0.7971915175033586, 0.0, 0.5343175730821937, 0.0, 0.8740381649643706, 0.04598025590229294, 0.029012248678093225, 0.0, 0.0, 0.11141095490761138, 0.0, 0.0, 0.13001430753376275, 0.0, 0.0, 0.0, 0.22549966134722088, 0.0, 0.0, 0.0, 0.3726692665495664, 0.3774382964295704, 0.20411971872540274, 0.06057654493015839, 0.0, 0.5744310538348768, 0.0, 0.0, 0.6232315714035893, 0.0, 0.5072896743166587, 0.0, 0.005553340050755054, 0.5689868928162961, 0.06836125145830099, 0.0, 0.0, 0.49734376521104756, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27904969776436467, 0.0, 0.7814242677772039, 0.5117851675292832, 0.0, 0.0, 0.04886194301383263, 0.0, 0.3067365939854962, 0.0, 0.0, 0.4115088709036164, 1.405104579225751, 0.42840174089528493, 0.48760195358213543, 0.0, 0.0, 0.663844265848651, 0.0, 0.38778436442248837, 0.7776635401136125, 0.15032072106029123, 0.18953081567758903, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7044650329571657, 0.7235946500790119, 0.12987194286479317, 0.19647866132545186, 0.45582545423087456, 0.0, 0.0, 0.0, 0.032958397990191235, 0.0, 0.0, 0.7570462349991403, 0.0941136312544236, 0.0, 0.1276645560961348, 0.0, 0.0, 0.0, 0.755417985546979, 0.8458204729185679, 0.12543050025210123, 0.006393660363144921, 0.0, 0.0, 0.28926738179087036, 0.0, 0.0, 0.4731345211962404, 0.0, 0.7203970460167203, 0.0, 0.0, 0.0, 0.4891311717243447, 0.0031333060836164625, 0.003950606766695812, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8250852706661534, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1940012409565178, 0.0, 0.7255195358366966, 0.0, 0.4862794311033925, 0.0, 0.7981182971725221, 0.0, 0.26385403496014914, 0.0, 0.5139863704027979, 0.35381636124647037, 0.06016159688024159, 0.0, 0.0, 0.0, 0.07675121814682248, 0.0, 0.0, 0.12553662505708466, 0.0, 0.301350309711505, 0.0, 0.0, 0.0, 0.12978101101826656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2180668401971053, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09272141980768678, 0.0, 0.3034931056908601, 0.0, 0.203416238280828, 0.0, 0.33274884560755447, 0.0, 0.12655518438173288, 0.0, 0.13637583261219158, 0.0, 0.0, 0.0, 0.0, 0.020115042222633606, 0.0, 0.11478942012015081, 0.0, 0.044967175485766994, 0.0, 0.27969782401606164, 0.1383242818414881, 0.0, 0.0, 0.18685369035983804, 0.0, 0.06810955828519266, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17579267922314348, 0.0, 0.0, 0.11999285025017485, 0.0, 0.0, 0.14209169595972287, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11399414163060874, 0.019825113051252268, 0.0, 0.049971986914216976, 0.07235420154739257, 0.0, 0.0, 0.08331368376199759, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07280640355864025, 0.0, 0.0, 0.35152520960031586, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13676901662991092, 0.0, 0.0, 0.0, 0.015204774707799058, 0.0, 0.0, 0.0, 0.0, 0.5304031136005922, 0.0, 0.0, 0.0, 0.32819195551919517, 0.1622165373359131, 0.0, 0.0, 0.0, 0.1321652778478459, 0.0, 0.0, 0.2161735452720934, 0.0, 0.27952564740678887, 0.0, 0.0, 0.0, 0.22348236021207268, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.375510190195534, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2500091160813631, 0.0, 0.2815132558946093, 0.0, 0.18868424509978618, 0.0, 0.30865021038590384, 0.0, 0.341236683480638, 0.0, 0.23483861551802387, 0.0, 0.0, 0.0, 0.12117745385937667, 0.0, 0.0, 0.3973467888918919, 0.0, 0.2920101397985984, 0.0, 0.12988448302264086, 0.0, 0.3517844506342411, 0.0, 0.0, 0.0, 0.6519761543079575, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4428070420734244, 0.0, 0.3964317892338393, 0.0, 0.0, 0.0, 0.3236724995283946, 0.0, 0.0567229736921611, 0.0, 0.0, 0.0, 0.25146743826064083, 0.0, 0.0, 0.011207888208677623, 0.08869787998517195, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0436070974131627, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05218480148875932, 0.0, 0.0, 0.0, 0.28668060177386556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16806127510824798, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1010038649276795, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24411150965510042, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3252831829639798, 0.0, 0.13696611429551586, 0.0, 0.08809099936621054, 0.0, 0.0, 0.0, 0.5834039633369968, 0.2573783852497724, 0.0, 0.34353142253711105, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8226681209013311, 0.43635481618924155, 0.0, 0.21222851603946533, 0.0, 0.6640973088333184, 0.0, 0.1716321278580885, 0.7312656094018032, 0.46618173092618587, 0.7638215749927391, 0.5281765059497923, 0.012259008816529623, 0.9144713112403178, 0.0, 0.0, 0.0, 0.0, 0.7953741970864907, 0.0, 0.0, 0.5850872742568098, 0.0, 0.0, 0.0, 0.7307808207285703, 0.0, 0.6199309753815017, 0.37291372178799176, 0.0, 0.0, 0.22356724549482568, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3221254739496775, 0.11781870844111127, 0.04460774210115785, 0.7133319766560491, 0.17115949268039302, 0.47397294440775345, 0.0, 0.10101149129956093, 0.11755718548933392, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.057090584067732354, 0.6447844891876003, 0.0, 0.0, 0.033829519264607456, 0.0, 0.1190337187097033, 0.30523421948716617, 0.0, 0.0, 0.0, 0.0, 0.6213057774307251, 0.842768502451811, 0.0, 0.3906048759812801, 0.7719833104847825, 0.41168363040706235, 0.1712307445975339, 0.0, 0.05992936357237096, 0.04890539039186202, 0.0, 0.0, 0.012380496199171342, 0.0, 0.2674194407541521, 0.0, 0.0014443996714777229, 0.0, 0.16387003646802972, 0.0, 0.0, 0.03594122433913304, 0.24159569520366886, 0.3747703785250739, 0.0, 0.054699683547073226, 0.0, 0.2873774296478163, 0.0, 0.0, 0.0, 0.14956132991470428, 0.0, 0.3888645476970781, 0.0, 0.0, 0.07542830239130101, 0.07080076609705026, 0.0, 0.0, 0.0, 0.0, 0.09852911382155678, 0.19548481725379033, 0.0, 0.0, 0.4350977845419587, 0.00557774494203208, 0.0, 0.09874991570897035, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6034262468294622, 0.2713368059843151, 0.6497013107648627, 0.0, 0.8007029601130917, 0.0, 0.0, 0.0, 0.0, 0.01616961592030159, 0.0, 0.0, 0.0, 0.0, 0.2502876057454169, 0.49212467358206446, 0.2134864810859512, 0.1765833209669342, 0.0, 0.0, 0.0, 0.5401972297237567, 0.03318857704329382, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12219566143679067, 0.0, 0.04829725298673487, 0.0, 0.0, 0.0, 0.0, 0.0, 1.2356793204214815, 0.02263120223723859, 0.7256596881722004, 0.3263003275955702, 0.7654157892976137, 0.08145618747845872, 0.6387218661983024, 0.0, 0.5276231408957645, 0.8184646008092085, 0.0, 0.0, 0.0, 0.6276063069977658, 0.0, 0.6132063830791735, 0.006204111701464058, 0.18851722870999638, 0.375149258411478, 0.7816851453263511, 0.0, 0.587776400734769, 0.16472858834087942, 1.1016458158754883, 0.1459604994495737, 0.0, 0.0, 0.0, 0.037075917094288376, 0.0, 0.2815459504132854, 0.2536212145780303, 0.559150690052304, 0.48027689889482117, 0.0, 0.21566088189458643, 0.058080618345779114, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008439821738835876, 0.0, 0.36408664087256903, 0.0, 0.16156000319694572, 0.22471190561828702, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10732980278519261, 0.0, 0.0, 0.12403718878006863, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27901056312251676, 0.4801492052284416, 0.0, 0.0, 0.10787548181472921, 0.0, 0.0, 0.0, 0.15654727928350437, 0.0, 0.13104284110293218, 0.13666096202593647, 0.0, 0.0, 0.0, 0.07276575816635268, 0.0, 0.0, 0.0, 0.0, 0.6100450928472326, 0.0, 0.0, 0.0, 0.4238237484103886, 0.9941317988293357, 0.0, 0.0, 0.0, 0.0, 0.3355479309040112, 0.0, 0.0, 0.0, 0.0, 0.5350029094771915, 0.0, 0.008586567333100323, 1.1385513331902584, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1850917274468032, 0.0, 0.0, 0.06716099014107918, 1.1525784735402484, 0.0, 0.0, 0.036572260841491885, 0.0, 0.26119964749940466, 0.0, 0.0, 0.8459335464772313, 0.0, 0.0, 0.0, 0.0, 0.38438887602945404, 0.0, 0.0, 0.0, 0.0, 0.7204933523373307, 0.0, 0.0, 0.16060697060474402, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7112792652633437, 0.0, 0.935521710131386, 0.26536974069831215, 0.2935825392525973, 0.0, 0.0, 0.13719141489981915, 0.0, 0.10324823792839577, 0.0, 0.0, 0.0, 0.7256165269576538, 0.0, 0.48634443939716193, 0.0, 0.7955635800994527, 0.1927019559074891, 0.0, 0.0, 0.7058981437597585, 0.0, 0.5236895266156559, 0.0, 0.08128104063747256, 0.0, 0.0, 0.0, 0.5731212091054763, 0.0, 0.0, 0.0419831484236368, 0.11625926299639212, 0.0, 0.0, 0.08927614896350113, 0.217346651106267, 0.13128361330254273, 0.0, 0.07219885291348893, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4218130442222412, 0.0, 0.0, 0.0, 0.0, 0.1699892215644571, 0.0, 0.14639742856012483, 0.0, 0.0, 0.04200062557179813, 0.0, 0.0, 0.0, 0.31146013043119736, 0.0, 0.0, 0.0, 0.24384030368566587, 0.9260558729858251, 0.4296955936776912, 0.0, 0.0, 0.0, 0.73790516731229, 0.0, 0.0, 0.0, 0.16295488074282302, 0.26550524353964333, 0.0, 0.0, 0.0, 0.31144107126852844, 0.0, 0.485858439126786, 0.0, 0.6914937323909329, 0.0, 0.0, 0.0, 0.0, 0.3162528337434342, 0.0, 0.0, 0.0, 0.0, 1.5785215576611167, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5161924043112004, 0.0, 0.0, 0.2568302026164213, 0.0, 0.3023415151909343, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5030068615133427, 0.0, 0.0, 0.0, 0.2741080207900236, 0.17120972783029909, 0.0, 0.0, 0.0, 0.0, 0.43685119598979993, 0.02712666041421048, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2451085199735546, 0.0, 0.1576437689621315, 0.0, 0.0, 0.0, 0.6857487349281931, 0.05917052173435364, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6537568461306704, 0.0, 0.0, 0.5395442735782994, 0.05374109131453472, 0.0, 0.5917732326059808, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0008206716541601089, 0.19818937147807536, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.535053682582317, 0.0, 0.3513819151899916, 0.04333888481337121, 0.5747915094439204, 0.19540689526232177, 0.01899860952318465, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06595709778063945, 0.0, 0.08799217533170228, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03735300199555871, 0.19147688509049948, 0.0, 0.0, 0.0, 0.2914125830050192, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04799459307428656, 0.0, 0.16480769798416883, 0.0, 0.0, 0.0, 0.04840048223798238, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.027156548216558336, 0.0, 0.047181418535814645, 0.0, 0.0, 0.0, 0.0, 0.35341760898781915, 0.5999981948389704, 0.024572219243726254, 0.0, 0.0, 0.08667332426569417, 0.4875808312926843, 0.06369622265280388, 0.0, 0.0, 0.0, 0.07133443039288194, 0.0, 0.0, 0.47894471690358564, 0.4793008357816607, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09658957720985865, 0.3016070141903076, 0.061398864173637636, 0.0, 0.0, 0.0, 0.07060273869520314, 0.35885594789448355, 0.0, 0.06446892769447045, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2497207855356876, 0.018509596151814908, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2926774045716465, 0.0, 0.013651758929637155, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03597721563910695, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07068090962707653, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03642909404914556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2749443358980585, 0.0, 0.0, 0.0, 0.0, 0.5096842842109697, 0.0, 0.0, 0.0, 0.028086239659725638, 0.7421154878137212, 0.0, 0.48123810905471315, 0.0, 0.3067030382176026, 0.6866619523091189, 0.0008295150087239233, 0.5016528107597976, 0.0, 0.08848804808651539, 1.3805931747462472, 0.0, 0.0, 1.04718815925786, 0.0, 0.0, 0.0, 0.42746548493362363, 0.0, 0.5817357352379013, 0.8450882691967682, 0.41665385220387907, 1.0915687546509307, 1.108964330219497, 0.0, 0.0, 0.0, 0.04066069749695377, 0.032733248007639555, 0.0, 0.0, 0.0, 0.07163077100441487, 0.6487063582321942, 0.0, 0.2995103130321618, 0.10283702762113958, 0.33384701220391544, 0.41258982728857174, 0.0, 0.5449670143554067, 0.0, 0.3217489265559145, 0.0, 0.0, 0.0, 0.2849908553676538, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.01610871320352385, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2570528176713379, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2969662795916102, 0.0, 0.12312876081315716, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09075655657480966, 0.0, 0.3633373647258237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06617087939273322, 0.0, 0.0, 0.0, 0.00923594008230594, 0.17805875048711786, 0.22450411347361834, 0.0, 0.0, 0.09502241267674551, 0.0, 0.024589605765570302, 0.0, 0.1826423790293924, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039040067948029694, 0.0, 0.06664139722445166, 0.0, 0.04466639301844483, 0.0, 0.22428735118617732, 0.08284705163804024, 0.05227416022819031, 0.0, 0.19522102914015915, 0.8685310451611696, 0.0, 0.0, 0.0, 0.0, 0.8702352191794189, 0.0, 0.0, 0.15684527219370442, 0.0, 0.9243788213991903, 0.22207735215974056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.40507055158794986, 0.30718446392066534, 0.0, 0.46812545232304087, 0.0, 0.5780009938921578, 0.18279458657604497, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02896217836710352, 0.0, 0.0, 0.40712998428742797, 0.7449999863100496, 0.0, 0.49933620201845186, 0.0, 0.8168155413547457, 0.11457346224809285, 0.0, 0.0, 0.0, 0.15332753334456128, 0.11864376215788304, 0.0, 0.0, 0.04572095120049149, 0.0, 0.0, 0.31683394463012315, 0.5003078767139268, 0.14059206617597214, 0.19554784897288408, 0.0, 0.43178409369310355, 0.0, 0.07560627618395319, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16352131380333873, 0.0, 0.34449708571742155, 0.0, 0.4618370375665847, 0.0, 0.0, 0.41783342102021986, 0.0, 0.0, 0.0, 0.02165252564332241, 0.0, 0.0, 0.0, 0.47140143149032104, 0.39181349979635294, 0.11892452733738064, 0.0, 0.5433598750764469, 0.0, 0.0, 0.0, 0.07266999506080335, 0.0, 0.6735755940113932, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0041630866962457744, 0.2109647750127205, 0.0, 0.0, 0.0, 0.3715024914369038, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1845463840294256, 0.0, 0.6075440706050301, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29101469974401967, 0.0, 0.0, 0.032739778024003775, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4875593392929034, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20371408580482323, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0439075644510851, 0.0, 0.5496827874572944, 0.40327797474842975, 0.37238046622077875, 0.0, 0.0, 0.17401376516444506, 0.0, 0.11278871866256229, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15394336215607962, 0.0, 0.0, 0.0]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.1619393094464903, 0.0, 0.0, 0.0, 0.0, 0.11373910752308043, 0.0, 0.32533429668145175, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5405512925681031, 0.0, 0.0, 0.5409817971066755, 0.6726532010052559, 0.0, 0.0, 0.0, 0.04498001780375231, 0.0, 0.7446527460595233, 0.0, 0.0, 0.0, 0.0648053115514859, 0.0, 0.20542126000594346, 0.0, 0.2489342378383824, 0.0, 0.0, 0.2446702787341799, 0.0, 0.0, 0.4075132486743765, 0.372693911014397, 0.0, 0.03990868671702989, 0.32865292999993995, 0.0, 0.0, 0.0, 0.037570880212435515, 0.0, 0.0, 0.2585440952996821, 0.0, 0.0, 0.5429032184680616, 0.0, 0.0, 0.0, 0.7310331654112876, 1.6974310666890076, 0.13434284643730737, 0.0, 0.15388431962676646, 0.0, 0.018799628425153446, 0.026448056346556916, 0.020943024178172204, 0.08671614507629592, 0.19272805440861934, 0.07015243227726202, 0.0, 0.1267665206913561, 0.1014023431949165, 0.494724963965631, 0.0, 0.6317423070706343, 0.0, 0.4351905463586081, 0.019451367524410516, 0.11392026534019284, 0.0, 0.7674183972620773, 0.0, 0.0, 0.009728790198518009, 0.0, 0.0, 0.03627546054320975, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0140288190005624, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4229718175600567, 0.0752980218883111, 0.013070459322559402, 0.0, 0.4793455258509991, 0.0, 0.0, 0.0, 0.0, 0.08811633730455204, 0.08467555208376226, 0.0, 0.0, 1.4824413586764027, 0.27442978968992093, 0.0, 0.0028104905637611507, 0.1480443868451215, 0.6744061467564826, 0.043998508948338316, 0.8697701045107844, 0.8469834954000914, 0.0, 0.02425613445444166, 0.0, 0.0, 0.0, 0.9679232213808633, 0.6774894982888419, 0.35310753741950685, 0.0, 0.2841919624705342, 0.0, 0.0, 0.7349602036514661, 0.0, 0.2186035505612502, 0.04416466424315345, 0.0, 0.0, 0.25133653271826356, 0.11160837067772013, 0.0, 0.14048007630402903, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.035048636482553235, 0.038653696504083, 0.10014641420794519, 0.0, 0.0837599459565703, 0.10942537757376403, 0.0, 0.0, 0.0, 0.08204362658289192, 0.0, 0.0, 0.011591138384550418, 0.0, 0.038004261053570694, 0.0066189468466051875, 0.06306237088337384, 0.0, 0.0, 0.03121664575636558, 0.0, 0.0, 0.02910081181829685, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08506408857544866, 0.0, 0.0, 0.0, 0.7712870388819855, 0.2285263236705729, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6966121466049721, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6540220401149287, 0.0, 0.0, 0.2336670223432043, 0.0, 0.0, 0.005339227289024509, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4930665741229495, 0.0, 0.029559863815954657, 0.0, 0.0, 0.10760363562562023, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15061269543615943, 0.6107211710602042, 0.0, 0.0, 0.733057860494869, 0.057362855000467054, 0.17650444882735677, 0.0, 0.0, 0.014677698725170102, 0.0, 0.17821555119599314, 0.0025555492556658746, 0.14808219427948163, 0.0, 0.11979690859781277, 0.0, 0.0, 0.13110894332781436, 0.04449679654819995, 0.0, 0.1133902344080122, 0.0, 0.0, 0.0017495044850376442, 0.013900993801975209, 0.03729472110086185, 0.19173933242455474, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1709634942172136, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13051636625786148, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4357713541613571, 0.0, 0.0, 0.0, 0.0, 0.07073267416682687, 0.0, 0.0, 0.0, 0.0, 0.06443354393704691, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.28238918313491895, 0.0, 0.0, 0.0, 0.28219752132848275, 0.0, 0.0, 0.0, 0.3045252869011713, 0.0, 0.0, 0.019083741024338748, 0.0, 0.06257051306836219, 0.7837995208867943, 0.05061887468267648, 0.0, 0.0, 0.05139533007879884, 0.0, 0.0, 0.04791180451081585, 0.0, 0.5281077501137272, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7571506519409951, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.026654196669850944, 0.0, 0.0, 0.0, 0.0, 0.23843473688023176, 0.0, 0.0, 0.6051386294410329, 0.0, 0.0, 0.0, 0.0, 0.04194764240896927, 0.13628497764809444, 0.0, 0.0, 0.0, 0.0, 0.06043639304510901, 0.04344269031549197, 0.0, 0.7296328391677986, 0.6312346675367022, 0.0, 0.0, 0.22817557354519388, 0.0, 0.05073205279897938, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1594527848545218, 0.1381227206057285, 0.0, 0.0, 0.0, 0.0, 0.4217049712314433, 0.0, 0.0, 0.31027130374464373, 0.0, 0.0, 0.08118863628632204, 0.8304208532182848, 0.983137215831116, 0.0, 0.24897028906526258, 0.14034260442091134, 0.0, 0.691731307052974, 0.7500207108166317, 0.833859795824118, 0.0, 0.05053828036951065, 0.8139843305766208, 0.0, 0.0, 1.3856822465181273, 1.0343729450047436, 0.0, 0.0, 1.09811525132565, 0.0, 0.0, 0.005748580563865145, 0.0, 0.0, 0.8634025361175751, 0.0, 0.14616020357939458, 0.7514377111323272, 0.0, 0.0, 0.1732108049991939, 0.0, 0.0, 0.0, 0.1879649588465491, 0.0, 0.0, 0.0, 0.00817965091901661, 0.0, 0.0, 0.0, 0.5779500058438248, 0.0, 0.0, 0.0, 0.005249336837927155, 0.0, 0.0, 0.0, 0.3064350538312218, 0.0, 0.001890320177282059, 0.45976772975798436, 0.40475012946470096, 0.3442380471075082, 0.017185108496187197, 0.288035784498987, 0.0, 0.0, 0.2827566402954316, 0.0, 0.0, 0.2635916697723135, 0.0, 0.0, 0.0, 0.3588181656747819, 0.0, 0.0, 0.0, 0.17570163169455902, 0.0, 0.2076868163288207, 0.0, 0.0, 0.0, 0.5097341557191223, 0.14587016095283192, 0.0, 0.4172405362928458, 0.0, 0.13951021052730417, 0.0, 0.6033798708626249, 0.0, 0.0, 0.0, 0.0, 0.4512081190066747, 1.1915177253624374, 0.0, 0.53626862172996, 0.26267190873847124, 0.024946529615964698, 0.630282563668714, 0.0, 0.7072072219187049, 0.2557442098535857, 0.0, 0.0, 0.0, 0.027439980552710016, 0.0, 0.2634523244708942, 0.750190928083991, 0.31925762502388877, 0.0, 0.0, 0.0, 0.17667054707398389, 1.689395274403252, 0.0, 0.5386556936239477, 0.21507940395745773, 0.30698899212442304, 0.11255638742238075, 0.12042909174810443, 0.1983506487023661, 0.0, 0.2156156778918424, 0.0, 0.6179686549930762, 0.0, 0.0, 0.0, 0.011162873807723371, 0.003307472295366656, 0.5417377310206691, 0.1038404263557644, 0.0, 0.0, 0.0, 0.010082100558503525, 0.5759566406752274, 0.5373731999014957, 0.24497595431253502, 0.3628321361534925, 0.4271139218413104, 0.0888079037091352, 0.013607634508588288, 0.5254304747208627, 0.0, 0.0, 0.0033818738704913948, 0.0, 0.3894178985059293, 7.727488918331624e-5, 0.4719056234120719, 0.0, 0.0, 0.7548965169480935, 0.0, 0.0, 0.0, 0.0, 0.04295271297559638, 0.3048341885265102, 0.0, 0.16015654700904233, 0.0, 0.03255288417829475, 0.0, 0.0, 0.0, 0.0, 0.16019347860889097, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3426629556463706, 0.0, 0.33591507158653605, 0.0, 0.0, 0.04025140372585128, 0.0, 0.5756230062735465, 0.0, 0.0, 0.0, 0.0, 0.0017523850398583757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32421546356710995, 0.0, 0.011282618188498251, 0.6937716630434633, 0.2529924781123921, 0.2596235239889639, 0.0, 0.043120476743740394, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2793513283874615, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7775441119273626, 0.14515455310675088, 0.0, 0.13510821830370037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44716225485327055, 0.0, 0.0, 0.0, 0.8291790553392753, 0.0, 0.0, 0.26334889102262177, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15479667093058366, 0.0, 0.0, 0.0, 0.36993623982653, 0.0, 0.0, 0.0, 0.0, 0.3623559014178924, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029233403628440607, 0.1427335193249464, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051251957334763225, 0.691166524717783, 0.29938181148714105, 0.5349464228115411, 0.06157899241792075, 0.0, 0.0, 0.2102727260204982, 0.0, 0.60145477594229, 0.0, 0.0, 0.03062034252430008, 0.1635016794080344, 0.7915679370358879, 0.0, 0.07317711878131836, 0.9809574403621903, 0.0, 0.0, 0.44926990137304107, 0.21608537407152922, 0.0, 0.05777727499408966, 0.039929965496851884, 0.0, 0.29915326656993935, 0.31099294960838475, 0.13414679708282617, 0.10949528327933863, 0.0, 0.10753728810972799, 0.0, 0.3797681313373244, 0.5019126906002389, 0.8077076191871431, 0.02575673641821252, 0.0, 0.0, 0.0, 0.0, 0.08748647908145589, 0.0, 0.0, 0.2775216739406583, 0.0, 0.0, 0.0, 0.0, 0.19491911889837882, 0.0, 0.626470449065492, 0.0, 0.1610321350235478, 0.0, 0.6250193931691284, 0.18518836301307043, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5645059221744597, 0.0, 0.30319370972913895, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5299926460898494, 0.0, 0.0, 0.18935417444624433, 0.0, 0.3520383786660897, 0.004326690884129795, 0.4266082560323472, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04753484047689839, 0.0, 0.0, 0.0, 0.2507515224933452, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.011126595947621928, 0.0, 0.0, 0.0, 0.0, 0.07883374294223121, 0.0, 0.0, 0.06158319631443835, 0.0, 0.0, 0.0, 0.0, 0.18599923723367912, 0.0, 0.0, 0.0, 0.0, 0.07225540391146344, 0.0, 0.17222213577613948, 0.0, 0.07109258970520838, 0.30622054435699597, 0.0, 0.0, 0.021600783197372013, 0.0, 0.0, 0.0, 0.0, 0.08747962563792125, 0.0, 0.0, 0.6661127453751955, 0.20906059268184987, 0.0, 0.14050781836020196, 0.0, 0.0, 0.38775347026983786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.016520556870922822, 0.08066242485362363, 0.0, 0.0, 0.008507877750707929, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19963971549104562, 0.0, 0.0, 0.0, 0.0, 0.1517009343251733, 0.5312750255062002, 0.0, 0.0, 0.1147421120346578, 0.0, 0.0, 0.0, 0.0, 0.35500190337758014, 0.0, 0.045597713545061126, 0.0, 0.5209586802357347, 0.021862434298379425, 0.0, 0.0, 0.0, 1.0378291015579089, 0.0, 0.0, 0.0, 0.08585205631703301, 0.0483968201096062, 0.0, 0.025471357792783925, 0.0, 0.22080976260076224, 1.166729214929465, 0.0, 0.677323308302816, 0.18535083381370177, 0.0, 0.0, 0.8704056171514745, 0.0, 0.8935663748182991, 0.015577429284835683, 0.13855228421849528, 0.0, 0.0, 0.1744139155099896, 0.15132491229634354, 0.0, 0.02513332482807071, 0.0, 0.17525145412541498, 0.0, 0.0, 0.0, 0.0, 0.02694350993020697, 0.162823516985682, 0.0, 0.0, 0.6457319525792288, 0.07238426196350153, 0.05745965468198706, 0.0, 0.0, 0.46532195926191927, 0.08460519940877058, 0.22064747420300995, 0.07874956387307873, 0.02873453791303352, 0.04102153493571428, 0.0, 0.0, 0.0, 0.0, 0.49780157894039, 0.0, 0.0, 0.301057479311315, 0.0, 0.0, 0.0016911663416444849, 0.0, 0.2606342751929628, 0.0, 0.0, 0.0, 0.4832976838898257, 0.2663912296088851, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16074512474220395, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0418820657562929, 0.0, 0.04820286684177523, 0.0, 0.1580443847885599, 0.0, 0.1278562139832909, 0.0, 0.0, 0.12981743196566292, 0.0, 0.0, 0.12101853247948517, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13204408757174144, 0.0, 0.0, 0.0, 0.0, 0.0, 0.024933507022188058, 0.0, 0.0, 0.0, 0.22607531711845172, 0.06698435016959209, 0.0, 0.0, 0.38137808720681626, 0.04452538198512276, 0.13682477248336336, 0.20418703285947667, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19170326048233127, 0.0, 0.0, 0.0684911628398921, 0.0, 0.0, 0.0015650042612973304, 0.0, 0.0, 0.0, 0.0, 0.3663518735291969, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27889642218469224, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09171777647431381, 0.0, 0.031206336760942092, 0.04657190125204274, 0.0, 0.21168995340334643, 0.0, 0.0, 0.2715554536912592, 0.0, 0.0, 0.0476752915188213, 0.0, 0.0, 0.0, 0.0, 0.36410628949886475, 0.021118814521733104, 0.0, 0.25524059151149175, 0.22081888489064375, 0.0, 0.0008303397905156581, 0.0, 0.0, 0.0, 0.0, 0.07229346662213895, 0.0, 0.0, 0.820696989198259, 0.541933064129384, 0.0, 0.6976372073851678, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6559268620540256, 0.0, 0.0, 0.00593765430305966, 0.0, 0.03489392321475427, 0.14772313877299487, 0.20501704987333305, 0.04206924698360076, 0.15444861072003166, 0.0, 0.8226903093195739, 0.0, 0.15641473972332146, 0.790869654262485, 0.6842130952365706, 0.03633117370294634, 0.0, 0.18980663716791113, 0.0, 0.0, 0.038558748063994376, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.40339029653363123, 0.0, 0.0, 0.0, 0.0, 0.43960663038458647, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08136147927839638, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16190486570077617, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2992216626110986, 0.0, 0.0, 0.0, 0.17882109545054858, 0.0, 0.0796930212837386, 0.0, 0.620119218817229, 0.06539128749913568, 0.09575080072237417, 0.0, 0.0, 0.0, 0.31047674992819635, 0.0, 0.0, 0.3258789812741783, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03198183278340688, 0.0, 0.0, 0.05159425685765124, 0.22600144774467618, 0.0, 0.17025710615993656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27035127710875223, 0.6595462305837041, 0.0, 0.0, 0.0, 0.5146584726996519, 0.0, 0.4337121439657544, 0.0, 0.0, 0.006091807521893999, 0.0, 0.0, 0.0, 0.0, 0.012888743397998564, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.336652909816104, 0.0, 0.0, 0.33692102610329455, 0.41892538326879675, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4637663755690806, 0.004049689433712162, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2537974154183676, 0.0, 0.0, 0.0, 0.01941920682276314, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2625647477298457, 0.0, 0.0, 0.0, 0.28333914754514417, 0.0, 0.009497623447163565, 0.0, 0.0, 0.015321911880061054, 0.7292697770823527, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4913667474115824, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8188140725936274, 0.23538609489199455, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004251660745273512, 0.2915534718195699, 0.8234990979680312, 0.15784851698528854, 0.31856705993041073, 0.0, 0.0, 0.0, 0.0, 0.8168645454274115, 0.2887084121601819, 0.0, 0.0, 0.0, 0.020685054965967595, 0.784321469374656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5719438351419199, 0.0, 0.0, 0.0, 0.0, 0.23810583942791758, 0.0, 0.0, 0.13190421809771516, 0.2355353163505223, 0.21414939137204708, 0.0, 0.13824109301205073, 0.0, 0.0, 0.4059138329547745, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3839879400284894, 0.7642606292584734, 0.17337082964447778, 0.43085204172578645, 0.5071846921436626, 0.0, 0.0, 0.0, 0.0, 0.0064224562854441995, 0.45947466920879537, 0.0, 0.048013668076727356, 0.008826989297459209, 0.0, 0.10254269883954115, 0.0, 0.449628221574638, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3130138916400048, 0.0, 0.0, 0.0, 0.0, 0.2198473045188841, 0.0, 0.7854658854954149, 0.0, 0.0, 0.0, 0.27482511606730614, 0.0, 0.0, 0.0, 0.10051459327881847, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03619595572786272, 0.2919384825550201, 0.0, 0.27020767480793234, 0.32906141180848986, 0.4014761358710767, 0.0, 0.0, 0.22194819820968317, 0.0, 0.397060529897469, 0.20690476484626705, 0.4811671410392035, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10602724763101144, 0.0, 0.9180290974697203, 0.32581440887276836, 0.11505868376784396, 0.5289668394733107, 0.0, 0.5268986674479775, 0.2483018891728648, 0.0, 0.0, 0.014289568621041568, 0.0, 0.0, 0.0, 0.0, 1.010481071564644, 0.06469540823739603, 0.19880648111582097, 0.580377081863938, 0.3701240890884847, 0.00033976241032705203, 0.5120222312956857, 0.54263963710411, 0.24775903677393285, 0.13070835967347635, 0.9915175816548458, 0.2899273698579516, 0.0, 0.0, 1.1703372022756595, 0.02329003991510475, 0.11859776061629382, 0.69977713771051, 0.6054053013517017, 0.707408250006164, 0.0, 0.2196427786747048, 0.5323095043727097, 0.027197936547729912, 0.0, 0.0, 0.6744130710240275, 0.0, 0.0, 0.009472629890788111, 0.0, 0.0, 0.0, 0.0, 0.11454144616825819, 0.0, 0.0, 0.0, 1.3982199856641506, 0.2538753491205552, 0.20096391172061562, 0.0, 0.0, 0.04239072289345119, 0.0, 0.773883065549572, 0.0, 0.0, 0.41373255777296347, 0.0, 0.0, 0.0, 0.0, 0.7328658795072667, 0.0, 0.0, 0.8143261048934798, 0.0, 0.0, 0.005931475071506779, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5479468542821576, 0.0, 0.32433512795769415, 0.7968405650512658, 0.0, 0.0, 0.2823749754870304, 0.0, 0.08888138290002096, 0.0, 0.0, 0.0, 0.17925820791427197, 0.2000876096746871, 0.0, 0.0, 0.40815111826084144, 0.16385977895936904, 0.06986036185280928, 0.0, 0.0, 0.0, 0.0, 0.05375441115395932, 0.0, 0.1762464226118615, 0.0, 0.3587964347388992, 0.0, 0.8015475518237312, 0.175514484083294, 0.0, 0.0, 0.13495628742382593, 0.0, 0.3105505922199702, 0.7248528773530782, 0.0, 0.18705292898123585, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1748071953278316, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7043431257504623, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13971141189132677, 0.0, 0.0, 0.0, 0.0, 0.0, 0.031464801155366616, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16845401890236414, 0.14573633601571054, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13998624971109908, 0.0, 0.07426203609200491, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2049851695927226, 0.0, 0.0, 0.17338949919280155, 0.0, 0.0, 0.18945472552918335, 0.0, 0.0, 0.0, 0.0, 0.0, 0.036320374032721404, 0.15648907735824633, 0.0, 0.05859334953381536, 0.0, 0.0, 0.0, 0.0, 0.5224897007715829, 0.0, 0.0, 0.0, 0.0, 0.08480845151311803, 0.0, 0.0, 0.0, 0.0, 0.07725579657733653, 0.0, 0.14447765770967222, 0.0, 0.0, 0.0, 0.15678431253622274, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.255601945951803, 0.0, 0.0, 0.2867970808516741, 0.3376079838842544, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29929546323980694, 0.0, 0.0, 0.0]), 42), 42)),) julia> @finch_code begin Ct .= 0 for j = _ @@ -1015,7 +1015,7 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.24622058278177836, 0.0, 0.0, 0.1261597862603059, 0.07342085928314178, 0.12871077894157168, 0.0, 0.0, 0.8034179790657067, 0.0, 0.0, 0.056025142012607894, 1.0596276779513034, 0.0, 0.12141212330168466, 0.0, 0.5574009533856183, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3327944495595785, 0.0, 0.8694342868598712, 0.0, 0.7416396915765561, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7569986463219165, 0.05683836078786318, 0.0, 0.0, 0.8725529080345216, 0.0, 0.2047777547094641, 0.5614660149749067, 0.0, 0.0, 0.36223551246779223, 0.0, 0.0, 0.0, 0.22107392894943306, 0.0, 0.0, 0.0, 0.3259321271119929, 0.5055955427859341, 0.27515457195781157, 0.4169876847813729, 0.018631329176858533, 0.3876953885710935, 0.0, 0.021531556327917045, 0.0, 0.0, 0.28223766305057085, 0.48287552686851865, 0.0, 0.0, 0.10175887870070799, 0.0, 0.0, 0.0, 0.06032870137556734, 0.018726053338837593, 0.045366945649236726, 0.0, 0.0, 0.0, 0.5790914418316278, 0.6815353846022115, 0.0, 0.1332216207413034, 0.0, 0.04017082185996856, 0.0, 0.0, 0.0, 0.0, 0.03484741576880692, 0.893850322287328, 0.4479341395605485, 0.5025126461241762, 0.1987665376735214, 0.31067608319719825, 0.0, 0.0, 0.0, 0.46442597522784795, 0.0, 0.0, 0.4431570212945692, 0.0, 0.0, 0.5121406140989466, 0.0, 0.49477960883115907, 0.0, 0.0, 0.0, 0.0, 0.47025922462023484, 0.3616621631765011, 0.5907253850051586, 0.0, 0.0, 0.44541009068477694, 0.03445733103321199, 0.0, 0.02309502433018302, 0.0, 0.03777890472311954, 0.16345317623186756, 0.16813336048226513, 0.0, 0.0, 0.09235605661534649, 0.0, 0.0, 0.01896246145159963, 0.02753978144349941, 0.0, 0.0, 0.0, 0.30135789429977294, 0.6764584765695312, 0.0, 0.0, 0.3151319553463997, 0.0, 0.04554105431298512, 0.0, 0.08378021558986462, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09849622821166114, 0.0, 0.25488776315346307, 0.0, 0.2781851808227525, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2839462446541717, 0.00854309647598918, 0.0, 0.0, 0.3272900456325508, 0.10375527349591217, 0.8492672297194694, 0.0, 0.5876718077641173, 0.03093892983747342, 0.0, 0.0, 0.0, 0.3385535490482335, 0.0, 0.0, 0.0, 0.29218416128587404, 0.0, 0.6966394562456512, 0.0, 0.0, 0.0, 0.522006486105503, 0.0, 0.0, 0.0, 0.11065330711314218, 0.0, 0.23311787887979893, 0.0, 0.31252070060750486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06134998798063221, 0.0, 0.0, 0.3657519298489218, 0.31899283438369924, 0.0, 0.0, 0.0, 0.3676864240590821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0010478172394749591, 0.5287716819761857, 0.0, 0.3903081303690744, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0017717866111426558, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5892681933608603, 0.002977075804572329, 0.0, 0.0, 0.0, 0.0, 0.43072916849878135, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.045384364903179854, 0.0, 0.0, 0.0018618199412216315, 0.0, 0.17111256306326456, 0.2672837889083413, 0.0, 0.0, 0.19576072012760673, 0.5948736598005219, 0.08413627091493711, 0.7573648130796338, 0.0, 0.0, 0.0, 0.0, 0.0, 0.33101786250771764, 0.16289357736810944, 0.16515314938780928, 0.0, 0.0, 0.0, 0.0, 0.0, 0.662932866371622, 0.6905568008213746, 0.0, 0.0, 0.0, 0.0, 0.4845748090935882, 0.061923683856559844, 0.0, 0.028719251839850298, 0.0, 0.02009827057946138, 0.0, 0.0, 0.0, 0.11124419756806017, 0.4147463454400596, 0.0, 0.0, 0.34783853396429565, 0.0, 0.09260170356894369, 0.0, 0.0, 0.0, 1.1401462738363544, 0.915922599074042, 0.0, 0.0, 0.0, 0.0, 0.6274522680730893, 0.0, 0.3139030754242789, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3751134192842195, 0.0, 1.257728265907189, 0.0, 0.35074493350028346, 0.268137845429166, 0.0, 0.0, 0.0, 0.0, 0.0, 0.016899841379555174, 0.7155448975358032, 0.1680074523773585, 0.0, 0.0, 0.30581125296894957, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9366277987154731, 0.0, 0.0, 0.0, 0.0, 0.07522986257761975, 0.06328419096078892, 0.0, 0.02479071082883737, 0.0, 0.7915629916935427, 0.031935353301522654, 0.0, 0.0, 0.070458258165472, 0.0, 0.0, 0.0, 0.0, 0.052737602183104026, 0.0, 0.013647273418699125, 0.3169788666986562, 0.17235734856254364, 0.0, 0.0, 0.0, 0.0661528775144355, 0.0, 0.027308490724219276, 0.0, 0.0, 0.0, 0.7971915175033586, 0.0, 0.5343175730821937, 0.0, 0.8740381649643706, 0.04598025590229294, 0.029012248678093225, 0.0, 0.0, 0.11141095490761138, 0.0, 0.0, 0.13001430753376275, 0.0, 0.0, 0.0, 0.22549966134722088, 0.0, 0.0, 0.0, 0.3726692665495664, 0.3774382964295704, 0.20411971872540274, 0.06057654493015839, 0.0, 0.5744310538348768, 0.0, 0.0, 0.6232315714035893, 0.0, 0.5072896743166587, 0.0, 0.005553340050755054, 0.5689868928162961, 0.06836125145830099, 0.0, 0.0, 0.49734376521104756, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27904969776436467, 0.0, 0.7814242677772039, 0.5117851675292832, 0.0, 0.0, 0.04886194301383263, 0.0, 0.3067365939854962, 0.0, 0.0, 0.4115088709036164, 1.405104579225751, 0.42840174089528493, 0.48760195358213543, 0.0, 0.0, 0.663844265848651, 0.0, 0.38778436442248837, 0.7776635401136125, 0.15032072106029123, 0.18953081567758903, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7044650329571657, 0.7235946500790119, 0.12987194286479317, 0.19647866132545186, 0.45582545423087456, 0.0, 0.0, 0.0, 0.032958397990191235, 0.0, 0.0, 0.7570462349991403, 0.0941136312544236, 0.0, 0.1276645560961348, 0.0, 0.0, 0.0, 0.755417985546979, 0.8458204729185679, 0.12543050025210123, 0.006393660363144921, 0.0, 0.0, 0.28926738179087036, 0.0, 0.0, 0.4731345211962404, 0.0, 0.7203970460167203, 0.0, 0.0, 0.0, 0.4891311717243447, 0.0031333060836164625, 0.003950606766695812, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8250852706661534, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1940012409565178, 0.0, 0.7255195358366966, 0.0, 0.4862794311033925, 0.0, 0.7981182971725221, 0.0, 0.26385403496014914, 0.0, 0.5139863704027979, 0.35381636124647037, 0.06016159688024159, 0.0, 0.0, 0.0, 0.07675121814682248, 0.0, 0.0, 0.12553662505708466, 0.0, 0.301350309711505, 0.0, 0.0, 0.0, 0.12978101101826656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2180668401971053, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09272141980768678, 0.0, 0.3034931056908601, 0.0, 0.203416238280828, 0.0, 0.33274884560755447, 0.0, 0.12655518438173288, 0.0, 0.13637583261219158, 0.0, 0.0, 0.0, 0.0, 0.020115042222633606, 0.0, 0.11478942012015081, 0.0, 0.044967175485766994, 0.0, 0.27969782401606164, 0.1383242818414881, 0.0, 0.0, 0.18685369035983804, 0.0, 0.06810955828519266, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17579267922314348, 0.0, 0.0, 0.11999285025017485, 0.0, 0.0, 0.14209169595972287, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11399414163060874, 0.019825113051252268, 0.0, 0.049971986914216976, 0.07235420154739257, 0.0, 0.0, 0.08331368376199759, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07280640355864025, 0.0, 0.0, 0.35152520960031586, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13676901662991092, 0.0, 0.0, 0.0, 0.015204774707799058, 0.0, 0.0, 0.0, 0.0, 0.5304031136005922, 0.0, 0.0, 0.0, 0.32819195551919517, 0.1622165373359131, 0.0, 0.0, 0.0, 0.1321652778478459, 0.0, 0.0, 0.2161735452720934, 0.0, 0.27952564740678887, 0.0, 0.0, 0.0, 0.22348236021207268, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.375510190195534, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2500091160813631, 0.0, 0.2815132558946093, 0.0, 0.18868424509978618, 0.0, 0.30865021038590384, 0.0, 0.341236683480638, 0.0, 0.23483861551802387, 0.0, 0.0, 0.0, 0.12117745385937667, 0.0, 0.0, 0.3973467888918919, 0.0, 0.2920101397985984, 0.0, 0.12988448302264086, 0.0, 0.3517844506342411, 0.0, 0.0, 0.0, 0.6519761543079575, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4428070420734244, 0.0, 0.3964317892338393, 0.0, 0.0, 0.0, 0.3236724995283946, 0.0, 0.0567229736921611, 0.0, 0.0, 0.0, 0.25146743826064083, 0.0, 0.0, 0.011207888208677623, 0.08869787998517195, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0436070974131627, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05218480148875932, 0.0, 0.0, 0.0, 0.28668060177386556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16806127510824798, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1010038649276795, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24411150965510042, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3252831829639798, 0.0, 0.13696611429551586, 0.0, 0.08809099936621054, 0.0, 0.0, 0.0, 0.5834039633369968, 0.2573783852497724, 0.0, 0.34353142253711105, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8226681209013311, 0.43635481618924155, 0.0, 0.21222851603946533, 0.0, 0.6640973088333184, 0.0, 0.1716321278580885, 0.7312656094018032, 0.46618173092618587, 0.7638215749927391, 0.5281765059497923, 0.012259008816529623, 0.9144713112403178, 0.0, 0.0, 0.0, 0.0, 0.7953741970864907, 0.0, 0.0, 0.5850872742568098, 0.0, 0.0, 0.0, 0.7307808207285703, 0.0, 0.6199309753815017, 0.37291372178799176, 0.0, 0.0, 0.22356724549482568, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3221254739496775, 0.11781870844111127, 0.04460774210115785, 0.7133319766560491, 0.17115949268039302, 0.47397294440775345, 0.0, 0.10101149129956093, 0.11755718548933392, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.057090584067732354, 0.6447844891876003, 0.0, 0.0, 0.033829519264607456, 0.0, 0.1190337187097033, 0.30523421948716617, 0.0, 0.0, 0.0, 0.0, 0.6213057774307251, 0.842768502451811, 0.0, 0.3906048759812801, 0.7719833104847825, 0.41168363040706235, 0.1712307445975339, 0.0, 0.05992936357237096, 0.04890539039186202, 0.0, 0.0, 0.012380496199171342, 0.0, 0.2674194407541521, 0.0, 0.0014443996714777229, 0.0, 0.16387003646802972, 0.0, 0.0, 0.03594122433913304, 0.24159569520366886, 0.3747703785250739, 0.0, 0.054699683547073226, 0.0, 0.2873774296478163, 0.0, 0.0, 0.0, 0.14956132991470428, 0.0, 0.3888645476970781, 0.0, 0.0, 0.07542830239130101, 0.07080076609705026, 0.0, 0.0, 0.0, 0.0, 0.09852911382155678, 0.19548481725379033, 0.0, 0.0, 0.4350977845419587, 0.00557774494203208, 0.0, 0.09874991570897035, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6034262468294622, 0.2713368059843151, 0.6497013107648627, 0.0, 0.8007029601130917, 0.0, 0.0, 0.0, 0.0, 0.01616961592030159, 0.0, 0.0, 0.0, 0.0, 0.2502876057454169, 0.49212467358206446, 0.2134864810859512, 0.1765833209669342, 0.0, 0.0, 0.0, 0.5401972297237567, 0.03318857704329382, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12219566143679067, 0.0, 0.04829725298673487, 0.0, 0.0, 0.0, 0.0, 0.0, 1.2356793204214815, 0.02263120223723859, 0.7256596881722004, 0.3263003275955702, 0.7654157892976137, 0.08145618747845872, 0.6387218661983024, 0.0, 0.5276231408957645, 0.8184646008092085, 0.0, 0.0, 0.0, 0.6276063069977658, 0.0, 0.6132063830791735, 0.006204111701464058, 0.18851722870999638, 0.375149258411478, 0.7816851453263511, 0.0, 0.587776400734769, 0.16472858834087942, 1.1016458158754883, 0.1459604994495737, 0.0, 0.0, 0.0, 0.037075917094288376, 0.0, 0.2815459504132854, 0.2536212145780303, 0.559150690052304, 0.48027689889482117, 0.0, 0.21566088189458643, 0.058080618345779114, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008439821738835876, 0.0, 0.36408664087256903, 0.0, 0.16156000319694572, 0.22471190561828702, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10732980278519261, 0.0, 0.0, 0.12403718878006863, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27901056312251676, 0.4801492052284416, 0.0, 0.0, 0.10787548181472921, 0.0, 0.0, 0.0, 0.15654727928350437, 0.0, 0.13104284110293218, 0.13666096202593647, 0.0, 0.0, 0.0, 0.07276575816635268, 0.0, 0.0, 0.0, 0.0, 0.6100450928472326, 0.0, 0.0, 0.0, 0.4238237484103886, 0.9941317988293357, 0.0, 0.0, 0.0, 0.0, 0.3355479309040112, 0.0, 0.0, 0.0, 0.0, 0.5350029094771915, 0.0, 0.008586567333100323, 1.1385513331902584, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1850917274468032, 0.0, 0.0, 0.06716099014107918, 1.1525784735402484, 0.0, 0.0, 0.036572260841491885, 0.0, 0.26119964749940466, 0.0, 0.0, 0.8459335464772313, 0.0, 0.0, 0.0, 0.0, 0.38438887602945404, 0.0, 0.0, 0.0, 0.0, 0.7204933523373307, 0.0, 0.0, 0.16060697060474402, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7112792652633437, 0.0, 0.935521710131386, 0.26536974069831215, 0.2935825392525973, 0.0, 0.0, 0.13719141489981915, 0.0, 0.10324823792839577, 0.0, 0.0, 0.0, 0.7256165269576538, 0.0, 0.48634443939716193, 0.0, 0.7955635800994527, 0.1927019559074891, 0.0, 0.0, 0.7058981437597585, 0.0, 0.5236895266156559, 0.0, 0.08128104063747256, 0.0, 0.0, 0.0, 0.5731212091054763, 0.0, 0.0, 0.0419831484236368, 0.11625926299639212, 0.0, 0.0, 0.08927614896350113, 0.217346651106267, 0.13128361330254273, 0.0, 0.07219885291348893, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4218130442222412, 0.0, 0.0, 0.0, 0.0, 0.1699892215644571, 0.0, 0.14639742856012483, 0.0, 0.0, 0.04200062557179813, 0.0, 0.0, 0.0, 0.31146013043119736, 0.0, 0.0, 0.0, 0.24384030368566587, 0.9260558729858251, 0.4296955936776912, 0.0, 0.0, 0.0, 0.73790516731229, 0.0, 0.0, 0.0, 0.16295488074282302, 0.26550524353964333, 0.0, 0.0, 0.0, 0.31144107126852844, 0.0, 0.485858439126786, 0.0, 0.6914937323909329, 0.0, 0.0, 0.0, 0.0, 0.3162528337434342, 0.0, 0.0, 0.0, 0.0, 1.5785215576611167, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5161924043112004, 0.0, 0.0, 0.2568302026164213, 0.0, 0.3023415151909343, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5030068615133427, 0.0, 0.0, 0.0, 0.2741080207900236, 0.17120972783029909, 0.0, 0.0, 0.0, 0.0, 0.43685119598979993, 0.02712666041421048, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2451085199735546, 0.0, 0.1576437689621315, 0.0, 0.0, 0.0, 0.6857487349281931, 0.05917052173435364, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6537568461306704, 0.0, 0.0, 0.5395442735782994, 0.05374109131453472, 0.0, 0.5917732326059808, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0008206716541601089, 0.19818937147807536, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.535053682582317, 0.0, 0.3513819151899916, 0.04333888481337121, 0.5747915094439204, 0.19540689526232177, 0.01899860952318465, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06595709778063945, 0.0, 0.08799217533170228, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03735300199555871, 0.19147688509049948, 0.0, 0.0, 0.0, 0.2914125830050192, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04799459307428656, 0.0, 0.16480769798416883, 0.0, 0.0, 0.0, 0.04840048223798238, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.027156548216558336, 0.0, 0.047181418535814645, 0.0, 0.0, 0.0, 0.0, 0.35341760898781915, 0.5999981948389704, 0.024572219243726254, 0.0, 0.0, 0.08667332426569417, 0.4875808312926843, 0.06369622265280388, 0.0, 0.0, 0.0, 0.07133443039288194, 0.0, 0.0, 0.47894471690358564, 0.4793008357816607, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09658957720985865, 0.3016070141903076, 0.061398864173637636, 0.0, 0.0, 0.0, 0.07060273869520314, 0.35885594789448355, 0.0, 0.06446892769447045, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2497207855356876, 0.018509596151814908, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2926774045716465, 0.0, 0.013651758929637155, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03597721563910695, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07068090962707653, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03642909404914556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2749443358980585, 0.0, 0.0, 0.0, 0.0, 0.5096842842109697, 0.0, 0.0, 0.0, 0.028086239659725638, 0.7421154878137212, 0.0, 0.48123810905471315, 0.0, 0.3067030382176026, 0.6866619523091189, 0.0008295150087239233, 0.5016528107597976, 0.0, 0.08848804808651539, 1.3805931747462472, 0.0, 0.0, 1.04718815925786, 0.0, 0.0, 0.0, 0.42746548493362363, 0.0, 0.5817357352379013, 0.8450882691967682, 0.41665385220387907, 1.0915687546509307, 1.108964330219497, 0.0, 0.0, 0.0, 0.04066069749695377, 0.032733248007639555, 0.0, 0.0, 0.0, 0.07163077100441487, 0.6487063582321942, 0.0, 0.2995103130321618, 0.10283702762113958, 0.33384701220391544, 0.41258982728857174, 0.0, 0.5449670143554067, 0.0, 0.3217489265559145, 0.0, 0.0, 0.0, 0.2849908553676538, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.01610871320352385, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2570528176713379, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2969662795916102, 0.0, 0.12312876081315716, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09075655657480966, 0.0, 0.3633373647258237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06617087939273322, 0.0, 0.0, 0.0, 0.00923594008230594, 0.17805875048711786, 0.22450411347361834, 0.0, 0.0, 0.09502241267674551, 0.0, 0.024589605765570302, 0.0, 0.1826423790293924, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039040067948029694, 0.0, 0.06664139722445166, 0.0, 0.04466639301844483, 0.0, 0.22428735118617732, 0.08284705163804024, 0.05227416022819031, 0.0, 0.19522102914015915, 0.8685310451611696, 0.0, 0.0, 0.0, 0.0, 0.8702352191794189, 0.0, 0.0, 0.15684527219370442, 0.0, 0.9243788213991903, 0.22207735215974056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.40507055158794986, 0.30718446392066534, 0.0, 0.46812545232304087, 0.0, 0.5780009938921578, 0.18279458657604497, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02896217836710352, 0.0, 0.0, 0.40712998428742797, 0.7449999863100496, 0.0, 0.49933620201845186, 0.0, 0.8168155413547457, 0.11457346224809285, 0.0, 0.0, 0.0, 0.15332753334456128, 0.11864376215788304, 0.0, 0.0, 0.04572095120049149, 0.0, 0.0, 0.31683394463012315, 0.5003078767139268, 0.14059206617597214, 0.19554784897288408, 0.0, 0.43178409369310355, 0.0, 0.07560627618395319, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16352131380333873, 0.0, 0.34449708571742155, 0.0, 0.4618370375665847, 0.0, 0.0, 0.41783342102021986, 0.0, 0.0, 0.0, 0.02165252564332241, 0.0, 0.0, 0.0, 0.47140143149032104, 0.39181349979635294, 0.11892452733738064, 0.0, 0.5433598750764469, 0.0, 0.0, 0.0, 0.07266999506080335, 0.0, 0.6735755940113932, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0041630866962457744, 0.2109647750127205, 0.0, 0.0, 0.0, 0.3715024914369038, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1845463840294256, 0.0, 0.6075440706050301, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29101469974401967, 0.0, 0.0, 0.032739778024003775, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4875593392929034, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20371408580482323, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0439075644510851, 0.0, 0.5496827874572944, 0.40327797474842975, 0.37238046622077875, 0.0, 0.0, 0.17401376516444506, 0.0, 0.11278871866256229, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15394336215607962, 0.0, 0.0, 0.0]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.1619393094464903, 0.0, 0.0, 0.0, 0.0, 0.11373910752308043, 0.0, 0.32533429668145175, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5405512925681031, 0.0, 0.0, 0.5409817971066755, 0.6726532010052559, 0.0, 0.0, 0.0, 0.04498001780375231, 0.0, 0.7446527460595233, 0.0, 0.0, 0.0, 0.0648053115514859, 0.0, 0.20542126000594346, 0.0, 0.2489342378383824, 0.0, 0.0, 0.2446702787341799, 0.0, 0.0, 0.4075132486743765, 0.372693911014397, 0.0, 0.03990868671702989, 0.32865292999993995, 0.0, 0.0, 0.0, 0.037570880212435515, 0.0, 0.0, 0.2585440952996821, 0.0, 0.0, 0.5429032184680616, 0.0, 0.0, 0.0, 0.7310331654112876, 1.6974310666890076, 0.13434284643730737, 0.0, 0.15388431962676646, 0.0, 0.018799628425153446, 0.026448056346556916, 0.020943024178172204, 0.08671614507629592, 0.19272805440861934, 0.07015243227726202, 0.0, 0.1267665206913561, 0.1014023431949165, 0.494724963965631, 0.0, 0.6317423070706343, 0.0, 0.4351905463586081, 0.019451367524410516, 0.11392026534019284, 0.0, 0.7674183972620773, 0.0, 0.0, 0.009728790198518009, 0.0, 0.0, 0.03627546054320975, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0140288190005624, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4229718175600567, 0.0752980218883111, 0.013070459322559402, 0.0, 0.4793455258509991, 0.0, 0.0, 0.0, 0.0, 0.08811633730455204, 0.08467555208376226, 0.0, 0.0, 1.4824413586764027, 0.27442978968992093, 0.0, 0.0028104905637611507, 0.1480443868451215, 0.6744061467564826, 0.043998508948338316, 0.8697701045107844, 0.8469834954000914, 0.0, 0.02425613445444166, 0.0, 0.0, 0.0, 0.9679232213808633, 0.6774894982888419, 0.35310753741950685, 0.0, 0.2841919624705342, 0.0, 0.0, 0.7349602036514661, 0.0, 0.2186035505612502, 0.04416466424315345, 0.0, 0.0, 0.25133653271826356, 0.11160837067772013, 0.0, 0.14048007630402903, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.035048636482553235, 0.038653696504083, 0.10014641420794519, 0.0, 0.0837599459565703, 0.10942537757376403, 0.0, 0.0, 0.0, 0.08204362658289192, 0.0, 0.0, 0.011591138384550418, 0.0, 0.038004261053570694, 0.0066189468466051875, 0.06306237088337384, 0.0, 0.0, 0.03121664575636558, 0.0, 0.0, 0.02910081181829685, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08506408857544866, 0.0, 0.0, 0.0, 0.7712870388819855, 0.2285263236705729, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6966121466049721, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6540220401149287, 0.0, 0.0, 0.2336670223432043, 0.0, 0.0, 0.005339227289024509, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4930665741229495, 0.0, 0.029559863815954657, 0.0, 0.0, 0.10760363562562023, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15061269543615943, 0.6107211710602042, 0.0, 0.0, 0.733057860494869, 0.057362855000467054, 0.17650444882735677, 0.0, 0.0, 0.014677698725170102, 0.0, 0.17821555119599314, 0.0025555492556658746, 0.14808219427948163, 0.0, 0.11979690859781277, 0.0, 0.0, 0.13110894332781436, 0.04449679654819995, 0.0, 0.1133902344080122, 0.0, 0.0, 0.0017495044850376442, 0.013900993801975209, 0.03729472110086185, 0.19173933242455474, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1709634942172136, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13051636625786148, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4357713541613571, 0.0, 0.0, 0.0, 0.0, 0.07073267416682687, 0.0, 0.0, 0.0, 0.0, 0.06443354393704691, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.28238918313491895, 0.0, 0.0, 0.0, 0.28219752132848275, 0.0, 0.0, 0.0, 0.3045252869011713, 0.0, 0.0, 0.019083741024338748, 0.0, 0.06257051306836219, 0.7837995208867943, 0.05061887468267648, 0.0, 0.0, 0.05139533007879884, 0.0, 0.0, 0.04791180451081585, 0.0, 0.5281077501137272, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7571506519409951, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.026654196669850944, 0.0, 0.0, 0.0, 0.0, 0.23843473688023176, 0.0, 0.0, 0.6051386294410329, 0.0, 0.0, 0.0, 0.0, 0.04194764240896927, 0.13628497764809444, 0.0, 0.0, 0.0, 0.0, 0.06043639304510901, 0.04344269031549197, 0.0, 0.7296328391677986, 0.6312346675367022, 0.0, 0.0, 0.22817557354519388, 0.0, 0.05073205279897938, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1594527848545218, 0.1381227206057285, 0.0, 0.0, 0.0, 0.0, 0.4217049712314433, 0.0, 0.0, 0.31027130374464373, 0.0, 0.0, 0.08118863628632204, 0.8304208532182848, 0.983137215831116, 0.0, 0.24897028906526258, 0.14034260442091134, 0.0, 0.691731307052974, 0.7500207108166317, 0.833859795824118, 0.0, 0.05053828036951065, 0.8139843305766208, 0.0, 0.0, 1.3856822465181273, 1.0343729450047436, 0.0, 0.0, 1.09811525132565, 0.0, 0.0, 0.005748580563865145, 0.0, 0.0, 0.8634025361175751, 0.0, 0.14616020357939458, 0.7514377111323272, 0.0, 0.0, 0.1732108049991939, 0.0, 0.0, 0.0, 0.1879649588465491, 0.0, 0.0, 0.0, 0.00817965091901661, 0.0, 0.0, 0.0, 0.5779500058438248, 0.0, 0.0, 0.0, 0.005249336837927155, 0.0, 0.0, 0.0, 0.3064350538312218, 0.0, 0.001890320177282059, 0.45976772975798436, 0.40475012946470096, 0.3442380471075082, 0.017185108496187197, 0.288035784498987, 0.0, 0.0, 0.2827566402954316, 0.0, 0.0, 0.2635916697723135, 0.0, 0.0, 0.0, 0.3588181656747819, 0.0, 0.0, 0.0, 0.17570163169455902, 0.0, 0.2076868163288207, 0.0, 0.0, 0.0, 0.5097341557191223, 0.14587016095283192, 0.0, 0.4172405362928458, 0.0, 0.13951021052730417, 0.0, 0.6033798708626249, 0.0, 0.0, 0.0, 0.0, 0.4512081190066747, 1.1915177253624374, 0.0, 0.53626862172996, 0.26267190873847124, 0.024946529615964698, 0.630282563668714, 0.0, 0.7072072219187049, 0.2557442098535857, 0.0, 0.0, 0.0, 0.027439980552710016, 0.0, 0.2634523244708942, 0.750190928083991, 0.31925762502388877, 0.0, 0.0, 0.0, 0.17667054707398389, 1.689395274403252, 0.0, 0.5386556936239477, 0.21507940395745773, 0.30698899212442304, 0.11255638742238075, 0.12042909174810443, 0.1983506487023661, 0.0, 0.2156156778918424, 0.0, 0.6179686549930762, 0.0, 0.0, 0.0, 0.011162873807723371, 0.003307472295366656, 0.5417377310206691, 0.1038404263557644, 0.0, 0.0, 0.0, 0.010082100558503525, 0.5759566406752274, 0.5373731999014957, 0.24497595431253502, 0.3628321361534925, 0.4271139218413104, 0.0888079037091352, 0.013607634508588288, 0.5254304747208627, 0.0, 0.0, 0.0033818738704913948, 0.0, 0.3894178985059293, 7.727488918331624e-5, 0.4719056234120719, 0.0, 0.0, 0.7548965169480935, 0.0, 0.0, 0.0, 0.0, 0.04295271297559638, 0.3048341885265102, 0.0, 0.16015654700904233, 0.0, 0.03255288417829475, 0.0, 0.0, 0.0, 0.0, 0.16019347860889097, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3426629556463706, 0.0, 0.33591507158653605, 0.0, 0.0, 0.04025140372585128, 0.0, 0.5756230062735465, 0.0, 0.0, 0.0, 0.0, 0.0017523850398583757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32421546356710995, 0.0, 0.011282618188498251, 0.6937716630434633, 0.2529924781123921, 0.2596235239889639, 0.0, 0.043120476743740394, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2793513283874615, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7775441119273626, 0.14515455310675088, 0.0, 0.13510821830370037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44716225485327055, 0.0, 0.0, 0.0, 0.8291790553392753, 0.0, 0.0, 0.26334889102262177, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15479667093058366, 0.0, 0.0, 0.0, 0.36993623982653, 0.0, 0.0, 0.0, 0.0, 0.3623559014178924, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029233403628440607, 0.1427335193249464, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051251957334763225, 0.691166524717783, 0.29938181148714105, 0.5349464228115411, 0.06157899241792075, 0.0, 0.0, 0.2102727260204982, 0.0, 0.60145477594229, 0.0, 0.0, 0.03062034252430008, 0.1635016794080344, 0.7915679370358879, 0.0, 0.07317711878131836, 0.9809574403621903, 0.0, 0.0, 0.44926990137304107, 0.21608537407152922, 0.0, 0.05777727499408966, 0.039929965496851884, 0.0, 0.29915326656993935, 0.31099294960838475, 0.13414679708282617, 0.10949528327933863, 0.0, 0.10753728810972799, 0.0, 0.3797681313373244, 0.5019126906002389, 0.8077076191871431, 0.02575673641821252, 0.0, 0.0, 0.0, 0.0, 0.08748647908145589, 0.0, 0.0, 0.2775216739406583, 0.0, 0.0, 0.0, 0.0, 0.19491911889837882, 0.0, 0.626470449065492, 0.0, 0.1610321350235478, 0.0, 0.6250193931691284, 0.18518836301307043, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5645059221744597, 0.0, 0.30319370972913895, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5299926460898494, 0.0, 0.0, 0.18935417444624433, 0.0, 0.3520383786660897, 0.004326690884129795, 0.4266082560323472, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04753484047689839, 0.0, 0.0, 0.0, 0.2507515224933452, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.011126595947621928, 0.0, 0.0, 0.0, 0.0, 0.07883374294223121, 0.0, 0.0, 0.06158319631443835, 0.0, 0.0, 0.0, 0.0, 0.18599923723367912, 0.0, 0.0, 0.0, 0.0, 0.07225540391146344, 0.0, 0.17222213577613948, 0.0, 0.07109258970520838, 0.30622054435699597, 0.0, 0.0, 0.021600783197372013, 0.0, 0.0, 0.0, 0.0, 0.08747962563792125, 0.0, 0.0, 0.6661127453751955, 0.20906059268184987, 0.0, 0.14050781836020196, 0.0, 0.0, 0.38775347026983786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.016520556870922822, 0.08066242485362363, 0.0, 0.0, 0.008507877750707929, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19963971549104562, 0.0, 0.0, 0.0, 0.0, 0.1517009343251733, 0.5312750255062002, 0.0, 0.0, 0.1147421120346578, 0.0, 0.0, 0.0, 0.0, 0.35500190337758014, 0.0, 0.045597713545061126, 0.0, 0.5209586802357347, 0.021862434298379425, 0.0, 0.0, 0.0, 1.0378291015579089, 0.0, 0.0, 0.0, 0.08585205631703301, 0.0483968201096062, 0.0, 0.025471357792783925, 0.0, 0.22080976260076224, 1.166729214929465, 0.0, 0.677323308302816, 0.18535083381370177, 0.0, 0.0, 0.8704056171514745, 0.0, 0.8935663748182991, 0.015577429284835683, 0.13855228421849528, 0.0, 0.0, 0.1744139155099896, 0.15132491229634354, 0.0, 0.02513332482807071, 0.0, 0.17525145412541498, 0.0, 0.0, 0.0, 0.0, 0.02694350993020697, 0.162823516985682, 0.0, 0.0, 0.6457319525792288, 0.07238426196350153, 0.05745965468198706, 0.0, 0.0, 0.46532195926191927, 0.08460519940877058, 0.22064747420300995, 0.07874956387307873, 0.02873453791303352, 0.04102153493571428, 0.0, 0.0, 0.0, 0.0, 0.49780157894039, 0.0, 0.0, 0.301057479311315, 0.0, 0.0, 0.0016911663416444849, 0.0, 0.2606342751929628, 0.0, 0.0, 0.0, 0.4832976838898257, 0.2663912296088851, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16074512474220395, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0418820657562929, 0.0, 0.04820286684177523, 0.0, 0.1580443847885599, 0.0, 0.1278562139832909, 0.0, 0.0, 0.12981743196566292, 0.0, 0.0, 0.12101853247948517, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13204408757174144, 0.0, 0.0, 0.0, 0.0, 0.0, 0.024933507022188058, 0.0, 0.0, 0.0, 0.22607531711845172, 0.06698435016959209, 0.0, 0.0, 0.38137808720681626, 0.04452538198512276, 0.13682477248336336, 0.20418703285947667, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19170326048233127, 0.0, 0.0, 0.0684911628398921, 0.0, 0.0, 0.0015650042612973304, 0.0, 0.0, 0.0, 0.0, 0.3663518735291969, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27889642218469224, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09171777647431381, 0.0, 0.031206336760942092, 0.04657190125204274, 0.0, 0.21168995340334643, 0.0, 0.0, 0.2715554536912592, 0.0, 0.0, 0.0476752915188213, 0.0, 0.0, 0.0, 0.0, 0.36410628949886475, 0.021118814521733104, 0.0, 0.25524059151149175, 0.22081888489064375, 0.0, 0.0008303397905156581, 0.0, 0.0, 0.0, 0.0, 0.07229346662213895, 0.0, 0.0, 0.820696989198259, 0.541933064129384, 0.0, 0.6976372073851678, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6559268620540256, 0.0, 0.0, 0.00593765430305966, 0.0, 0.03489392321475427, 0.14772313877299487, 0.20501704987333305, 0.04206924698360076, 0.15444861072003166, 0.0, 0.8226903093195739, 0.0, 0.15641473972332146, 0.790869654262485, 0.6842130952365706, 0.03633117370294634, 0.0, 0.18980663716791113, 0.0, 0.0, 0.038558748063994376, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.40339029653363123, 0.0, 0.0, 0.0, 0.0, 0.43960663038458647, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08136147927839638, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16190486570077617, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2992216626110986, 0.0, 0.0, 0.0, 0.17882109545054858, 0.0, 0.0796930212837386, 0.0, 0.620119218817229, 0.06539128749913568, 0.09575080072237417, 0.0, 0.0, 0.0, 0.31047674992819635, 0.0, 0.0, 0.3258789812741783, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03198183278340688, 0.0, 0.0, 0.05159425685765124, 0.22600144774467618, 0.0, 0.17025710615993656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27035127710875223, 0.6595462305837041, 0.0, 0.0, 0.0, 0.5146584726996519, 0.0, 0.4337121439657544, 0.0, 0.0, 0.006091807521893999, 0.0, 0.0, 0.0, 0.0, 0.012888743397998564, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.336652909816104, 0.0, 0.0, 0.33692102610329455, 0.41892538326879675, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4637663755690806, 0.004049689433712162, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2537974154183676, 0.0, 0.0, 0.0, 0.01941920682276314, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2625647477298457, 0.0, 0.0, 0.0, 0.28333914754514417, 0.0, 0.009497623447163565, 0.0, 0.0, 0.015321911880061054, 0.7292697770823527, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4913667474115824, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8188140725936274, 0.23538609489199455, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004251660745273512, 0.2915534718195699, 0.8234990979680312, 0.15784851698528854, 0.31856705993041073, 0.0, 0.0, 0.0, 0.0, 0.8168645454274115, 0.2887084121601819, 0.0, 0.0, 0.0, 0.020685054965967595, 0.784321469374656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5719438351419199, 0.0, 0.0, 0.0, 0.0, 0.23810583942791758, 0.0, 0.0, 0.13190421809771516, 0.2355353163505223, 0.21414939137204708, 0.0, 0.13824109301205073, 0.0, 0.0, 0.4059138329547745, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3839879400284894, 0.7642606292584734, 0.17337082964447778, 0.43085204172578645, 0.5071846921436626, 0.0, 0.0, 0.0, 0.0, 0.0064224562854441995, 0.45947466920879537, 0.0, 0.048013668076727356, 0.008826989297459209, 0.0, 0.10254269883954115, 0.0, 0.449628221574638, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3130138916400048, 0.0, 0.0, 0.0, 0.0, 0.2198473045188841, 0.0, 0.7854658854954149, 0.0, 0.0, 0.0, 0.27482511606730614, 0.0, 0.0, 0.0, 0.10051459327881847, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03619595572786272, 0.2919384825550201, 0.0, 0.27020767480793234, 0.32906141180848986, 0.4014761358710767, 0.0, 0.0, 0.22194819820968317, 0.0, 0.397060529897469, 0.20690476484626705, 0.4811671410392035, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10602724763101144, 0.0, 0.9180290974697203, 0.32581440887276836, 0.11505868376784396, 0.5289668394733107, 0.0, 0.5268986674479775, 0.2483018891728648, 0.0, 0.0, 0.014289568621041568, 0.0, 0.0, 0.0, 0.0, 1.010481071564644, 0.06469540823739603, 0.19880648111582097, 0.580377081863938, 0.3701240890884847, 0.00033976241032705203, 0.5120222312956857, 0.54263963710411, 0.24775903677393285, 0.13070835967347635, 0.9915175816548458, 0.2899273698579516, 0.0, 0.0, 1.1703372022756595, 0.02329003991510475, 0.11859776061629382, 0.69977713771051, 0.6054053013517017, 0.707408250006164, 0.0, 0.2196427786747048, 0.5323095043727097, 0.027197936547729912, 0.0, 0.0, 0.6744130710240275, 0.0, 0.0, 0.009472629890788111, 0.0, 0.0, 0.0, 0.0, 0.11454144616825819, 0.0, 0.0, 0.0, 1.3982199856641506, 0.2538753491205552, 0.20096391172061562, 0.0, 0.0, 0.04239072289345119, 0.0, 0.773883065549572, 0.0, 0.0, 0.41373255777296347, 0.0, 0.0, 0.0, 0.0, 0.7328658795072667, 0.0, 0.0, 0.8143261048934798, 0.0, 0.0, 0.005931475071506779, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5479468542821576, 0.0, 0.32433512795769415, 0.7968405650512658, 0.0, 0.0, 0.2823749754870304, 0.0, 0.08888138290002096, 0.0, 0.0, 0.0, 0.17925820791427197, 0.2000876096746871, 0.0, 0.0, 0.40815111826084144, 0.16385977895936904, 0.06986036185280928, 0.0, 0.0, 0.0, 0.0, 0.05375441115395932, 0.0, 0.1762464226118615, 0.0, 0.3587964347388992, 0.0, 0.8015475518237312, 0.175514484083294, 0.0, 0.0, 0.13495628742382593, 0.0, 0.3105505922199702, 0.7248528773530782, 0.0, 0.18705292898123585, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1748071953278316, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7043431257504623, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13971141189132677, 0.0, 0.0, 0.0, 0.0, 0.0, 0.031464801155366616, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16845401890236414, 0.14573633601571054, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13998624971109908, 0.0, 0.07426203609200491, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2049851695927226, 0.0, 0.0, 0.17338949919280155, 0.0, 0.0, 0.18945472552918335, 0.0, 0.0, 0.0, 0.0, 0.0, 0.036320374032721404, 0.15648907735824633, 0.0, 0.05859334953381536, 0.0, 0.0, 0.0, 0.0, 0.5224897007715829, 0.0, 0.0, 0.0, 0.0, 0.08480845151311803, 0.0, 0.0, 0.0, 0.0, 0.07725579657733653, 0.0, 0.14447765770967222, 0.0, 0.0, 0.0, 0.15678431253622274, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.255601945951803, 0.0, 0.0, 0.2867970808516741, 0.3376079838842544, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29929546323980694, 0.0, 0.0, 0.0]), 42), 42)),) julia> @finch_code begin Ct .= 0 for j = parallel(_) @@ -1313,5 +1313,5 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.24622058278177836, 0.0, 0.0, 0.1261597862603059, 0.07342085928314178, 0.12871077894157168, 0.0, 0.0, 0.8034179790657067, 0.0, 0.0, 0.056025142012607894, 1.0596276779513034, 0.0, 0.12141212330168466, 0.0, 0.5574009533856183, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3327944495595785, 0.0, 0.8694342868598712, 0.0, 0.7416396915765561, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7569986463219165, 0.05683836078786318, 0.0, 0.0, 0.8725529080345216, 0.0, 0.2047777547094641, 0.5614660149749067, 0.0, 0.0, 0.36223551246779223, 0.0, 0.0, 0.0, 0.22107392894943306, 0.0, 0.0, 0.0, 0.3259321271119929, 0.5055955427859341, 0.27515457195781157, 0.4169876847813729, 0.018631329176858533, 0.3876953885710935, 0.0, 0.021531556327917045, 0.0, 0.0, 0.28223766305057085, 0.48287552686851865, 0.0, 0.0, 0.10175887870070799, 0.0, 0.0, 0.0, 0.06032870137556734, 0.018726053338837593, 0.045366945649236726, 0.0, 0.0, 0.0, 0.5790914418316278, 0.6815353846022115, 0.0, 0.1332216207413034, 0.0, 0.04017082185996856, 0.0, 0.0, 0.0, 0.0, 0.03484741576880692, 0.893850322287328, 0.4479341395605485, 0.5025126461241762, 0.1987665376735214, 0.31067608319719825, 0.0, 0.0, 0.0, 0.46442597522784795, 0.0, 0.0, 0.4431570212945692, 0.0, 0.0, 0.5121406140989466, 0.0, 0.49477960883115907, 0.0, 0.0, 0.0, 0.0, 0.47025922462023484, 0.3616621631765011, 0.5907253850051586, 0.0, 0.0, 0.44541009068477694, 0.03445733103321199, 0.0, 0.02309502433018302, 0.0, 0.03777890472311954, 0.16345317623186756, 0.16813336048226513, 0.0, 0.0, 0.09235605661534649, 0.0, 0.0, 0.01896246145159963, 0.02753978144349941, 0.0, 0.0, 0.0, 0.30135789429977294, 0.6764584765695312, 0.0, 0.0, 0.3151319553463997, 0.0, 0.04554105431298512, 0.0, 0.08378021558986462, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09849622821166114, 0.0, 0.25488776315346307, 0.0, 0.2781851808227525, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2839462446541717, 0.00854309647598918, 0.0, 0.0, 0.3272900456325508, 0.10375527349591217, 0.8492672297194694, 0.0, 0.5876718077641173, 0.03093892983747342, 0.0, 0.0, 0.0, 0.3385535490482335, 0.0, 0.0, 0.0, 0.29218416128587404, 0.0, 0.6966394562456512, 0.0, 0.0, 0.0, 0.522006486105503, 0.0, 0.0, 0.0, 0.11065330711314218, 0.0, 0.23311787887979893, 0.0, 0.31252070060750486, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06134998798063221, 0.0, 0.0, 0.3657519298489218, 0.31899283438369924, 0.0, 0.0, 0.0, 0.3676864240590821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0010478172394749591, 0.5287716819761857, 0.0, 0.3903081303690744, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0017717866111426558, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5892681933608603, 0.002977075804572329, 0.0, 0.0, 0.0, 0.0, 0.43072916849878135, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.045384364903179854, 0.0, 0.0, 0.0018618199412216315, 0.0, 0.17111256306326456, 0.2672837889083413, 0.0, 0.0, 0.19576072012760673, 0.5948736598005219, 0.08413627091493711, 0.7573648130796338, 0.0, 0.0, 0.0, 0.0, 0.0, 0.33101786250771764, 0.16289357736810944, 0.16515314938780928, 0.0, 0.0, 0.0, 0.0, 0.0, 0.662932866371622, 0.6905568008213746, 0.0, 0.0, 0.0, 0.0, 0.4845748090935882, 0.061923683856559844, 0.0, 0.028719251839850298, 0.0, 0.02009827057946138, 0.0, 0.0, 0.0, 0.11124419756806017, 0.4147463454400596, 0.0, 0.0, 0.34783853396429565, 0.0, 0.09260170356894369, 0.0, 0.0, 0.0, 1.1401462738363544, 0.915922599074042, 0.0, 0.0, 0.0, 0.0, 0.6274522680730893, 0.0, 0.3139030754242789, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3751134192842195, 0.0, 1.257728265907189, 0.0, 0.35074493350028346, 0.268137845429166, 0.0, 0.0, 0.0, 0.0, 0.0, 0.016899841379555174, 0.7155448975358032, 0.1680074523773585, 0.0, 0.0, 0.30581125296894957, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9366277987154731, 0.0, 0.0, 0.0, 0.0, 0.07522986257761975, 0.06328419096078892, 0.0, 0.02479071082883737, 0.0, 0.7915629916935427, 0.031935353301522654, 0.0, 0.0, 0.070458258165472, 0.0, 0.0, 0.0, 0.0, 0.052737602183104026, 0.0, 0.013647273418699125, 0.3169788666986562, 0.17235734856254364, 0.0, 0.0, 0.0, 0.0661528775144355, 0.0, 0.027308490724219276, 0.0, 0.0, 0.0, 0.7971915175033586, 0.0, 0.5343175730821937, 0.0, 0.8740381649643706, 0.04598025590229294, 0.029012248678093225, 0.0, 0.0, 0.11141095490761138, 0.0, 0.0, 0.13001430753376275, 0.0, 0.0, 0.0, 0.22549966134722088, 0.0, 0.0, 0.0, 0.3726692665495664, 0.3774382964295704, 0.20411971872540274, 0.06057654493015839, 0.0, 0.5744310538348768, 0.0, 0.0, 0.6232315714035893, 0.0, 0.5072896743166587, 0.0, 0.005553340050755054, 0.5689868928162961, 0.06836125145830099, 0.0, 0.0, 0.49734376521104756, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27904969776436467, 0.0, 0.7814242677772039, 0.5117851675292832, 0.0, 0.0, 0.04886194301383263, 0.0, 0.3067365939854962, 0.0, 0.0, 0.4115088709036164, 1.405104579225751, 0.42840174089528493, 0.48760195358213543, 0.0, 0.0, 0.663844265848651, 0.0, 0.38778436442248837, 0.7776635401136125, 0.15032072106029123, 0.18953081567758903, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7044650329571657, 0.7235946500790119, 0.12987194286479317, 0.19647866132545186, 0.45582545423087456, 0.0, 0.0, 0.0, 0.032958397990191235, 0.0, 0.0, 0.7570462349991403, 0.0941136312544236, 0.0, 0.1276645560961348, 0.0, 0.0, 0.0, 0.755417985546979, 0.8458204729185679, 0.12543050025210123, 0.006393660363144921, 0.0, 0.0, 0.28926738179087036, 0.0, 0.0, 0.4731345211962404, 0.0, 0.7203970460167203, 0.0, 0.0, 0.0, 0.4891311717243447, 0.0031333060836164625, 0.003950606766695812, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8250852706661534, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1940012409565178, 0.0, 0.7255195358366966, 0.0, 0.4862794311033925, 0.0, 0.7981182971725221, 0.0, 0.26385403496014914, 0.0, 0.5139863704027979, 0.35381636124647037, 0.06016159688024159, 0.0, 0.0, 0.0, 0.07675121814682248, 0.0, 0.0, 0.12553662505708466, 0.0, 0.301350309711505, 0.0, 0.0, 0.0, 0.12978101101826656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2180668401971053, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09272141980768678, 0.0, 0.3034931056908601, 0.0, 0.203416238280828, 0.0, 0.33274884560755447, 0.0, 0.12655518438173288, 0.0, 0.13637583261219158, 0.0, 0.0, 0.0, 0.0, 0.020115042222633606, 0.0, 0.11478942012015081, 0.0, 0.044967175485766994, 0.0, 0.27969782401606164, 0.1383242818414881, 0.0, 0.0, 0.18685369035983804, 0.0, 0.06810955828519266, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17579267922314348, 0.0, 0.0, 0.11999285025017485, 0.0, 0.0, 0.14209169595972287, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11399414163060874, 0.019825113051252268, 0.0, 0.049971986914216976, 0.07235420154739257, 0.0, 0.0, 0.08331368376199759, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07280640355864025, 0.0, 0.0, 0.35152520960031586, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13676901662991092, 0.0, 0.0, 0.0, 0.015204774707799058, 0.0, 0.0, 0.0, 0.0, 0.5304031136005922, 0.0, 0.0, 0.0, 0.32819195551919517, 0.1622165373359131, 0.0, 0.0, 0.0, 0.1321652778478459, 0.0, 0.0, 0.2161735452720934, 0.0, 0.27952564740678887, 0.0, 0.0, 0.0, 0.22348236021207268, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.375510190195534, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2500091160813631, 0.0, 0.2815132558946093, 0.0, 0.18868424509978618, 0.0, 0.30865021038590384, 0.0, 0.341236683480638, 0.0, 0.23483861551802387, 0.0, 0.0, 0.0, 0.12117745385937667, 0.0, 0.0, 0.3973467888918919, 0.0, 0.2920101397985984, 0.0, 0.12988448302264086, 0.0, 0.3517844506342411, 0.0, 0.0, 0.0, 0.6519761543079575, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4428070420734244, 0.0, 0.3964317892338393, 0.0, 0.0, 0.0, 0.3236724995283946, 0.0, 0.0567229736921611, 0.0, 0.0, 0.0, 0.25146743826064083, 0.0, 0.0, 0.011207888208677623, 0.08869787998517195, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0436070974131627, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05218480148875932, 0.0, 0.0, 0.0, 0.28668060177386556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16806127510824798, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1010038649276795, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24411150965510042, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3252831829639798, 0.0, 0.13696611429551586, 0.0, 0.08809099936621054, 0.0, 0.0, 0.0, 0.5834039633369968, 0.2573783852497724, 0.0, 0.34353142253711105, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8226681209013311, 0.43635481618924155, 0.0, 0.21222851603946533, 0.0, 0.6640973088333184, 0.0, 0.1716321278580885, 0.7312656094018032, 0.46618173092618587, 0.7638215749927391, 0.5281765059497923, 0.012259008816529623, 0.9144713112403178, 0.0, 0.0, 0.0, 0.0, 0.7953741970864907, 0.0, 0.0, 0.5850872742568098, 0.0, 0.0, 0.0, 0.7307808207285703, 0.0, 0.6199309753815017, 0.37291372178799176, 0.0, 0.0, 0.22356724549482568, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3221254739496775, 0.11781870844111127, 0.04460774210115785, 0.7133319766560491, 0.17115949268039302, 0.47397294440775345, 0.0, 0.10101149129956093, 0.11755718548933392, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.057090584067732354, 0.6447844891876003, 0.0, 0.0, 0.033829519264607456, 0.0, 0.1190337187097033, 0.30523421948716617, 0.0, 0.0, 0.0, 0.0, 0.6213057774307251, 0.842768502451811, 0.0, 0.3906048759812801, 0.7719833104847825, 0.41168363040706235, 0.1712307445975339, 0.0, 0.05992936357237096, 0.04890539039186202, 0.0, 0.0, 0.012380496199171342, 0.0, 0.2674194407541521, 0.0, 0.0014443996714777229, 0.0, 0.16387003646802972, 0.0, 0.0, 0.03594122433913304, 0.24159569520366886, 0.3747703785250739, 0.0, 0.054699683547073226, 0.0, 0.2873774296478163, 0.0, 0.0, 0.0, 0.14956132991470428, 0.0, 0.3888645476970781, 0.0, 0.0, 0.07542830239130101, 0.07080076609705026, 0.0, 0.0, 0.0, 0.0, 0.09852911382155678, 0.19548481725379033, 0.0, 0.0, 0.4350977845419587, 0.00557774494203208, 0.0, 0.09874991570897035, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6034262468294622, 0.2713368059843151, 0.6497013107648627, 0.0, 0.8007029601130917, 0.0, 0.0, 0.0, 0.0, 0.01616961592030159, 0.0, 0.0, 0.0, 0.0, 0.2502876057454169, 0.49212467358206446, 0.2134864810859512, 0.1765833209669342, 0.0, 0.0, 0.0, 0.5401972297237567, 0.03318857704329382, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12219566143679067, 0.0, 0.04829725298673487, 0.0, 0.0, 0.0, 0.0, 0.0, 1.2356793204214815, 0.02263120223723859, 0.7256596881722004, 0.3263003275955702, 0.7654157892976137, 0.08145618747845872, 0.6387218661983024, 0.0, 0.5276231408957645, 0.8184646008092085, 0.0, 0.0, 0.0, 0.6276063069977658, 0.0, 0.6132063830791735, 0.006204111701464058, 0.18851722870999638, 0.375149258411478, 0.7816851453263511, 0.0, 0.587776400734769, 0.16472858834087942, 1.1016458158754883, 0.1459604994495737, 0.0, 0.0, 0.0, 0.037075917094288376, 0.0, 0.2815459504132854, 0.2536212145780303, 0.559150690052304, 0.48027689889482117, 0.0, 0.21566088189458643, 0.058080618345779114, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008439821738835876, 0.0, 0.36408664087256903, 0.0, 0.16156000319694572, 0.22471190561828702, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10732980278519261, 0.0, 0.0, 0.12403718878006863, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27901056312251676, 0.4801492052284416, 0.0, 0.0, 0.10787548181472921, 0.0, 0.0, 0.0, 0.15654727928350437, 0.0, 0.13104284110293218, 0.13666096202593647, 0.0, 0.0, 0.0, 0.07276575816635268, 0.0, 0.0, 0.0, 0.0, 0.6100450928472326, 0.0, 0.0, 0.0, 0.4238237484103886, 0.9941317988293357, 0.0, 0.0, 0.0, 0.0, 0.3355479309040112, 0.0, 0.0, 0.0, 0.0, 0.5350029094771915, 0.0, 0.008586567333100323, 1.1385513331902584, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1850917274468032, 0.0, 0.0, 0.06716099014107918, 1.1525784735402484, 0.0, 0.0, 0.036572260841491885, 0.0, 0.26119964749940466, 0.0, 0.0, 0.8459335464772313, 0.0, 0.0, 0.0, 0.0, 0.38438887602945404, 0.0, 0.0, 0.0, 0.0, 0.7204933523373307, 0.0, 0.0, 0.16060697060474402, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7112792652633437, 0.0, 0.935521710131386, 0.26536974069831215, 0.2935825392525973, 0.0, 0.0, 0.13719141489981915, 0.0, 0.10324823792839577, 0.0, 0.0, 0.0, 0.7256165269576538, 0.0, 0.48634443939716193, 0.0, 0.7955635800994527, 0.1927019559074891, 0.0, 0.0, 0.7058981437597585, 0.0, 0.5236895266156559, 0.0, 0.08128104063747256, 0.0, 0.0, 0.0, 0.5731212091054763, 0.0, 0.0, 0.0419831484236368, 0.11625926299639212, 0.0, 0.0, 0.08927614896350113, 0.217346651106267, 0.13128361330254273, 0.0, 0.07219885291348893, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4218130442222412, 0.0, 0.0, 0.0, 0.0, 0.1699892215644571, 0.0, 0.14639742856012483, 0.0, 0.0, 0.04200062557179813, 0.0, 0.0, 0.0, 0.31146013043119736, 0.0, 0.0, 0.0, 0.24384030368566587, 0.9260558729858251, 0.4296955936776912, 0.0, 0.0, 0.0, 0.73790516731229, 0.0, 0.0, 0.0, 0.16295488074282302, 0.26550524353964333, 0.0, 0.0, 0.0, 0.31144107126852844, 0.0, 0.485858439126786, 0.0, 0.6914937323909329, 0.0, 0.0, 0.0, 0.0, 0.3162528337434342, 0.0, 0.0, 0.0, 0.0, 1.5785215576611167, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5161924043112004, 0.0, 0.0, 0.2568302026164213, 0.0, 0.3023415151909343, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5030068615133427, 0.0, 0.0, 0.0, 0.2741080207900236, 0.17120972783029909, 0.0, 0.0, 0.0, 0.0, 0.43685119598979993, 0.02712666041421048, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2451085199735546, 0.0, 0.1576437689621315, 0.0, 0.0, 0.0, 0.6857487349281931, 0.05917052173435364, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6537568461306704, 0.0, 0.0, 0.5395442735782994, 0.05374109131453472, 0.0, 0.5917732326059808, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0008206716541601089, 0.19818937147807536, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.535053682582317, 0.0, 0.3513819151899916, 0.04333888481337121, 0.5747915094439204, 0.19540689526232177, 0.01899860952318465, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06595709778063945, 0.0, 0.08799217533170228, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03735300199555871, 0.19147688509049948, 0.0, 0.0, 0.0, 0.2914125830050192, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04799459307428656, 0.0, 0.16480769798416883, 0.0, 0.0, 0.0, 0.04840048223798238, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.027156548216558336, 0.0, 0.047181418535814645, 0.0, 0.0, 0.0, 0.0, 0.35341760898781915, 0.5999981948389704, 0.024572219243726254, 0.0, 0.0, 0.08667332426569417, 0.4875808312926843, 0.06369622265280388, 0.0, 0.0, 0.0, 0.07133443039288194, 0.0, 0.0, 0.47894471690358564, 0.4793008357816607, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09658957720985865, 0.3016070141903076, 0.061398864173637636, 0.0, 0.0, 0.0, 0.07060273869520314, 0.35885594789448355, 0.0, 0.06446892769447045, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2497207855356876, 0.018509596151814908, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2926774045716465, 0.0, 0.013651758929637155, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03597721563910695, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07068090962707653, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03642909404914556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2749443358980585, 0.0, 0.0, 0.0, 0.0, 0.5096842842109697, 0.0, 0.0, 0.0, 0.028086239659725638, 0.7421154878137212, 0.0, 0.48123810905471315, 0.0, 0.3067030382176026, 0.6866619523091189, 0.0008295150087239233, 0.5016528107597976, 0.0, 0.08848804808651539, 1.3805931747462472, 0.0, 0.0, 1.04718815925786, 0.0, 0.0, 0.0, 0.42746548493362363, 0.0, 0.5817357352379013, 0.8450882691967682, 0.41665385220387907, 1.0915687546509307, 1.108964330219497, 0.0, 0.0, 0.0, 0.04066069749695377, 0.032733248007639555, 0.0, 0.0, 0.0, 0.07163077100441487, 0.6487063582321942, 0.0, 0.2995103130321618, 0.10283702762113958, 0.33384701220391544, 0.41258982728857174, 0.0, 0.5449670143554067, 0.0, 0.3217489265559145, 0.0, 0.0, 0.0, 0.2849908553676538, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.01610871320352385, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2570528176713379, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2969662795916102, 0.0, 0.12312876081315716, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09075655657480966, 0.0, 0.3633373647258237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06617087939273322, 0.0, 0.0, 0.0, 0.00923594008230594, 0.17805875048711786, 0.22450411347361834, 0.0, 0.0, 0.09502241267674551, 0.0, 0.024589605765570302, 0.0, 0.1826423790293924, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.039040067948029694, 0.0, 0.06664139722445166, 0.0, 0.04466639301844483, 0.0, 0.22428735118617732, 0.08284705163804024, 0.05227416022819031, 0.0, 0.19522102914015915, 0.8685310451611696, 0.0, 0.0, 0.0, 0.0, 0.8702352191794189, 0.0, 0.0, 0.15684527219370442, 0.0, 0.9243788213991903, 0.22207735215974056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.40507055158794986, 0.30718446392066534, 0.0, 0.46812545232304087, 0.0, 0.5780009938921578, 0.18279458657604497, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02896217836710352, 0.0, 0.0, 0.40712998428742797, 0.7449999863100496, 0.0, 0.49933620201845186, 0.0, 0.8168155413547457, 0.11457346224809285, 0.0, 0.0, 0.0, 0.15332753334456128, 0.11864376215788304, 0.0, 0.0, 0.04572095120049149, 0.0, 0.0, 0.31683394463012315, 0.5003078767139268, 0.14059206617597214, 0.19554784897288408, 0.0, 0.43178409369310355, 0.0, 0.07560627618395319, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16352131380333873, 0.0, 0.34449708571742155, 0.0, 0.4618370375665847, 0.0, 0.0, 0.41783342102021986, 0.0, 0.0, 0.0, 0.02165252564332241, 0.0, 0.0, 0.0, 0.47140143149032104, 0.39181349979635294, 0.11892452733738064, 0.0, 0.5433598750764469, 0.0, 0.0, 0.0, 0.07266999506080335, 0.0, 0.6735755940113932, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0041630866962457744, 0.2109647750127205, 0.0, 0.0, 0.0, 0.3715024914369038, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1845463840294256, 0.0, 0.6075440706050301, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29101469974401967, 0.0, 0.0, 0.032739778024003775, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4875593392929034, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20371408580482323, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0439075644510851, 0.0, 0.5496827874572944, 0.40327797474842975, 0.37238046622077875, 0.0, 0.0, 0.17401376516444506, 0.0, 0.11278871866256229, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15394336215607962, 0.0, 0.0, 0.0]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.1619393094464903, 0.0, 0.0, 0.0, 0.0, 0.11373910752308043, 0.0, 0.32533429668145175, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5405512925681031, 0.0, 0.0, 0.5409817971066755, 0.6726532010052559, 0.0, 0.0, 0.0, 0.04498001780375231, 0.0, 0.7446527460595233, 0.0, 0.0, 0.0, 0.0648053115514859, 0.0, 0.20542126000594346, 0.0, 0.2489342378383824, 0.0, 0.0, 0.2446702787341799, 0.0, 0.0, 0.4075132486743765, 0.372693911014397, 0.0, 0.03990868671702989, 0.32865292999993995, 0.0, 0.0, 0.0, 0.037570880212435515, 0.0, 0.0, 0.2585440952996821, 0.0, 0.0, 0.5429032184680616, 0.0, 0.0, 0.0, 0.7310331654112876, 1.6974310666890076, 0.13434284643730737, 0.0, 0.15388431962676646, 0.0, 0.018799628425153446, 0.026448056346556916, 0.020943024178172204, 0.08671614507629592, 0.19272805440861934, 0.07015243227726202, 0.0, 0.1267665206913561, 0.1014023431949165, 0.494724963965631, 0.0, 0.6317423070706343, 0.0, 0.4351905463586081, 0.019451367524410516, 0.11392026534019284, 0.0, 0.7674183972620773, 0.0, 0.0, 0.009728790198518009, 0.0, 0.0, 0.03627546054320975, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0140288190005624, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4229718175600567, 0.0752980218883111, 0.013070459322559402, 0.0, 0.4793455258509991, 0.0, 0.0, 0.0, 0.0, 0.08811633730455204, 0.08467555208376226, 0.0, 0.0, 1.4824413586764027, 0.27442978968992093, 0.0, 0.0028104905637611507, 0.1480443868451215, 0.6744061467564826, 0.043998508948338316, 0.8697701045107844, 0.8469834954000914, 0.0, 0.02425613445444166, 0.0, 0.0, 0.0, 0.9679232213808633, 0.6774894982888419, 0.35310753741950685, 0.0, 0.2841919624705342, 0.0, 0.0, 0.7349602036514661, 0.0, 0.2186035505612502, 0.04416466424315345, 0.0, 0.0, 0.25133653271826356, 0.11160837067772013, 0.0, 0.14048007630402903, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.035048636482553235, 0.038653696504083, 0.10014641420794519, 0.0, 0.0837599459565703, 0.10942537757376403, 0.0, 0.0, 0.0, 0.08204362658289192, 0.0, 0.0, 0.011591138384550418, 0.0, 0.038004261053570694, 0.0066189468466051875, 0.06306237088337384, 0.0, 0.0, 0.03121664575636558, 0.0, 0.0, 0.02910081181829685, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08506408857544866, 0.0, 0.0, 0.0, 0.7712870388819855, 0.2285263236705729, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6966121466049721, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6540220401149287, 0.0, 0.0, 0.2336670223432043, 0.0, 0.0, 0.005339227289024509, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4930665741229495, 0.0, 0.029559863815954657, 0.0, 0.0, 0.10760363562562023, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15061269543615943, 0.6107211710602042, 0.0, 0.0, 0.733057860494869, 0.057362855000467054, 0.17650444882735677, 0.0, 0.0, 0.014677698725170102, 0.0, 0.17821555119599314, 0.0025555492556658746, 0.14808219427948163, 0.0, 0.11979690859781277, 0.0, 0.0, 0.13110894332781436, 0.04449679654819995, 0.0, 0.1133902344080122, 0.0, 0.0, 0.0017495044850376442, 0.013900993801975209, 0.03729472110086185, 0.19173933242455474, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1709634942172136, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13051636625786148, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4357713541613571, 0.0, 0.0, 0.0, 0.0, 0.07073267416682687, 0.0, 0.0, 0.0, 0.0, 0.06443354393704691, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.28238918313491895, 0.0, 0.0, 0.0, 0.28219752132848275, 0.0, 0.0, 0.0, 0.3045252869011713, 0.0, 0.0, 0.019083741024338748, 0.0, 0.06257051306836219, 0.7837995208867943, 0.05061887468267648, 0.0, 0.0, 0.05139533007879884, 0.0, 0.0, 0.04791180451081585, 0.0, 0.5281077501137272, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7571506519409951, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.026654196669850944, 0.0, 0.0, 0.0, 0.0, 0.23843473688023176, 0.0, 0.0, 0.6051386294410329, 0.0, 0.0, 0.0, 0.0, 0.04194764240896927, 0.13628497764809444, 0.0, 0.0, 0.0, 0.0, 0.06043639304510901, 0.04344269031549197, 0.0, 0.7296328391677986, 0.6312346675367022, 0.0, 0.0, 0.22817557354519388, 0.0, 0.05073205279897938, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1594527848545218, 0.1381227206057285, 0.0, 0.0, 0.0, 0.0, 0.4217049712314433, 0.0, 0.0, 0.31027130374464373, 0.0, 0.0, 0.08118863628632204, 0.8304208532182848, 0.983137215831116, 0.0, 0.24897028906526258, 0.14034260442091134, 0.0, 0.691731307052974, 0.7500207108166317, 0.833859795824118, 0.0, 0.05053828036951065, 0.8139843305766208, 0.0, 0.0, 1.3856822465181273, 1.0343729450047436, 0.0, 0.0, 1.09811525132565, 0.0, 0.0, 0.005748580563865145, 0.0, 0.0, 0.8634025361175751, 0.0, 0.14616020357939458, 0.7514377111323272, 0.0, 0.0, 0.1732108049991939, 0.0, 0.0, 0.0, 0.1879649588465491, 0.0, 0.0, 0.0, 0.00817965091901661, 0.0, 0.0, 0.0, 0.5779500058438248, 0.0, 0.0, 0.0, 0.005249336837927155, 0.0, 0.0, 0.0, 0.3064350538312218, 0.0, 0.001890320177282059, 0.45976772975798436, 0.40475012946470096, 0.3442380471075082, 0.017185108496187197, 0.288035784498987, 0.0, 0.0, 0.2827566402954316, 0.0, 0.0, 0.2635916697723135, 0.0, 0.0, 0.0, 0.3588181656747819, 0.0, 0.0, 0.0, 0.17570163169455902, 0.0, 0.2076868163288207, 0.0, 0.0, 0.0, 0.5097341557191223, 0.14587016095283192, 0.0, 0.4172405362928458, 0.0, 0.13951021052730417, 0.0, 0.6033798708626249, 0.0, 0.0, 0.0, 0.0, 0.4512081190066747, 1.1915177253624374, 0.0, 0.53626862172996, 0.26267190873847124, 0.024946529615964698, 0.630282563668714, 0.0, 0.7072072219187049, 0.2557442098535857, 0.0, 0.0, 0.0, 0.027439980552710016, 0.0, 0.2634523244708942, 0.750190928083991, 0.31925762502388877, 0.0, 0.0, 0.0, 0.17667054707398389, 1.689395274403252, 0.0, 0.5386556936239477, 0.21507940395745773, 0.30698899212442304, 0.11255638742238075, 0.12042909174810443, 0.1983506487023661, 0.0, 0.2156156778918424, 0.0, 0.6179686549930762, 0.0, 0.0, 0.0, 0.011162873807723371, 0.003307472295366656, 0.5417377310206691, 0.1038404263557644, 0.0, 0.0, 0.0, 0.010082100558503525, 0.5759566406752274, 0.5373731999014957, 0.24497595431253502, 0.3628321361534925, 0.4271139218413104, 0.0888079037091352, 0.013607634508588288, 0.5254304747208627, 0.0, 0.0, 0.0033818738704913948, 0.0, 0.3894178985059293, 7.727488918331624e-5, 0.4719056234120719, 0.0, 0.0, 0.7548965169480935, 0.0, 0.0, 0.0, 0.0, 0.04295271297559638, 0.3048341885265102, 0.0, 0.16015654700904233, 0.0, 0.03255288417829475, 0.0, 0.0, 0.0, 0.0, 0.16019347860889097, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3426629556463706, 0.0, 0.33591507158653605, 0.0, 0.0, 0.04025140372585128, 0.0, 0.5756230062735465, 0.0, 0.0, 0.0, 0.0, 0.0017523850398583757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32421546356710995, 0.0, 0.011282618188498251, 0.6937716630434633, 0.2529924781123921, 0.2596235239889639, 0.0, 0.043120476743740394, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2793513283874615, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7775441119273626, 0.14515455310675088, 0.0, 0.13510821830370037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44716225485327055, 0.0, 0.0, 0.0, 0.8291790553392753, 0.0, 0.0, 0.26334889102262177, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15479667093058366, 0.0, 0.0, 0.0, 0.36993623982653, 0.0, 0.0, 0.0, 0.0, 0.3623559014178924, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029233403628440607, 0.1427335193249464, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051251957334763225, 0.691166524717783, 0.29938181148714105, 0.5349464228115411, 0.06157899241792075, 0.0, 0.0, 0.2102727260204982, 0.0, 0.60145477594229, 0.0, 0.0, 0.03062034252430008, 0.1635016794080344, 0.7915679370358879, 0.0, 0.07317711878131836, 0.9809574403621903, 0.0, 0.0, 0.44926990137304107, 0.21608537407152922, 0.0, 0.05777727499408966, 0.039929965496851884, 0.0, 0.29915326656993935, 0.31099294960838475, 0.13414679708282617, 0.10949528327933863, 0.0, 0.10753728810972799, 0.0, 0.3797681313373244, 0.5019126906002389, 0.8077076191871431, 0.02575673641821252, 0.0, 0.0, 0.0, 0.0, 0.08748647908145589, 0.0, 0.0, 0.2775216739406583, 0.0, 0.0, 0.0, 0.0, 0.19491911889837882, 0.0, 0.626470449065492, 0.0, 0.1610321350235478, 0.0, 0.6250193931691284, 0.18518836301307043, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5645059221744597, 0.0, 0.30319370972913895, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5299926460898494, 0.0, 0.0, 0.18935417444624433, 0.0, 0.3520383786660897, 0.004326690884129795, 0.4266082560323472, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04753484047689839, 0.0, 0.0, 0.0, 0.2507515224933452, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.011126595947621928, 0.0, 0.0, 0.0, 0.0, 0.07883374294223121, 0.0, 0.0, 0.06158319631443835, 0.0, 0.0, 0.0, 0.0, 0.18599923723367912, 0.0, 0.0, 0.0, 0.0, 0.07225540391146344, 0.0, 0.17222213577613948, 0.0, 0.07109258970520838, 0.30622054435699597, 0.0, 0.0, 0.021600783197372013, 0.0, 0.0, 0.0, 0.0, 0.08747962563792125, 0.0, 0.0, 0.6661127453751955, 0.20906059268184987, 0.0, 0.14050781836020196, 0.0, 0.0, 0.38775347026983786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.016520556870922822, 0.08066242485362363, 0.0, 0.0, 0.008507877750707929, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19963971549104562, 0.0, 0.0, 0.0, 0.0, 0.1517009343251733, 0.5312750255062002, 0.0, 0.0, 0.1147421120346578, 0.0, 0.0, 0.0, 0.0, 0.35500190337758014, 0.0, 0.045597713545061126, 0.0, 0.5209586802357347, 0.021862434298379425, 0.0, 0.0, 0.0, 1.0378291015579089, 0.0, 0.0, 0.0, 0.08585205631703301, 0.0483968201096062, 0.0, 0.025471357792783925, 0.0, 0.22080976260076224, 1.166729214929465, 0.0, 0.677323308302816, 0.18535083381370177, 0.0, 0.0, 0.8704056171514745, 0.0, 0.8935663748182991, 0.015577429284835683, 0.13855228421849528, 0.0, 0.0, 0.1744139155099896, 0.15132491229634354, 0.0, 0.02513332482807071, 0.0, 0.17525145412541498, 0.0, 0.0, 0.0, 0.0, 0.02694350993020697, 0.162823516985682, 0.0, 0.0, 0.6457319525792288, 0.07238426196350153, 0.05745965468198706, 0.0, 0.0, 0.46532195926191927, 0.08460519940877058, 0.22064747420300995, 0.07874956387307873, 0.02873453791303352, 0.04102153493571428, 0.0, 0.0, 0.0, 0.0, 0.49780157894039, 0.0, 0.0, 0.301057479311315, 0.0, 0.0, 0.0016911663416444849, 0.0, 0.2606342751929628, 0.0, 0.0, 0.0, 0.4832976838898257, 0.2663912296088851, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16074512474220395, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0418820657562929, 0.0, 0.04820286684177523, 0.0, 0.1580443847885599, 0.0, 0.1278562139832909, 0.0, 0.0, 0.12981743196566292, 0.0, 0.0, 0.12101853247948517, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13204408757174144, 0.0, 0.0, 0.0, 0.0, 0.0, 0.024933507022188058, 0.0, 0.0, 0.0, 0.22607531711845172, 0.06698435016959209, 0.0, 0.0, 0.38137808720681626, 0.04452538198512276, 0.13682477248336336, 0.20418703285947667, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19170326048233127, 0.0, 0.0, 0.0684911628398921, 0.0, 0.0, 0.0015650042612973304, 0.0, 0.0, 0.0, 0.0, 0.3663518735291969, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27889642218469224, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09171777647431381, 0.0, 0.031206336760942092, 0.04657190125204274, 0.0, 0.21168995340334643, 0.0, 0.0, 0.2715554536912592, 0.0, 0.0, 0.0476752915188213, 0.0, 0.0, 0.0, 0.0, 0.36410628949886475, 0.021118814521733104, 0.0, 0.25524059151149175, 0.22081888489064375, 0.0, 0.0008303397905156581, 0.0, 0.0, 0.0, 0.0, 0.07229346662213895, 0.0, 0.0, 0.820696989198259, 0.541933064129384, 0.0, 0.6976372073851678, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6559268620540256, 0.0, 0.0, 0.00593765430305966, 0.0, 0.03489392321475427, 0.14772313877299487, 0.20501704987333305, 0.04206924698360076, 0.15444861072003166, 0.0, 0.8226903093195739, 0.0, 0.15641473972332146, 0.790869654262485, 0.6842130952365706, 0.03633117370294634, 0.0, 0.18980663716791113, 0.0, 0.0, 0.038558748063994376, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.40339029653363123, 0.0, 0.0, 0.0, 0.0, 0.43960663038458647, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08136147927839638, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16190486570077617, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2992216626110986, 0.0, 0.0, 0.0, 0.17882109545054858, 0.0, 0.0796930212837386, 0.0, 0.620119218817229, 0.06539128749913568, 0.09575080072237417, 0.0, 0.0, 0.0, 0.31047674992819635, 0.0, 0.0, 0.3258789812741783, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03198183278340688, 0.0, 0.0, 0.05159425685765124, 0.22600144774467618, 0.0, 0.17025710615993656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27035127710875223, 0.6595462305837041, 0.0, 0.0, 0.0, 0.5146584726996519, 0.0, 0.4337121439657544, 0.0, 0.0, 0.006091807521893999, 0.0, 0.0, 0.0, 0.0, 0.012888743397998564, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.336652909816104, 0.0, 0.0, 0.33692102610329455, 0.41892538326879675, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4637663755690806, 0.004049689433712162, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2537974154183676, 0.0, 0.0, 0.0, 0.01941920682276314, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2625647477298457, 0.0, 0.0, 0.0, 0.28333914754514417, 0.0, 0.009497623447163565, 0.0, 0.0, 0.015321911880061054, 0.7292697770823527, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4913667474115824, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8188140725936274, 0.23538609489199455, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004251660745273512, 0.2915534718195699, 0.8234990979680312, 0.15784851698528854, 0.31856705993041073, 0.0, 0.0, 0.0, 0.0, 0.8168645454274115, 0.2887084121601819, 0.0, 0.0, 0.0, 0.020685054965967595, 0.784321469374656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5719438351419199, 0.0, 0.0, 0.0, 0.0, 0.23810583942791758, 0.0, 0.0, 0.13190421809771516, 0.2355353163505223, 0.21414939137204708, 0.0, 0.13824109301205073, 0.0, 0.0, 0.4059138329547745, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3839879400284894, 0.7642606292584734, 0.17337082964447778, 0.43085204172578645, 0.5071846921436626, 0.0, 0.0, 0.0, 0.0, 0.0064224562854441995, 0.45947466920879537, 0.0, 0.048013668076727356, 0.008826989297459209, 0.0, 0.10254269883954115, 0.0, 0.449628221574638, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3130138916400048, 0.0, 0.0, 0.0, 0.0, 0.2198473045188841, 0.0, 0.7854658854954149, 0.0, 0.0, 0.0, 0.27482511606730614, 0.0, 0.0, 0.0, 0.10051459327881847, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03619595572786272, 0.2919384825550201, 0.0, 0.27020767480793234, 0.32906141180848986, 0.4014761358710767, 0.0, 0.0, 0.22194819820968317, 0.0, 0.397060529897469, 0.20690476484626705, 0.4811671410392035, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10602724763101144, 0.0, 0.9180290974697203, 0.32581440887276836, 0.11505868376784396, 0.5289668394733107, 0.0, 0.5268986674479775, 0.2483018891728648, 0.0, 0.0, 0.014289568621041568, 0.0, 0.0, 0.0, 0.0, 1.010481071564644, 0.06469540823739603, 0.19880648111582097, 0.580377081863938, 0.3701240890884847, 0.00033976241032705203, 0.5120222312956857, 0.54263963710411, 0.24775903677393285, 0.13070835967347635, 0.9915175816548458, 0.2899273698579516, 0.0, 0.0, 1.1703372022756595, 0.02329003991510475, 0.11859776061629382, 0.69977713771051, 0.6054053013517017, 0.707408250006164, 0.0, 0.2196427786747048, 0.5323095043727097, 0.027197936547729912, 0.0, 0.0, 0.6744130710240275, 0.0, 0.0, 0.009472629890788111, 0.0, 0.0, 0.0, 0.0, 0.11454144616825819, 0.0, 0.0, 0.0, 1.3982199856641506, 0.2538753491205552, 0.20096391172061562, 0.0, 0.0, 0.04239072289345119, 0.0, 0.773883065549572, 0.0, 0.0, 0.41373255777296347, 0.0, 0.0, 0.0, 0.0, 0.7328658795072667, 0.0, 0.0, 0.8143261048934798, 0.0, 0.0, 0.005931475071506779, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5479468542821576, 0.0, 0.32433512795769415, 0.7968405650512658, 0.0, 0.0, 0.2823749754870304, 0.0, 0.08888138290002096, 0.0, 0.0, 0.0, 0.17925820791427197, 0.2000876096746871, 0.0, 0.0, 0.40815111826084144, 0.16385977895936904, 0.06986036185280928, 0.0, 0.0, 0.0, 0.0, 0.05375441115395932, 0.0, 0.1762464226118615, 0.0, 0.3587964347388992, 0.0, 0.8015475518237312, 0.175514484083294, 0.0, 0.0, 0.13495628742382593, 0.0, 0.3105505922199702, 0.7248528773530782, 0.0, 0.18705292898123585, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1748071953278316, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7043431257504623, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13971141189132677, 0.0, 0.0, 0.0, 0.0, 0.0, 0.031464801155366616, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16845401890236414, 0.14573633601571054, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13998624971109908, 0.0, 0.07426203609200491, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2049851695927226, 0.0, 0.0, 0.17338949919280155, 0.0, 0.0, 0.18945472552918335, 0.0, 0.0, 0.0, 0.0, 0.0, 0.036320374032721404, 0.15648907735824633, 0.0, 0.05859334953381536, 0.0, 0.0, 0.0, 0.0, 0.5224897007715829, 0.0, 0.0, 0.0, 0.0, 0.08480845151311803, 0.0, 0.0, 0.0, 0.0, 0.07725579657733653, 0.0, 0.14447765770967222, 0.0, 0.0, 0.0, 0.15678431253622274, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.255601945951803, 0.0, 0.0, 0.2867970808516741, 0.3376079838842544, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29929546323980694, 0.0, 0.0, 0.0]), 42), 42)),) diff --git a/test/test_parallel.jl b/test/test_parallel.jl index f359694f7..bed3a6815 100644 --- a/test/test_parallel.jl +++ b/test/test_parallel.jl @@ -576,4 +576,29 @@ end end) end + let + io = IOBuffer() + y = Tensor(Dense(Atomic(Element(0.0)))) + A = Tensor(Dense(SparseList(Element(0.0)))) + x = Tensor(Dense(Element(0.0))) + diag = Tensor(Dense(Element(0.0))) + y_j = Scalar(0.0) + @repl io @finch_code begin + y .= 0 + for j = parallel(_) + let x_j = x[j] + y_j .= 0 + for i = _ + let A_ij = A[i, j] + y[i] += x_j * A_ij + y_j[] += A_ij * x[i] + end + end + y[j] += y_j[] + diag[j] * x_j + end + end + end + @test check_output("atomics_sym_spmv.txt", String(take!(io))) + + end end From 38f8ee495ab5dd115a23a969574f5b3f3ddbfa3c Mon Sep 17 00:00:00 2001 From: teocollin1995 Date: Thu, 29 Feb 2024 10:22:15 -0500 Subject: [PATCH 30/41] hide overall here --- src/transforms/concurrent.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/transforms/concurrent.jl b/src/transforms/concurrent.jl index 72eb93f5e..ebeb452d8 100644 --- a/src/transforms/concurrent.jl +++ b/src/transforms/concurrent.jl @@ -84,7 +84,7 @@ function ensure_concurrent(root, ctx) # If the acceses are different, then all acceses must be atomic. if !allequal(accs) for acc in accs - (below, overall) = is_atomic(acc.tns, ctx) + (below, _) = is_atomic(acc.tns, ctx) if !all(below) throw(FinchConcurrencyError("Nonlocal assignments to $(root) are not all the same access so atomics are needed on all acceses!")) end From 70ae1aa0d3b60c6b74d6a84971830bb7d71e76ad Mon Sep 17 00:00:00 2001 From: teocollin1995 Date: Thu, 29 Feb 2024 12:56:02 -0500 Subject: [PATCH 31/41] add is_concurrent --- src/tensors/combinators/offset.jl | 1 + src/tensors/combinators/permissive.jl | 2 ++ src/tensors/combinators/protocolized.jl | 2 ++ src/tensors/combinators/roots.jl | 1 + src/tensors/combinators/scale.jl | 2 ++ src/tensors/combinators/toeplitz.jl | 4 ++++ src/tensors/combinators/unfurled.jl | 1 + src/tensors/combinators/windowed.jl | 1 + src/tensors/fibers.jl | 2 ++ src/tensors/levels/atomicelementlevels.jl | 3 +++ src/tensors/levels/atomiclevels.jl | 5 ++++- src/tensors/levels/denselevels.jl | 4 ++++ src/tensors/levels/elementlevels.jl | 3 +++ src/tensors/levels/patternlevels.jl | 3 +++ src/tensors/levels/repeatrlelevels.jl | 3 +++ src/tensors/levels/separatelevels.jl | 4 ++++ src/tensors/levels/singlelistlevels.jl | 4 ++++ src/tensors/levels/singlerlelevels.jl | 4 ++++ src/tensors/levels/sparsebytemaplevels.jl | 4 ++++ src/tensors/levels/sparsecoolevels.jl | 4 ++++ src/tensors/levels/sparsehashlevels.jl | 4 ++++ src/tensors/levels/sparselevels.jl | 5 +++++ src/tensors/levels/sparselistlevels.jl | 4 ++++ src/tensors/levels/sparserlelevels.jl | 4 ++++ src/tensors/levels/sparsetrianglelevels.jl | 4 ++++ src/tensors/levels/sparsevbllevels.jl | 5 ++++- 26 files changed, 81 insertions(+), 2 deletions(-) diff --git a/src/tensors/combinators/offset.jl b/src/tensors/combinators/offset.jl index 1ff8b6330..4e5266e6d 100644 --- a/src/tensors/combinators/offset.jl +++ b/src/tensors/combinators/offset.jl @@ -17,6 +17,7 @@ end is_injective(lvl::VirtualOffsetArray, ctx) = is_injective(lvl.body, ctx) is_atomic(lvl::VirtualOffsetArray, ctx) = is_atomic(lvl.body, ctx) +is_concurrent(lvl::VirtualOffsetArray, ctx) = is_concurrent(lvl.body, ctx) Base.show(io::IO, ex::VirtualOffsetArray) = Base.show(io, MIME"text/plain"(), ex) function Base.show(io::IO, mime::MIME"text/plain", ex::VirtualOffsetArray) diff --git a/src/tensors/combinators/permissive.jl b/src/tensors/combinators/permissive.jl index 2d524e705..568b59038 100644 --- a/src/tensors/combinators/permissive.jl +++ b/src/tensors/combinators/permissive.jl @@ -19,6 +19,8 @@ end is_injective(lvl::VirtualPermissiveArray, ctx) = is_injective(lvl.body, ctx) is_atomic(lvl::VirtualPermissiveArray, ctx) = is_atomic(lvl.body, ctx) +is_concurrent(lvl::VirtualPermissiveArray, ctx) = is_concurrent(lvl.body, ctx) + Base.show(io::IO, ex::VirtualPermissiveArray) = Base.show(io, MIME"text/plain"(), ex) function Base.show(io::IO, mime::MIME"text/plain", ex::VirtualPermissiveArray) diff --git a/src/tensors/combinators/protocolized.jl b/src/tensors/combinators/protocolized.jl index 8acf93322..26aaafe95 100644 --- a/src/tensors/combinators/protocolized.jl +++ b/src/tensors/combinators/protocolized.jl @@ -17,6 +17,8 @@ end is_injective(lvl::VirtualProtocolizedArray, ctx) = is_injective(lvl.body, ctx) is_atomic(lvl::VirtualProtocolizedArray, ctx) = is_atomic(lvl.body, ctx) +is_concurrent(lvl::VirtualProtocolizedArray, ctx) = is_concurrent(lvl.body, ctx) + Base.:(==)(a::VirtualProtocolizedArray, b::VirtualProtocolizedArray) = a.body == b.body && a.protos == b.protos diff --git a/src/tensors/combinators/roots.jl b/src/tensors/combinators/roots.jl index b483216e0..a7f8d689d 100644 --- a/src/tensors/combinators/roots.jl +++ b/src/tensors/combinators/roots.jl @@ -30,6 +30,7 @@ lower_access(ctx::AbstractCompiler, node, tns::FinchNode) = is_injective(lvl::FinchNode, ctx) = is_injective(resolve(lvl, ctx), ctx) is_atomic(lvl::FinchNode, ctx) = is_atomic(resolve(lvl, ctx), ctx) +is_concurrent(lvl::FinchNode, ctx) = is_concurrent(resolve(lvl, ctx), ctx) function getroot(node::FinchNode) if node.kind === virtual diff --git a/src/tensors/combinators/scale.jl b/src/tensors/combinators/scale.jl index 54243ba7d..54ffb8e67 100644 --- a/src/tensors/combinators/scale.jl +++ b/src/tensors/combinators/scale.jl @@ -17,6 +17,8 @@ end is_injective(lvl::VirtualScaleArray, ctx) = is_injective(lvl.body, ctx) is_atomic(lvl::VirtualScaleArray, ctx) = is_atomic(lvl.body, ctx) +is_concurrent(lvl::VirtualScaleArray, ctx) = is_concurrent(lvl.body, ctx) + Base.show(io::IO, ex::VirtualScaleArray) = Base.show(io, MIME"text/plain"(), ex) function Base.show(io::IO, mime::MIME"text/plain", ex::VirtualScaleArray) diff --git a/src/tensors/combinators/toeplitz.jl b/src/tensors/combinators/toeplitz.jl index 5a9d43f42..7912d06a4 100644 --- a/src/tensors/combinators/toeplitz.jl +++ b/src/tensors/combinators/toeplitz.jl @@ -33,6 +33,10 @@ function is_atomic(lvl::VirtualToeplitzArray, ctx) newBelow = [below[1:lvl.dim]..., below[lvl.dim] && below[lvl.dim + 1], below[lvl.dim + 1:end]...] return (newBelow, overall) end +function is_concurrent(lvl::VirtualToeplitzArray, ctx) + sub = is_concurrent(lvl.body, ctx) + return [sub[1:lvl.dim]..., false, sub[lvl.dim + 1:end]...] +end Base.show(io::IO, ex::VirtualToeplitzArray) = Base.show(io, MIME"text/plain"(), ex) function Base.show(io::IO, mime::MIME"text/plain", ex::VirtualToeplitzArray) diff --git a/src/tensors/combinators/unfurled.jl b/src/tensors/combinators/unfurled.jl index 2ac707697..d0164394d 100644 --- a/src/tensors/combinators/unfurled.jl +++ b/src/tensors/combinators/unfurled.jl @@ -124,6 +124,7 @@ getroot(tns::Unfurled) = getroot(tns.arr) is_injective(lvl::Unfurled, ctx) = is_injective(lvl.arr, ctx) is_atomic(lvl::Unfurled, ctx) = is_atomic(lvl.arr, ctx) +is_concurrent(lvl::Unfurled, ctx) = is_concurrent(lvl.arr, ctx) function lower_access(ctx::AbstractCompiler, node, tns::Unfurled) if !isempty(node.idxs) diff --git a/src/tensors/combinators/windowed.jl b/src/tensors/combinators/windowed.jl index 169f518c3..fcc5b632c 100644 --- a/src/tensors/combinators/windowed.jl +++ b/src/tensors/combinators/windowed.jl @@ -17,6 +17,7 @@ end is_injective(lvl::VirtualWindowedArray, ctx) = is_injective(lvl.body, ctx) is_atomic(lvl::VirtualWindowedArray, ctx) = is_atomic(lvl.body, ctx) +is_concurrent(lvl::VirtualWindowedArray, ctx) = is_concurrent(lvl.body, ctx) Base.show(io::IO, ex::VirtualWindowedArray) = Base.show(io, MIME"text/plain"(), ex) function Base.show(io::IO, mime::MIME"text/plain", ex::VirtualWindowedArray) diff --git a/src/tensors/fibers.jl b/src/tensors/fibers.jl index c6cd05d5c..daf562b61 100644 --- a/src/tensors/fibers.jl +++ b/src/tensors/fibers.jl @@ -69,6 +69,8 @@ mutable struct VirtualFiber{Lvl} <: AbstractVirtualFiber{Lvl} end is_injective(tns::VirtualFiber, ctx) = is_level_injective(tns.lvl, ctx) +is_concurrent(tns::VirtualFiber, ctx) = is_level_concurrent(tns.lvl, ctx)[1] + is_atomic(tns::VirtualFiber, ctx) = is_level_atomic(tns.lvl, ctx) function virtualize(ex, ::Type{<:Tensor{Lvl}}, ctx, tag=freshen(ctx, :tns)) where {Lvl} diff --git a/src/tensors/levels/atomicelementlevels.jl b/src/tensors/levels/atomicelementlevels.jl index 4027a3a1d..9260c6bd0 100644 --- a/src/tensors/levels/atomicelementlevels.jl +++ b/src/tensors/levels/atomicelementlevels.jl @@ -89,6 +89,9 @@ end is_level_injective(::VirtualAtomicElementLevel, ctx) = [] is_level_atomic(lvl::VirtualAtomicElementLevel, ctx) = ([true], true) +function is_level_concurrent(lvl::VirtualAtomicLevel, ctx) + return ([], true) +end num_indexable(lvl::VirtualAtomicElementLevel, ctx) = 0 lower(lvl::VirtualAtomicElementLevel, ctx::AbstractCompiler, ::DefaultStyle) = lvl.ex diff --git a/src/tensors/levels/atomiclevels.jl b/src/tensors/levels/atomiclevels.jl index 7e85080cf..9eaaf398e 100644 --- a/src/tensors/levels/atomiclevels.jl +++ b/src/tensors/levels/atomiclevels.jl @@ -92,7 +92,10 @@ postype(lvl:: AtomicLevel) = postype(lvl.lvl) postype(lvl:: VirtualAtomicLevel) = postype(lvl.lvl) is_level_injective(lvl::VirtualAtomicLevel, ctx) = [is_level_injective(lvl.lvl, ctx)...] -is_level_concurrent(lvl::VirtualAtomicLevel, ctx) = [is_level_concurrent(lvl.lvl, ctx)..., true] +function is_level_concurrent(lvl::VirtualAtomicLevel, ctx) + (below, _) = is_level_concurrent(lvl.lvl) + return below +end function is_level_atomic(lvl::VirtualAtomicLevel, ctx) (below, _) = is_level_atomic(lvl.lvl, ctx) return (below, true) diff --git a/src/tensors/levels/denselevels.jl b/src/tensors/levels/denselevels.jl index c16b71eb1..414973d94 100644 --- a/src/tensors/levels/denselevels.jl +++ b/src/tensors/levels/denselevels.jl @@ -110,6 +110,10 @@ function is_level_atomic(lvl::VirtualDenseLevel, ctx) (data, atomic) = is_level_atomic(lvl.lvl, ctx) return ([data; [atomic for _ in 1:num_indexable(lvl, ctx)]], atomic) end +function is_level_concurrent(lvl::VirtualDenseLevel, ctx) + (data, concurrent) = is_level_concurrent(lvl.lvl, ctx) + return ([data; [atomic for _ in 1:num_indexable(lvl, ctx)]], concurrent) +end num_indexable(lvl::VirtualDenseLevel, ctx) = virtual_level_ndims(lvl, ctx) - virtual_level_ndims(lvl.lvl, ctx) diff --git a/src/tensors/levels/elementlevels.jl b/src/tensors/levels/elementlevels.jl index 13cf69adc..779933095 100644 --- a/src/tensors/levels/elementlevels.jl +++ b/src/tensors/levels/elementlevels.jl @@ -88,6 +88,9 @@ end is_level_injective(::VirtualElementLevel, ctx) = [] is_level_atomic(lvl::VirtualElementLevel, ctx) = ([false], false) +function is_level_concurrent(lvl::VirtualElementLevel, ctx) + return ([], true) +end num_indexable(lvl::VirtualElementLevel, ctx) = 0 lower(lvl::VirtualElementLevel, ctx::AbstractCompiler, ::DefaultStyle) = lvl.ex diff --git a/src/tensors/levels/patternlevels.jl b/src/tensors/levels/patternlevels.jl index 0be00cfb3..76c9231dd 100644 --- a/src/tensors/levels/patternlevels.jl +++ b/src/tensors/levels/patternlevels.jl @@ -86,6 +86,9 @@ end is_level_injective(::VirtualPatternLevel, ctx) = [] is_level_atomic(lvl::VirtualPatternLevel, ctx) = ([false], false) +function is_level_concurrent(lvl::VirtualPatternLevel, ctx) + return ([], true) +end num_indexable(lvl::VirtualPatternLevel, ctx) = 0 diff --git a/src/tensors/levels/repeatrlelevels.jl b/src/tensors/levels/repeatrlelevels.jl index 8b036e704..6d0a45111 100644 --- a/src/tensors/levels/repeatrlelevels.jl +++ b/src/tensors/levels/repeatrlelevels.jl @@ -136,6 +136,9 @@ mutable struct VirtualRepeatRLELevel <: AbstractVirtualLevel end is_level_injective(::VirtualRepeatRLELevel, ctx) = [false] is_level_atomic(lvl::VirtualRepeatRLELevel, ctx) = ([false], false) +function is_level_concurrent(lvl::VirtualRepeatRLELevel, ctx) + return ([false for _ in 1:num_indexable(lvl)], false) +end num_indexable(lvl::VirtualRepeatRLELevel, ctx) = length(lvl.shape) function virtualize(ex, ::Type{RepeatRLELevel{D, Ti, Tp, Tv, Ptr, Idx, Val}}, ctx, tag=:lvl) where {D, Ti, Tp, Tv, Ptr, Idx, Val} diff --git a/src/tensors/levels/separatelevels.jl b/src/tensors/levels/separatelevels.jl index 7fb264f48..63b25a10b 100644 --- a/src/tensors/levels/separatelevels.jl +++ b/src/tensors/levels/separatelevels.jl @@ -97,6 +97,10 @@ function is_level_atomic(lvl::VirtualSeparateLevel, ctx) (below, atomic) = is_level_atomic(lvl.lvl, ctx) return ([below; [atomic for _ in 1:num_indexable(lvl, ctx)]], atomic) end +function is_level_concurrent(lvl::VirtualSeparateLevel, ctx) + (data, _) = is_level_concurrent(lvl.lvl, ctx) + return (data, true) +end function lower(lvl::VirtualSeparateLevel, ctx::AbstractCompiler, ::DefaultStyle) quote diff --git a/src/tensors/levels/singlelistlevels.jl b/src/tensors/levels/singlelistlevels.jl index 3a5838dc7..da904fee8 100644 --- a/src/tensors/levels/singlelistlevels.jl +++ b/src/tensors/levels/singlelistlevels.jl @@ -147,6 +147,10 @@ function is_level_atomic(lvl::VirtualSingleListLevel, ctx) (below, atomic) = is_level_atomic(lvl.lvl, ctx) return ([below; [atomic for _ in 1:num_indexable(lvl, ctx)]], atomic) end +function is_level_concurrent(lvl::VirtualSingleListLevel, ctx) + (data, _) = is_level_concurrent(lvl.lvl, ctx) + return ([data; [false for _ in 1:num_indexable(lvl, ctx)]], false) +end num_indexable(lvl::VirtualSingleListLevel, ctx) = virtual_level_ndims(lvl, ctx) - virtual_level_ndims(lvl.lvl, ctx) function virtualize(ex, ::Type{SingleListLevel{Ti, Ptr, Idx, Lvl}}, ctx, tag=:lvl) where {Ti, Ptr, Idx, Lvl} diff --git a/src/tensors/levels/singlerlelevels.jl b/src/tensors/levels/singlerlelevels.jl index cfc685ee1..ac025bc08 100644 --- a/src/tensors/levels/singlerlelevels.jl +++ b/src/tensors/levels/singlerlelevels.jl @@ -149,6 +149,10 @@ function is_level_atomic(lvl::VirtualSingleRLELevel, ctx) (below, atomic) = is_level_atomic(lvl.lvl, ctx) return ([below; [atomic for _ in 1:num_indexable(lvl, ctx)]], atomic) end +function is_level_concurrent(lvl::VirtualSingleRLELevel, ctx) + (data, concurrent) = is_level_concurrent(lvl.lvl, ctx) + return ([data; [false for _ in 1:num_indexable(lvl, ctx)]], false) +end num_indexable(lvl::VirtualSingleRLELevel, ctx) = virtual_level_ndims(lvl, ctx) - virtual_level_ndims(lvl.lvl, ctx) diff --git a/src/tensors/levels/sparsebytemaplevels.jl b/src/tensors/levels/sparsebytemaplevels.jl index 8984b643a..4c805e996 100644 --- a/src/tensors/levels/sparsebytemaplevels.jl +++ b/src/tensors/levels/sparsebytemaplevels.jl @@ -144,6 +144,10 @@ function is_level_atomic(lvl::VirtualSparseByteMapLevel, ctx) (below, atomic) = is_level_atomic(lvl.lvl, ctx) return ([below; [atomic for _ in 1:num_indexable(lvl, ctx)]], atomic) end +function is_level_concurrent(lvl::VirtualSparseByteMapLevel, ctx) + (data, _) = is_level_concurrent(lvl.lvl, ctx) + return ([data; [false for _ in 1:num_indexable(lvl, ctx)]], false) +end num_indexable(lvl::VirtualSparseByteMapLevel, ctx) = virtual_level_ndims(lvl, ctx) - virtual_level_ndims(lvl.lvl, ctx) function virtualize(ex, ::Type{SparseByteMapLevel{Ti, Ptr, Tbl, Srt, Lvl}}, ctx, tag=:lvl) where {Ti, Ptr, Tbl, Srt, Lvl} diff --git a/src/tensors/levels/sparsecoolevels.jl b/src/tensors/levels/sparsecoolevels.jl index 1608e6f56..f4fd3597e 100644 --- a/src/tensors/levels/sparsecoolevels.jl +++ b/src/tensors/levels/sparsecoolevels.jl @@ -158,6 +158,10 @@ function is_level_atomic(lvl::VirtualSparseCOOLevel, ctx) (below, atomic) = is_level_atomic(lvl.lvl, ctx) return ([below; [atomic for _ in 1:num_indexable(lvl, ctx)]], atomic) end +function is_level_concurrent(lvl::VirtualSparseCOOLevel, ctx) + (data, _) = is_level_concurrent(lvl.lvl, ctx) + return ([data; [false for _ in 1:num_indexable(lvl, ctx)]], false) +end num_indexable(lvl::VirtualSparseCOOLevel, ctx) = virtual_level_ndims(lvl, ctx) - virtual_level_ndims(lvl.lvl, ctx) diff --git a/src/tensors/levels/sparsehashlevels.jl b/src/tensors/levels/sparsehashlevels.jl index 2a30b35e6..0d06d9195 100644 --- a/src/tensors/levels/sparsehashlevels.jl +++ b/src/tensors/levels/sparsehashlevels.jl @@ -174,6 +174,10 @@ function is_level_atomic(lvl::VirtualSparseHashLevel, ctx) (below, atomic) = is_level_atomic(lvl.lvl, ctx) return ([below; [atomic for _ in 1:num_indexable(lvl, ctx)]], atomic) end +function is_level_concurrent(lvl::VirtualSparseHashLevel, ctx) + (data, _) = is_level_concurrent(lvl.lvl, ctx) + return ([data; [false for _ in 1:num_indexable(lvl, ctx)]], false) +end num_indexable(lvl::VirtualSparseHashLevel, ctx) = virtual_level_ndims(lvl, ctx) - virtual_level_ndims(lvl.lvl, ctx) diff --git a/src/tensors/levels/sparselevels.jl b/src/tensors/levels/sparselevels.jl index c8715fefc..d8a33a2df 100644 --- a/src/tensors/levels/sparselevels.jl +++ b/src/tensors/levels/sparselevels.jl @@ -255,6 +255,11 @@ function is_level_atomic(lvl::VirtualSparseLevel, ctx) (below, atomic) = is_level_atomic(lvl.lvl, ctx) return ([below; [atomic for _ in 1:num_indexable(lvl, ctx)]], atomic) end +function is_level_concurrent(lvl::VirtualSparseLevel, ctx) + (data, _) = is_level_concurrent(lvl.lvl, ctx) + #FIXME: + return ([data; [false for _ in 1:num_indexable(lvl, ctx)]], false) +end num_indexable(lvl::VirtualSparseLevel, ctx) = virtual_level_ndims(lvl, ctx) - virtual_level_ndims(lvl.lvl, ctx) diff --git a/src/tensors/levels/sparselistlevels.jl b/src/tensors/levels/sparselistlevels.jl index 92bea37ca..dd1e0c6d1 100644 --- a/src/tensors/levels/sparselistlevels.jl +++ b/src/tensors/levels/sparselistlevels.jl @@ -142,6 +142,10 @@ function is_level_atomic(lvl::VirtualSparseListLevel, ctx) (below, atomic) = is_level_atomic(lvl.lvl, ctx) return ([below; [atomic for _ in 1:num_indexable(lvl, ctx)]], atomic) end +function is_level_concurrent(lvl::VirtualSparseListLevel, ctx) + (data, _) = is_level_concurrent(lvl.lvl, ctx) + return ([data; [false for _ in 1:num_indexable(lvl, ctx)]], false) +end num_indexable(lvl::VirtualSparseListLevel, ctx) = virtual_level_ndims(lvl, ctx) - virtual_level_ndims(lvl.lvl, ctx) diff --git a/src/tensors/levels/sparserlelevels.jl b/src/tensors/levels/sparserlelevels.jl index 1e62f0642..259256539 100644 --- a/src/tensors/levels/sparserlelevels.jl +++ b/src/tensors/levels/sparserlelevels.jl @@ -139,6 +139,10 @@ function is_level_atomic(lvl::VirtualSparseRLELevel, ctx) (below, atomic) = is_level_atomic(lvl.lvl, ctx) return ([below; [atomic for _ in 1:num_indexable(lvl, ctx)]], atomic) end +function is_level_concurrent(lvl::VirtualSparseRLELevel, ctx) + (data, _) = is_level_concurrent(lvl.lvl, ctx) + return ([data; [false for _ in 1:num_indexable(lvl, ctx)]], false) +end num_indexable(lvl::VirtualSparseRLELevel, ctx) = virtual_level_ndims(lvl, ctx) - virtual_level_ndims(lvl.lvl, ctx) diff --git a/src/tensors/levels/sparsetrianglelevels.jl b/src/tensors/levels/sparsetrianglelevels.jl index fa34e94ca..de924ee68 100644 --- a/src/tensors/levels/sparsetrianglelevels.jl +++ b/src/tensors/levels/sparsetrianglelevels.jl @@ -115,6 +115,10 @@ function is_level_atomic(lvl::VirtualSparseTriangleLevel, ctx) (below, atomic) = is_level_atomic(lvl.lvl, ctx) return ([below; [atomic for _ in 1:num_indexable(lvl, ctx)]], atomic) end +function is_level_concurrent(lvl::VirtualSparseTriangleLevel, ctx) + (data, _) = is_level_concurrent(lvl.lvl, ctx) + return ([data; [false for _ in 1:num_indexable(lvl, ctx)]], false) +end num_indexable(lvl::VirtualSparseTriangleLevel, ctx) = virtual_level_ndims(lvl, ctx) - virtual_level_ndims(lvl.lvl, ctx) diff --git a/src/tensors/levels/sparsevbllevels.jl b/src/tensors/levels/sparsevbllevels.jl index 0ba31741c..638c1ec12 100644 --- a/src/tensors/levels/sparsevbllevels.jl +++ b/src/tensors/levels/sparsevbllevels.jl @@ -152,7 +152,10 @@ function is_level_atomic(lvl::VirtualSparseVBLLevel, ctx) return ([below; [atomic for _ in 1:num_indexable(lvl, ctx)]], atomic) end num_indexable(lvl::VirtualSparseVBLLevel, ctx) = virtual_level_ndims(lvl, ctx) - virtual_level_ndims(lvl.lvl, ctx) - +function is_level_concurrent(lvl::VirtualSparseVBLLevel, ctx) + (data, _) = is_level_concurrent(lvl.lvl, ctx) + return ([data; [false for _ in 1:num_indexable(lvl, ctx)]], false) +end postype(lvl::VirtualSparseVBLLevel) = postype(lvl.lvl) From fb2e43b7d1f1a37380c687c0937d4d0e9ad4aee1 Mon Sep 17 00:00:00 2001 From: teocollin1995 Date: Thu, 29 Feb 2024 13:09:21 -0500 Subject: [PATCH 32/41] okay added concurrent --- src/tensors/levels/atomiclevels.jl | 4 ++-- src/tensors/levels/denselevels.jl | 2 +- src/tensors/levels/separatelevels.jl | 1 - src/tensors/levels/singlerlelevels.jl | 1 - src/tensors/levels/sparserlelevels.jl | 1 - src/transforms/concurrent.jl | 18 +++++++++++------- .../debug_parallel_spmms_atomics.txt | 2 +- .../debug_parallel_spmms_no_atomics.txt | 12 ++++++------ 8 files changed, 21 insertions(+), 20 deletions(-) diff --git a/src/tensors/levels/atomiclevels.jl b/src/tensors/levels/atomiclevels.jl index 9eaaf398e..6d86eb9b3 100644 --- a/src/tensors/levels/atomiclevels.jl +++ b/src/tensors/levels/atomiclevels.jl @@ -93,8 +93,8 @@ postype(lvl:: VirtualAtomicLevel) = postype(lvl.lvl) is_level_injective(lvl::VirtualAtomicLevel, ctx) = [is_level_injective(lvl.lvl, ctx)...] function is_level_concurrent(lvl::VirtualAtomicLevel, ctx) - (below, _) = is_level_concurrent(lvl.lvl) - return below + (below, c) = is_level_concurrent(lvl.lvl, ctx) + return (below, c) end function is_level_atomic(lvl::VirtualAtomicLevel, ctx) (below, _) = is_level_atomic(lvl.lvl, ctx) diff --git a/src/tensors/levels/denselevels.jl b/src/tensors/levels/denselevels.jl index 414973d94..494ce793b 100644 --- a/src/tensors/levels/denselevels.jl +++ b/src/tensors/levels/denselevels.jl @@ -112,7 +112,7 @@ function is_level_atomic(lvl::VirtualDenseLevel, ctx) end function is_level_concurrent(lvl::VirtualDenseLevel, ctx) (data, concurrent) = is_level_concurrent(lvl.lvl, ctx) - return ([data; [atomic for _ in 1:num_indexable(lvl, ctx)]], concurrent) + return ([data; [concurrent for _ in 1:num_indexable(lvl, ctx)]], concurrent) end num_indexable(lvl::VirtualDenseLevel, ctx) = virtual_level_ndims(lvl, ctx) - virtual_level_ndims(lvl.lvl, ctx) diff --git a/src/tensors/levels/separatelevels.jl b/src/tensors/levels/separatelevels.jl index 63b25a10b..0d5c1c460 100644 --- a/src/tensors/levels/separatelevels.jl +++ b/src/tensors/levels/separatelevels.jl @@ -91,7 +91,6 @@ end postype(lvl:: VirtualSeparateLevel) = postype(lvl.lvl) is_level_injective(lvl::VirtualSeparateLevel, ctx) = [is_level_injective(lvl.lvl, ctx)..., true] -is_level_concurrent(lvl::VirtualSeparateLevel, ctx) = [is_level_concurrent(lvl.lvl, ctx)..., true] num_indexable(lvl::VirtualSeparateLevel, ctx) = virtual_level_ndims(lvl, ctx) - virtual_level_ndims(lvl.lvl, ctx) function is_level_atomic(lvl::VirtualSeparateLevel, ctx) (below, atomic) = is_level_atomic(lvl.lvl, ctx) diff --git a/src/tensors/levels/singlerlelevels.jl b/src/tensors/levels/singlerlelevels.jl index ac025bc08..188273bfd 100644 --- a/src/tensors/levels/singlerlelevels.jl +++ b/src/tensors/levels/singlerlelevels.jl @@ -144,7 +144,6 @@ mutable struct VirtualSingleRLELevel <: AbstractVirtualLevel end is_level_injective(lvl::VirtualSingleRLELevel, ctx) = [false, is_level_injective(lvl.lvl, ctx)...] -is_level_concurrent(lvl::VirtualSingleRLELevel, ctx) = [false, is_level_concurrent(lvl.lvl, ctx)...] function is_level_atomic(lvl::VirtualSingleRLELevel, ctx) (below, atomic) = is_level_atomic(lvl.lvl, ctx) return ([below; [atomic for _ in 1:num_indexable(lvl, ctx)]], atomic) diff --git a/src/tensors/levels/sparserlelevels.jl b/src/tensors/levels/sparserlelevels.jl index 259256539..961f7de41 100644 --- a/src/tensors/levels/sparserlelevels.jl +++ b/src/tensors/levels/sparserlelevels.jl @@ -134,7 +134,6 @@ mutable struct VirtualSparseRLELevel <: AbstractVirtualLevel end is_level_injective(lvl::VirtualSparseRLELevel, ctx) = [false, is_level_injective(lvl.lvl, ctx)...] -is_level_concurrent(lvl::VirtualSparseRLELevel, ctx) = [false, is_level_concurrent(lvl.lvl, ctx)...] function is_level_atomic(lvl::VirtualSparseRLELevel, ctx) (below, atomic) = is_level_atomic(lvl.lvl, ctx) return ([below; [atomic for _ in 1:num_indexable(lvl, ctx)]], atomic) diff --git a/src/transforms/concurrent.jl b/src/transforms/concurrent.jl index ebeb452d8..861939fac 100644 --- a/src/transforms/concurrent.jl +++ b/src/transforms/concurrent.jl @@ -70,9 +70,11 @@ function ensure_concurrent(root, ctx) if (length(ops) == 1) if (@capture(acc, access(~tns, ~mode, ~i...))) injectivityIdp:: Vector{Bool} = is_injective(tns, ctx) - if !all(injectivityIdp) - throw(FinchConcurrencyError("Non-associative operations can only be parallelized in the case of a single injective acceses, but the injectivity is $(injectivity)")) + concurrencyInfo = is_concurrent(tns, ctx) + if !all(injectivityIdp) || !all(concurrencyInfo) + throw(FinchConcurrencyError("Non-associative operations can only be parallelized in the case of a single injective acceses, but the injectivity is $(injectivity) and the concurrency is $(concurrencyInfo).")) else + continue # We pass via a single assignment that is completely injective. end else @@ -85,8 +87,9 @@ function ensure_concurrent(root, ctx) if !allequal(accs) for acc in accs (below, _) = is_atomic(acc.tns, ctx) - if !all(below) - throw(FinchConcurrencyError("Nonlocal assignments to $(root) are not all the same access so atomics are needed on all acceses!")) + concurrencyInfo = is_concurrent(acc.tns, ctx) + if !all(below) || !all(concurrencyInfo) + throw(FinchConcurrencyError("Nonlocal assignments to $(root) are not all the same access so concurrency and atomics are needed on all acceses!")) end end continue @@ -96,6 +99,7 @@ function ensure_concurrent(root, ctx) if (@capture(acc, access(~tns, ~mode, ~i...))) locations_with_parallel_vars = [] injectivity:: Vector{Bool} = is_injective(tns, ctx) + concurrencyInfo = is_concurrent(acc.tns, ctx) for loc in 1:length(i) if i[loc] in indicies_in_region push!(locations_with_parallel_vars, loc + 1) @@ -111,15 +115,15 @@ function ensure_concurrent(root, ctx) end end - if all(injectivity[[x-1 for x in locations_with_parallel_vars]]) + if all(injectivity[[x-1 for x in locations_with_parallel_vars]]) && all(concurrencyInfo[[x-1 for x in locations_with_parallel_vars]]) continue # We pass due to injectivity! end # FIXME: This could be more fine grained: atomics need to only protect the non-injectivity. (below, _) = is_atomic(acc.tns, ctx) - if all(below[locations_with_parallel_vars]) + if all(below[locations_with_parallel_vars]) && all(concurrencyInfo[[x-1 for x in locations_with_parallel_vars]]) continue # we pass due to atomics! else - throw(FinchConcurrencyError("Assignment $(acc) requires injectivity or atomics in at least places $(locations_with_parallel_vars), but does not have them, due to injectivity=$(injectivity) and atomics=$(below) ")) + throw(FinchConcurrencyError("Assignment $(acc) requires injectivity or atomics in at least places $(locations_with_parallel_vars), but does not have them, due to injectivity=$(injectivity) and atomics=$(below) and concurrency=$(concurrencyInfo).")) end else throw(FinchConcurrencyError("Assignment $(acc) is invalid! ")) diff --git a/test/reference64/debug_parallel_spmms_atomics.txt b/test/reference64/debug_parallel_spmms_atomics.txt index df74db1ab..20b20d91c 100644 --- a/test/reference64/debug_parallel_spmms_atomics.txt +++ b/test/reference64/debug_parallel_spmms_atomics.txt @@ -8,5 +8,5 @@ julia> @finch begin end end end -(CR = Tensor(Dense{Int64}(Dense{Int64}(Element{0, Int64, Int64}([3181970843987905448, -3850056869099523067, -4204843097075662118, -4127505234153259466, -7448145861255385442, 4215895315195742200, 7998833515547779022, -2332870056518785556, -8655795771438517657, 2346628281792595786, 5168462670218741546, -4546044364532006657, -7066614092185186792, 7711607679338119117, -2215980418627622170, -2961180033960777632, -2052368183891862705, 6918062046201944172, 5333425266345424700, -1883409538577270133, 3070718374851501973, -584557342293968000, -8599591255011453020, 1024144893304443815, 2076995081199603242, -7802182914905457992, -4167699252459599539, -3887593858282510867, -8329811636297293631, 2403502548425943999, -8992535261859431141, 7732879934538403489, 8580850193526551279, 8600424622852042205, 8409357027799742939, 7967558442536203272, -5332322484799506010, -1167875789224190240, -1560483637596481957, -7170268037711889920, 8536885208722912629, 1933971302746356103, 592084962047442655, -3325740022144620352, 7148687607170556858, -2827329136887248760, -8474383359358847311, -375176215073168848, -328845714335337097, -7093012325411060305, 7270928228981681573, 7801224415125572934, -1200011290295899247, -5883234664733751303, -3456060509312948237, 8930477183810983995, -7246126003624817290, -7230438601934072480, -796695102327918106, -7623615471911285244, 3984965219492178243, -3751133482976466843, 8628616154337416834, 5169018776259566451, 5666724502482543874, -7181846852244309982, 510032945754605292, -2036443600711618716, -3875936270383245534, -6401583512195394850, -6408463767670387346, 3637236484351011295, -5446245249874253500, -7721983993101947424, -2717121262768700294, -6339515824641771380, -491082432901457237, -3959961207515965645, -5606163275063373420, -598012196426132205, 1513688757000086373, 1976564786397409403, -2197641393863414744, -8936929132254312124, -3039048052889020088, -4957275612570012121, -8861816435927656278, 274537212489260569, -1085858551661955789, 8264608449500061415, -2655490290771322480, 8224088687495394898, 6222853122742716623, -4479686358103321537, 312455838922025831, -6068485155351571811, -1403337492944694147, -708155436908109347, -8437482921311081929, 5059588658283146233, 5358651936556075541, 5828556772389204118, 3484560634958130574, 2140760747834136408, 2689189380958344715, -1231614974295164235, 2789253172328390945, -2576686889163373367, 8161088155605216235, -5928436064036350668, -1023953918500745676, 3193349290797258914, -593310538774713629, -5473113675865404999, -300206505291400158, -8731905762698655874, 1413715850722171139, 1552688768827583696, 6987713428188283235, 608718224843749440, 9214998724442064410, -6277222077483500903, 3740915251760168018, 3522941123973735295, 7535943865236219345, 472136439446252604, -4044890150797338480, -6427338134862359312, -8032253032489364151, -7504552028263408802, 3491192171787655831, 7170919161873775622, -8363910902886312684, 101148124793698855, -548978419920827590, 5016629710983913833, 908941305389523822, -3300228693767642321, -1553391401309748907, 3254281837361621528, -2646123048634437729, 3651217885743686721, -7209790749291984852, 6484293950532162776, -6932624455724965003, 5830415732221788358, -3759811259077961296, -890473731316933869, 2840485702573192240, 725319099675139417, -4450340975248100659, -6067341295793260641, 1077622207944413489, -5425231652195594354, -1406333024860500942, 5884936055865974293, 9180115908712258600, 546873286539806995, 2007149814478564313, -7564970747919527478, -4068638238230270839, 8669336576334016907, -2066176776598428446, 2683738255085345889, -8135532428761650604, 7728913764556534262, -3735755454946303170, -6852017222228375156, -8546542286526847610, 8179367461137952329, -3393520720059475030, -3484994194630084597, 6673602022770340261, 8455663976163612706, -4212588172370543816, 7562812692119199354, 8884831217853111537, 1519813207992835898, 9204060391950175344, 4790385613020725546, -695043056225075203, -2088237545770637843, -5835236838428209727, -6513447960974116663, 5184423621363333703, 2880514522909316358, -6885101066484554598, 5099200159441754323, -4431566498207589639, 198163613886007299, -8146401554251845729, -5230403922773691522, 4241793009277348609, -8414097471550650292, 5876054894975216636, -4360822335183390040, 4929286375133259248, -9123446621149807210, 2730627716160595477, 6997146714182098881, 22537673922245572, 8384322330090227166, -8430930550925068831, 4963308809230992206, 9054799744333458048, 5278709756892082150, -5732463865833337026, 7457474318149187622, 8973654646368849383, -5828119643988801352, -6998622253720465610, 6802012211169429393, -4117347963047535807, -4341004926726168370, 7750217515066620195, 7222394143116643268, -6506427335075755017, 3208392202814699182, 7267113194182834249, 878197186607368266, 8979920976205087867, 5682824910850072941, -5316375387931669837, -7409856751041270340, -3665315003502248518, -3019319637535263073, -1459974104658062118, 4788716285048589225, -8306776436166340931, -7901481308153257317, -4597109274859359791, -6382850280333102641, 5526962378148444782, -6228222457660245416, -5410005753076135215, 5825082713338262907, 4536026421021731886, 8289028358931238358, 2995045453405484176, 6072530796000898281, -7334829869957765128, -1414016308814093606, 738861144771574442, 3944941504634358760, 827914513949320136, 3273612581244904095, 5967547548091751296, 5355438394656442028, -6487319124325986220, -3004599436119910836, -2813146693865556533, -4385818330461015033, -1344540663518395616, -1532793139149058021, 132218475126736528, -2163819095523500752, 4276207791856666392, 4106414165160305454, 8721974359179999962, 7150135769328769148, -6025812628155046318, 4662525576651279512, -1433742508133268083, 6270076104596189629, -5756139140508697738, -8901187970063977504, -1436584464987571413, 2743053735673017405, 4363241872317329644, -2759125424203423154, 3720510633532327477, 5006386652003108522, 469390950672548518, -6370848878573150692, 8381768680309848972, 5910557453156194421, 8597915859825020507, 7295340751829376627, -6645799360981374445, -3768633298557525127, 6604243952581093050, 3883789839948827776, 3297274003466300652, -5940680995955509998, 8626378573962917078, 1934045068018525046, 2420600470540399238, 6201358753651461405, 6171383600189441566, 2438940665717633026, -2036034789068960839, 1061282539109862794, -7811400112309110218, -2087841935858306311, 4453033478250939160, 2090690010728068356, 8279879557005301929, 8203050140399983475, 1340412063494841506, -2769855271746900903, -4359585879755207513, -2314210915725906679, -5088543706493574343, -1600381159551291550, 5429359666444640466, 4358995816511012533, 1014495868971190628, -7832333855251665301, -2170672031533445919, 2423542234870821706, 3423825551927538809, -9035138176098021900, -370216007490059858, -6509583281484340677, 5353482050200144249, 8813492599773103310, 7982254444650566245, -2860353429166062431, -1334107210814308351, 8452961053357190501, 8666177271350310359, 3811520367162623078, 5897384351664637039, 6735042555538327942, -1020974104037943740, 5464707557961847026, -1766665848980041394, 1914427988741657811, -8512805285374605480, 5109592656370952389, 7426589604593046401, -1932557584372992591, -578749433830321756, -7922203875914675096, -4456833760082067550, 1844456327512524956, 4166512513681905445, 1596886082294031148, 8410851655593711267, -1614219335193089918, -5994217749949249716, -6409151210356268170, -4307495971922673738, -7446547187169455649, 5872808645150055093, -3875433738849222364, -3399810294776140572, 8446414476298515099, 701445569591098124, 1865083393456801515, 5815654404975814596, 3638703453688268831, -533807494571241636, 6364804383335608635, 425056221750346919, 1964742970035220502, -2452292118882326330, 8062632884746849081, 8376971727573382053, -5431604539643607469, 7837130951287290495, 4332520410352232945, 8975347559970765515, -6682145075233701650, 3444841688622480542, -4327171716460925990, -6916318882861965729, -8708121476660821285, -4095291224056331927, 695066600472552220, -5549506866012526284, -2786728877672533429, 5737874292414337997, 4016367750909379513, 4684196674034754483, -4779951985560068558, -2801053444648265378, 6546098599497193358, 6661706172807062179, -5451659769336253935, -6798185872045544851, 8117124099189252126, -2244232681855890472, -8569573688733903788, -5123101448292461830, 8875385754394612276, -6192148155760510077, -2439677379889853848, -8116025351122255378, -7259015087308053155, -3836623265652591711, -6851959711738197653, 4702704586075608149, 3554455553749487804, 1208229087631991948, -7601044345589583810, -3222354634459296773, 2713044992806543010, 1307000751017877479, 7893516534073975911, -6471069436762416993, 4286369100146448066, 7469649274609154228, -1520352324442205515, -2282915798683674671, 6793399868769117018, 6587133192300108608, 2665196295694034641, -5528535853897634937, 7298640037748180967, -8599408336148004786, -854623590747517409, 1749054646334470057, 7005542417475236603, -6223563913290118972, 7458609708963784366, -4191621808744023533, -476825722096220119, 6720086268497692306, 2283692511679719861, -4886163418139150401, 2770582334679262777, 67183777345760071, -9019650260004097572, 5533555647908420862, 7710129867560887388, 321784340762885578, -8450979317743588629, -6011664871692843385, 8051674332252848275, -4968878855226913449, 3668886519710227516, 4973456359201411003, -2222469230497361804, -3780739240122309340, 4122181335056487542, -7375241210115366788, -7456667173273164169, 1905323704673164429, -5607189634051453762, -448949673592724761, 2704937170274218032, 6211619123698033311, -297560388853574033, -7973387032184082467, 333966721796280459, -5286572687223023239, -4181728603238699670, -7414291261399062874, -4766691938907913831, 8605619376330386992, 116482691951779708, 8027342191572768936, -1869058823282186923, -7788956870416672680, -2097174266566589679, 4539954461562653574, -3846049751132736737, 4614883122386325096, 5690682742133847884, 3903538520631819469, 626765007171476942, -6136831629207253169, -7849590177655009557, 9026969610418961105, 1240223135872375561, 4794974537724296325, 2558263810002910749, -7036689251366187335, -8250054706829199185, -5830863372543946672, -5566722646582014133, 3499929882665732110, -4716072647268265443, -6994847484538666087, 6202658398536042929, 150941740476624681, -786155471515185327, 8358267036701292069, -1350320304660429831, -7873783934848585310, -7055608198307268835, 1120588522179773814, -6139834770205482269, 529698297989234444, 7047115715927053091, 2590662420539480660, 8092931287016944960, 6523751230836392335, 8579523333388122842, 1235369983472494308, 3363052291714795708, -4371794177969464594, 4386393025600156315, -999995286438539136, -4298608191610539692, 5489951772214416518, -344889797933644118, -4649501890310587535, -426245385812669971, 8959691818859071492, -3714224211400998478, -481864102938098835, -3219744519184113323, 7808357100731372619, 5144759106511714857, -1621017192841263207, -7733917838713639316, 8346525065860359349, -1022675741067094829, -7831592155044953220, 2243752361238141209, 4937191037705384333, 1703833955705349720, 1277220326732572094, 6642836126769522152, -2015089747902264688, 8397744139773779341, -8754246721200920959, 5030943183274130399, 2255664978669803139, 398194130056459981, -5538783663860721336, 3525521270241659677, 4568846248079226595, -2366806056330501543, 670542083363928958, -7349635100114963949, -2758708108294126823, 6518001729379055044, 8185233477846281784, 507512537375306251, 7251119308042129217, -419541723839125188, -9164320270675460253, 1677975380085138244, -3727841627222742216, -1648674141051628485, 686318495143900865, -8978915409449450409, 4875195316137236532, -8232347764463501160, -6439341289876475777, -468904761235802403, 4419355599306252080, -764348943507295662, -2881962201749269714, -862357860147047260, -554746556126711215, 665535063351884615, -1071580913294255047, -1474581988990492802, 5358360692134853739, 7593810623808509014, -4389763359039516643, 4790976631094662067, 8602066635910207695, -2073525837375342595, -3264155184151559472, 7413238124946251566, -8267203190047340337, 2524073160846348532, -1261338882487386361, 606626175998446947, -797078102177998290, 1254102430124929233, 9111678429941237030, 2217417475113781175, 3961285526745336629, -3815101613658868125, -7785417973692634750, 6744357070019667819, -4199399435713983462, 347886064776979335, 6519442808226222658, 8263395652264984787, 6700286935096843272, 6891052467629489805, 7536802834433512012, 7238261230549383239, 2171331922696715341, -7533103057279125716, 9222123843876777258, 4782489311648144493, -8951764690709529498, 4261263594624861924, -7165845354142462976, -284595862098035157, 5908021728522803814, -6589427981426083794, 5195967567108669015, 6042781203619832038, -7288256735084472398, 3890651964747049753, -5465445678316582073, -1602758104812258592, 7025163633367653584, 6371704729012101924, 9076330547015180904, -277752999677611287, 2341708161002851753, 1276992211326518965, 8134282328411156096, 5750108339109251744, -4450071425902531716, -4035661961932059908, 7784690546898215441, 4042067938691922258, 5594956258798853518, 8820360892845552603, -927985534545850780, -1738223906490307422, 7873802301890530367, 5496866230478130350, 6890185447067627918, 7111335868363173779, 4058786941396195803, -2713141987512003659, -5094531893167405948, 1602193888069332957, 5467561702004983955, -9110588277367219758, 5792821396953538442, 7502722827846167302, -765393583428309830, 6259144697823292327, 7091541854849322517, -3474153726805554676, 269983468933392775, -3104785476722097992, 1283378465322523954, 6264322424734798914, -1847161620898170249, 1399411110916017109, -5832370880879301177, 6858741992933703093, -7647294045148909450, -2429150354907079008, 8813035802539622375, 8519452802863276469, 4764552369546218773, -6662585272212890187, 4829548878469240624, 1726934843234645183, 5030098427578119272, 2876296201517247815, 2283779242971036346, -5889906923781792564, -4183471508048944104, 3668652741266155347, -261793770864219923, -6681862137698572073, -6643080116093433623, 1552410359999544983, -1909657199041168467, 1473889061277033665, 6003381346144915137, -1772274420909035815, 3032818516081424385, -6261889912991183081, -8737378639105639340, 6088285686002848033, -6695208174623828055, 5140907125836336682, -7581378165490056099, -7843164663530894225, -7640383705662386286, -1000517442342162410, 3697790436293135244, 4352869489135655853, 7390868897552125467, -733529623512770420, 5995006982338288453, 6615055133521276743, 5208846398424867932, -6806012926450004088, 1749407397154167653, -7524522094355617082, -2651875468404818190, 2929649945903148502, 5405928240201875925, -8121108988368625080, -4788888534392357503, -6237024874527851413, -6799700511060043972, 372787976963359163, -3950831220486862945, -1074266190497660581, 53966247007192725, -1953822884504770038, -1593787140720458678, -4438729694324061292, -2484124499477747238, 132479963018821901, -469757579161326412, -7963602685611128985, -5431886488035667961, -5031788717104934643, -5899761189930355675, -6849547884233454994, 6494785306457637180, 8860157917503708350, -1492718035220061659, -5776757506223411037, 8873585935269026980, -6214089325649815347, 2159629264830343034, -3578345496882199402, -6520205499067174098, -4289015989591097560, 2589076400782820850, 1932173867623798148, 3655086406237098867, 1058405920846872542, -5085992435028863195, -6756982862622802364, 1759979147475732289, -4956682537734973333, 1747484022075041157, -8010789107463204508, 1374320913033896307, -6262567463558726211, -8961444530702048179, -6022059227121479819, -1039341458755478739, -2715621808836670767, -4419025076234732745, 6276663990342162931, -6246585764721293924, 6472588440420846252, -2740651791374742514, -4300137564908384497, -8446750873265233805, 2187427167996175584, -8948856581465340257, -7037399322307386525, 3384614778360829398, 8650438058841399920, 727404544262665698, 9002557235110564908, 8045494209687566956, -8842174440921301765, 4697569690776103363, -6211545345805059934, -4566076775909840271, 1304555628725388481, -7240592876643173974, -7477235753956265183, -1370961510586011213, -4437744936451623672, 2676041276138306875, 6365683191926955844, 3738487080214977077, 5179578147043996407, -5174441899682912369, -2247579844307325787, 2099073561112423639, -3574389912844348008, 7844144738998798820, 7094074834040956103, -6075813603619410555, 5524387877116700274, -5264633485723240347, 1398160585013866263, 6651279121795127026, -5237091415383974308, 4606984162704223504, 4786103526128584525, -6501986550892418278, 2616881957223423446, -3369073595229717169, 5177501602850888719, -1010045361692376562, -9047738360122226481, 3511367611808785028, -6632193551846458222, 1785298653356423522, 662393845497381708, 2612973951930449936, 4847078168615300436, 2267937584373417730, -268725554496826066, -3153565509644201163, -5676613740638583074, -442090382920406345, -1165105710351670434, 3111496902072733141, -7439263928018798890, -637884479226538418, 8360639472829240952, 1436597737576156422, 8352370661194907059, 8495866536247364613, -8431965252297662302, 5202579245345442215, 8859294385486236803, -3344101369546780119, 633320410143639494, -8059862116622679859, 941968234043210544, -3467300913655193114, -5915905467462443930, -2604455509385509474, 3965856517830472036, 4249775469874959917, 294358395001535763, 449216842051633814, -2299082301664696095, 3438650898962314879, 1326252147599425653, -8639533679961572632, -4586890788311553107, 2079957748266810093, -607931890122845459, 7549561779263843220, -8004235533426179179, -6382463985765766022, -5893868483230106951, 5931091027920092216, 2461645856059600997, 6437518165106995095, 6449157557348575280, 5051174385004726402, -1739484161430739697, 2907098286850689123, -3301767967618826786, -2967191408774200117, 8848597363928139931, -2669579561088735867, 1041764300542063645, -3046208811374404249, 4089827711490987238, 162918292256246823, 7728985407243913454, 6683788456036082450, -65372412454279033, -4777641038456627516, 4518719576241788864, -2892385704559923483, -11873350006891468, 414118238763389275, -4203585648885831455, 7113732426458513521, 7124116837093330308, 8031738774809630896, -2957455807996467653, -396966644507959256, -2480532201225795867, -4730124632920518009, 7653065390416899965, 2303145489527459607, -1785902409240441396, -4904090046186379805, 7378684674243916604, 1986873130903010395, -4024443721092708779, 4142341594930520054, -3155680742006657638, 7755411428349838450, -6713886245299813948, 1207567601993306755, 3013004574101004567, 8535388564800379920, -5052558026165831802, -8095651774067732238, -2016719882002032781, 2666376835632200904, 4151826685200814622, -8053035760722952426, 2867306104553014458, -1997649160623091696, -8529685204300492964, -5444492969183937845, -5004630252646825240, 2258504148089306867, 2239304804515258045, 1833341305236292090, -1153995974233577889, 971255248630258795, 7156553464850931669, 2058847092537045689, -7098748185061118633, 3063235549897274382, -6818293460406551623, -5368008927736608129, -5847004881185342333, 666338667701603633, -1430281350263851708, -7173894175478689970, 8110217969878070696, -4381125134626259806, 4283534925993594767, 3440111263021072960, -4651621317936956643, 7357849512395603908, 4335100373585394798, -8997817946656946314, -7684245557083988018, -2482673156102390091, 3479183989268718287, -6216093121578403693, 57701043061110366, -2071748640732340309, 7871329688920369468, -5897078693994933543, 1018670761067640318, -5752603781799876412, -8316354169557976636, 5346081508003183977, -2576789302622478166, 2097167527447183117, -4684195631774507513, 4458471691269507108, 301841919179895890, -4384717580308058099, 3691875550279032397, 6084262928215168855, 7228260429002091319, -4012763255949585995, -3898391863225096418, 5591519968330308357, 8130467655323772980, -3187900718754744805, -6316176023284770717, 5935034804304913849, 9112650124100200013, 3684452634871078883, -6349281288005107120, 6104103955788842764, 4978817595886154095, 2736791807423621256, -2949230092093273253, -8441824337967283177, -8055623501435422734, 8218329528371628605, 997355400186453577, 4207908766655140620, 4289779634965258975, 1986154740350606974, -490931445085678176, 7420735507295705926, 4772463540721640615, -6454751122770122603, 6893318926907003577, 1113809225533508202, -4937160178673003272, 3466561426759839824, -4865697881485138164, -7762301013705701585, -3517905777365560928, -7467842237618933115, -6829354818686583241, -1853790882244705913, 2837254862960774925, -9447693526596756, 5160227848791401033, 3243135821035883507, 1837872866663800019, -6495149537191159275, 2793347884052472949, -6869039539732354486, 1733002901539311043, -4534759035643988094, -3077372244066166280, -7486188295316145149, -4207270884822750635, 4885435555892183229, -194210391538762563, 7569417524132138422, -6616638346488783500, -9157069907087907840, -4788470207897655748, -101051817816644249, -5905159537882624564, 2517974846974293279, 3288067126608690142, -5880936751843755284, -8748515549285929255, -2747211292706341330, 817479330228429669, 5472116010713556352, -1368039994561669275, 3077391132058962641, 7350200978338397579, 5674299766598758746, -7443474920878748255, -8311421115375546701, -2225701961632933931, 4964420079252309235, 5317356918048027323, 7169242865412277308, 7431442768858260572, 9188249157545665782, -8531318597802076987, 5528247945159447556, -365872420343213660, -3601147154117513932, 4572364663344249901, -3147973343481323134, -5096309377621954314, 6644130316584259514, -5212517079152828072, -4332004539950394560, 4429081980322938075, 6794590205694238055, 8552455300491284526, 2435408871436868589, 2642846024497826810, 6436708708388562461, -3064889242738158862, -1936147481151317487, 4963190048371039808, -2945646189057478220, 3964324362948670579, 8140170110173081978, -7654012653370997729, 7803192176664019869, -5225952706230089466, 6424175497118454134, -4797587508735745474, 5482455902099626205, -8726112702248696656, -6177261973663585151, 5396077864951767606, -9104614936936506195, 3269989460396869728, -6307913583762684601, 555990801194999658, -1775686637124430529, -1936857268591116943, 8082121154391489838, -3675545554408028481, -1210844020140922893, 1314455896362078687, 3905941137392355873, -1634955695732166500, -7729411899238838166, 7750412208254986762, -7626623065304168776, 550536335990080106, -3061213652286224176, 7349510043722130369, -7601440924448410910, 2053534615379089302, -3588636000831199886, -7825436438852880929, -336194864311713279, 8093281490640911671, 4071694280951834956, -2315987233992714808, 7368925053245671853, 924671947379134291, 7540388522988114734, 8478943043783266143, 6133988380787355444, 4479208141476023363, -1929106257729455248, 2008807732834265318, -6333045173492242468, 4021800267014083027, -4873427382772391803, 421264777132831034, -1486477869400563478, 621543626085662711, -3746063520496597394, 4180686833354924605, -6961382740795067774, 6175190664372734221, -6158031312190422204, 4455307650012290456, -1557180089025543884, 4614639966756299731, 1403571411973645473, -2941956486824874475, -3441743391900967885, 3274453795289446985, -7393764712051979990, 3376663692575294712, -7756759130581259809, -7234218870751220823, -595018065050761384, 5256137035825994942, -3097747956275781961, -2832970358237690520, -1836471353471437085, -2926762270012483342, -763575997099229173, -3820984474634528072, 453254782353207005, -6307444510021481612, 6256571306530317370, -4115762715315019110, 9126106790423179890, 996569772564294797, -983718737747222200, 7461015198536216044, 1725108730638160655, 6249329592864340126, -3524807508971938631, -3392306447709157456, -4581611153342250858, 3301580664277535074, -5487447831592793254, -2208341968902491958, 2110772413920577175, 4565165552067841965, 5826207817182738922, 3798133625868022499, -1227610582517206754, -9191540567461327403, 7942942598813804488, 1865769997356640476, -1467835330421369733, 6726551205934106582, 8441276065563109186, -2558103189350830609, -1878900609363560403, -3252708595851103644, 3876480768477846528, -5269272055314305319, 5588768481455550805, -1896204439232145943, -1666584407352177973, 5053013470537406012, 6106284614330841759, -4073022357540706919, -7093711680576088870, 2601976610716135718, -575890931649267867, 5016682608700701541, 1172397610829330356, 9206002274663363819, 265049619966115753, 5344911310666103826, -2682807614596125205, -8384930143012565407, -2716089791689870331, 1027452025944454701, 4007852459459799597, -5929635169336237603, 5269456427532488373, 4336900886962150032, 1350572943722361044, 4325957098337475498, 4838710684790330282, 2927916414853728668, 3020597732987283658, -3398565715772162208, 6733332792715278658, 5664632712338843721, 2009918740256997064, 4868028162747753635, 4327939461001800975, 8217614181935855368, 1718701290844673914, -1798186621247456405, -6913201003433615404, -6884503339551513023, -2040487672660990717, 2806914009653506050, 922680140278116149, -4702909803138413169, 1948707764882705792, -7742478707056650959, 3993431291875983922, 2782891139470091136, 8786063050324205264, 8084246937480174481, -8684287071517760477, 1245395092237560079, -6934009814868737362, 495148840377852466, -7190291652144804300, -8755622134616872198, -3811202266127590136, 5266775544256548901, 8458645673177730466, -965634030279604382, 8345136840994908671, -8071372459627582198, 4482156607288639979, 5688252301014384925, 3445005132969818174, 6070711756250107251, 4007896194330587088, 813126130355188794, -1584662439125373672, -8407164423127120688, 7439262670787973662, -688899465164773032, 4615734786073745717, -2437281364283929357, 617012517644204353, -6619638149011470499, -4889514512109121366, 7454117674415558019, -5698704445496660515, 3994271769236617754, 5446468999671501308, 5736259849254271926, -8642812986340621423, -583011731964099132, -2926691450768663514, -1194198455404030415, 7475472262793221381, -8310601722091691408, -1437277838666368312, -6380476024704913537, -1277400398787363613, 1419347154732867098, -4520260502560971987, 7526029215584491007, -5943997614758437911, -337658195703663171, 6774993639412317453, -7714634158645601256, 4815222174204335545, -4952168174357016062, -5793046562878742771, -8920515934510695927, -288995673987103004, 2824045364515934351, -5748995248573767991, 2257454339833046181, -5224208434825451830, -6882609820075376975, 8410436100500044683, -1376249325477499770, -3906422818814122990, -783597181158534533, -6009867409221681336, -3293405695714109185, 8675813657150466011, -8058326620349371698, -285065852448487502, -1225573426734107146, -4601059017243720726, 4084028197118468907, 6487904068052390229, -1820616949678355805, -3773963992069377924, -5149723650269880452, -6415228234246024171, 936885761292148023, -7717974005587500031, -3375897415239696724, 9108384570117718724, -4457845603424340988, 5030220292679300786, -4707740975132817872, 8278134656359194062, -3468238245912885502, -2938215604290741286, 8140717819802520009, -3765989377007407599, -2249374082118253884, -4436470888586229964, 1255386089519507444, -6108419722732715068, 1884455844347521187, -7363700602120425196, -4274424125849966157, 8201396851015323146, 8540425957568425736, 3442323321209032937, -912826319661273678, -348919317266134063, 2066975352179296245, 827889732456124399, 4352551795038759652, 3562535537799568974, 7957120632233685583, 8092001819669438142, 2207733957146298574, 3511574845081293743, 2413359821882192047, -1019045447946299796, 1411938279722298698, -5175300874779542532, 8482766041865774164, -2278090885308603511, 7061318340061233752, 1008821039791232059, 9162307797698077320, 5288815981954591074, -602373589325277344, -1759226767857279959, 6206940165081730538, 3023051488316270795, 7575442146983023729, 4945174521896902163, 2741788845699687368, 4590933243185764922, 7816511252172055110, 6358241157129445235, 9187107482417171658, -1281977053187510727, -227269077626406346, -9003884733013628217, -210476970903578753, 1007968487683827657, -6419500365891811238, 651955615724909324, 4758604786654897695, -3106686174327441219, -4394229568348016627, 7792691814741396274, 4124480489979995822, 7248401268127208915, -6443731781417104080, 1841917485746978022, 149683498308967887, 8501506152893163244, -4922719548324121558, -1614432766461792058, 5138452215957487546, -1893383305297420866, 9107790183109286037, 4783924481765535806, -8726002374529958219, -5702146162130551140, 7837979004825184101, -3906850842351474863, -7227882618837290522, 2523964112581813021, 509332173133840922, 5159277301165651847, 2328117760146693825, 6117433150688168829, 2708798717867211380, -8010967045320201970, 4510563065499940465, -7993145419280777958, -6741100588632372157, -7631697164018981618, 1876558019715612308, 7349413052163553064, 4877906531316752186, -3254243699433672893, -8687740360762659743, -5025036919859021222, 7022389913663328758, -2310493879105750152, 8196908358655780321, -3728284603908387076, -2503210930523782639, -8745147445493018220, 9011368771554030009, 6030240688041778213, 2800390585718837973, -3770472595385907753, 4773052503760863734, 3430174519129445354, -4545022552596372783, 6387167537135456874, 6035281277549535946, -923971773047752640, 5408518104801811838, 2598051786511293516, -8049967367738793131, 6858957987381476427, -2669577650057990826, -9022734199297167621, 6659426145560280467, 3980818749375178968, -1030217208484823363, -62836209100018287, -8832651835358956354, -848924083365592166, -8743433568217499695, -712846903371555239, 4560026882385447011, -4176416695987098993, 6146057051702549319, 4493215883365396699, 3396023680221497090, 6440581730994992840, -5704087334564839125, -7152069110234326925, 4115001281928487624, 8543665573478083568, -1135786561288462781, -1271183583915724531, -1855165361309098732, 5366973524658295417, 4895396333359975237, 6344108073934140264, -1534716643805645254, -6709406980847747737, -8298194062543898539, 8019110654735819436, -9112887483246436878, 8944860471378373481, -3998019850733743692, 989686331648018746, 5992977260580780288, -5351242175456184231, 5353001084551135471, -7352583439567949150, 4481177542188226838, 1521007579335312329, -6860426354435535242, -4859703814430272779, -3663246900157960324, 6513770149830775867, 2335542135487245797, -4896755646129276295, 7984450765668265555, -939989752011362461, 5752023737593299119, 1493390377093897162, 1240453570529758578, -1830578949083804220, -7977326292376017572, -1308568368616250961, 2949731555599641018, -9100024717468720024, 6393193864525644542, 5264803656562925603, 8566969644508007247, 6089921946307142529, 7918934666077103198, 2172859887548280396, 6463371214642117610, -3618004608315246234, 8568561446560905237, 4020094372997884373, 2520650259922446874, 4265189651161100902, -967236549840633909, 260894937912975445, -3747284071859006843, 1829526389153527669, 4020617734255008804, -6946559150546724160, 2119972795835000361, -4393663869911065574, -2464909439654259036, 5224056174284865227, 8226154172979122789, -6316966878236467596, -5187185719887850596, 11414717738219979, -516703854011505603, -4951647681976681995, 4498548266850965618, 6306079439780399385, 2759676382714007828, 6125593664061382475, -9138519961821031640, -2623207551791607464, -3739132014679033441, 2380216385476166094, 5977642599535936106, 2542358305219869396, -5268011229950745389, -4396488348303555882, -3939190386320494923, 7478932198409492875, 4174048870730039108, 7438437192891617954, -147513524743035808, -3832619788410512260, 3987503151358391990, -4612688915386150726, 3395339460050854630, 8335283846767636532, 2941918641058183296, -7527908778524886249, -8892700035405018134, 5917734334557584150, -6263889992050961311, -6541365298405043666, 3371012074962830346, 4621719185625401576, 4580822504579602060, -6982602664517095287, 1182504501881148068, -1346677433206889160, -6828579590715650944, -8713704635270354083, 4440279802003891180, -5815066984311984800, 2628762652675707363, -8600682496283321075, 915363196802763645, 8518220973112871416, 1786032845792547058, -4304394604103397832, -7467523558659708066, -6950080326506702290, -2681110654000868965, -5306746115413812519, -7251985747639567396, -7848528097940931516, 3496757496113344330, 5577673348282157939, 6808759700668497948, 8715271051919501214, 2663204759402537614, -1582268976318043227, 7447556984218790077, -2630318196214681333, -7902158018368498187, 3333933222981245654, 5744001590473497770, -4684104629507757570, 2106694203010892595, -8216691416526260498, -3678807723331405248, -3839960041512289841, -2336953089931622376, -1538668871606542045, 5358597456436765474, 2445699084870599033, -9089058203633555793, 6044817817698231003, 8378178222357460011, 7840582989765582367, -1321350038011777617, -720910515722249181, 6359945168635536203, -1607938468964736667, 5966434425173411624, 1966410331413048854, -1311183636452055318, 4585637283806195615, 3513432218963383490, 7158964330756493919, -4195015170750340667, 3534690942839240941, 8361669288877412269, 6505992042444115571, -6207022462833433903, 8812460778797932401, 9083137801536431026, -8078018779750619416, 894097608264271300, -6953321529243579336, -116056154669982379, -2557809626111263901, -3510386473595612711, -4487843924839173815, -5839537040469174288, -3673751780693175966, 7940272540238079774, 1598315895372447033, 889871322738488510, 4710780434430015628, 2068814801066788894, 7777946852513672682, -8179692204684749580, 2166884132758700812, 353041270104985620, -4621402136289555237, 2263160192782691047, -1349945856937583052, 5955144394979027143, 8307880107870069113, 2688916064128269102, -407989652350519839, 5219783697250212409, 4973741104426083733, -6182074856509654296, -1666440768293972668, -701148280993898806, -398959251817728929, -5407032279198520525, -2932655128193425722, -6247470246189569526, 6735192254804344011, 2162598699140457686, -5987482569879380553, 2539033979738881297, 2589148914907949722, -7898714535084485443, 6302435857376117278, 8014814557159061864, -7030863816348913033, 7915582109081325646, 8120262022734473733, 8683811524916396584, 8772939046791803337, 6974897061506142602, -5044955722305325828, -3490771405380852357, 7943820646204332657, -8312802100992484515, -3231585645580442686, -263863943419959369, 4697028335211981163, -4678040393981627157, -4590257241685246612, 8852608517365016021, -3970562645438308308, -8847302180049998917, 606625461102818428, -2137468853120962462, 8183808316429213478, -97597181799577744, 9125273539701660939, -5731463640215317536, -7745838123781425812, 2819149286126538539, 7334397315000605527, 5797110364575092917, 930302753373025354, 8924752300792482151, 8041129301447546859, -389411944109012693, -7879498442150939068, 5221232819703646387, -6398695145759479926, 7907856197171507078, 208231946334746780, -1484610169562397944, 3587285019099681096, -4477002144838405824, 6417387770821246874, 8249025440733933452, 9027236798018893194, -6468724362550540673, -4567893507408146971, -4826782809053002043, -6239155979900473884, 5579224863775840254, -609991430360288078, -1822351553937133196, 883436181533947214, 6564415721589073009, 2412591415983835604, -3544070033210223209, -7008781486437226635, 936534348984729676, 1110186151976196542, 4964024627844281073, 8227043438023568084, 2618689541274789508, -9056306900042220944, 1103906863551162946, -279851762864408136, -7641714448518484596, -6900923920193425485, -1820862963394467106, 7664081857260457367, -7306002467676577357, -6903298643341245952, 3417282558409543587, 9050577773419667739, 9119832078608664942, -707174453789840105, 472814007023253199, -104181339406961499, -8370057778581959607, -3974468355832305738, 5255987391986935228, 297067598459806377, 2589189458439987991, -2589173494071557003, -8730920685410476021, -5906875287274019445, -684662640223990230, -7177896609814000952, -9111421713717073540, 8205678914089361237, -3555334672630877880, 4394024244034970714, 588487952354601118, -8411171964438288373, 7498709734211377709, -1819440124487651194, 7095521620357081833, 5695280821746792541, 6974709515631306820, -7076597020563594116, -252243746281426410, 7440354760011598547, -6008599353336531402, 8484493711832455902, 4306480278486545675, 6595955333087806107, -488102575889973314, -546133198702985741, 5687947892835791269, -2165830342600968931, 7455617691341332084, -2963782892111677453, 7056917819516594282, -6666292722341242417, -8929969735332339222, -6044880579246224930, -8019095202784240132, 1009310103084032902, -3444474903149522040, -2645749376229405956, -6234183123153635558, -2419558957173020152, -3322660758801536257, -7474840672967221900, 4265856282256726270, 2729257402811907665, -4312413227174703050, -5229876809167396064, -8193054727419014173, -148751236165694836, -3962066310795110196, 1010138028995970464, 5363942908780794134, -6984563722612986290, 6525605698701321409, 655360101871782721, 4504150728226686215, -3991414721573150031, 1749244788066744200, 2766401501483822738, -2632607959370358668, -1958159625000719856, -1879993784577425750, -2049824293365734417, -3779376781359351411, 6064551705338358975, -8546098223713157879, 134082739074796653, -8685242221421453379, 2770560047693024090, 150260798527960524, 5701787667997127806, -8619335990338611029, -6491926966176810057, 1111903184387892461, 1608232994542879527, 4301296624838374579, -5391929738161247066, 5682524613383787131, -3327000181747425956, -7105611198972028108, 1743446291681256792, 600452601856108329, -3243657478460163012, 5734826754831358480, -4870523859542545479, 7770711778884756727, -4014082245681077539, 4025782325585952717, -1121128785393742473, -1128645881328323507, -6322639398489886955, 5846501610849025634, -1477754364053336742, 2392169126958517515, -2905745635734156674, 3807668018105965762, -7360991014178984546, 14361841245102693, 1270954888750974884, 9173553516512340784, 7478338925787029229, 3279367286517366472, -7274108753188627075, 1335322857100899906, 4716826294735210519, 2061541829668448515, 7363739487364031593, -7610234256992503460]), 42), 42)),) +(CR = Tensor(Dense{Int64}(Dense{Int64}(Element{0, Int64, Int64}([-2897731851209917289, -629695198063022239, -1839315671276920483, 5286864533103673104, 3825294693186414387, 8187178306671075173, -6696676089258937870, -2520109756947128486, -20289434330540491, -5787994923599559523, -4690621447069628201, -3685474431862009818, 8058502605257017607, 5640589951569473215, 3849918686675863666, 7149264367810900310, -7918639420941648831, -219473507856870521, -4180149432006842267, -8067732119114098801, 5942621818508124344, 7575473134895965323, 5862393635570366967, 6727659729742216070, -9170686636535443653, -4380751952733187424, 2694275982218304171, -5622207889637091685, 6920480630532056176, -4695528432768100779, -7140250039144966679, 1647660469229977143, -5813535200943658065, -5108487689518882964, 105349284871233846, 3533551331957915009, -6421774673443915850, -8247488193287417608, 3465220782931455560, 2188739699892996976, 1738207526057006556, 7632400394958336912, -7185865295012645714, -5971975973441056185, 8619430294301720090, 6750704504721401573, 9011111656977179320, 3976717612392110624, -2855464758831674755, 5772312830190457687, 5705856240648847077, -6554416729703711956, -7671600437698476751, -2326593449830317024, 8199280755065301439, -5556594091992299220, 5996150198530173182, -66959108866504107, 8345000249932803365, 3831734041534197627, 6755491505173220572, -4659537153252579301, -2071191076655572025, 3524098254281235897, -6019699174620949342, 5299350675715047865, 5173546748898002610, 5857646227517503622, -8678855740040481941, 9205325132597008121, 2679464604904844147, 3500566488466366606, 2528618820389241136, -7731572199940279950, 6706492552101050489, -7671608615353517112, 8615322856175757155, 2041531185812457443, -4597918392009606570, 5959509106620377635, -6546274357862253284, -6562260887896769636, -3883002056644532447, 6035506081559639599, 2418315302191397462, 6881421639735021162, -2684431465983020283, 7901201147652586922, -7329472400299953800, -6044679867347527656, -645206169439960395, 9140148023567200526, -6127509662415728451, -2907877225542925760, 1233118105724836953, -6684966046725230146, 5958154597206584650, -8295737209797309852, -2979604794675458526, -1093882253634755281, 589184012956362892, -8424114923273878580, -5038237080122443733, -2993895945422711664, 8354882507439945414, -7839672476150261887, 1456259160890157121, -4086283412529733209, 5176260809151222856, 3240720920634065444, -8499485879017620677, -6050289119868059200, 5958349598028165604, -396224937468008404, -7165694695321191293, 2764858757025017434, -8420698995062416861, 8352477605870078083, 8303024327746227907, -555141626407569013, 7999293508001523726, -226937596482935795, -414770807101573456, 7733340213823592395, 1863301452732088327, 6886971882339478815, 6683734224802497383, 6616844232176954593, -7058003407463953990, 8352721930174564169, -4187114157022694158, 5748477590433860865, 8152913386940253201, 1020920222728157466, -6156712415657483053, 3333862940818551097, -5280640806937481328, -2149379470118826130, -6326372139327998932, -1741992002060548425, -2818822515203407205, -1376513383775957781, 7590418639273688222, 1878597322051548837, 3301930258766050494, 2698309426289683029, 6641576727395292413, 5641351493875895216, 2385361330962138121, -4697951389071377230, 3331879975516397594, 214446761555706988, -6302967254309343788, 4201214062774385848, 3001629630360800562, 5398598970413351811, 3977930090534176165, 3984924169482969364, 8718787914396782846, -6550382047311301941, -3261104062877111456, 2224794809086878195, 3438152747392650753, 78544168894719298, 5565037068078116938, -1672738603012014416, -7783861620402571343, 8492529133488827344, -8786384557214556272, -8457059655731752450, 3152148410818985269, -6831111477572095935, -5090582504848843787, 939132468745525960, -8517204160800388434, -2023583321278737464, -5170733752123814842, 7408140656467050750, 1577804908013158842, 5462193298750207551, 7161907659181072885, 1032806589746917760, -6710907771691354309, 583164181606912624, 826225025409670746, 1845184163111179877, -1523357483101184554, -1759596407461252666, -2023016500968681400, 8227146370220730262, -7604160361983971000, -1852466148179737427, -2137085600013354519, -8199126469188847765, 1220608622514992683, 3311994200347642239, -1290172956079612344, -6544644906908464211, 8790242329423795234, 7660876971320012823, -2303183605756682504, 2156964647309555257, 7740821051083555444, 496251688421899142, -2918158300642530090, -2368069312871487761, -5576966491634276936, 3368155889651124785, 2573867957286056550, 3389306480586276600, -6632582265816400415, 5044209673043616327, -4871176523865504714, 140138835390150585, -5886804929599432279, -1951197713667646473, 4789805153127521042, -2948816997562727089, 4686228127580110990, -8169064207993608829, -1713557455428160777, -984546056710531313, -6679796821988582829, 3241890112016235466, -1945417294428060463, 8843221800878523170, 2126242068639801859, 4834426592267409760, -7810773245566287394, 6321972250164355439, 3339063352739739362, 8708867835750565327, 6321587057145441117, 2053990000204048661, -4392484502580500113, -5967755670248374738, 3101480422349223349, 307777590593740658, 4073794276693964705, -228462136369587326, -8660809879270890381, -2132062400164338921, 4581848486722525106, -2566616859679265065, 1051393024393023791, 1025654123963368336, -5260929567928217513, -5435477509793003691, -6711840603538083559, -2197694495056747177, -287542043070388673, -4050250125529316224, -8946110539639396141, -2054023689822011870, -2235380394722248370, -4203094670443255817, -2387791590514481867, -4609523129340562901, 125534248568429316, 1346347296436801414, 5258287141063211013, -7241667893898745823, -7751509314980596778, -1869668919565833382, 4713835972811559470, 3254165350251922750, -4311839833988879206, -6337870317476815657, -6993345376598483895, 2941369493407468449, -1068171312197320483, -4339504352704496157, 5786024576578575289, 6300908636269959183, -4083524641983623681, 5987904725078853733, -7558116981616351650, 3248872891666573939, 8233544538525553495, 7452909854778854051, -9158321572523776465, 5132056847905343696, -1786674393390641542, 4322104503801715300, 2189701755760550962, -4365285277563237855, 8689970982250967826, -6301843793661836356, 1142969384972370970, -7685111598556905445, -8943371487314555071, 5927109178725189833, 6584733654197843790, 4129966099949983753, 3892361800311887490, 976504649055835441, 7250515625719943593, -2752580080442165331, -6396030823300205728, 2362672138095369962, -1260560443090480947, -1658998457453151306, -1718124828017906091, 9196167650710978616, 7608949355576985057, -817607203077398315, 1294358010623399614, 4307383593767711987, -768269503954087451, -6478246183817059591, -2358026556950361832, -7753105266059335775, -4000302419547338819, 3776165577496166557, 2584620804716842961, -1672311911634073875, 8278532580838608422, -2941729935949741794, 1933036231503941573, -3388180313413508413, 2046112873236671793, -7125588341208093183, 8727635799478651345, -8595636369460236813, -963949918148789794, -493405345440012110, 5049046844149422445, 7098408324430252846, 9223306068033466294, -6681811557413626672, -3284812297005480285, 2002270255788100639, -8858657205736903238, 3048384305946135030, 3612958165672678149, 986090196012349096, 2628110221527052317, 3405404297586403010, -7451628816118853549, -3338292389440533702, -7197099659529989383, -4900385429448633900, 3383358724275480052, 8034253264761273579, 6904177519136177176, -1998573972803109643, 1248104199460752608, -1235236915177455638, 4887216939031992310, 6223491257469423936, 1630288423252185577, -6112424948209314484, 8553758441866471319, -2425379776109253554, 2263729538657083381, -2043093745560065779, -929289066028444040, 7265187365292593329, -1580535609375864522, 2539593360595251369, 2622646908818713834, -2468050465805489066, -1896860363069572305, 8958059076969656951, 8854588258667373569, 3088434772754154022, -5688421953918974192, 2626230419890146200, -6763781199721815244, -6996731428735666557, 3708973810309285267, 4245138822197348460, -5001530863314072862, -6179973482153993649, -6597924114838480353, 1853884265239292742, -5915670873011808762, -1928251130853311162, 516467345239231767, 2764895242811094555, 7072973752563207485, 3704226432507665575, 1198940836595171688, 6047026749996160592, 1316512900863186973, 2872101096334766460, -7121400703248441688, -4223025996802232664, 7732298566549652512, -2939386878089948554, 3762127407801792388, -2857347841301145064, 170215569414046779, 6873323080314457686, 7172062585916986051, -1224317788452948956, 8665604532024649062, -3587696444806937141, -5612907008074524221, 1377040670764098707, -2118677304977686351, -7831278040734946053, -4938562009824852440, -5988287747485056812, -3219634092104508411, 5168862747273876500, -3600630809445155947, 7501020906256557042, 5050846388999994157, -7665674278860681899, -6313764560664955356, 2624945294329635356, -4583885093910321716, -9160463722466935585, -1922711743451490245, -7915085717343654739, 8197259727957483192, 1296622288070057647, 7811846479066499713, -2851032081953334936, 2556543701252443581, -3728691889258338754, 4600460226296431818, 1885055964305882751, 988542514653007448, -8796509572570350449, -5648563851556043855, 2124369605412566901, -3270522609663679424, -3501580887447459774, 7424884421743001057, -6903418298893868904, -5475163122892935503, -513909162403736845, 6353295544275849102, 606808889878357893, 4177093049627254554, -5036916523433329957, -6820132758506581004, -1037912375543763796, 7264174584540669442, 9088639648846841197, 8333658040852450381, -8445964194454904679, 3741829768403156095, 3915698333268154679, 7815344654185484287, 2741724569969250368, -7665103435529312384, 9100873308619106742, 3421464801940081678, -8701712540799509793, 1532410275442943151, 4130175416040730585, -1784554548711470489, 4076316007665273885, 2961704630956204982, -881583544869961373, 7663018629536003030, -5763518983518888334, 3114677371290572451, -1659099744568908543, -34203145603105886, -1220936557841603647, 5950943159651784646, -1860957886454194850, -6668509316234975116, -7964075269288373356, 7153329273830623611, -2279877691935167815, -8648699827118861771, -5569193215730144105, -6707905235378160735, 1975928828057488634, -7676333818029234506, -962360174048092334, 9102942620383716718, -8211815767999769075, -1219458741166705187, 1828786899714865915, -2731992684245152871, 5500714780506194558, -9448733915720396, -6587605919331184027, 8253276779505000767, 8977491268382594789, -3913954514225857093, 1600098662429808740, 4403013106300218329, -3615290149261296840, -7602159198292327640, -3428994073771037480, 8498215013320052235, 862416151405647038, 918739553945024580, 3633310031105340657, 4338559589321920089, 5763049141678311194, 4217012607785333969, 6176763510218655288, 4403108969366937744, 7203053735310781274, -6552719863129851122, -1200404146413085231, -481109999518009176, 7678689870167937387, 7543449643038450780, 854589718451472137, 2799546936599080881, -7997197238886600923, 8078858255651498074, 2656762659688063273, -1356568473271068944, -3379016696355014119, -6355326385667250316, -4361042370369490938, 7192221713130010079, -7758923720965810036, -6912453143910706331, 6885837876356001683, 5152846234669337263, 8447453881712439205, 402153291132863715, -6750146672340937861, -3393118343442891115, -6517024052493510341, -2943132662379212424, -8044464495001505943, 1785178527484246390, 681621430642192097, -3089775668746168925, -5356368166955859937, -648039146633558093, -4459060956602036476, -5059035968815435502, -3178319646733143608, -8497741606376559181, 7857276938454619545, -5060780955701053429, -3626191864770598065, -776440272103413584, 5741399641679533144, 1213054496399189563, -8992057068260536980, -1151177747661149209, -5709797590207038733, -5009117227720086744, 7235187757570179459, 6825189740690177118, -6414574604123166095, -8035861727747821273, -4788527601701811687, -425455094851125341, -3612261793149316407, 6216603891812766891, -4420186300715134411, 4208535996568976162, 1965801627336468939, -2666925795390037887, -1844733202521097892, 316834901837030005, 8322687882266752670, 6886841443144003325, 3100605368138358995, -4680526287142840799, -9058962223867524432, -1416310979853153038, 5252925471057379281, -835136455519949933, -4403659001846954410, 2600856067299103537, 4695776455192323732, -5521872523903551442, -436873383149802155, -4957000796888658921, 1120671453992271103, 1136827044585630017, -5769263847802282965, -5284326664401851426, 2001839843756918803, 6381970752796295779, 484547452792561762, -3426075066984557015, -5069703414344440848, -77159458541818432, -7932175542470358043, 728895892903089573, -8794307157940388294, 2010890356655210930, -9187540242108764494, -8389913656646221587, -4284614820306162621, 5714765770816303120, -1853597308443823882, -3664841326079761295, 4352396322316878508, -1893646183485487084, -3409029234055034076, -2428342727380151439, 7734795593051411858, -7060533431301017982, -1255169038879989661, 8571805461570268125, 3586527561240892983, 4524040196011651407, 7641249333251859407, -4948566001967601536, 6766760774843355516, -4006863069728015948, 310927621637971295, -3261807252586983044, 3571656263837952184, -8479883834209296092, 663441069719413006, -1094282207677440406, 6334667221915377235, -660903793371602657, -4870815058202514770, 1965508377592409194, -4708274026943956371, 8205544502233890354, -1477159235923536049, 4418957172671230322, -332023011661557674, -368016183737927639, 5637551099547826281, 2321455877798725322, -5708176602342049472, 8905607907016257661, 9006409007651340697, 612378497694320803, 1970428788526075539, 1723979102387250390, 3600358285292563552, 4393998645113586199, -2880825132479987473, -4301501787140301037, -6981957119181617364, -1152266657702512725, -1781350539387764563, 7794633497567474735, 8671579680572972864, -3245021758294115310, -2863718454930227690, 2564348809768682849, -2546106989111075634, -6349196663550598579, -75239193704415975, 5707498029532069961, 4866190449184534616, -470130125302034348, 396671001566421410, 4774256382472498807, 2578508964645255971, -6031682378035860212, 5767334338007366811, -8801856065478078708, 4918827747069032430, 1957768073882872810, -6787792199728380730, 7949377215807745145, -1067191332880834968, 2593668075400291801, -2599846743680689893, 9063299299571631135, -4778743211377369544, 8801417698864415908, 8353938051846592967, 4032063175704865429, 4279035617754754757, -4095569132398073066, -9028184362410282248, 2355277400915900761, -5829404808424873851, 427549106165806860, -5782066638677599342, 5029136798531686691, 269456919575806772, -5042387257487062646, 5460687080529034698, 1802015400165591924, -1293650749535894879, 7092309186717495961, -8899635748967826324, -8422742726402585920, 24027959463934555, -7053221393575912636, -195614362265234999, -372366678888242902, 6030731625134300918, -8797714065093588185, -5422878433323629922, 7046693448547834477, -8304404767521707126, -4688998650701563771, 759352611754272788, -947156452440985318, 8600824679243831277, 6860392432286569846, 5430503347373610183, -910175827200890427, -6984132761370499298, 5483738725812642402, 7839579949165080376, -6288830629129099672, -5498250561216205628, 6189457048927984799, 9008999048742994027, -7766055774924120343, 2615914051413535156, -5937542378454037173, -4798511705446060234, 7592045436211652624, 176680520703792092, -3380816032184011713, 7981734128948753501, -8670001297385339389, 8062954646030300488, 2517239586915939007, -5504320849162858674, -748941474983152750, -9082845087988087595, -5022173325835989997, -4813211069981056013, -6601087015482524438, -7722340044920901900, -5325507515925589198, -1100927782630193629, 3688534045787449501, 6352995152879089204, -7886007763609165988, 5679247030582752972, -5877302605504352293, -7045994988775998586, -2832932744054271214, -6804833994737701355, 4588313801928016958, -6941466689747828147, -1372542591561129045, -6127102430891897649, 1266986145533247613, -7611105852114147441, -3271194318583501611, 4445656458793579413, -3267893043013373469, -8093144289962605489, 6711312226866341622, -8277678046225958233, -5471124307960549061, 2693696444106523331, -6317966761150988845, -5112876250310399104, 240910759591524837, -2224504219483666942, 2265509625262188961, 1961500777767502962, -2550636249589664096, -2556425520536026150, -3655950819818828870, -7338503849212161751, 8854366705924429362, -2703095148421592081, 5809573216726110377, -8844479535534404387, 2919672374193260997, -5355119116868851081, -808698167336770034, -5683410319939254564, -7728053966254131755, -321554308338178839, -5254028563173431922, -5670401527161978490, -4722173536066352366, 3674169688852398222, 346429055988804695, -8855237842289651735, 9179190666443757633, 2654238586148313077, 1395184011538311305, -2708010266717561229, 1743828755480579702, 977414039741861801, 205966076875104763, -1287844513302484994, -2933748614730646953, -8938238616991969394, -6331463792019562128, 7944632885637612593, 1418051825125287167, 5342651445475634501, -7572209520694646749, 7925659769543925112, -8864942667991022955, 7192438234469176110, 4594481057169778298, -6531551718812891842, -5760739604432098152, -1404300420510161174, 9164607480812074522, -2717364471356054949, -5113482633954419326, 117340873524602808, 5789067532932684910, 2618990714266893685, 9043367480778948843, -1115858282680435719, 8410120019602063252, 8061516885472884387, -1178864042443837946, -7551425371434329273, 9127226502377373181, -4777597093099029661, 4982834285722194658, -5240814302621739666, -4973297102060614458, -2203620503187152930, -1042747704300621026, 194052734340975980, -6783678541807476786, 3762002711361760270, -4821488515904397267, -3112962597699238833, 8959857448670749918, -8186761287406838796, 8691495232077878966, 6246422415631216483, -2106589669179149317, 6783483768695922674, -9177262423244478330, -2735622614601210054, -2303633313683195111, -634617141193713175, -3740268570685691303, -6719318820687373453, -6434094810291932837, -7817163317032710596, 1072237688884858910, 8866289614183460139, 8334240281357908479, -6569479099465363477, -8551716956512538089, 4916276503601011334, 7966688880226771708, 4814167529719280529, -2947721217537404512, -5599068331791260302, 4455503761316084901, 8035514833072839756, -3644356069987827142, 861936131416706149, -3496407295730452570, 666438856299200289, -7887330960071207511, -7930312745483281157, 8996422284935592496, -2637464362094685415, 1963295807992721620, 506183055255936967, -8486267892195506528, -1840185452625716241, 6286927514107493536, -4859426896457524234, -4013814098249472699, -8022971673996200656, -8088198444893073833, 2845375436600030580, 9130660735719798664, 4292700635113766901, -4504095485741292859, 3966206596265981857, 2975901021160143703, 5574203306618918646, 8217393228394836439, 7313815728697977491, 6870397133241437323, 8827246562863390654, -8349719833342334371, -74126422939027171, -1473119885607901340, -2323368074801227054, 6057241726273072849, 2623646636693387253, 3553045186968744227, 8655665086888841853, 7918735294316718763, 1026252895804151494, -2750398427883169926, 4856433880333968795, -1292139832952283552, -2847685486181773516, 465249708710914090, 7733110196415935614, 1061789591194350829, -2365697060775996605, 1781600041036203628, 8356563469774814509, -7536886277349373362, 2138955836674791931, -7040674764275647124, -5128560546883108098, -8651525993365645935, 2541396036045051070, 2404439344222466201, -5547599488360442346, -7794704919839399925, -8226191146544350863, 289465486646058643, -4586039356379674945, 7127217100863214922, -4495250890385500896, -2106160018154711765, 9080154069785344338, 655749881663331040, -6702682552319724564, 5324130608559833474, 877503991687559961, 3727570709929290521, 6992899601663041449, -7225914066341699299, -2316207447599938648, 7174424563258555041, -7457465811191816446, -2649306442980402693, -8868878908098870682, -1583682207309600514, 6498553053087084728, -722404749390123102, 6000390856805189535, 5128263968350732757, -4981757423832768691, -1268181473434665332, 2817322512396508566, 1338819931934891643, 1188215238557882101, -1861569182445514783, 8665273160893157482, -2939830410252956771, -2127285219058086241, -3782475126155545900, -3455096037468242984, -8813427168856428910, -703261345900217736, -5190209151846810894, 3980121013042178043, 6551715899679428068, -162289065130978122, -2355471502272886103, 2368428981596798268, -1284112795425535272, 6005771077125219092, 2236414669243453690, -4142139392564608510, -4777867591038274996, -6014848273105675073, -6534456376829602337, -5256728626462857634, 1255881738156591285, -3394422962934634376, -4425055481779486102, -4443824818135042697, 2426831793918381907, -6907374042473582476, 6048796127055447448, -2272678458132723151, -7443188793966482350, -200612787973617049, -1055209411613510662, -2240853441978538977, 2000910562936779878, 5512397444498478792, -631027022038989776, -2540887355251016282, -808330423637887153, -3516162315098149747, -7150420697154350795, 5559294588465041617, -7679953624981913529, 3206896782037043210, -5918456670342606702, -6011476978059204414, -6803448329506791224, -2262616113939482372, 1830707888245593202, 9199386494476670912, -350299155362272581, 4033750021561075398, 1002680791926630680, 9090860437261576221, 4604994701630780601, -4008874455797206566, -3327866028915473529, -920506071437672085, 3798238127114670843, -4795130095301739600, -1214663376670460156, 7430608726696333532, 2336090016735039691, -8946140186723974929, -3849818766010170695, 79541014581602760, -188873531328188448, 8746613041922083035, 705304878837552140, 3628842864019629683, 7415827732172988578, 1880372183497206813, -1517256935656670334, -7006607669285740895, 4217774392339622252, -7328157689540771777, -3066218644699038259, -7755355436888968421, -3843090512756827397, -4676908407160826479, -4820214818736427899, -1534297001989231434, 36411752805366994, -9215222536127688250, -8112601031276821418, 2377958761034761541, -7495278766186370400, 1475505809389802173, 7853991037513241052, 8771523294670357413, -4176975783583370839, -1188770377463052137, 3693645855734581458, 6289980921484865499, -2711726024261605633, 7297325280615745501, 2917084630762900166, 2890785095650628185, -128995603325835103, 3512545688570833372, -2448656501846418923, -5916311759350628061, 9152075419722155947, -3028688098867409951, -5295091602636511429, -3525077333299278263, 4832579383513600090, -131342039598520341, -6916620327440072547, -8717323215058449690, -6925300634651412351, -4359900965247354470, 1671714198797655490, -603755978140655289, 3784038107468879343, -6561346577863567480, -3054321027958942854, 1260345309311533293, 2779246438860188550, 835477891416037886, 4150782592281302317, 4412280937506307160, 7840184006017790859, -6872434087727757949, -7770550854724102191, -4369953409386784930, -5259655072217021747, 4400299496394153260, -7665312343202223959, -3707544972038554952, 817262697332247781, 4430881011755576478, -672189226962908492, -6618642457902714881, 4832246179235573335, 4047672164621728661, 3916525392544903290, 4770838978206227850, -4647283855745997483, 5897338950506164426, -6375355749125438844, 7309309088563392070, -8479453484598642071, -1952119089374192784, 7999406905047669430, -4439940153654586900, 5636115854507408296, -3141473428610892845, 1105539432035575547, -9105690327362450647, -695648314577378424, 5420164724559591054, 9070763472166017336, -5868374445833317208, 553476081533201703, 7913795938061753615, -4688903595929460745, -5539857073305646079, 43167038057121257, -1466363441044051768, -2519092808672831537, 3991159189309383169, 8832310837872120482, 5959126991231754588, -8597097047573574144, 2828851076745794726, 5713525427035350560, 2791992792474311343, -6297097930125299017, 7513363145356384280, 2071385878194426058, 4377640110894262018, -3721368361400972755, -8414441175147129487, 8102325290170520951, 4688146170547922648, -6589905692333763353, 9189868470910541498, -5707771806498765001, -5132100760525575660, 4677757138973245197, 7658956595395712490, 1507138694195148440, -7147108304188406963, 7826907978186266402, 3800001249914948568, -276730835667420699, 1202706585181245627, -1325208370469476773, 6424572669624800255, -5601663843412321162, 3717741139618505447, 6982228870794897780, 8659925654555816010, -3224819560801998276, 3867888072918809237, -5973207719387516691, -8185096023176729940, 1404932864299613355, 7459956593367947589, 6981595561457409967, 9007331657542170262, -2442204458685261893, 3250388655388581940, 1018934735114632083, -8308140257840773909, -8070186233110415867, 8184649812918790793, -4557775901601272354, 5470065303329478870, -7962929285096395487, 7200077033021675971, 9127010903702554806, 5408131677043108574, -481132890383505739, 8138891781274782558, 8011666213695892343, -7616897186806493090, 3992273401756926447, -5913574848960422659, -1275095834384969041, -4330722661486017123, -4677206324150955054, 4551668336842649322, -3180046863464553916, -1649707448817564953, 948859285367516762, -8094457256211466610, 3749580520931852644, -1925698536538744644, -995165141514708500, -4778308806639492156, -6764346661410059643, 4758024216976659550, 3328963773495483805, 3816591272188421653, 5973378937920177343, 5758127044465435518, 7266994269382906086, -868252797862946597, -2639809526012449670, -2098847676723778285, -7126334360551692770, -3975275484912757810, -7838613754580268033, 2085391997232037414, -181287900920203102, 5722640323409358803, -2278214274132064011, 1673169579508156439, -2465023791664275984, -4993327989307860761, 7795251976294163819, 4350637392665187776, 2799536090856922665, 1575976096585472413, 8778591182624119171, 4554602193504603256, 6982709807982444806, -1032888638177635121, 6769518835763310610, -6993814939426173584, -3033039965748881924, 4594245208519427514, 890004252967169526, 7723594045672116439, 7404873194098551006, -5119034442145647418, -1003182518129878081, -6399081939090029100, -8829766830026588374, 1506563208940262163, -2724830829342578447, 4591481065070808760, 6679141463988407722, -5786802985760821346, 880409760797981763, -412069812386492652, -8530079771529564066, 8536920726729615867, 7344551241699232348, 4169435301592550283, 5090850225354266260, 2028322986360409872, -6210090123880536313, 3383521072402114504, 6129048006105224380, 2975990317070916964, -7645253874295549615, 8159289631431511881, 7891921730348598536, 3595678784699848076, -6593163503123193873, 3603656079635134623, -2838051562593151350, -8886275486052763227, -3259815092254808853, -4553567488232902804, -9033099494055027936, -5903523352223038298, 3374582155683136625, 8408471502221115383, 6305567015122203290, -6145225106537112279, 4860960331815729383, 7393520013171056434, -2663319626848557600, 4050833979413124597, -3323919042485780634, -8938279041032250265, 7289289719937881110, -5199115945863993590, -4587717542830787873, -4999978371958265657, 8130960626679650491, 4965964696177810985, -3359156341767982490, -4210083526277966010, -4895123207485341206, 2189757105924077955, -7538821454100695732, 6203062712562811126, 3406479498849248462, -835711237859802536, -7028764017537252648, 7869657899077368054, 7318283258821558625, 4926563671458013655, 6048607130027791000, -3282434354821337263, -3177953634950956205, -994987332924249812, -5210348334399572821, 3426032161604688278, 995906498906221947, -6669714024988763459, 5252224375617926421, 255954629787036668, 3651784133051475975, -4850336894014670084, -5898201401182364061, -6607942075213767700, -6628290181218952109, -1686354934897044465, 1041692782076064776, 6602224538654834746, -2201816748581014602, -7260064935588296345, -8754107075428156708, -1548965751505097957, -1405786728215016119, 5107058577867526961, -862625570543784867, -4904079340700075902, -6263395868212650615, -8314198251656574258, -1708638672892337706, -8146886646120949741, -682382147153973656, 7659097990590635236, -2170813151066002178, -7837314926960338269, -2264665145026274623, -8174948491890133759, 3497595378323033931, -3868917755112047077, 2196848182639524340, 8414166636468462128, -6166242497548643913, -4687429520165225083, 4769387398796788141, -8436882428240485104, -2058514188922269542, 7553135259606477757, 525193456273670869, 3972330969467081420, 2508846724140489659, -8540819034512978979, 1412809532011889035, -7297581154642276646, -1673776540874489460, -2074287685437574260, -2765283248078846152, 1334391905088544430, -3695946496330370848, -8042024345356942635, -4080828562481710756, -4047410188393025081, -765157642037170934, 3006291695337662295, 1756115464303170708, 3845401379798590070, -8580494626480357070, 8228879655024478248, 2128533814153841824, -5385456512177777838, -5212874967560540528, -6427483433146229865, 952335514680287265, -9113388660051631733, 2385958480374035348, 8095463139477987023, -3643750029265549706, 3355743840215050245, 912751109938179978, -6197968481546096776, 408579319047660064, -5191167807190741101, 4465734662737034022, -3928191454307593030, -3052072492860100646, -4170427744579550905, -8898371328647136705, 5970588749919013815, -8551490117414284394, -3106846058479917975, 5124561599786531247, 4327108214064548569, -1610757265047386093, -8613276680068600166, -7288774974886348436, -1099835576742887240, 8414515394498907642, -1500091365997267391, -6739291368308739660, -4550703355267804774, 2998389361849063221, 3192380930359444667, -336627004377843924, -2754770719772728938, 5305632681582738584, -9135806846405700403, 2072344406135774488, -9022114722560538647, 8243254759266521317, -1119620069863503210, 7501609090016826983, -3693509216496566113, 8288191370639345, -4504550336550382322, -8210087550809328470, 3560742721967676085, 1954013433170687436, 1092442872987647465, 2888334573583639589, -1114743592533466588, 1939713077541513251, -1584023156647382383, 5535789762266979811, -62128766896641644, -7083063174005035986, 8287731713865936126, 6523236334449194078, -7039783060145433652, 5037382359481537664, -4893178415256303052, -1515963066985392875, 7424658220157821643, -9003136366762412184, -6276987399875132881, -5078669836117968058, -8441563256467901412, -2459860432371550823, -6264272347267916581, -6481671433081154986, 6307095258548369991, -4641860270615800507, 4624554977014401453, -2350355296822578495, 2510742027157153802, -6104449646414899547, 7562856789673740616, -4461217512017847949, -3812612882360808506, -9102566207241473149, -2594783517616205092, -5630870553073190812, 8353023384051112751, 1791383190077649364, -8224630664573163275, 5087547422763015911, 2963115828419570640, -907504797900049454, -704571147854297764, -1035659828219395442, -3856518662761818106, -7293579210702096453, 2149907909040905346, 3308624336099905741, -2148933506497740479, 2375999919931314098, 1758519656997109601, 8487402453528486293, 8030750879900448221, 6713132201032781377, 2586918570300352837, -8390945511729247080, -8336370443388921627, -5680610584175813140, 3653722942763612730, -5185789366666774222, -241298443444894920, -5686775890105702236, 3675379031456686704, 5245103201722754669, 1187064011119656069, -6026678283399851221, 8591049199382709543, -958672431593447782, -702210303099315415, 6141700644167946529, 1269559835664386985, -7939339184526746570, -8206755691091464815, 1573762622811466348, 5042764193538399363, 6041686017358941696, -2204563597664378350, -3517953027551930083, 3450386990274712967, 5410516131045897426, -9168652629909563711, -3985581474541557365, -8926914702363749930, 1186520803665066925, 1406314913753154854, 8868870948674943529, 6880621071822169716, 5370316171401507943, 4412636705270629114, -5078083351531110766, 3444286606158608256, -8205752318338941515, 8547429608762811094, -6519966311034112113, -1413738022713835115, 5568569149610584750, 6036057437471586938, -4876856011049610728, 272429004485342079, -3453630842847634073, -1366095897731051074, 6125434214091636094, 2447320816512245255, -4613841215935115212, 1973419128161707218, 2364074815516185345, 327408451321196934, -4000821832372194325, -8173680808835518958, 1201684883987025461, 8283120638577463370, 6101343157291948849, 429137980701789403, 5953695369455659065, 225280172101699889, 8314353213185338142, -4153225850753091018, -2709351338879280173, 1333874750942894183, 3814703919906217381, -5262762653525349848, 6299969758847514665, -8620361299054446823, 3604599371704958244, 3286435348100780846, -148032240776399836, -6255252299693425683, 7744566125419552833, -9010095641685704853, -4051149875843384055, 1985802142813691565, 7734900020502299602, -3146935134195403429, -664596930311411291, -8769750433047880757, 4115748344452239762, 6579250046577308254, 230166954229289470, -2186474838868342008, 2822967420440860767, 3147759382065818401, 3604307846749968280, -5635678801840124930, -6480267541227441758, -8891785863539658148, 7624519770609622105, 4703064168443047462, 1503528009344243625, 2435730275994705699, -704612467710177938, 2716095510627024148, -5843705757092672559, -2127555302623279870, -7234615000952315167, 7327116537692662525, 976668274983827506, -1314056675469985361, -1084313373553359708, -3650905684498692619, -6148081834803737657, 7255448140949764860, 8414351741937111009, -5638941544192975342, -2000465179005686320, -7485612095154483020, 8933096104173943115, 3261780456138624565, 7203649271822671010, 3506662135314247672, -537067434385873329, 3993807761669762677, -2134215520595502171, 8321346744225053782, -915369335731016548, 5305181545836058879, -6449071113337142368, -7022450482680652886, -2839061872534347024, 8458271966978519952, 628772202173139052, 3955845515454987501, -5499542328839725888, -2035890135937295839, -1656074730486034531, -3738055661363781729, 4196346733537661626, -8994226689590814797, 7596099991109974512, 1408362957440871854, -3866453708520576835, 8669336497088992549, 1656305394858550182, 6665970590884194612, 3502684361668034129, -7236218742708433379, 1107639571211408928, 5155559334094600917, 5813987500346762357, -590364672163616948, 2135787635699137048, -5784621874338921853, 1739885765379029707, 5333254638660743049, 8227359479550096228, -9065061183636866169, 5966087696944371172, 6389037595171397903, 110402398408378349, 7329899675214643004, 2488037190780244359, 6213028525105682913, -6117557608858445440, 343605177114228186, 8136677684121418114, -417490750695207169, 224224927074988228, -7094521059363225253, 2021915242457765263, 9090683643352429941, 3165893283489796017, -5934554565919493180, -2490288551863293808, 6563412384396215601, -6875917325096992491, 5621790985801756235, -6441325051668825321, 1366467738961958365, -8037118782812102025, -2427863120940900369, -8835101525611276065, -897172911957976484, 7783534909683580425, -263807469835089121, 4065461948013132849, 6996315371396975761, 7637287758881127543, 6695518419213077666, 2059266273533652518, -7992378192466304104, -6276800368280142747, -987512944725400453, 1910779544435837952, 9074505704246826946, 5352404011797008706, 6533039265160905955, -9158479616074918744, 1783963500517883761, -7161933608211998183, 7149342488900266936, -2593262749889837216, 496188197202188252, -2633705999341305830, -7775600982513957221, 7899680229291824353, 3241510855281747185, 7720806757754290304, 8682849314703587995, -4085004815922627638, -8567866779175520279, -3001917968050400346, -7623487713366994140, -4718817841495528428, -8449730589296840345, 8652914565619576994, -7994068511067316015, 8846402259591257133, 7859951591356053817, -6100791520249080859, 4964344810086147690, -6206703396161747541, -1375612159603889656, 7486909632652090100, -6878258508361286187, 8521895020694687566, -8416065046502516572, 8076219769140527430, -1823155786313397330, -4473047795290192463, 6668697193101367703, 8509975182239814129, -1478692622612746293, 8198942719100662433, 5107500491173591915, 6609231621514050640, -8263234616162487594, 4717192723999904491, 3799574504967543729, -1341338053828588847, -5224431820516331518, 1216188210939342681, -7276470454754780658, -3322364408352331894, -2918315472886957071, 3165028934260615970, -2179059539457574700, 7111534941968179162, -2434404158709588901, 8594721941716072641, -2954711236751602282, -5700917256772405072, -3738516822917210994, -8465575782722614381, 8218284380678431987, 7457336109082397355, -5417610049159808277, 7103474311034728052, -4495500858058223882, -4398464591926490909, -6732388740653723591, -2351117218859064388, -1997475470120132838, 2805922364843633553, -6280448650347592812, 6040382867952112743, -8796146879572776253, 3957035111875251141, 1943390719552704411, 8095298154038699052, 905892709596785742, 7387530507337232273, 1471566453465022937, -4238299490036952274, 2663728718258422865, -2095154789368081238, 8278508703587099104, 213173026306416666, -1158119173466182257, 4393463925763154191, -5447059785870029882, 4746206872858617737, -983454241847368651, -6500663502557911036, -3679647868275408801, -7467093973893498269, -2343231552771025415, -4183041282540092407, 6942861801273605268, -4036454758812800153, 603971093762417862, 1625680607207229133, 2929551610498656197, -6064094773108945266, -2217219098691948623, -6101130806572644074, 4664961822075530361, 4748217794657020608, -5002928435288812341, 8222730668889634564, -2613229330943868561, 1237524241967177554, 2551706092164757755, -657774971470229283, 4630071886577725843, 137990046861394566, 9160273236537629574, 3334824062514757211, -1566494690770614800, 5143166668841154605, 2399924168480321003, 9125751201843434699, 3368820143402714347, -7101468258053763462, -8755238090442733943, 5436301567799969930, -3552208790436263977, 74844008617913713, -7062686209290305241, 256647045990534262, -7391604887291937843, 4192351853313259083, 2654277798521408102, -8054547589655036110, 5678926290872028773, -8717581728414501617, -6040227945712834742, 1337104785484137491, 461697261221293724, -3162894557815043135, 4018761301976443232, -1253277245645150037, -4913513448897983920, 6037499056727797782, 401319307208696262, -6461479463066486323, -5723467426488078172, 7279138455375778844, -6579088669040951495, -3177892045390829821, 4565661226296611136]), 42), 42)),) diff --git a/test/reference64/debug_parallel_spmms_no_atomics.txt b/test/reference64/debug_parallel_spmms_no_atomics.txt index 636bb2621..d33ab2f46 100644 --- a/test/reference64/debug_parallel_spmms_no_atomics.txt +++ b/test/reference64/debug_parallel_spmms_no_atomics.txt @@ -8,7 +8,7 @@ julia> @finch begin end end end -(CR = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.1619393094464903, 0.0, 0.0, 0.0, 0.0, 0.11373910752308043, 0.0, 0.32533429668145175, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5405512925681031, 0.0, 0.0, 0.5409817971066755, 0.6726532010052559, 0.0, 0.0, 0.0, 0.04498001780375231, 0.0, 0.7446527460595233, 0.0, 0.0, 0.0, 0.0648053115514859, 0.0, 0.20542126000594346, 0.0, 0.2489342378383824, 0.0, 0.0, 0.2446702787341799, 0.0, 0.0, 0.4075132486743765, 0.372693911014397, 0.0, 0.03990868671702989, 0.32865292999993995, 0.0, 0.0, 0.0, 0.037570880212435515, 0.0, 0.0, 0.2585440952996821, 0.0, 0.0, 0.5429032184680616, 0.0, 0.0, 0.0, 0.7310331654112876, 1.6974310666890076, 0.13434284643730737, 0.0, 0.15388431962676646, 0.0, 0.018799628425153446, 0.026448056346556916, 0.020943024178172204, 0.08671614507629592, 0.19272805440861934, 0.07015243227726202, 0.0, 0.1267665206913561, 0.1014023431949165, 0.494724963965631, 0.0, 0.6317423070706343, 0.0, 0.4351905463586081, 0.019451367524410516, 0.11392026534019284, 0.0, 0.7674183972620773, 0.0, 0.0, 0.009728790198518009, 0.0, 0.0, 0.03627546054320975, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0140288190005624, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4229718175600567, 0.0752980218883111, 0.013070459322559402, 0.0, 0.4793455258509991, 0.0, 0.0, 0.0, 0.0, 0.08811633730455204, 0.08467555208376226, 0.0, 0.0, 1.4824413586764027, 0.27442978968992093, 0.0, 0.0028104905637611507, 0.1480443868451215, 0.6744061467564826, 0.043998508948338316, 0.8697701045107844, 0.8469834954000914, 0.0, 0.02425613445444166, 0.0, 0.0, 0.0, 0.9679232213808633, 0.6774894982888419, 0.35310753741950685, 0.0, 0.2841919624705342, 0.0, 0.0, 0.7349602036514661, 0.0, 0.2186035505612502, 0.04416466424315345, 0.0, 0.0, 0.25133653271826356, 0.11160837067772013, 0.0, 0.14048007630402903, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.035048636482553235, 0.038653696504083, 0.10014641420794519, 0.0, 0.0837599459565703, 0.10942537757376403, 0.0, 0.0, 0.0, 0.08204362658289192, 0.0, 0.0, 0.011591138384550418, 0.0, 0.038004261053570694, 0.0066189468466051875, 0.06306237088337384, 0.0, 0.0, 0.03121664575636558, 0.0, 0.0, 0.02910081181829685, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08506408857544866, 0.0, 0.0, 0.0, 0.7712870388819855, 0.2285263236705729, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6966121466049721, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6540220401149287, 0.0, 0.0, 0.2336670223432043, 0.0, 0.0, 0.005339227289024509, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4930665741229495, 0.0, 0.029559863815954657, 0.0, 0.0, 0.10760363562562023, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15061269543615943, 0.6107211710602042, 0.0, 0.0, 0.733057860494869, 0.057362855000467054, 0.17650444882735677, 0.0, 0.0, 0.014677698725170102, 0.0, 0.17821555119599314, 0.0025555492556658746, 0.14808219427948163, 0.0, 0.11979690859781277, 0.0, 0.0, 0.13110894332781436, 0.04449679654819995, 0.0, 0.1133902344080122, 0.0, 0.0, 0.0017495044850376442, 0.013900993801975209, 0.03729472110086185, 0.19173933242455474, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1709634942172136, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13051636625786148, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4357713541613571, 0.0, 0.0, 0.0, 0.0, 0.07073267416682687, 0.0, 0.0, 0.0, 0.0, 0.06443354393704691, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.28238918313491895, 0.0, 0.0, 0.0, 0.28219752132848275, 0.0, 0.0, 0.0, 0.3045252869011713, 0.0, 0.0, 0.019083741024338748, 0.0, 0.06257051306836219, 0.7837995208867943, 0.05061887468267648, 0.0, 0.0, 0.05139533007879884, 0.0, 0.0, 0.04791180451081585, 0.0, 0.5281077501137272, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7571506519409951, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.026654196669850944, 0.0, 0.0, 0.0, 0.0, 0.23843473688023176, 0.0, 0.0, 0.6051386294410329, 0.0, 0.0, 0.0, 0.0, 0.04194764240896927, 0.13628497764809444, 0.0, 0.0, 0.0, 0.0, 0.06043639304510901, 0.04344269031549197, 0.0, 0.7296328391677986, 0.6312346675367022, 0.0, 0.0, 0.22817557354519388, 0.0, 0.05073205279897938, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1594527848545218, 0.1381227206057285, 0.0, 0.0, 0.0, 0.0, 0.4217049712314433, 0.0, 0.0, 0.31027130374464373, 0.0, 0.0, 0.08118863628632204, 0.8304208532182848, 0.983137215831116, 0.0, 0.24897028906526258, 0.14034260442091134, 0.0, 0.691731307052974, 0.7500207108166317, 0.833859795824118, 0.0, 0.05053828036951065, 0.8139843305766208, 0.0, 0.0, 1.3856822465181273, 1.0343729450047436, 0.0, 0.0, 1.09811525132565, 0.0, 0.0, 0.005748580563865145, 0.0, 0.0, 0.8634025361175751, 0.0, 0.14616020357939458, 0.7514377111323272, 0.0, 0.0, 0.1732108049991939, 0.0, 0.0, 0.0, 0.1879649588465491, 0.0, 0.0, 0.0, 0.00817965091901661, 0.0, 0.0, 0.0, 0.5779500058438248, 0.0, 0.0, 0.0, 0.005249336837927155, 0.0, 0.0, 0.0, 0.3064350538312218, 0.0, 0.001890320177282059, 0.45976772975798436, 0.40475012946470096, 0.3442380471075082, 0.017185108496187197, 0.288035784498987, 0.0, 0.0, 0.2827566402954316, 0.0, 0.0, 0.2635916697723135, 0.0, 0.0, 0.0, 0.3588181656747819, 0.0, 0.0, 0.0, 0.17570163169455902, 0.0, 0.2076868163288207, 0.0, 0.0, 0.0, 0.5097341557191223, 0.14587016095283192, 0.0, 0.4172405362928458, 0.0, 0.13951021052730417, 0.0, 0.6033798708626249, 0.0, 0.0, 0.0, 0.0, 0.4512081190066747, 1.1915177253624374, 0.0, 0.53626862172996, 0.26267190873847124, 0.024946529615964698, 0.630282563668714, 0.0, 0.7072072219187049, 0.2557442098535857, 0.0, 0.0, 0.0, 0.027439980552710016, 0.0, 0.2634523244708942, 0.750190928083991, 0.31925762502388877, 0.0, 0.0, 0.0, 0.17667054707398389, 1.689395274403252, 0.0, 0.5386556936239477, 0.21507940395745773, 0.30698899212442304, 0.11255638742238075, 0.12042909174810443, 0.1983506487023661, 0.0, 0.2156156778918424, 0.0, 0.6179686549930762, 0.0, 0.0, 0.0, 0.011162873807723371, 0.003307472295366656, 0.5417377310206691, 0.1038404263557644, 0.0, 0.0, 0.0, 0.010082100558503525, 0.5759566406752274, 0.5373731999014957, 0.24497595431253502, 0.3628321361534925, 0.4271139218413104, 0.0888079037091352, 0.013607634508588288, 0.5254304747208627, 0.0, 0.0, 0.0033818738704913948, 0.0, 0.3894178985059293, 7.727488918331624e-5, 0.4719056234120719, 0.0, 0.0, 0.7548965169480935, 0.0, 0.0, 0.0, 0.0, 0.04295271297559638, 0.3048341885265102, 0.0, 0.16015654700904233, 0.0, 0.03255288417829475, 0.0, 0.0, 0.0, 0.0, 0.16019347860889097, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3426629556463706, 0.0, 0.33591507158653605, 0.0, 0.0, 0.04025140372585128, 0.0, 0.5756230062735465, 0.0, 0.0, 0.0, 0.0, 0.0017523850398583757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32421546356710995, 0.0, 0.011282618188498251, 0.6937716630434633, 0.2529924781123921, 0.2596235239889639, 0.0, 0.043120476743740394, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2793513283874615, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7775441119273626, 0.14515455310675088, 0.0, 0.13510821830370037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44716225485327055, 0.0, 0.0, 0.0, 0.8291790553392753, 0.0, 0.0, 0.26334889102262177, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15479667093058366, 0.0, 0.0, 0.0, 0.36993623982653, 0.0, 0.0, 0.0, 0.0, 0.3623559014178924, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029233403628440607, 0.1427335193249464, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051251957334763225, 0.691166524717783, 0.29938181148714105, 0.5349464228115411, 0.06157899241792075, 0.0, 0.0, 0.2102727260204982, 0.0, 0.60145477594229, 0.0, 0.0, 0.03062034252430008, 0.1635016794080344, 0.7915679370358879, 0.0, 0.07317711878131836, 0.9809574403621903, 0.0, 0.0, 0.44926990137304107, 0.21608537407152922, 0.0, 0.05777727499408966, 0.039929965496851884, 0.0, 0.29915326656993935, 0.31099294960838475, 0.13414679708282617, 0.10949528327933863, 0.0, 0.10753728810972799, 0.0, 0.3797681313373244, 0.5019126906002389, 0.8077076191871431, 0.02575673641821252, 0.0, 0.0, 0.0, 0.0, 0.08748647908145589, 0.0, 0.0, 0.2775216739406583, 0.0, 0.0, 0.0, 0.0, 0.19491911889837882, 0.0, 0.626470449065492, 0.0, 0.1610321350235478, 0.0, 0.6250193931691284, 0.18518836301307043, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5645059221744597, 0.0, 0.30319370972913895, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5299926460898494, 0.0, 0.0, 0.18935417444624433, 0.0, 0.3520383786660897, 0.004326690884129795, 0.4266082560323472, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04753484047689839, 0.0, 0.0, 0.0, 0.2507515224933452, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.011126595947621928, 0.0, 0.0, 0.0, 0.0, 0.07883374294223121, 0.0, 0.0, 0.06158319631443835, 0.0, 0.0, 0.0, 0.0, 0.18599923723367912, 0.0, 0.0, 0.0, 0.0, 0.07225540391146344, 0.0, 0.17222213577613948, 0.0, 0.07109258970520838, 0.30622054435699597, 0.0, 0.0, 0.021600783197372013, 0.0, 0.0, 0.0, 0.0, 0.08747962563792125, 0.0, 0.0, 0.6661127453751955, 0.20906059268184987, 0.0, 0.14050781836020196, 0.0, 0.0, 0.38775347026983786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.016520556870922822, 0.08066242485362363, 0.0, 0.0, 0.008507877750707929, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19963971549104562, 0.0, 0.0, 0.0, 0.0, 0.1517009343251733, 0.5312750255062002, 0.0, 0.0, 0.1147421120346578, 0.0, 0.0, 0.0, 0.0, 0.35500190337758014, 0.0, 0.045597713545061126, 0.0, 0.5209586802357347, 0.021862434298379425, 0.0, 0.0, 0.0, 1.0378291015579089, 0.0, 0.0, 0.0, 0.08585205631703301, 0.0483968201096062, 0.0, 0.025471357792783925, 0.0, 0.22080976260076224, 1.166729214929465, 0.0, 0.677323308302816, 0.18535083381370177, 0.0, 0.0, 0.8704056171514745, 0.0, 0.8935663748182991, 0.015577429284835683, 0.13855228421849528, 0.0, 0.0, 0.1744139155099896, 0.15132491229634354, 0.0, 0.02513332482807071, 0.0, 0.17525145412541498, 0.0, 0.0, 0.0, 0.0, 0.02694350993020697, 0.162823516985682, 0.0, 0.0, 0.6457319525792288, 0.07238426196350153, 0.05745965468198706, 0.0, 0.0, 0.46532195926191927, 0.08460519940877058, 0.22064747420300995, 0.07874956387307873, 0.02873453791303352, 0.04102153493571428, 0.0, 0.0, 0.0, 0.0, 0.49780157894039, 0.0, 0.0, 0.301057479311315, 0.0, 0.0, 0.0016911663416444849, 0.0, 0.2606342751929628, 0.0, 0.0, 0.0, 0.4832976838898257, 0.2663912296088851, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16074512474220395, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0418820657562929, 0.0, 0.04820286684177523, 0.0, 0.1580443847885599, 0.0, 0.1278562139832909, 0.0, 0.0, 0.12981743196566292, 0.0, 0.0, 0.12101853247948517, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13204408757174144, 0.0, 0.0, 0.0, 0.0, 0.0, 0.024933507022188058, 0.0, 0.0, 0.0, 0.22607531711845172, 0.06698435016959209, 0.0, 0.0, 0.38137808720681626, 0.04452538198512276, 0.13682477248336336, 0.20418703285947667, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19170326048233127, 0.0, 0.0, 0.0684911628398921, 0.0, 0.0, 0.0015650042612973304, 0.0, 0.0, 0.0, 0.0, 0.3663518735291969, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27889642218469224, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09171777647431381, 0.0, 0.031206336760942092, 0.04657190125204274, 0.0, 0.21168995340334643, 0.0, 0.0, 0.2715554536912592, 0.0, 0.0, 0.0476752915188213, 0.0, 0.0, 0.0, 0.0, 0.36410628949886475, 0.021118814521733104, 0.0, 0.25524059151149175, 0.22081888489064375, 0.0, 0.0008303397905156581, 0.0, 0.0, 0.0, 0.0, 0.07229346662213895, 0.0, 0.0, 0.820696989198259, 0.541933064129384, 0.0, 0.6976372073851678, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6559268620540256, 0.0, 0.0, 0.00593765430305966, 0.0, 0.03489392321475427, 0.14772313877299487, 0.20501704987333305, 0.04206924698360076, 0.15444861072003166, 0.0, 0.8226903093195739, 0.0, 0.15641473972332146, 0.790869654262485, 0.6842130952365706, 0.03633117370294634, 0.0, 0.18980663716791113, 0.0, 0.0, 0.038558748063994376, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.40339029653363123, 0.0, 0.0, 0.0, 0.0, 0.43960663038458647, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08136147927839638, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16190486570077617, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2992216626110986, 0.0, 0.0, 0.0, 0.17882109545054858, 0.0, 0.0796930212837386, 0.0, 0.620119218817229, 0.06539128749913568, 0.09575080072237417, 0.0, 0.0, 0.0, 0.31047674992819635, 0.0, 0.0, 0.3258789812741783, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03198183278340688, 0.0, 0.0, 0.05159425685765124, 0.22600144774467618, 0.0, 0.17025710615993656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27035127710875223, 0.6595462305837041, 0.0, 0.0, 0.0, 0.5146584726996519, 0.0, 0.4337121439657544, 0.0, 0.0, 0.006091807521893999, 0.0, 0.0, 0.0, 0.0, 0.012888743397998564, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.336652909816104, 0.0, 0.0, 0.33692102610329455, 0.41892538326879675, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4637663755690806, 0.004049689433712162, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2537974154183676, 0.0, 0.0, 0.0, 0.01941920682276314, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2625647477298457, 0.0, 0.0, 0.0, 0.28333914754514417, 0.0, 0.009497623447163565, 0.0, 0.0, 0.015321911880061054, 0.7292697770823527, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4913667474115824, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8188140725936274, 0.23538609489199455, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004251660745273512, 0.2915534718195699, 0.8234990979680312, 0.15784851698528854, 0.31856705993041073, 0.0, 0.0, 0.0, 0.0, 0.8168645454274115, 0.2887084121601819, 0.0, 0.0, 0.0, 0.020685054965967595, 0.784321469374656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5719438351419199, 0.0, 0.0, 0.0, 0.0, 0.23810583942791758, 0.0, 0.0, 0.13190421809771516, 0.2355353163505223, 0.21414939137204708, 0.0, 0.13824109301205073, 0.0, 0.0, 0.4059138329547745, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3839879400284894, 0.7642606292584734, 0.17337082964447778, 0.43085204172578645, 0.5071846921436626, 0.0, 0.0, 0.0, 0.0, 0.0064224562854441995, 0.45947466920879537, 0.0, 0.048013668076727356, 0.008826989297459209, 0.0, 0.10254269883954115, 0.0, 0.449628221574638, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3130138916400048, 0.0, 0.0, 0.0, 0.0, 0.2198473045188841, 0.0, 0.7854658854954149, 0.0, 0.0, 0.0, 0.27482511606730614, 0.0, 0.0, 0.0, 0.10051459327881847, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03619595572786272, 0.2919384825550201, 0.0, 0.27020767480793234, 0.32906141180848986, 0.4014761358710767, 0.0, 0.0, 0.22194819820968317, 0.0, 0.397060529897469, 0.20690476484626705, 0.4811671410392035, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10602724763101144, 0.0, 0.9180290974697203, 0.32581440887276836, 0.11505868376784396, 0.5289668394733107, 0.0, 0.5268986674479775, 0.2483018891728648, 0.0, 0.0, 0.014289568621041568, 0.0, 0.0, 0.0, 0.0, 1.010481071564644, 0.06469540823739603, 0.19880648111582097, 0.580377081863938, 0.3701240890884847, 0.00033976241032705203, 0.5120222312956857, 0.54263963710411, 0.24775903677393285, 0.13070835967347635, 0.9915175816548458, 0.2899273698579516, 0.0, 0.0, 1.1703372022756595, 0.02329003991510475, 0.11859776061629382, 0.69977713771051, 0.6054053013517017, 0.707408250006164, 0.0, 0.2196427786747048, 0.5323095043727097, 0.027197936547729912, 0.0, 0.0, 0.6744130710240275, 0.0, 0.0, 0.009472629890788111, 0.0, 0.0, 0.0, 0.0, 0.11454144616825819, 0.0, 0.0, 0.0, 1.3982199856641506, 0.2538753491205552, 0.20096391172061562, 0.0, 0.0, 0.04239072289345119, 0.0, 0.773883065549572, 0.0, 0.0, 0.41373255777296347, 0.0, 0.0, 0.0, 0.0, 0.7328658795072667, 0.0, 0.0, 0.8143261048934798, 0.0, 0.0, 0.005931475071506779, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5479468542821576, 0.0, 0.32433512795769415, 0.7968405650512658, 0.0, 0.0, 0.2823749754870304, 0.0, 0.08888138290002096, 0.0, 0.0, 0.0, 0.17925820791427197, 0.2000876096746871, 0.0, 0.0, 0.40815111826084144, 0.16385977895936904, 0.06986036185280928, 0.0, 0.0, 0.0, 0.0, 0.05375441115395932, 0.0, 0.1762464226118615, 0.0, 0.3587964347388992, 0.0, 0.8015475518237312, 0.175514484083294, 0.0, 0.0, 0.13495628742382593, 0.0, 0.3105505922199702, 0.7248528773530782, 0.0, 0.18705292898123585, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1748071953278316, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7043431257504623, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13971141189132677, 0.0, 0.0, 0.0, 0.0, 0.0, 0.031464801155366616, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16845401890236414, 0.14573633601571054, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13998624971109908, 0.0, 0.07426203609200491, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2049851695927226, 0.0, 0.0, 0.17338949919280155, 0.0, 0.0, 0.18945472552918335, 0.0, 0.0, 0.0, 0.0, 0.0, 0.036320374032721404, 0.15648907735824633, 0.0, 0.05859334953381536, 0.0, 0.0, 0.0, 0.0, 0.5224897007715829, 0.0, 0.0, 0.0, 0.0, 0.08480845151311803, 0.0, 0.0, 0.0, 0.0, 0.07725579657733653, 0.0, 0.14447765770967222, 0.0, 0.0, 0.0, 0.15678431253622274, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.255601945951803, 0.0, 0.0, 0.2867970808516741, 0.3376079838842544, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29929546323980694, 0.0, 0.0, 0.0]), 42), 42)),) +(CR = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.70856859734722, 0.0, 0.0, 0.0, 0.0, 0.40683416426697433, 0.0, 0.0, 0.5116135014596547, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11665081191597346, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6815260724911955, 0.0, 0.012792585308225086, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.23414421666297028, 0.0, 0.049360715516608075, 0.0, 0.17114666211685992, 0.0, 0.0, 0.016462013473269064, 0.10889740119368015, 0.0, 0.0, 0.0, 0.00577445736315422, 0.03699291283586617, 0.0, 0.054643694670994745, 0.0, 0.0, 0.0, 0.08011353665096754, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1586425298490503, 0.5528778968703049, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22133004329744424, 0.198518145547811, 0.038821202773921835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18278114382714625, 0.1962641247777959, 0.33892974018746314, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.013014677888550407, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6923776912647246, 0.0, 0.0, 0.0, 0.0, 0.03372992996786747, 0.0, 0.0, 0.0, 0.16613962476105457, 0.0, 0.21040813690603985, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12848588404681333, 0.44877210624067243, 0.0, 0.0, 0.00922143015221846, 0.0, 0.334367843457963, 0.0, 0.3344728737871945, 0.0, 0.007609184274463018, 0.0, 0.0783652603407444, 0.0, 0.008880000989208168, 0.6489339658812214, 0.0, 0.0, 0.4325454998052285, 0.24409841671258664, 0.0, 0.5857475361200408, 0.0, 0.006543890265716072, 0.0, 0.0, 0.0, 0.008425346810589148, 0.0, 0.0, 0.16622566484891482, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27228959440031625, 0.16863240701914226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16867493346874554, 0.42330165278515836, 0.0, 0.0, 0.6457463733709866, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12409061480277174, 0.0, 0.14869580809977814, 0.0, 0.0, 0.0, 0.0, 0.14872661472502066, 0.5062551989716859, 0.06509123699478471, 0.0, 0.026886171078575067, 0.0, 0.3503937118835625, 0.0, 0.13397275360612415, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07224002362266076, 0.0, 0.0, 0.014356019852976252, 0.2658719803791635, 0.13166323290951196, 0.0, 0.0, 0.0, 0.0, 0.020308821426184575, 0.025635708510132263, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.007980130035150811, 0.4090538905999397, 0.0, 0.0, 0.008918289569362796, 0.31893009912431536, 0.0, 0.0, 0.0, 0.009525001505142072, 0.0, 0.0, 0.013278407346240287, 0.021967736559129595, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12136922915980554, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.279484838006678, 0.2506790805406071, 0.0, 0.0, 0.10182245842840729, 0.0, 0.0, 0.5745756063332743, 0.0, 0.5180568530499269, 0.0, 0.19018853437509187, 0.2984452378932974, 0.0, 0.0, 0.0, 0.2447378349547936, 0.0, 0.48522550177156104, 0.5906428332019245, 0.0, 0.0, 0.756905839792281, 0.0, 0.4128008966782496, 0.7173389246941403, 0.0, 0.4558370427008323, 0.6596592042653375, 0.33014948101925834, 0.0, 0.0, 0.0, 0.0, 0.17629318543732997, 0.5676926328184286, 0.6751757284159318, 0.18305092512120225, 0.0, 0.5526511646802545, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6816784313112039, 0.0, 0.0, 0.0, 0.0, 0.4384965381282249, 0.0, 0.5249476708016299, 0.5514304573066787, 0.0, 0.0, 0.0278361825874964, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.38619300372291254, 0.0, 0.5997636810868653, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20257599957103595, 0.0, 0.10844521538627999, 0.0, 1.2226089817686585, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04229463432907405, 0.0, 0.0, 0.0, 0.0, 0.19946965003853376, 0.048044013732540566, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.036066754029278635, 0.0, 0.16231330637401103, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6062852141104628, 0.40481276616279827, 0.0, 0.0, 0.2539845497787725, 0.0, 0.0, 0.5691049256163461, 0.572636917198234, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.026986118300396385, 0.0, 0.0, 0.2578776387682179, 0.2201878278780288, 0.3521973225117564, 0.49204059164875263, 0.20695213801377368, 0.3889153033164169, 0.12024801465448598, 0.5015222202004627, 0.0, 0.0, 0.0, 0.25511838171251733, 0.3395573400007252, 0.0, 0.14076018335068016, 0.006079069440287111, 0.3120090695218348, 0.02735798901473654, 0.23564550369089346, 0.0, 0.5201790908279286, 0.42693711336544043, 0.0, 0.0, 0.32942094250755716, 0.0, 0.0, 0.0, 0.0, 0.42208957099917227, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27253622974111436, 0.20091824181940837, 0.0, 0.0, 0.014451665708310772, 0.0648234167882922, 0.0, 0.0, 0.0, 0.0, 0.43998592755822313, 0.200499194569837, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10517105271620596, 0.4525079677294799, 0.0, 0.0, 0.0, 0.3992933674102322, 0.0, 0.6336315500314595, 0.5683248347075297, 0.0, 0.03911423543998137, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5618719435725092, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13717215169360888, 0.6023639264726295, 0.0, 0.16451246906039718, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2428824655720991, 0.0, 0.0, 0.0, 0.1307489669067023, 0.016490708613327746, 0.0, 0.5332965109179645, 0.0, 0.72835164827528, 0.5456771996801212, 0.20306669911566266, 0.8042852233793947, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08986996958215537, 0.0, 0.09372773893140769, 0.2910950907401526, 0.0, 0.0, 0.11400417325056827, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15073719147466486, 0.0, 0.0062702773417321524, 0.0, 0.11018067217476075, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03517847753788876, 0.0, 0.0, 0.0, 0.0, 0.0, 0.012565073058016527, 0.0, 0.013511533493035587, 0.0, 0.0, 0.0, 0.1160032767395455, 0.3288776375406247, 0.009384967607632352, 0.013704851364696426, 0.0, 0.0, 0.0, 0.10679904950368906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5396299966121684, 0.0, 0.0, 0.0, 0.4120885163537877, 0.0, 0.0, 0.0, 0.0, 0.1374333138690627, 0.0, 0.0, 0.0, 0.0, 0.0, 0.308835769631579, 0.0, 0.0, 0.2935183046180839, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21641442424094412, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16667427577804808, 0.0, 0.0, 0.0, 0.0, 0.1072149118509185, 0.0, 0.0, 0.13482790109225204, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32702264908263307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17999984836884408, 0.0, 0.0, 0.0, 0.0, 0.17960575635997003, 0.0, 0.0, 0.0, 0.0, 0.08691531027429766, 0.0, 0.2893303365574358, 0.0, 0.21730094701941294, 0.07940443022930238, 0.0, 0.0, 0.01060094130869171, 0.0, 0.0, 0.21897146914670435, 0.3193413479843402, 0.11502306512986679, 0.16078084781731777, 0.0, 0.0, 0.029138065953053547, 0.12899773650646262, 0.0, 0.0, 0.0, 0.0, 0.35209003333845906, 0.0, 0.0, 0.42881832168904727, 0.0, 0.07551665376676242, 0.0, 0.10828996414360535, 0.0, 0.0, 0.0, 0.06175478190339224, 0.07317612880730584, 0.0, 0.4573326969055594, 0.13616590004764864, 0.1733951270114995, 0.0, 0.0, 0.0, 0.0, 0.004682414366264115, 0.0, 0.0, 0.014457116882680743, 0.477538324169661, 0.6690522150262886, 0.0, 0.0, 0.35074798851029604, 0.0, 0.6171788496488323, 0.0, 0.0, 0.0, 0.4598571719367441, 0.020424541646230095, 0.5014147387061915, 0.0, 0.0, 0.18767693158032267, 0.0, 0.08703683411330847, 0.0, 0.3388800152965881, 0.004390191394809013, 0.2131890539109787, 0.0, 0.43631258167790793, 0.0, 0.0, 0.0, 0.0, 0.011243656021000366, 0.0, 0.0, 0.004302223899340062, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3252052607129126, 0.10943362605720088, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4600533876598886, 0.0, 0.0, 0.0, 0.6238654988124779, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17327928789102656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3007942289792172, 0.49763260068933673, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1811653464990684, 0.0, 0.7596663692737102, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24115083978451807, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4132016125575898, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.30212649550849624, 0.45064666528381636, 0.0, 0.0, 1.0295831107021076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4924133218118872, 0.0, 0.0, 0.6123145833841932, 1.0074416855456372, 0.8974627446983252, 0.0, 0.0, 0.39387754214687604, 0.6443411524082342, 0.0, 0.6700619016074552, 0.0, 0.0, 0.4377096051189058, 0.3977735630344448, 0.0, 0.0, 0.0, 0.054395363429349475, 0.46912699721752377, 0.09054692381782561, 0.0, 0.6320539215802606, 0.33393006705956935, 0.614294006786966, 0.0, 0.0, 0.3986581318369477, 0.630705395059908, 0.0, 0.4266820903955834, 0.6230830913144384, 0.0, 1.0831760350408295, 0.21088758697054613, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7135848094649876, 0.06891111903866448, 0.0, 0.0, 0.0, 0.32920907856114856, 0.5438621275845595, 0.0, 0.4139962279186794, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13809169802867077, 0.0, 0.14849341459532064, 0.0, 0.0, 0.0, 0.5533499952652239, 0.0, 0.10314194807289108, 0.15061800177708015, 0.0, 0.5514890096422472, 0.23190068111070972, 0.0, 0.701822721136001, 0.6294877235260824, 0.0, 0.0, 0.0, 1.1059687974440209, 0.0, 0.0, 0.0, 0.96169924491107, 0.0, 0.0, 0.0, 0.0, 0.06628312350990566, 0.0, 0.37743722057381907, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08765206247905213, 0.0, 0.5218343219200703, 0.0, 0.0, 0.0, 0.41461579287108996, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6671900885778136, 0.0, 0.0, 0.0, 0.028262864260027967, 0.7909490968152504, 0.04511006432931489, 0.0, 0.0, 0.0, 0.4564818142302977, 0.35113439772465294, 0.0, 0.0, 0.0, 0.03776705986522304, 0.6129906961879193, 0.0, 0.0, 0.0, 0.0, 0.0, 0.42034814190539166, 0.0, 0.0, 0.21638060933821013, 0.0, 0.0, 0.0, 0.2526638526129318, 0.03715346614099295, 0.6358424325058142, 0.0, 0.0, 0.04152129953915335, 0.04614236094065058, 0.0, 0.0, 0.07015688762319212, 0.05740172594394938, 0.18351207696535793, 0.0, 0.0, 0.008864400691370657, 0.0, 0.8651249823989057, 0.407678395491645, 0.845679782901505, 0.0, 0.0, 0.0, 0.0, 0.4753420456230014, 1.6107190368773618, 0.0, 0.0, 0.0638102435424578, 0.24041718723542044, 0.5177820553003522, 0.44619181405158337, 0.4489609795607919, 0.0, 0.07301898938869086, 0.0902695074635508, 0.4268753686592877, 0.0, 0.0, 0.0, 0.16408594940133228, 0.0, 0.0, 0.6736439849461895, 0.031382854877976686, 0.034000045192845295, 0.0, 0.0, 0.8630676095443404, 0.3932053636261741, 0.0, 0.0, 0.0, 0.23747714078691665, 0.2179752640521007, 0.0, 0.059020425946533776, 0.23507519209688904, 0.0, 0.6184935143504988, 0.18475168643298573, 0.3255150538360457, 0.0, 0.0, 0.10559996237493433, 0.258855010743052, 0.0, 0.0, 0.0, 0.0, 0.5931453366617909, 0.0, 0.012879882724963071, 0.34456425817306313, 0.0, 0.10363371305008902, 0.0, 0.0, 0.13032437159832005, 0.0, 0.0, 0.9136517678658531, 0.11645026631438779, 0.0, 0.0, 1.006195673838974, 0.0, 0.49183662858528426, 0.5242175629103283, 0.0, 0.0, 0.5842253265103485, 0.09175087532086124, 0.0, 0.0, 0.6346229344595797, 0.8483440750859271, 0.0, 0.0, 0.43168828228976236, 1.1746392457903614, 0.9786548179849323, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22466432888463708, 0.0, 0.0, 0.23383689086971213, 0.07868759200794351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5047067971651431, 0.0, 0.04466167239654772, 0.0, 0.18031282035336027, 0.06880056169195574, 0.0, 0.039760598424459205, 0.2052193360923158, 0.0, 0.1245954319549744, 0.0, 0.0, 0.3371869924989234, 0.10076818165067654, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21628428501390357, 0.41878760793751535, 0.0, 0.2743772579349106, 0.0, 0.0, 0.0, 0.23737336558608516, 0.0, 0.5609891075534331, 0.0, 0.0, 0.0, 0.0, 0.11206304892649907, 0.03770992438488979, 0.0, 0.0, 0.17383517173220803, 0.252655932334268, 0.0, 0.1585306005724301, 0.0, 0.1865298137691172, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05971061253533409, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15913149160221682, 0.0, 0.4030910369398146, 0.0, 0.32022434202130456, 0.23687245172165972, 0.0, 0.3599325265793679, 0.0, 0.4765964362382492, 0.0, 0.0, 0.0, 0.0, 0.6107120779202261, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.573260313114729, 0.5768180939544553, 0.0, 0.17499066339826644, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7201822598869417, 0.0, 0.0, 0.0, 0.0, 0.08725982492406978, 0.5051841445138487, 0.0, 0.0, 0.0, 0.2569811590076317, 0.3964028116744446, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31198143094865527, 0.0, 0.0, 0.0, 0.0, 0.0, 0.42812611727229755, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.40187139064927635, 0.40436549376609193, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5533450612442088, 0.3541481069684905, 0.0, 0.0, 0.0, 0.1801509251180122, 0.0, 0.0, 0.0, 0.08899148634361333, 0.0, 0.4004935508153472, 0.1664002225353232, 0.6660561411338942, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5274372110974553, 0.0, 0.0, 0.11745018036413006, 0.03952272816910389, 0.654574176319042, 0.0, 0.0, 0.0, 0.0, 0.29642163335908794, 0.1274499525156547, 0.03345490004078419, 0.0, 0.0, 0.07653915037041417, 0.0, 0.02978363268713748, 0.15372448023095572, 0.03967384765850083, 0.06258104057589436, 0.0, 0.0, 0.044337981986606795, 0.07548283043416787, 0.0, 0.0, 0.0, 0.04735429836324166, 0.0, 0.0, 0.10863396357319674, 0.1797235339241024, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2053113311622715, 0.0, 0.0, 0.6339058613302375, 0.26881844559242324, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.047384735026192754, 0.0, 0.09394657688969027, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.41199723535819494, 0.0, 0.0, 0.19249813639294353, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4930042077083581, 0.01569004651529754, 0.0, 0.1886409972802957, 0.0, 0.6504613027483894, 0.0, 0.0, 0.0, 0.4491308783325726, 0.0, 0.710600063326777, 0.0, 0.0, 0.0, 0.0, 0.6392481732081897, 0.0, 0.0, 0.21075790790635565, 0.143953089400151, 0.04517962123405222, 0.12446587761719602, 0.011602660433066613, 0.0, 0.021141064793252704, 0.017873704948355638, 0.0, 0.010329409925325224, 0.21730544865000528, 0.03874493610862431, 0.0, 0.0, 0.0, 0.04329986579681618, 0.02617857620219232, 0.0, 0.0, 0.14198488087669728, 0.04624555904799935, 0.33624630483183143, 0.0, 0.18065873234459212, 0.001167765010724762, 0.0, 0.41156050949339695, 0.06138103351330629, 0.0, 0.0, 0.0, 0.0, 0.0, 0.45223330011890606, 0.0, 0.42719481956226096, 0.0, 0.09390028378745956, 0.03159803909732349, 0.0, 0.0, 0.0, 0.14464053921535813, 0.0, 0.355579453624945, 0.27582314245244144, 0.0, 0.0, 0.4779189904559178, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6540512683692249, 0.16386729047093346, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08595593354654336, 0.0868518036911852, 0.1436872279500763, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08976911428083846, 0.0, 0.0, 0.0, 0.06561633035108058, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0209499775034313, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06082234101182034, 0.19585779687130894, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.01528743323594608, 0.0, 0.0, 0.0, 0.011174280569280867, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3922416239543676, 0.0, 0.5308327922857218, 0.38811106643298066, 0.0, 0.5861742359361938, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010357877371534024, 0.03335404406511716, 0.2121541431315042, 0.0, 0.0, 0.0, 0.0, 0.0, 0.022181366862053645, 0.0, 0.0, 0.3232792127186002, 0.21780290259329063, 0.0, 0.0, 0.6724740217065875, 0.33454771410797746, 0.0, 0.0, 0.0, 0.0, 0.1517011050211833, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20421012621580428, 0.0, 0.0, 0.0, 0.09554663093280256, 0.0, 0.9066194809744413, 0.0, 0.6530356828494477, 0.0, 0.0, 0.4162310356447254, 0.2004622291406719, 0.0, 0.06531630990369706, 0.0, 0.0, 0.22516333873266767, 0.08751639468488193, 0.31273858097846424, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10565952264223451, 0.25213753900728575, 0.0, 0.13605306731422323, 0.0, 0.0, 0.20467409186458246, 0.0, 0.0, 0.0, 0.14062561725182204, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06654804138060808, 0.04780210989364991, 0.3312858803709398, 0.0, 0.09056986573031543, 0.0, 0.0, 0.22425218794100035, 0.6978010919630194, 0.5644822411311934, 0.0, 0.0, 0.0, 0.0, 0.25245963204466193, 0.5714387205668741, 0.0, 0.7794778768245345, 0.5229243836029062, 0.6068223768633771, 0.0, 0.0, 0.3439063861094934, 0.0, 0.5825998753106167, 0.07738278703840655, 0.0, 0.0, 0.45088731313609587, 0.020026145653267647, 0.49371220470576765, 0.0, 0.1967497337446331, 0.9333687888834381, 0.2687116640308751, 0.3109501951809905, 0.0, 0.628995837333548, 0.6431918870734405, 0.0, 0.0, 0.4278019777568812, 0.0, 0.0, 0.3426634565816645, 0.0, 0.7642079896603969, 0.15720215492969136, 0.0, 0.5627301734522071, 0.0, 0.0, 0.03992028432745955, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8902694418730629, 0.24785210085431258, 0.0, 0.0, 0.0, 0.19750384789873962, 0.0, 0.0, 0.24837057467209334, 0.0, 0.0, 0.06196917660673224, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9196979517908253, 0.47523150409994275, 0.0, 0.05084636736867684, 0.30281629383729847, 0.0, 0.0, 0.0, 0.0, 0.7797375130571516, 0.0, 0.0, 0.009193696508787878, 0.7164774465476489, 0.37223214885126943, 0.36077619715591613]), 42), 42)),) julia> @finch_code begin Ct .= 0 for i = parallel(_) @@ -246,7 +246,7 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.1619393094464903, 0.0, 0.0, 0.0, 0.0, 0.11373910752308043, 0.0, 0.32533429668145175, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5405512925681031, 0.0, 0.0, 0.5409817971066755, 0.6726532010052559, 0.0, 0.0, 0.0, 0.04498001780375231, 0.0, 0.7446527460595233, 0.0, 0.0, 0.0, 0.0648053115514859, 0.0, 0.20542126000594346, 0.0, 0.2489342378383824, 0.0, 0.0, 0.2446702787341799, 0.0, 0.0, 0.4075132486743765, 0.372693911014397, 0.0, 0.03990868671702989, 0.32865292999993995, 0.0, 0.0, 0.0, 0.037570880212435515, 0.0, 0.0, 0.2585440952996821, 0.0, 0.0, 0.5429032184680616, 0.0, 0.0, 0.0, 0.7310331654112876, 1.6974310666890076, 0.13434284643730737, 0.0, 0.15388431962676646, 0.0, 0.018799628425153446, 0.026448056346556916, 0.020943024178172204, 0.08671614507629592, 0.19272805440861934, 0.07015243227726202, 0.0, 0.1267665206913561, 0.1014023431949165, 0.494724963965631, 0.0, 0.6317423070706343, 0.0, 0.4351905463586081, 0.019451367524410516, 0.11392026534019284, 0.0, 0.7674183972620773, 0.0, 0.0, 0.009728790198518009, 0.0, 0.0, 0.03627546054320975, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0140288190005624, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4229718175600567, 0.0752980218883111, 0.013070459322559402, 0.0, 0.4793455258509991, 0.0, 0.0, 0.0, 0.0, 0.08811633730455204, 0.08467555208376226, 0.0, 0.0, 1.4824413586764027, 0.27442978968992093, 0.0, 0.0028104905637611507, 0.1480443868451215, 0.6744061467564826, 0.043998508948338316, 0.8697701045107844, 0.8469834954000914, 0.0, 0.02425613445444166, 0.0, 0.0, 0.0, 0.9679232213808633, 0.6774894982888419, 0.35310753741950685, 0.0, 0.2841919624705342, 0.0, 0.0, 0.7349602036514661, 0.0, 0.2186035505612502, 0.04416466424315345, 0.0, 0.0, 0.25133653271826356, 0.11160837067772013, 0.0, 0.14048007630402903, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.035048636482553235, 0.038653696504083, 0.10014641420794519, 0.0, 0.0837599459565703, 0.10942537757376403, 0.0, 0.0, 0.0, 0.08204362658289192, 0.0, 0.0, 0.011591138384550418, 0.0, 0.038004261053570694, 0.0066189468466051875, 0.06306237088337384, 0.0, 0.0, 0.03121664575636558, 0.0, 0.0, 0.02910081181829685, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08506408857544866, 0.0, 0.0, 0.0, 0.7712870388819855, 0.2285263236705729, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6966121466049721, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6540220401149287, 0.0, 0.0, 0.2336670223432043, 0.0, 0.0, 0.005339227289024509, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4930665741229495, 0.0, 0.029559863815954657, 0.0, 0.0, 0.10760363562562023, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15061269543615943, 0.6107211710602042, 0.0, 0.0, 0.733057860494869, 0.057362855000467054, 0.17650444882735677, 0.0, 0.0, 0.014677698725170102, 0.0, 0.17821555119599314, 0.0025555492556658746, 0.14808219427948163, 0.0, 0.11979690859781277, 0.0, 0.0, 0.13110894332781436, 0.04449679654819995, 0.0, 0.1133902344080122, 0.0, 0.0, 0.0017495044850376442, 0.013900993801975209, 0.03729472110086185, 0.19173933242455474, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1709634942172136, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13051636625786148, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4357713541613571, 0.0, 0.0, 0.0, 0.0, 0.07073267416682687, 0.0, 0.0, 0.0, 0.0, 0.06443354393704691, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.28238918313491895, 0.0, 0.0, 0.0, 0.28219752132848275, 0.0, 0.0, 0.0, 0.3045252869011713, 0.0, 0.0, 0.019083741024338748, 0.0, 0.06257051306836219, 0.7837995208867943, 0.05061887468267648, 0.0, 0.0, 0.05139533007879884, 0.0, 0.0, 0.04791180451081585, 0.0, 0.5281077501137272, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7571506519409951, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.026654196669850944, 0.0, 0.0, 0.0, 0.0, 0.23843473688023176, 0.0, 0.0, 0.6051386294410329, 0.0, 0.0, 0.0, 0.0, 0.04194764240896927, 0.13628497764809444, 0.0, 0.0, 0.0, 0.0, 0.06043639304510901, 0.04344269031549197, 0.0, 0.7296328391677986, 0.6312346675367022, 0.0, 0.0, 0.22817557354519388, 0.0, 0.05073205279897938, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1594527848545218, 0.1381227206057285, 0.0, 0.0, 0.0, 0.0, 0.4217049712314433, 0.0, 0.0, 0.31027130374464373, 0.0, 0.0, 0.08118863628632204, 0.8304208532182848, 0.983137215831116, 0.0, 0.24897028906526258, 0.14034260442091134, 0.0, 0.691731307052974, 0.7500207108166317, 0.833859795824118, 0.0, 0.05053828036951065, 0.8139843305766208, 0.0, 0.0, 1.3856822465181273, 1.0343729450047436, 0.0, 0.0, 1.09811525132565, 0.0, 0.0, 0.005748580563865145, 0.0, 0.0, 0.8634025361175751, 0.0, 0.14616020357939458, 0.7514377111323272, 0.0, 0.0, 0.1732108049991939, 0.0, 0.0, 0.0, 0.1879649588465491, 0.0, 0.0, 0.0, 0.00817965091901661, 0.0, 0.0, 0.0, 0.5779500058438248, 0.0, 0.0, 0.0, 0.005249336837927155, 0.0, 0.0, 0.0, 0.3064350538312218, 0.0, 0.001890320177282059, 0.45976772975798436, 0.40475012946470096, 0.3442380471075082, 0.017185108496187197, 0.288035784498987, 0.0, 0.0, 0.2827566402954316, 0.0, 0.0, 0.2635916697723135, 0.0, 0.0, 0.0, 0.3588181656747819, 0.0, 0.0, 0.0, 0.17570163169455902, 0.0, 0.2076868163288207, 0.0, 0.0, 0.0, 0.5097341557191223, 0.14587016095283192, 0.0, 0.4172405362928458, 0.0, 0.13951021052730417, 0.0, 0.6033798708626249, 0.0, 0.0, 0.0, 0.0, 0.4512081190066747, 1.1915177253624374, 0.0, 0.53626862172996, 0.26267190873847124, 0.024946529615964698, 0.630282563668714, 0.0, 0.7072072219187049, 0.2557442098535857, 0.0, 0.0, 0.0, 0.027439980552710016, 0.0, 0.2634523244708942, 0.750190928083991, 0.31925762502388877, 0.0, 0.0, 0.0, 0.17667054707398389, 1.689395274403252, 0.0, 0.5386556936239477, 0.21507940395745773, 0.30698899212442304, 0.11255638742238075, 0.12042909174810443, 0.1983506487023661, 0.0, 0.2156156778918424, 0.0, 0.6179686549930762, 0.0, 0.0, 0.0, 0.011162873807723371, 0.003307472295366656, 0.5417377310206691, 0.1038404263557644, 0.0, 0.0, 0.0, 0.010082100558503525, 0.5759566406752274, 0.5373731999014957, 0.24497595431253502, 0.3628321361534925, 0.4271139218413104, 0.0888079037091352, 0.013607634508588288, 0.5254304747208627, 0.0, 0.0, 0.0033818738704913948, 0.0, 0.3894178985059293, 7.727488918331624e-5, 0.4719056234120719, 0.0, 0.0, 0.7548965169480935, 0.0, 0.0, 0.0, 0.0, 0.04295271297559638, 0.3048341885265102, 0.0, 0.16015654700904233, 0.0, 0.03255288417829475, 0.0, 0.0, 0.0, 0.0, 0.16019347860889097, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3426629556463706, 0.0, 0.33591507158653605, 0.0, 0.0, 0.04025140372585128, 0.0, 0.5756230062735465, 0.0, 0.0, 0.0, 0.0, 0.0017523850398583757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32421546356710995, 0.0, 0.011282618188498251, 0.6937716630434633, 0.2529924781123921, 0.2596235239889639, 0.0, 0.043120476743740394, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2793513283874615, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7775441119273626, 0.14515455310675088, 0.0, 0.13510821830370037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44716225485327055, 0.0, 0.0, 0.0, 0.8291790553392753, 0.0, 0.0, 0.26334889102262177, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15479667093058366, 0.0, 0.0, 0.0, 0.36993623982653, 0.0, 0.0, 0.0, 0.0, 0.3623559014178924, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029233403628440607, 0.1427335193249464, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051251957334763225, 0.691166524717783, 0.29938181148714105, 0.5349464228115411, 0.06157899241792075, 0.0, 0.0, 0.2102727260204982, 0.0, 0.60145477594229, 0.0, 0.0, 0.03062034252430008, 0.1635016794080344, 0.7915679370358879, 0.0, 0.07317711878131836, 0.9809574403621903, 0.0, 0.0, 0.44926990137304107, 0.21608537407152922, 0.0, 0.05777727499408966, 0.039929965496851884, 0.0, 0.29915326656993935, 0.31099294960838475, 0.13414679708282617, 0.10949528327933863, 0.0, 0.10753728810972799, 0.0, 0.3797681313373244, 0.5019126906002389, 0.8077076191871431, 0.02575673641821252, 0.0, 0.0, 0.0, 0.0, 0.08748647908145589, 0.0, 0.0, 0.2775216739406583, 0.0, 0.0, 0.0, 0.0, 0.19491911889837882, 0.0, 0.626470449065492, 0.0, 0.1610321350235478, 0.0, 0.6250193931691284, 0.18518836301307043, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5645059221744597, 0.0, 0.30319370972913895, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5299926460898494, 0.0, 0.0, 0.18935417444624433, 0.0, 0.3520383786660897, 0.004326690884129795, 0.4266082560323472, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04753484047689839, 0.0, 0.0, 0.0, 0.2507515224933452, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.011126595947621928, 0.0, 0.0, 0.0, 0.0, 0.07883374294223121, 0.0, 0.0, 0.06158319631443835, 0.0, 0.0, 0.0, 0.0, 0.18599923723367912, 0.0, 0.0, 0.0, 0.0, 0.07225540391146344, 0.0, 0.17222213577613948, 0.0, 0.07109258970520838, 0.30622054435699597, 0.0, 0.0, 0.021600783197372013, 0.0, 0.0, 0.0, 0.0, 0.08747962563792125, 0.0, 0.0, 0.6661127453751955, 0.20906059268184987, 0.0, 0.14050781836020196, 0.0, 0.0, 0.38775347026983786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.016520556870922822, 0.08066242485362363, 0.0, 0.0, 0.008507877750707929, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19963971549104562, 0.0, 0.0, 0.0, 0.0, 0.1517009343251733, 0.5312750255062002, 0.0, 0.0, 0.1147421120346578, 0.0, 0.0, 0.0, 0.0, 0.35500190337758014, 0.0, 0.045597713545061126, 0.0, 0.5209586802357347, 0.021862434298379425, 0.0, 0.0, 0.0, 1.0378291015579089, 0.0, 0.0, 0.0, 0.08585205631703301, 0.0483968201096062, 0.0, 0.025471357792783925, 0.0, 0.22080976260076224, 1.166729214929465, 0.0, 0.677323308302816, 0.18535083381370177, 0.0, 0.0, 0.8704056171514745, 0.0, 0.8935663748182991, 0.015577429284835683, 0.13855228421849528, 0.0, 0.0, 0.1744139155099896, 0.15132491229634354, 0.0, 0.02513332482807071, 0.0, 0.17525145412541498, 0.0, 0.0, 0.0, 0.0, 0.02694350993020697, 0.162823516985682, 0.0, 0.0, 0.6457319525792288, 0.07238426196350153, 0.05745965468198706, 0.0, 0.0, 0.46532195926191927, 0.08460519940877058, 0.22064747420300995, 0.07874956387307873, 0.02873453791303352, 0.04102153493571428, 0.0, 0.0, 0.0, 0.0, 0.49780157894039, 0.0, 0.0, 0.301057479311315, 0.0, 0.0, 0.0016911663416444849, 0.0, 0.2606342751929628, 0.0, 0.0, 0.0, 0.4832976838898257, 0.2663912296088851, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16074512474220395, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0418820657562929, 0.0, 0.04820286684177523, 0.0, 0.1580443847885599, 0.0, 0.1278562139832909, 0.0, 0.0, 0.12981743196566292, 0.0, 0.0, 0.12101853247948517, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13204408757174144, 0.0, 0.0, 0.0, 0.0, 0.0, 0.024933507022188058, 0.0, 0.0, 0.0, 0.22607531711845172, 0.06698435016959209, 0.0, 0.0, 0.38137808720681626, 0.04452538198512276, 0.13682477248336336, 0.20418703285947667, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19170326048233127, 0.0, 0.0, 0.0684911628398921, 0.0, 0.0, 0.0015650042612973304, 0.0, 0.0, 0.0, 0.0, 0.3663518735291969, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27889642218469224, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09171777647431381, 0.0, 0.031206336760942092, 0.04657190125204274, 0.0, 0.21168995340334643, 0.0, 0.0, 0.2715554536912592, 0.0, 0.0, 0.0476752915188213, 0.0, 0.0, 0.0, 0.0, 0.36410628949886475, 0.021118814521733104, 0.0, 0.25524059151149175, 0.22081888489064375, 0.0, 0.0008303397905156581, 0.0, 0.0, 0.0, 0.0, 0.07229346662213895, 0.0, 0.0, 0.820696989198259, 0.541933064129384, 0.0, 0.6976372073851678, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6559268620540256, 0.0, 0.0, 0.00593765430305966, 0.0, 0.03489392321475427, 0.14772313877299487, 0.20501704987333305, 0.04206924698360076, 0.15444861072003166, 0.0, 0.8226903093195739, 0.0, 0.15641473972332146, 0.790869654262485, 0.6842130952365706, 0.03633117370294634, 0.0, 0.18980663716791113, 0.0, 0.0, 0.038558748063994376, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.40339029653363123, 0.0, 0.0, 0.0, 0.0, 0.43960663038458647, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08136147927839638, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16190486570077617, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2992216626110986, 0.0, 0.0, 0.0, 0.17882109545054858, 0.0, 0.0796930212837386, 0.0, 0.620119218817229, 0.06539128749913568, 0.09575080072237417, 0.0, 0.0, 0.0, 0.31047674992819635, 0.0, 0.0, 0.3258789812741783, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03198183278340688, 0.0, 0.0, 0.05159425685765124, 0.22600144774467618, 0.0, 0.17025710615993656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27035127710875223, 0.6595462305837041, 0.0, 0.0, 0.0, 0.5146584726996519, 0.0, 0.4337121439657544, 0.0, 0.0, 0.006091807521893999, 0.0, 0.0, 0.0, 0.0, 0.012888743397998564, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.336652909816104, 0.0, 0.0, 0.33692102610329455, 0.41892538326879675, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4637663755690806, 0.004049689433712162, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2537974154183676, 0.0, 0.0, 0.0, 0.01941920682276314, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2625647477298457, 0.0, 0.0, 0.0, 0.28333914754514417, 0.0, 0.009497623447163565, 0.0, 0.0, 0.015321911880061054, 0.7292697770823527, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4913667474115824, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8188140725936274, 0.23538609489199455, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004251660745273512, 0.2915534718195699, 0.8234990979680312, 0.15784851698528854, 0.31856705993041073, 0.0, 0.0, 0.0, 0.0, 0.8168645454274115, 0.2887084121601819, 0.0, 0.0, 0.0, 0.020685054965967595, 0.784321469374656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5719438351419199, 0.0, 0.0, 0.0, 0.0, 0.23810583942791758, 0.0, 0.0, 0.13190421809771516, 0.2355353163505223, 0.21414939137204708, 0.0, 0.13824109301205073, 0.0, 0.0, 0.4059138329547745, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3839879400284894, 0.7642606292584734, 0.17337082964447778, 0.43085204172578645, 0.5071846921436626, 0.0, 0.0, 0.0, 0.0, 0.0064224562854441995, 0.45947466920879537, 0.0, 0.048013668076727356, 0.008826989297459209, 0.0, 0.10254269883954115, 0.0, 0.449628221574638, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3130138916400048, 0.0, 0.0, 0.0, 0.0, 0.2198473045188841, 0.0, 0.7854658854954149, 0.0, 0.0, 0.0, 0.27482511606730614, 0.0, 0.0, 0.0, 0.10051459327881847, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03619595572786272, 0.2919384825550201, 0.0, 0.27020767480793234, 0.32906141180848986, 0.4014761358710767, 0.0, 0.0, 0.22194819820968317, 0.0, 0.397060529897469, 0.20690476484626705, 0.4811671410392035, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10602724763101144, 0.0, 0.9180290974697203, 0.32581440887276836, 0.11505868376784396, 0.5289668394733107, 0.0, 0.5268986674479775, 0.2483018891728648, 0.0, 0.0, 0.014289568621041568, 0.0, 0.0, 0.0, 0.0, 1.010481071564644, 0.06469540823739603, 0.19880648111582097, 0.580377081863938, 0.3701240890884847, 0.00033976241032705203, 0.5120222312956857, 0.54263963710411, 0.24775903677393285, 0.13070835967347635, 0.9915175816548458, 0.2899273698579516, 0.0, 0.0, 1.1703372022756595, 0.02329003991510475, 0.11859776061629382, 0.69977713771051, 0.6054053013517017, 0.707408250006164, 0.0, 0.2196427786747048, 0.5323095043727097, 0.027197936547729912, 0.0, 0.0, 0.6744130710240275, 0.0, 0.0, 0.009472629890788111, 0.0, 0.0, 0.0, 0.0, 0.11454144616825819, 0.0, 0.0, 0.0, 1.3982199856641506, 0.2538753491205552, 0.20096391172061562, 0.0, 0.0, 0.04239072289345119, 0.0, 0.773883065549572, 0.0, 0.0, 0.41373255777296347, 0.0, 0.0, 0.0, 0.0, 0.7328658795072667, 0.0, 0.0, 0.8143261048934798, 0.0, 0.0, 0.005931475071506779, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5479468542821576, 0.0, 0.32433512795769415, 0.7968405650512658, 0.0, 0.0, 0.2823749754870304, 0.0, 0.08888138290002096, 0.0, 0.0, 0.0, 0.17925820791427197, 0.2000876096746871, 0.0, 0.0, 0.40815111826084144, 0.16385977895936904, 0.06986036185280928, 0.0, 0.0, 0.0, 0.0, 0.05375441115395932, 0.0, 0.1762464226118615, 0.0, 0.3587964347388992, 0.0, 0.8015475518237312, 0.175514484083294, 0.0, 0.0, 0.13495628742382593, 0.0, 0.3105505922199702, 0.7248528773530782, 0.0, 0.18705292898123585, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1748071953278316, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7043431257504623, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13971141189132677, 0.0, 0.0, 0.0, 0.0, 0.0, 0.031464801155366616, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16845401890236414, 0.14573633601571054, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13998624971109908, 0.0, 0.07426203609200491, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2049851695927226, 0.0, 0.0, 0.17338949919280155, 0.0, 0.0, 0.18945472552918335, 0.0, 0.0, 0.0, 0.0, 0.0, 0.036320374032721404, 0.15648907735824633, 0.0, 0.05859334953381536, 0.0, 0.0, 0.0, 0.0, 0.5224897007715829, 0.0, 0.0, 0.0, 0.0, 0.08480845151311803, 0.0, 0.0, 0.0, 0.0, 0.07725579657733653, 0.0, 0.14447765770967222, 0.0, 0.0, 0.0, 0.15678431253622274, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.255601945951803, 0.0, 0.0, 0.2867970808516741, 0.3376079838842544, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29929546323980694, 0.0, 0.0, 0.0]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.70856859734722, 0.0, 0.0, 0.0, 0.0, 0.40683416426697433, 0.0, 0.0, 0.5116135014596547, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11665081191597346, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6815260724911955, 0.0, 0.012792585308225086, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.23414421666297028, 0.0, 0.049360715516608075, 0.0, 0.17114666211685992, 0.0, 0.0, 0.016462013473269064, 0.10889740119368015, 0.0, 0.0, 0.0, 0.00577445736315422, 0.03699291283586617, 0.0, 0.054643694670994745, 0.0, 0.0, 0.0, 0.08011353665096754, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1586425298490503, 0.5528778968703049, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22133004329744424, 0.198518145547811, 0.038821202773921835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18278114382714625, 0.1962641247777959, 0.33892974018746314, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.013014677888550407, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6923776912647246, 0.0, 0.0, 0.0, 0.0, 0.03372992996786747, 0.0, 0.0, 0.0, 0.16613962476105457, 0.0, 0.21040813690603985, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12848588404681333, 0.44877210624067243, 0.0, 0.0, 0.00922143015221846, 0.0, 0.334367843457963, 0.0, 0.3344728737871945, 0.0, 0.007609184274463018, 0.0, 0.0783652603407444, 0.0, 0.008880000989208168, 0.6489339658812214, 0.0, 0.0, 0.4325454998052285, 0.24409841671258664, 0.0, 0.5857475361200408, 0.0, 0.006543890265716072, 0.0, 0.0, 0.0, 0.008425346810589148, 0.0, 0.0, 0.16622566484891482, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27228959440031625, 0.16863240701914226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16867493346874554, 0.42330165278515836, 0.0, 0.0, 0.6457463733709866, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12409061480277174, 0.0, 0.14869580809977814, 0.0, 0.0, 0.0, 0.0, 0.14872661472502066, 0.5062551989716859, 0.06509123699478471, 0.0, 0.026886171078575067, 0.0, 0.3503937118835625, 0.0, 0.13397275360612415, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07224002362266076, 0.0, 0.0, 0.014356019852976252, 0.2658719803791635, 0.13166323290951196, 0.0, 0.0, 0.0, 0.0, 0.020308821426184575, 0.025635708510132263, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.007980130035150811, 0.4090538905999397, 0.0, 0.0, 0.008918289569362796, 0.31893009912431536, 0.0, 0.0, 0.0, 0.009525001505142072, 0.0, 0.0, 0.013278407346240287, 0.021967736559129595, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12136922915980554, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.279484838006678, 0.2506790805406071, 0.0, 0.0, 0.10182245842840729, 0.0, 0.0, 0.5745756063332743, 0.0, 0.5180568530499269, 0.0, 0.19018853437509187, 0.2984452378932974, 0.0, 0.0, 0.0, 0.2447378349547936, 0.0, 0.48522550177156104, 0.5906428332019245, 0.0, 0.0, 0.756905839792281, 0.0, 0.4128008966782496, 0.7173389246941403, 0.0, 0.4558370427008323, 0.6596592042653375, 0.33014948101925834, 0.0, 0.0, 0.0, 0.0, 0.17629318543732997, 0.5676926328184286, 0.6751757284159318, 0.18305092512120225, 0.0, 0.5526511646802545, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6816784313112039, 0.0, 0.0, 0.0, 0.0, 0.4384965381282249, 0.0, 0.5249476708016299, 0.5514304573066787, 0.0, 0.0, 0.0278361825874964, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.38619300372291254, 0.0, 0.5997636810868653, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20257599957103595, 0.0, 0.10844521538627999, 0.0, 1.2226089817686585, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04229463432907405, 0.0, 0.0, 0.0, 0.0, 0.19946965003853376, 0.048044013732540566, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.036066754029278635, 0.0, 0.16231330637401103, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6062852141104628, 0.40481276616279827, 0.0, 0.0, 0.2539845497787725, 0.0, 0.0, 0.5691049256163461, 0.572636917198234, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.026986118300396385, 0.0, 0.0, 0.2578776387682179, 0.2201878278780288, 0.3521973225117564, 0.49204059164875263, 0.20695213801377368, 0.3889153033164169, 0.12024801465448598, 0.5015222202004627, 0.0, 0.0, 0.0, 0.25511838171251733, 0.3395573400007252, 0.0, 0.14076018335068016, 0.006079069440287111, 0.3120090695218348, 0.02735798901473654, 0.23564550369089346, 0.0, 0.5201790908279286, 0.42693711336544043, 0.0, 0.0, 0.32942094250755716, 0.0, 0.0, 0.0, 0.0, 0.42208957099917227, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27253622974111436, 0.20091824181940837, 0.0, 0.0, 0.014451665708310772, 0.0648234167882922, 0.0, 0.0, 0.0, 0.0, 0.43998592755822313, 0.200499194569837, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10517105271620596, 0.4525079677294799, 0.0, 0.0, 0.0, 0.3992933674102322, 0.0, 0.6336315500314595, 0.5683248347075297, 0.0, 0.03911423543998137, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5618719435725092, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13717215169360888, 0.6023639264726295, 0.0, 0.16451246906039718, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2428824655720991, 0.0, 0.0, 0.0, 0.1307489669067023, 0.016490708613327746, 0.0, 0.5332965109179645, 0.0, 0.72835164827528, 0.5456771996801212, 0.20306669911566266, 0.8042852233793947, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08986996958215537, 0.0, 0.09372773893140769, 0.2910950907401526, 0.0, 0.0, 0.11400417325056827, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15073719147466486, 0.0, 0.0062702773417321524, 0.0, 0.11018067217476075, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03517847753788876, 0.0, 0.0, 0.0, 0.0, 0.0, 0.012565073058016527, 0.0, 0.013511533493035587, 0.0, 0.0, 0.0, 0.1160032767395455, 0.3288776375406247, 0.009384967607632352, 0.013704851364696426, 0.0, 0.0, 0.0, 0.10679904950368906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5396299966121684, 0.0, 0.0, 0.0, 0.4120885163537877, 0.0, 0.0, 0.0, 0.0, 0.1374333138690627, 0.0, 0.0, 0.0, 0.0, 0.0, 0.308835769631579, 0.0, 0.0, 0.2935183046180839, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21641442424094412, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16667427577804808, 0.0, 0.0, 0.0, 0.0, 0.1072149118509185, 0.0, 0.0, 0.13482790109225204, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32702264908263307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17999984836884408, 0.0, 0.0, 0.0, 0.0, 0.17960575635997003, 0.0, 0.0, 0.0, 0.0, 0.08691531027429766, 0.0, 0.2893303365574358, 0.0, 0.21730094701941294, 0.07940443022930238, 0.0, 0.0, 0.01060094130869171, 0.0, 0.0, 0.21897146914670435, 0.3193413479843402, 0.11502306512986679, 0.16078084781731777, 0.0, 0.0, 0.029138065953053547, 0.12899773650646262, 0.0, 0.0, 0.0, 0.0, 0.35209003333845906, 0.0, 0.0, 0.42881832168904727, 0.0, 0.07551665376676242, 0.0, 0.10828996414360535, 0.0, 0.0, 0.0, 0.06175478190339224, 0.07317612880730584, 0.0, 0.4573326969055594, 0.13616590004764864, 0.1733951270114995, 0.0, 0.0, 0.0, 0.0, 0.004682414366264115, 0.0, 0.0, 0.014457116882680743, 0.477538324169661, 0.6690522150262886, 0.0, 0.0, 0.35074798851029604, 0.0, 0.6171788496488323, 0.0, 0.0, 0.0, 0.4598571719367441, 0.020424541646230095, 0.5014147387061915, 0.0, 0.0, 0.18767693158032267, 0.0, 0.08703683411330847, 0.0, 0.3388800152965881, 0.004390191394809013, 0.2131890539109787, 0.0, 0.43631258167790793, 0.0, 0.0, 0.0, 0.0, 0.011243656021000366, 0.0, 0.0, 0.004302223899340062, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3252052607129126, 0.10943362605720088, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4600533876598886, 0.0, 0.0, 0.0, 0.6238654988124779, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17327928789102656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3007942289792172, 0.49763260068933673, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1811653464990684, 0.0, 0.7596663692737102, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24115083978451807, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4132016125575898, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.30212649550849624, 0.45064666528381636, 0.0, 0.0, 1.0295831107021076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4924133218118872, 0.0, 0.0, 0.6123145833841932, 1.0074416855456372, 0.8974627446983252, 0.0, 0.0, 0.39387754214687604, 0.6443411524082342, 0.0, 0.6700619016074552, 0.0, 0.0, 0.4377096051189058, 0.3977735630344448, 0.0, 0.0, 0.0, 0.054395363429349475, 0.46912699721752377, 0.09054692381782561, 0.0, 0.6320539215802606, 0.33393006705956935, 0.614294006786966, 0.0, 0.0, 0.3986581318369477, 0.630705395059908, 0.0, 0.4266820903955834, 0.6230830913144384, 0.0, 1.0831760350408295, 0.21088758697054613, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7135848094649876, 0.06891111903866448, 0.0, 0.0, 0.0, 0.32920907856114856, 0.5438621275845595, 0.0, 0.4139962279186794, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13809169802867077, 0.0, 0.14849341459532064, 0.0, 0.0, 0.0, 0.5533499952652239, 0.0, 0.10314194807289108, 0.15061800177708015, 0.0, 0.5514890096422472, 0.23190068111070972, 0.0, 0.701822721136001, 0.6294877235260824, 0.0, 0.0, 0.0, 1.1059687974440209, 0.0, 0.0, 0.0, 0.96169924491107, 0.0, 0.0, 0.0, 0.0, 0.06628312350990566, 0.0, 0.37743722057381907, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08765206247905213, 0.0, 0.5218343219200703, 0.0, 0.0, 0.0, 0.41461579287108996, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6671900885778136, 0.0, 0.0, 0.0, 0.028262864260027967, 0.7909490968152504, 0.04511006432931489, 0.0, 0.0, 0.0, 0.4564818142302977, 0.35113439772465294, 0.0, 0.0, 0.0, 0.03776705986522304, 0.6129906961879193, 0.0, 0.0, 0.0, 0.0, 0.0, 0.42034814190539166, 0.0, 0.0, 0.21638060933821013, 0.0, 0.0, 0.0, 0.2526638526129318, 0.03715346614099295, 0.6358424325058142, 0.0, 0.0, 0.04152129953915335, 0.04614236094065058, 0.0, 0.0, 0.07015688762319212, 0.05740172594394938, 0.18351207696535793, 0.0, 0.0, 0.008864400691370657, 0.0, 0.8651249823989057, 0.407678395491645, 0.845679782901505, 0.0, 0.0, 0.0, 0.0, 0.4753420456230014, 1.6107190368773618, 0.0, 0.0, 0.0638102435424578, 0.24041718723542044, 0.5177820553003522, 0.44619181405158337, 0.4489609795607919, 0.0, 0.07301898938869086, 0.0902695074635508, 0.4268753686592877, 0.0, 0.0, 0.0, 0.16408594940133228, 0.0, 0.0, 0.6736439849461895, 0.031382854877976686, 0.034000045192845295, 0.0, 0.0, 0.8630676095443404, 0.3932053636261741, 0.0, 0.0, 0.0, 0.23747714078691665, 0.2179752640521007, 0.0, 0.059020425946533776, 0.23507519209688904, 0.0, 0.6184935143504988, 0.18475168643298573, 0.3255150538360457, 0.0, 0.0, 0.10559996237493433, 0.258855010743052, 0.0, 0.0, 0.0, 0.0, 0.5931453366617909, 0.0, 0.012879882724963071, 0.34456425817306313, 0.0, 0.10363371305008902, 0.0, 0.0, 0.13032437159832005, 0.0, 0.0, 0.9136517678658531, 0.11645026631438779, 0.0, 0.0, 1.006195673838974, 0.0, 0.49183662858528426, 0.5242175629103283, 0.0, 0.0, 0.5842253265103485, 0.09175087532086124, 0.0, 0.0, 0.6346229344595797, 0.8483440750859271, 0.0, 0.0, 0.43168828228976236, 1.1746392457903614, 0.9786548179849323, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22466432888463708, 0.0, 0.0, 0.23383689086971213, 0.07868759200794351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5047067971651431, 0.0, 0.04466167239654772, 0.0, 0.18031282035336027, 0.06880056169195574, 0.0, 0.039760598424459205, 0.2052193360923158, 0.0, 0.1245954319549744, 0.0, 0.0, 0.3371869924989234, 0.10076818165067654, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21628428501390357, 0.41878760793751535, 0.0, 0.2743772579349106, 0.0, 0.0, 0.0, 0.23737336558608516, 0.0, 0.5609891075534331, 0.0, 0.0, 0.0, 0.0, 0.11206304892649907, 0.03770992438488979, 0.0, 0.0, 0.17383517173220803, 0.252655932334268, 0.0, 0.1585306005724301, 0.0, 0.1865298137691172, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05971061253533409, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15913149160221682, 0.0, 0.4030910369398146, 0.0, 0.32022434202130456, 0.23687245172165972, 0.0, 0.3599325265793679, 0.0, 0.4765964362382492, 0.0, 0.0, 0.0, 0.0, 0.6107120779202261, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.573260313114729, 0.5768180939544553, 0.0, 0.17499066339826644, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7201822598869417, 0.0, 0.0, 0.0, 0.0, 0.08725982492406978, 0.5051841445138487, 0.0, 0.0, 0.0, 0.2569811590076317, 0.3964028116744446, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31198143094865527, 0.0, 0.0, 0.0, 0.0, 0.0, 0.42812611727229755, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.40187139064927635, 0.40436549376609193, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5533450612442088, 0.3541481069684905, 0.0, 0.0, 0.0, 0.1801509251180122, 0.0, 0.0, 0.0, 0.08899148634361333, 0.0, 0.4004935508153472, 0.1664002225353232, 0.6660561411338942, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5274372110974553, 0.0, 0.0, 0.11745018036413006, 0.03952272816910389, 0.654574176319042, 0.0, 0.0, 0.0, 0.0, 0.29642163335908794, 0.1274499525156547, 0.03345490004078419, 0.0, 0.0, 0.07653915037041417, 0.0, 0.02978363268713748, 0.15372448023095572, 0.03967384765850083, 0.06258104057589436, 0.0, 0.0, 0.044337981986606795, 0.07548283043416787, 0.0, 0.0, 0.0, 0.04735429836324166, 0.0, 0.0, 0.10863396357319674, 0.1797235339241024, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2053113311622715, 0.0, 0.0, 0.6339058613302375, 0.26881844559242324, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.047384735026192754, 0.0, 0.09394657688969027, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.41199723535819494, 0.0, 0.0, 0.19249813639294353, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4930042077083581, 0.01569004651529754, 0.0, 0.1886409972802957, 0.0, 0.6504613027483894, 0.0, 0.0, 0.0, 0.4491308783325726, 0.0, 0.710600063326777, 0.0, 0.0, 0.0, 0.0, 0.6392481732081897, 0.0, 0.0, 0.21075790790635565, 0.143953089400151, 0.04517962123405222, 0.12446587761719602, 0.011602660433066613, 0.0, 0.021141064793252704, 0.017873704948355638, 0.0, 0.010329409925325224, 0.21730544865000528, 0.03874493610862431, 0.0, 0.0, 0.0, 0.04329986579681618, 0.02617857620219232, 0.0, 0.0, 0.14198488087669728, 0.04624555904799935, 0.33624630483183143, 0.0, 0.18065873234459212, 0.001167765010724762, 0.0, 0.41156050949339695, 0.06138103351330629, 0.0, 0.0, 0.0, 0.0, 0.0, 0.45223330011890606, 0.0, 0.42719481956226096, 0.0, 0.09390028378745956, 0.03159803909732349, 0.0, 0.0, 0.0, 0.14464053921535813, 0.0, 0.355579453624945, 0.27582314245244144, 0.0, 0.0, 0.4779189904559178, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6540512683692249, 0.16386729047093346, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08595593354654336, 0.0868518036911852, 0.1436872279500763, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08976911428083846, 0.0, 0.0, 0.0, 0.06561633035108058, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0209499775034313, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06082234101182034, 0.19585779687130894, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.01528743323594608, 0.0, 0.0, 0.0, 0.011174280569280867, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3922416239543676, 0.0, 0.5308327922857218, 0.38811106643298066, 0.0, 0.5861742359361938, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010357877371534024, 0.03335404406511716, 0.2121541431315042, 0.0, 0.0, 0.0, 0.0, 0.0, 0.022181366862053645, 0.0, 0.0, 0.3232792127186002, 0.21780290259329063, 0.0, 0.0, 0.6724740217065875, 0.33454771410797746, 0.0, 0.0, 0.0, 0.0, 0.1517011050211833, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20421012621580428, 0.0, 0.0, 0.0, 0.09554663093280256, 0.0, 0.9066194809744413, 0.0, 0.6530356828494477, 0.0, 0.0, 0.4162310356447254, 0.2004622291406719, 0.0, 0.06531630990369706, 0.0, 0.0, 0.22516333873266767, 0.08751639468488193, 0.31273858097846424, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10565952264223451, 0.25213753900728575, 0.0, 0.13605306731422323, 0.0, 0.0, 0.20467409186458246, 0.0, 0.0, 0.0, 0.14062561725182204, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06654804138060808, 0.04780210989364991, 0.3312858803709398, 0.0, 0.09056986573031543, 0.0, 0.0, 0.22425218794100035, 0.6978010919630194, 0.5644822411311934, 0.0, 0.0, 0.0, 0.0, 0.25245963204466193, 0.5714387205668741, 0.0, 0.7794778768245345, 0.5229243836029062, 0.6068223768633771, 0.0, 0.0, 0.3439063861094934, 0.0, 0.5825998753106167, 0.07738278703840655, 0.0, 0.0, 0.45088731313609587, 0.020026145653267647, 0.49371220470576765, 0.0, 0.1967497337446331, 0.9333687888834381, 0.2687116640308751, 0.3109501951809905, 0.0, 0.628995837333548, 0.6431918870734405, 0.0, 0.0, 0.4278019777568812, 0.0, 0.0, 0.3426634565816645, 0.0, 0.7642079896603969, 0.15720215492969136, 0.0, 0.5627301734522071, 0.0, 0.0, 0.03992028432745955, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8902694418730629, 0.24785210085431258, 0.0, 0.0, 0.0, 0.19750384789873962, 0.0, 0.0, 0.24837057467209334, 0.0, 0.0, 0.06196917660673224, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9196979517908253, 0.47523150409994275, 0.0, 0.05084636736867684, 0.30281629383729847, 0.0, 0.0, 0.0, 0.0, 0.7797375130571516, 0.0, 0.0, 0.009193696508787878, 0.7164774465476489, 0.37223214885126943, 0.36077619715591613]), 42), 42)),) julia> @finch_code begin Ct .= 0 for i = _ @@ -498,7 +498,7 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.1619393094464903, 0.0, 0.0, 0.0, 0.0, 0.11373910752308043, 0.0, 0.32533429668145175, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5405512925681031, 0.0, 0.0, 0.5409817971066755, 0.6726532010052559, 0.0, 0.0, 0.0, 0.04498001780375231, 0.0, 0.7446527460595233, 0.0, 0.0, 0.0, 0.0648053115514859, 0.0, 0.20542126000594346, 0.0, 0.2489342378383824, 0.0, 0.0, 0.2446702787341799, 0.0, 0.0, 0.4075132486743765, 0.372693911014397, 0.0, 0.03990868671702989, 0.32865292999993995, 0.0, 0.0, 0.0, 0.037570880212435515, 0.0, 0.0, 0.2585440952996821, 0.0, 0.0, 0.5429032184680616, 0.0, 0.0, 0.0, 0.7310331654112876, 1.6974310666890076, 0.13434284643730737, 0.0, 0.15388431962676646, 0.0, 0.018799628425153446, 0.026448056346556916, 0.020943024178172204, 0.08671614507629592, 0.19272805440861934, 0.07015243227726202, 0.0, 0.1267665206913561, 0.1014023431949165, 0.494724963965631, 0.0, 0.6317423070706343, 0.0, 0.4351905463586081, 0.019451367524410516, 0.11392026534019284, 0.0, 0.7674183972620773, 0.0, 0.0, 0.009728790198518009, 0.0, 0.0, 0.03627546054320975, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0140288190005624, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4229718175600567, 0.0752980218883111, 0.013070459322559402, 0.0, 0.4793455258509991, 0.0, 0.0, 0.0, 0.0, 0.08811633730455204, 0.08467555208376226, 0.0, 0.0, 1.4824413586764027, 0.27442978968992093, 0.0, 0.0028104905637611507, 0.1480443868451215, 0.6744061467564826, 0.043998508948338316, 0.8697701045107844, 0.8469834954000914, 0.0, 0.02425613445444166, 0.0, 0.0, 0.0, 0.9679232213808633, 0.6774894982888419, 0.35310753741950685, 0.0, 0.2841919624705342, 0.0, 0.0, 0.7349602036514661, 0.0, 0.2186035505612502, 0.04416466424315345, 0.0, 0.0, 0.25133653271826356, 0.11160837067772013, 0.0, 0.14048007630402903, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.035048636482553235, 0.038653696504083, 0.10014641420794519, 0.0, 0.0837599459565703, 0.10942537757376403, 0.0, 0.0, 0.0, 0.08204362658289192, 0.0, 0.0, 0.011591138384550418, 0.0, 0.038004261053570694, 0.0066189468466051875, 0.06306237088337384, 0.0, 0.0, 0.03121664575636558, 0.0, 0.0, 0.02910081181829685, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08506408857544866, 0.0, 0.0, 0.0, 0.7712870388819855, 0.2285263236705729, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6966121466049721, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6540220401149287, 0.0, 0.0, 0.2336670223432043, 0.0, 0.0, 0.005339227289024509, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4930665741229495, 0.0, 0.029559863815954657, 0.0, 0.0, 0.10760363562562023, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15061269543615943, 0.6107211710602042, 0.0, 0.0, 0.733057860494869, 0.057362855000467054, 0.17650444882735677, 0.0, 0.0, 0.014677698725170102, 0.0, 0.17821555119599314, 0.0025555492556658746, 0.14808219427948163, 0.0, 0.11979690859781277, 0.0, 0.0, 0.13110894332781436, 0.04449679654819995, 0.0, 0.1133902344080122, 0.0, 0.0, 0.0017495044850376442, 0.013900993801975209, 0.03729472110086185, 0.19173933242455474, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1709634942172136, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13051636625786148, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4357713541613571, 0.0, 0.0, 0.0, 0.0, 0.07073267416682687, 0.0, 0.0, 0.0, 0.0, 0.06443354393704691, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.28238918313491895, 0.0, 0.0, 0.0, 0.28219752132848275, 0.0, 0.0, 0.0, 0.3045252869011713, 0.0, 0.0, 0.019083741024338748, 0.0, 0.06257051306836219, 0.7837995208867943, 0.05061887468267648, 0.0, 0.0, 0.05139533007879884, 0.0, 0.0, 0.04791180451081585, 0.0, 0.5281077501137272, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7571506519409951, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.026654196669850944, 0.0, 0.0, 0.0, 0.0, 0.23843473688023176, 0.0, 0.0, 0.6051386294410329, 0.0, 0.0, 0.0, 0.0, 0.04194764240896927, 0.13628497764809444, 0.0, 0.0, 0.0, 0.0, 0.06043639304510901, 0.04344269031549197, 0.0, 0.7296328391677986, 0.6312346675367022, 0.0, 0.0, 0.22817557354519388, 0.0, 0.05073205279897938, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1594527848545218, 0.1381227206057285, 0.0, 0.0, 0.0, 0.0, 0.4217049712314433, 0.0, 0.0, 0.31027130374464373, 0.0, 0.0, 0.08118863628632204, 0.8304208532182848, 0.983137215831116, 0.0, 0.24897028906526258, 0.14034260442091134, 0.0, 0.691731307052974, 0.7500207108166317, 0.833859795824118, 0.0, 0.05053828036951065, 0.8139843305766208, 0.0, 0.0, 1.3856822465181273, 1.0343729450047436, 0.0, 0.0, 1.09811525132565, 0.0, 0.0, 0.005748580563865145, 0.0, 0.0, 0.8634025361175751, 0.0, 0.14616020357939458, 0.7514377111323272, 0.0, 0.0, 0.1732108049991939, 0.0, 0.0, 0.0, 0.1879649588465491, 0.0, 0.0, 0.0, 0.00817965091901661, 0.0, 0.0, 0.0, 0.5779500058438248, 0.0, 0.0, 0.0, 0.005249336837927155, 0.0, 0.0, 0.0, 0.3064350538312218, 0.0, 0.001890320177282059, 0.45976772975798436, 0.40475012946470096, 0.3442380471075082, 0.017185108496187197, 0.288035784498987, 0.0, 0.0, 0.2827566402954316, 0.0, 0.0, 0.2635916697723135, 0.0, 0.0, 0.0, 0.3588181656747819, 0.0, 0.0, 0.0, 0.17570163169455902, 0.0, 0.2076868163288207, 0.0, 0.0, 0.0, 0.5097341557191223, 0.14587016095283192, 0.0, 0.4172405362928458, 0.0, 0.13951021052730417, 0.0, 0.6033798708626249, 0.0, 0.0, 0.0, 0.0, 0.4512081190066747, 1.1915177253624374, 0.0, 0.53626862172996, 0.26267190873847124, 0.024946529615964698, 0.630282563668714, 0.0, 0.7072072219187049, 0.2557442098535857, 0.0, 0.0, 0.0, 0.027439980552710016, 0.0, 0.2634523244708942, 0.750190928083991, 0.31925762502388877, 0.0, 0.0, 0.0, 0.17667054707398389, 1.689395274403252, 0.0, 0.5386556936239477, 0.21507940395745773, 0.30698899212442304, 0.11255638742238075, 0.12042909174810443, 0.1983506487023661, 0.0, 0.2156156778918424, 0.0, 0.6179686549930762, 0.0, 0.0, 0.0, 0.011162873807723371, 0.003307472295366656, 0.5417377310206691, 0.1038404263557644, 0.0, 0.0, 0.0, 0.010082100558503525, 0.5759566406752274, 0.5373731999014957, 0.24497595431253502, 0.3628321361534925, 0.4271139218413104, 0.0888079037091352, 0.013607634508588288, 0.5254304747208627, 0.0, 0.0, 0.0033818738704913948, 0.0, 0.3894178985059293, 7.727488918331624e-5, 0.4719056234120719, 0.0, 0.0, 0.7548965169480935, 0.0, 0.0, 0.0, 0.0, 0.04295271297559638, 0.3048341885265102, 0.0, 0.16015654700904233, 0.0, 0.03255288417829475, 0.0, 0.0, 0.0, 0.0, 0.16019347860889097, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3426629556463706, 0.0, 0.33591507158653605, 0.0, 0.0, 0.04025140372585128, 0.0, 0.5756230062735465, 0.0, 0.0, 0.0, 0.0, 0.0017523850398583757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32421546356710995, 0.0, 0.011282618188498251, 0.6937716630434633, 0.2529924781123921, 0.2596235239889639, 0.0, 0.043120476743740394, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2793513283874615, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7775441119273626, 0.14515455310675088, 0.0, 0.13510821830370037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44716225485327055, 0.0, 0.0, 0.0, 0.8291790553392753, 0.0, 0.0, 0.26334889102262177, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15479667093058366, 0.0, 0.0, 0.0, 0.36993623982653, 0.0, 0.0, 0.0, 0.0, 0.3623559014178924, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029233403628440607, 0.1427335193249464, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051251957334763225, 0.691166524717783, 0.29938181148714105, 0.5349464228115411, 0.06157899241792075, 0.0, 0.0, 0.2102727260204982, 0.0, 0.60145477594229, 0.0, 0.0, 0.03062034252430008, 0.1635016794080344, 0.7915679370358879, 0.0, 0.07317711878131836, 0.9809574403621903, 0.0, 0.0, 0.44926990137304107, 0.21608537407152922, 0.0, 0.05777727499408966, 0.039929965496851884, 0.0, 0.29915326656993935, 0.31099294960838475, 0.13414679708282617, 0.10949528327933863, 0.0, 0.10753728810972799, 0.0, 0.3797681313373244, 0.5019126906002389, 0.8077076191871431, 0.02575673641821252, 0.0, 0.0, 0.0, 0.0, 0.08748647908145589, 0.0, 0.0, 0.2775216739406583, 0.0, 0.0, 0.0, 0.0, 0.19491911889837882, 0.0, 0.626470449065492, 0.0, 0.1610321350235478, 0.0, 0.6250193931691284, 0.18518836301307043, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5645059221744597, 0.0, 0.30319370972913895, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5299926460898494, 0.0, 0.0, 0.18935417444624433, 0.0, 0.3520383786660897, 0.004326690884129795, 0.4266082560323472, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04753484047689839, 0.0, 0.0, 0.0, 0.2507515224933452, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.011126595947621928, 0.0, 0.0, 0.0, 0.0, 0.07883374294223121, 0.0, 0.0, 0.06158319631443835, 0.0, 0.0, 0.0, 0.0, 0.18599923723367912, 0.0, 0.0, 0.0, 0.0, 0.07225540391146344, 0.0, 0.17222213577613948, 0.0, 0.07109258970520838, 0.30622054435699597, 0.0, 0.0, 0.021600783197372013, 0.0, 0.0, 0.0, 0.0, 0.08747962563792125, 0.0, 0.0, 0.6661127453751955, 0.20906059268184987, 0.0, 0.14050781836020196, 0.0, 0.0, 0.38775347026983786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.016520556870922822, 0.08066242485362363, 0.0, 0.0, 0.008507877750707929, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19963971549104562, 0.0, 0.0, 0.0, 0.0, 0.1517009343251733, 0.5312750255062002, 0.0, 0.0, 0.1147421120346578, 0.0, 0.0, 0.0, 0.0, 0.35500190337758014, 0.0, 0.045597713545061126, 0.0, 0.5209586802357347, 0.021862434298379425, 0.0, 0.0, 0.0, 1.0378291015579089, 0.0, 0.0, 0.0, 0.08585205631703301, 0.0483968201096062, 0.0, 0.025471357792783925, 0.0, 0.22080976260076224, 1.166729214929465, 0.0, 0.677323308302816, 0.18535083381370177, 0.0, 0.0, 0.8704056171514745, 0.0, 0.8935663748182991, 0.015577429284835683, 0.13855228421849528, 0.0, 0.0, 0.1744139155099896, 0.15132491229634354, 0.0, 0.02513332482807071, 0.0, 0.17525145412541498, 0.0, 0.0, 0.0, 0.0, 0.02694350993020697, 0.162823516985682, 0.0, 0.0, 0.6457319525792288, 0.07238426196350153, 0.05745965468198706, 0.0, 0.0, 0.46532195926191927, 0.08460519940877058, 0.22064747420300995, 0.07874956387307873, 0.02873453791303352, 0.04102153493571428, 0.0, 0.0, 0.0, 0.0, 0.49780157894039, 0.0, 0.0, 0.301057479311315, 0.0, 0.0, 0.0016911663416444849, 0.0, 0.2606342751929628, 0.0, 0.0, 0.0, 0.4832976838898257, 0.2663912296088851, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16074512474220395, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0418820657562929, 0.0, 0.04820286684177523, 0.0, 0.1580443847885599, 0.0, 0.1278562139832909, 0.0, 0.0, 0.12981743196566292, 0.0, 0.0, 0.12101853247948517, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13204408757174144, 0.0, 0.0, 0.0, 0.0, 0.0, 0.024933507022188058, 0.0, 0.0, 0.0, 0.22607531711845172, 0.06698435016959209, 0.0, 0.0, 0.38137808720681626, 0.04452538198512276, 0.13682477248336336, 0.20418703285947667, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19170326048233127, 0.0, 0.0, 0.0684911628398921, 0.0, 0.0, 0.0015650042612973304, 0.0, 0.0, 0.0, 0.0, 0.3663518735291969, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27889642218469224, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09171777647431381, 0.0, 0.031206336760942092, 0.04657190125204274, 0.0, 0.21168995340334643, 0.0, 0.0, 0.2715554536912592, 0.0, 0.0, 0.0476752915188213, 0.0, 0.0, 0.0, 0.0, 0.36410628949886475, 0.021118814521733104, 0.0, 0.25524059151149175, 0.22081888489064375, 0.0, 0.0008303397905156581, 0.0, 0.0, 0.0, 0.0, 0.07229346662213895, 0.0, 0.0, 0.820696989198259, 0.541933064129384, 0.0, 0.6976372073851678, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6559268620540256, 0.0, 0.0, 0.00593765430305966, 0.0, 0.03489392321475427, 0.14772313877299487, 0.20501704987333305, 0.04206924698360076, 0.15444861072003166, 0.0, 0.8226903093195739, 0.0, 0.15641473972332146, 0.790869654262485, 0.6842130952365706, 0.03633117370294634, 0.0, 0.18980663716791113, 0.0, 0.0, 0.038558748063994376, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.40339029653363123, 0.0, 0.0, 0.0, 0.0, 0.43960663038458647, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08136147927839638, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16190486570077617, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2992216626110986, 0.0, 0.0, 0.0, 0.17882109545054858, 0.0, 0.0796930212837386, 0.0, 0.620119218817229, 0.06539128749913568, 0.09575080072237417, 0.0, 0.0, 0.0, 0.31047674992819635, 0.0, 0.0, 0.3258789812741783, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03198183278340688, 0.0, 0.0, 0.05159425685765124, 0.22600144774467618, 0.0, 0.17025710615993656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27035127710875223, 0.6595462305837041, 0.0, 0.0, 0.0, 0.5146584726996519, 0.0, 0.4337121439657544, 0.0, 0.0, 0.006091807521893999, 0.0, 0.0, 0.0, 0.0, 0.012888743397998564, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.336652909816104, 0.0, 0.0, 0.33692102610329455, 0.41892538326879675, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4637663755690806, 0.004049689433712162, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2537974154183676, 0.0, 0.0, 0.0, 0.01941920682276314, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2625647477298457, 0.0, 0.0, 0.0, 0.28333914754514417, 0.0, 0.009497623447163565, 0.0, 0.0, 0.015321911880061054, 0.7292697770823527, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4913667474115824, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8188140725936274, 0.23538609489199455, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004251660745273512, 0.2915534718195699, 0.8234990979680312, 0.15784851698528854, 0.31856705993041073, 0.0, 0.0, 0.0, 0.0, 0.8168645454274115, 0.2887084121601819, 0.0, 0.0, 0.0, 0.020685054965967595, 0.784321469374656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5719438351419199, 0.0, 0.0, 0.0, 0.0, 0.23810583942791758, 0.0, 0.0, 0.13190421809771516, 0.2355353163505223, 0.21414939137204708, 0.0, 0.13824109301205073, 0.0, 0.0, 0.4059138329547745, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3839879400284894, 0.7642606292584734, 0.17337082964447778, 0.43085204172578645, 0.5071846921436626, 0.0, 0.0, 0.0, 0.0, 0.0064224562854441995, 0.45947466920879537, 0.0, 0.048013668076727356, 0.008826989297459209, 0.0, 0.10254269883954115, 0.0, 0.449628221574638, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3130138916400048, 0.0, 0.0, 0.0, 0.0, 0.2198473045188841, 0.0, 0.7854658854954149, 0.0, 0.0, 0.0, 0.27482511606730614, 0.0, 0.0, 0.0, 0.10051459327881847, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03619595572786272, 0.2919384825550201, 0.0, 0.27020767480793234, 0.32906141180848986, 0.4014761358710767, 0.0, 0.0, 0.22194819820968317, 0.0, 0.397060529897469, 0.20690476484626705, 0.4811671410392035, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10602724763101144, 0.0, 0.9180290974697203, 0.32581440887276836, 0.11505868376784396, 0.5289668394733107, 0.0, 0.5268986674479775, 0.2483018891728648, 0.0, 0.0, 0.014289568621041568, 0.0, 0.0, 0.0, 0.0, 1.010481071564644, 0.06469540823739603, 0.19880648111582097, 0.580377081863938, 0.3701240890884847, 0.00033976241032705203, 0.5120222312956857, 0.54263963710411, 0.24775903677393285, 0.13070835967347635, 0.9915175816548458, 0.2899273698579516, 0.0, 0.0, 1.1703372022756595, 0.02329003991510475, 0.11859776061629382, 0.69977713771051, 0.6054053013517017, 0.707408250006164, 0.0, 0.2196427786747048, 0.5323095043727097, 0.027197936547729912, 0.0, 0.0, 0.6744130710240275, 0.0, 0.0, 0.009472629890788111, 0.0, 0.0, 0.0, 0.0, 0.11454144616825819, 0.0, 0.0, 0.0, 1.3982199856641506, 0.2538753491205552, 0.20096391172061562, 0.0, 0.0, 0.04239072289345119, 0.0, 0.773883065549572, 0.0, 0.0, 0.41373255777296347, 0.0, 0.0, 0.0, 0.0, 0.7328658795072667, 0.0, 0.0, 0.8143261048934798, 0.0, 0.0, 0.005931475071506779, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5479468542821576, 0.0, 0.32433512795769415, 0.7968405650512658, 0.0, 0.0, 0.2823749754870304, 0.0, 0.08888138290002096, 0.0, 0.0, 0.0, 0.17925820791427197, 0.2000876096746871, 0.0, 0.0, 0.40815111826084144, 0.16385977895936904, 0.06986036185280928, 0.0, 0.0, 0.0, 0.0, 0.05375441115395932, 0.0, 0.1762464226118615, 0.0, 0.3587964347388992, 0.0, 0.8015475518237312, 0.175514484083294, 0.0, 0.0, 0.13495628742382593, 0.0, 0.3105505922199702, 0.7248528773530782, 0.0, 0.18705292898123585, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1748071953278316, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7043431257504623, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13971141189132677, 0.0, 0.0, 0.0, 0.0, 0.0, 0.031464801155366616, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16845401890236414, 0.14573633601571054, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13998624971109908, 0.0, 0.07426203609200491, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2049851695927226, 0.0, 0.0, 0.17338949919280155, 0.0, 0.0, 0.18945472552918335, 0.0, 0.0, 0.0, 0.0, 0.0, 0.036320374032721404, 0.15648907735824633, 0.0, 0.05859334953381536, 0.0, 0.0, 0.0, 0.0, 0.5224897007715829, 0.0, 0.0, 0.0, 0.0, 0.08480845151311803, 0.0, 0.0, 0.0, 0.0, 0.07725579657733653, 0.0, 0.14447765770967222, 0.0, 0.0, 0.0, 0.15678431253622274, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.255601945951803, 0.0, 0.0, 0.2867970808516741, 0.3376079838842544, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29929546323980694, 0.0, 0.0, 0.0]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.70856859734722, 0.0, 0.0, 0.0, 0.0, 0.40683416426697433, 0.0, 0.0, 0.5116135014596547, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11665081191597346, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6815260724911955, 0.0, 0.012792585308225086, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.23414421666297028, 0.0, 0.049360715516608075, 0.0, 0.17114666211685992, 0.0, 0.0, 0.016462013473269064, 0.10889740119368015, 0.0, 0.0, 0.0, 0.00577445736315422, 0.03699291283586617, 0.0, 0.054643694670994745, 0.0, 0.0, 0.0, 0.08011353665096754, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1586425298490503, 0.5528778968703049, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22133004329744424, 0.198518145547811, 0.038821202773921835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18278114382714625, 0.1962641247777959, 0.33892974018746314, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.013014677888550407, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6923776912647246, 0.0, 0.0, 0.0, 0.0, 0.03372992996786747, 0.0, 0.0, 0.0, 0.16613962476105457, 0.0, 0.21040813690603985, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12848588404681333, 0.44877210624067243, 0.0, 0.0, 0.00922143015221846, 0.0, 0.334367843457963, 0.0, 0.3344728737871945, 0.0, 0.007609184274463018, 0.0, 0.0783652603407444, 0.0, 0.008880000989208168, 0.6489339658812214, 0.0, 0.0, 0.4325454998052285, 0.24409841671258664, 0.0, 0.5857475361200408, 0.0, 0.006543890265716072, 0.0, 0.0, 0.0, 0.008425346810589148, 0.0, 0.0, 0.16622566484891482, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27228959440031625, 0.16863240701914226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16867493346874554, 0.42330165278515836, 0.0, 0.0, 0.6457463733709866, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12409061480277174, 0.0, 0.14869580809977814, 0.0, 0.0, 0.0, 0.0, 0.14872661472502066, 0.5062551989716859, 0.06509123699478471, 0.0, 0.026886171078575067, 0.0, 0.3503937118835625, 0.0, 0.13397275360612415, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07224002362266076, 0.0, 0.0, 0.014356019852976252, 0.2658719803791635, 0.13166323290951196, 0.0, 0.0, 0.0, 0.0, 0.020308821426184575, 0.025635708510132263, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.007980130035150811, 0.4090538905999397, 0.0, 0.0, 0.008918289569362796, 0.31893009912431536, 0.0, 0.0, 0.0, 0.009525001505142072, 0.0, 0.0, 0.013278407346240287, 0.021967736559129595, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12136922915980554, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.279484838006678, 0.2506790805406071, 0.0, 0.0, 0.10182245842840729, 0.0, 0.0, 0.5745756063332743, 0.0, 0.5180568530499269, 0.0, 0.19018853437509187, 0.2984452378932974, 0.0, 0.0, 0.0, 0.2447378349547936, 0.0, 0.48522550177156104, 0.5906428332019245, 0.0, 0.0, 0.756905839792281, 0.0, 0.4128008966782496, 0.7173389246941403, 0.0, 0.4558370427008323, 0.6596592042653375, 0.33014948101925834, 0.0, 0.0, 0.0, 0.0, 0.17629318543732997, 0.5676926328184286, 0.6751757284159318, 0.18305092512120225, 0.0, 0.5526511646802545, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6816784313112039, 0.0, 0.0, 0.0, 0.0, 0.4384965381282249, 0.0, 0.5249476708016299, 0.5514304573066787, 0.0, 0.0, 0.0278361825874964, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.38619300372291254, 0.0, 0.5997636810868653, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20257599957103595, 0.0, 0.10844521538627999, 0.0, 1.2226089817686585, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04229463432907405, 0.0, 0.0, 0.0, 0.0, 0.19946965003853376, 0.048044013732540566, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.036066754029278635, 0.0, 0.16231330637401103, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6062852141104628, 0.40481276616279827, 0.0, 0.0, 0.2539845497787725, 0.0, 0.0, 0.5691049256163461, 0.572636917198234, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.026986118300396385, 0.0, 0.0, 0.2578776387682179, 0.2201878278780288, 0.3521973225117564, 0.49204059164875263, 0.20695213801377368, 0.3889153033164169, 0.12024801465448598, 0.5015222202004627, 0.0, 0.0, 0.0, 0.25511838171251733, 0.3395573400007252, 0.0, 0.14076018335068016, 0.006079069440287111, 0.3120090695218348, 0.02735798901473654, 0.23564550369089346, 0.0, 0.5201790908279286, 0.42693711336544043, 0.0, 0.0, 0.32942094250755716, 0.0, 0.0, 0.0, 0.0, 0.42208957099917227, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27253622974111436, 0.20091824181940837, 0.0, 0.0, 0.014451665708310772, 0.0648234167882922, 0.0, 0.0, 0.0, 0.0, 0.43998592755822313, 0.200499194569837, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10517105271620596, 0.4525079677294799, 0.0, 0.0, 0.0, 0.3992933674102322, 0.0, 0.6336315500314595, 0.5683248347075297, 0.0, 0.03911423543998137, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5618719435725092, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13717215169360888, 0.6023639264726295, 0.0, 0.16451246906039718, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2428824655720991, 0.0, 0.0, 0.0, 0.1307489669067023, 0.016490708613327746, 0.0, 0.5332965109179645, 0.0, 0.72835164827528, 0.5456771996801212, 0.20306669911566266, 0.8042852233793947, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08986996958215537, 0.0, 0.09372773893140769, 0.2910950907401526, 0.0, 0.0, 0.11400417325056827, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15073719147466486, 0.0, 0.0062702773417321524, 0.0, 0.11018067217476075, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03517847753788876, 0.0, 0.0, 0.0, 0.0, 0.0, 0.012565073058016527, 0.0, 0.013511533493035587, 0.0, 0.0, 0.0, 0.1160032767395455, 0.3288776375406247, 0.009384967607632352, 0.013704851364696426, 0.0, 0.0, 0.0, 0.10679904950368906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5396299966121684, 0.0, 0.0, 0.0, 0.4120885163537877, 0.0, 0.0, 0.0, 0.0, 0.1374333138690627, 0.0, 0.0, 0.0, 0.0, 0.0, 0.308835769631579, 0.0, 0.0, 0.2935183046180839, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21641442424094412, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16667427577804808, 0.0, 0.0, 0.0, 0.0, 0.1072149118509185, 0.0, 0.0, 0.13482790109225204, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32702264908263307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17999984836884408, 0.0, 0.0, 0.0, 0.0, 0.17960575635997003, 0.0, 0.0, 0.0, 0.0, 0.08691531027429766, 0.0, 0.2893303365574358, 0.0, 0.21730094701941294, 0.07940443022930238, 0.0, 0.0, 0.01060094130869171, 0.0, 0.0, 0.21897146914670435, 0.3193413479843402, 0.11502306512986679, 0.16078084781731777, 0.0, 0.0, 0.029138065953053547, 0.12899773650646262, 0.0, 0.0, 0.0, 0.0, 0.35209003333845906, 0.0, 0.0, 0.42881832168904727, 0.0, 0.07551665376676242, 0.0, 0.10828996414360535, 0.0, 0.0, 0.0, 0.06175478190339224, 0.07317612880730584, 0.0, 0.4573326969055594, 0.13616590004764864, 0.1733951270114995, 0.0, 0.0, 0.0, 0.0, 0.004682414366264115, 0.0, 0.0, 0.014457116882680743, 0.477538324169661, 0.6690522150262886, 0.0, 0.0, 0.35074798851029604, 0.0, 0.6171788496488323, 0.0, 0.0, 0.0, 0.4598571719367441, 0.020424541646230095, 0.5014147387061915, 0.0, 0.0, 0.18767693158032267, 0.0, 0.08703683411330847, 0.0, 0.3388800152965881, 0.004390191394809013, 0.2131890539109787, 0.0, 0.43631258167790793, 0.0, 0.0, 0.0, 0.0, 0.011243656021000366, 0.0, 0.0, 0.004302223899340062, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3252052607129126, 0.10943362605720088, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4600533876598886, 0.0, 0.0, 0.0, 0.6238654988124779, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17327928789102656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3007942289792172, 0.49763260068933673, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1811653464990684, 0.0, 0.7596663692737102, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24115083978451807, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4132016125575898, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.30212649550849624, 0.45064666528381636, 0.0, 0.0, 1.0295831107021076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4924133218118872, 0.0, 0.0, 0.6123145833841932, 1.0074416855456372, 0.8974627446983252, 0.0, 0.0, 0.39387754214687604, 0.6443411524082342, 0.0, 0.6700619016074552, 0.0, 0.0, 0.4377096051189058, 0.3977735630344448, 0.0, 0.0, 0.0, 0.054395363429349475, 0.46912699721752377, 0.09054692381782561, 0.0, 0.6320539215802606, 0.33393006705956935, 0.614294006786966, 0.0, 0.0, 0.3986581318369477, 0.630705395059908, 0.0, 0.4266820903955834, 0.6230830913144384, 0.0, 1.0831760350408295, 0.21088758697054613, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7135848094649876, 0.06891111903866448, 0.0, 0.0, 0.0, 0.32920907856114856, 0.5438621275845595, 0.0, 0.4139962279186794, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13809169802867077, 0.0, 0.14849341459532064, 0.0, 0.0, 0.0, 0.5533499952652239, 0.0, 0.10314194807289108, 0.15061800177708015, 0.0, 0.5514890096422472, 0.23190068111070972, 0.0, 0.701822721136001, 0.6294877235260824, 0.0, 0.0, 0.0, 1.1059687974440209, 0.0, 0.0, 0.0, 0.96169924491107, 0.0, 0.0, 0.0, 0.0, 0.06628312350990566, 0.0, 0.37743722057381907, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08765206247905213, 0.0, 0.5218343219200703, 0.0, 0.0, 0.0, 0.41461579287108996, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6671900885778136, 0.0, 0.0, 0.0, 0.028262864260027967, 0.7909490968152504, 0.04511006432931489, 0.0, 0.0, 0.0, 0.4564818142302977, 0.35113439772465294, 0.0, 0.0, 0.0, 0.03776705986522304, 0.6129906961879193, 0.0, 0.0, 0.0, 0.0, 0.0, 0.42034814190539166, 0.0, 0.0, 0.21638060933821013, 0.0, 0.0, 0.0, 0.2526638526129318, 0.03715346614099295, 0.6358424325058142, 0.0, 0.0, 0.04152129953915335, 0.04614236094065058, 0.0, 0.0, 0.07015688762319212, 0.05740172594394938, 0.18351207696535793, 0.0, 0.0, 0.008864400691370657, 0.0, 0.8651249823989057, 0.407678395491645, 0.845679782901505, 0.0, 0.0, 0.0, 0.0, 0.4753420456230014, 1.6107190368773618, 0.0, 0.0, 0.0638102435424578, 0.24041718723542044, 0.5177820553003522, 0.44619181405158337, 0.4489609795607919, 0.0, 0.07301898938869086, 0.0902695074635508, 0.4268753686592877, 0.0, 0.0, 0.0, 0.16408594940133228, 0.0, 0.0, 0.6736439849461895, 0.031382854877976686, 0.034000045192845295, 0.0, 0.0, 0.8630676095443404, 0.3932053636261741, 0.0, 0.0, 0.0, 0.23747714078691665, 0.2179752640521007, 0.0, 0.059020425946533776, 0.23507519209688904, 0.0, 0.6184935143504988, 0.18475168643298573, 0.3255150538360457, 0.0, 0.0, 0.10559996237493433, 0.258855010743052, 0.0, 0.0, 0.0, 0.0, 0.5931453366617909, 0.0, 0.012879882724963071, 0.34456425817306313, 0.0, 0.10363371305008902, 0.0, 0.0, 0.13032437159832005, 0.0, 0.0, 0.9136517678658531, 0.11645026631438779, 0.0, 0.0, 1.006195673838974, 0.0, 0.49183662858528426, 0.5242175629103283, 0.0, 0.0, 0.5842253265103485, 0.09175087532086124, 0.0, 0.0, 0.6346229344595797, 0.8483440750859271, 0.0, 0.0, 0.43168828228976236, 1.1746392457903614, 0.9786548179849323, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22466432888463708, 0.0, 0.0, 0.23383689086971213, 0.07868759200794351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5047067971651431, 0.0, 0.04466167239654772, 0.0, 0.18031282035336027, 0.06880056169195574, 0.0, 0.039760598424459205, 0.2052193360923158, 0.0, 0.1245954319549744, 0.0, 0.0, 0.3371869924989234, 0.10076818165067654, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21628428501390357, 0.41878760793751535, 0.0, 0.2743772579349106, 0.0, 0.0, 0.0, 0.23737336558608516, 0.0, 0.5609891075534331, 0.0, 0.0, 0.0, 0.0, 0.11206304892649907, 0.03770992438488979, 0.0, 0.0, 0.17383517173220803, 0.252655932334268, 0.0, 0.1585306005724301, 0.0, 0.1865298137691172, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05971061253533409, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15913149160221682, 0.0, 0.4030910369398146, 0.0, 0.32022434202130456, 0.23687245172165972, 0.0, 0.3599325265793679, 0.0, 0.4765964362382492, 0.0, 0.0, 0.0, 0.0, 0.6107120779202261, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.573260313114729, 0.5768180939544553, 0.0, 0.17499066339826644, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7201822598869417, 0.0, 0.0, 0.0, 0.0, 0.08725982492406978, 0.5051841445138487, 0.0, 0.0, 0.0, 0.2569811590076317, 0.3964028116744446, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31198143094865527, 0.0, 0.0, 0.0, 0.0, 0.0, 0.42812611727229755, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.40187139064927635, 0.40436549376609193, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5533450612442088, 0.3541481069684905, 0.0, 0.0, 0.0, 0.1801509251180122, 0.0, 0.0, 0.0, 0.08899148634361333, 0.0, 0.4004935508153472, 0.1664002225353232, 0.6660561411338942, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5274372110974553, 0.0, 0.0, 0.11745018036413006, 0.03952272816910389, 0.654574176319042, 0.0, 0.0, 0.0, 0.0, 0.29642163335908794, 0.1274499525156547, 0.03345490004078419, 0.0, 0.0, 0.07653915037041417, 0.0, 0.02978363268713748, 0.15372448023095572, 0.03967384765850083, 0.06258104057589436, 0.0, 0.0, 0.044337981986606795, 0.07548283043416787, 0.0, 0.0, 0.0, 0.04735429836324166, 0.0, 0.0, 0.10863396357319674, 0.1797235339241024, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2053113311622715, 0.0, 0.0, 0.6339058613302375, 0.26881844559242324, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.047384735026192754, 0.0, 0.09394657688969027, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.41199723535819494, 0.0, 0.0, 0.19249813639294353, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4930042077083581, 0.01569004651529754, 0.0, 0.1886409972802957, 0.0, 0.6504613027483894, 0.0, 0.0, 0.0, 0.4491308783325726, 0.0, 0.710600063326777, 0.0, 0.0, 0.0, 0.0, 0.6392481732081897, 0.0, 0.0, 0.21075790790635565, 0.143953089400151, 0.04517962123405222, 0.12446587761719602, 0.011602660433066613, 0.0, 0.021141064793252704, 0.017873704948355638, 0.0, 0.010329409925325224, 0.21730544865000528, 0.03874493610862431, 0.0, 0.0, 0.0, 0.04329986579681618, 0.02617857620219232, 0.0, 0.0, 0.14198488087669728, 0.04624555904799935, 0.33624630483183143, 0.0, 0.18065873234459212, 0.001167765010724762, 0.0, 0.41156050949339695, 0.06138103351330629, 0.0, 0.0, 0.0, 0.0, 0.0, 0.45223330011890606, 0.0, 0.42719481956226096, 0.0, 0.09390028378745956, 0.03159803909732349, 0.0, 0.0, 0.0, 0.14464053921535813, 0.0, 0.355579453624945, 0.27582314245244144, 0.0, 0.0, 0.4779189904559178, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6540512683692249, 0.16386729047093346, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08595593354654336, 0.0868518036911852, 0.1436872279500763, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08976911428083846, 0.0, 0.0, 0.0, 0.06561633035108058, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0209499775034313, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06082234101182034, 0.19585779687130894, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.01528743323594608, 0.0, 0.0, 0.0, 0.011174280569280867, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3922416239543676, 0.0, 0.5308327922857218, 0.38811106643298066, 0.0, 0.5861742359361938, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010357877371534024, 0.03335404406511716, 0.2121541431315042, 0.0, 0.0, 0.0, 0.0, 0.0, 0.022181366862053645, 0.0, 0.0, 0.3232792127186002, 0.21780290259329063, 0.0, 0.0, 0.6724740217065875, 0.33454771410797746, 0.0, 0.0, 0.0, 0.0, 0.1517011050211833, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20421012621580428, 0.0, 0.0, 0.0, 0.09554663093280256, 0.0, 0.9066194809744413, 0.0, 0.6530356828494477, 0.0, 0.0, 0.4162310356447254, 0.2004622291406719, 0.0, 0.06531630990369706, 0.0, 0.0, 0.22516333873266767, 0.08751639468488193, 0.31273858097846424, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10565952264223451, 0.25213753900728575, 0.0, 0.13605306731422323, 0.0, 0.0, 0.20467409186458246, 0.0, 0.0, 0.0, 0.14062561725182204, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06654804138060808, 0.04780210989364991, 0.3312858803709398, 0.0, 0.09056986573031543, 0.0, 0.0, 0.22425218794100035, 0.6978010919630194, 0.5644822411311934, 0.0, 0.0, 0.0, 0.0, 0.25245963204466193, 0.5714387205668741, 0.0, 0.7794778768245345, 0.5229243836029062, 0.6068223768633771, 0.0, 0.0, 0.3439063861094934, 0.0, 0.5825998753106167, 0.07738278703840655, 0.0, 0.0, 0.45088731313609587, 0.020026145653267647, 0.49371220470576765, 0.0, 0.1967497337446331, 0.9333687888834381, 0.2687116640308751, 0.3109501951809905, 0.0, 0.628995837333548, 0.6431918870734405, 0.0, 0.0, 0.4278019777568812, 0.0, 0.0, 0.3426634565816645, 0.0, 0.7642079896603969, 0.15720215492969136, 0.0, 0.5627301734522071, 0.0, 0.0, 0.03992028432745955, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8902694418730629, 0.24785210085431258, 0.0, 0.0, 0.0, 0.19750384789873962, 0.0, 0.0, 0.24837057467209334, 0.0, 0.0, 0.06196917660673224, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9196979517908253, 0.47523150409994275, 0.0, 0.05084636736867684, 0.30281629383729847, 0.0, 0.0, 0.0, 0.0, 0.7797375130571516, 0.0, 0.0, 0.009193696508787878, 0.7164774465476489, 0.37223214885126943, 0.36077619715591613]), 42), 42)),) julia> @finch_code begin Ct .= 0 for j = parallel(_) @@ -734,7 +734,7 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.1619393094464903, 0.0, 0.0, 0.0, 0.0, 0.11373910752308043, 0.0, 0.32533429668145175, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5405512925681031, 0.0, 0.0, 0.5409817971066755, 0.6726532010052559, 0.0, 0.0, 0.0, 0.04498001780375231, 0.0, 0.7446527460595233, 0.0, 0.0, 0.0, 0.0648053115514859, 0.0, 0.20542126000594346, 0.0, 0.2489342378383824, 0.0, 0.0, 0.2446702787341799, 0.0, 0.0, 0.4075132486743765, 0.372693911014397, 0.0, 0.03990868671702989, 0.32865292999993995, 0.0, 0.0, 0.0, 0.037570880212435515, 0.0, 0.0, 0.2585440952996821, 0.0, 0.0, 0.5429032184680616, 0.0, 0.0, 0.0, 0.7310331654112876, 1.6974310666890076, 0.13434284643730737, 0.0, 0.15388431962676646, 0.0, 0.018799628425153446, 0.026448056346556916, 0.020943024178172204, 0.08671614507629592, 0.19272805440861934, 0.07015243227726202, 0.0, 0.1267665206913561, 0.1014023431949165, 0.494724963965631, 0.0, 0.6317423070706343, 0.0, 0.4351905463586081, 0.019451367524410516, 0.11392026534019284, 0.0, 0.7674183972620773, 0.0, 0.0, 0.009728790198518009, 0.0, 0.0, 0.03627546054320975, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0140288190005624, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4229718175600567, 0.0752980218883111, 0.013070459322559402, 0.0, 0.4793455258509991, 0.0, 0.0, 0.0, 0.0, 0.08811633730455204, 0.08467555208376226, 0.0, 0.0, 1.4824413586764027, 0.27442978968992093, 0.0, 0.0028104905637611507, 0.1480443868451215, 0.6744061467564826, 0.043998508948338316, 0.8697701045107844, 0.8469834954000914, 0.0, 0.02425613445444166, 0.0, 0.0, 0.0, 0.9679232213808633, 0.6774894982888419, 0.35310753741950685, 0.0, 0.2841919624705342, 0.0, 0.0, 0.7349602036514661, 0.0, 0.2186035505612502, 0.04416466424315345, 0.0, 0.0, 0.25133653271826356, 0.11160837067772013, 0.0, 0.14048007630402903, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.035048636482553235, 0.038653696504083, 0.10014641420794519, 0.0, 0.0837599459565703, 0.10942537757376403, 0.0, 0.0, 0.0, 0.08204362658289192, 0.0, 0.0, 0.011591138384550418, 0.0, 0.038004261053570694, 0.0066189468466051875, 0.06306237088337384, 0.0, 0.0, 0.03121664575636558, 0.0, 0.0, 0.02910081181829685, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08506408857544866, 0.0, 0.0, 0.0, 0.7712870388819855, 0.2285263236705729, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6966121466049721, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6540220401149287, 0.0, 0.0, 0.2336670223432043, 0.0, 0.0, 0.005339227289024509, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4930665741229495, 0.0, 0.029559863815954657, 0.0, 0.0, 0.10760363562562023, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15061269543615943, 0.6107211710602042, 0.0, 0.0, 0.733057860494869, 0.057362855000467054, 0.17650444882735677, 0.0, 0.0, 0.014677698725170102, 0.0, 0.17821555119599314, 0.0025555492556658746, 0.14808219427948163, 0.0, 0.11979690859781277, 0.0, 0.0, 0.13110894332781436, 0.04449679654819995, 0.0, 0.1133902344080122, 0.0, 0.0, 0.0017495044850376442, 0.013900993801975209, 0.03729472110086185, 0.19173933242455474, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1709634942172136, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13051636625786148, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4357713541613571, 0.0, 0.0, 0.0, 0.0, 0.07073267416682687, 0.0, 0.0, 0.0, 0.0, 0.06443354393704691, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.28238918313491895, 0.0, 0.0, 0.0, 0.28219752132848275, 0.0, 0.0, 0.0, 0.3045252869011713, 0.0, 0.0, 0.019083741024338748, 0.0, 0.06257051306836219, 0.7837995208867943, 0.05061887468267648, 0.0, 0.0, 0.05139533007879884, 0.0, 0.0, 0.04791180451081585, 0.0, 0.5281077501137272, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7571506519409951, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.026654196669850944, 0.0, 0.0, 0.0, 0.0, 0.23843473688023176, 0.0, 0.0, 0.6051386294410329, 0.0, 0.0, 0.0, 0.0, 0.04194764240896927, 0.13628497764809444, 0.0, 0.0, 0.0, 0.0, 0.06043639304510901, 0.04344269031549197, 0.0, 0.7296328391677986, 0.6312346675367022, 0.0, 0.0, 0.22817557354519388, 0.0, 0.05073205279897938, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1594527848545218, 0.1381227206057285, 0.0, 0.0, 0.0, 0.0, 0.4217049712314433, 0.0, 0.0, 0.31027130374464373, 0.0, 0.0, 0.08118863628632204, 0.8304208532182848, 0.983137215831116, 0.0, 0.24897028906526258, 0.14034260442091134, 0.0, 0.691731307052974, 0.7500207108166317, 0.833859795824118, 0.0, 0.05053828036951065, 0.8139843305766208, 0.0, 0.0, 1.3856822465181273, 1.0343729450047436, 0.0, 0.0, 1.09811525132565, 0.0, 0.0, 0.005748580563865145, 0.0, 0.0, 0.8634025361175751, 0.0, 0.14616020357939458, 0.7514377111323272, 0.0, 0.0, 0.1732108049991939, 0.0, 0.0, 0.0, 0.1879649588465491, 0.0, 0.0, 0.0, 0.00817965091901661, 0.0, 0.0, 0.0, 0.5779500058438248, 0.0, 0.0, 0.0, 0.005249336837927155, 0.0, 0.0, 0.0, 0.3064350538312218, 0.0, 0.001890320177282059, 0.45976772975798436, 0.40475012946470096, 0.3442380471075082, 0.017185108496187197, 0.288035784498987, 0.0, 0.0, 0.2827566402954316, 0.0, 0.0, 0.2635916697723135, 0.0, 0.0, 0.0, 0.3588181656747819, 0.0, 0.0, 0.0, 0.17570163169455902, 0.0, 0.2076868163288207, 0.0, 0.0, 0.0, 0.5097341557191223, 0.14587016095283192, 0.0, 0.4172405362928458, 0.0, 0.13951021052730417, 0.0, 0.6033798708626249, 0.0, 0.0, 0.0, 0.0, 0.4512081190066747, 1.1915177253624374, 0.0, 0.53626862172996, 0.26267190873847124, 0.024946529615964698, 0.630282563668714, 0.0, 0.7072072219187049, 0.2557442098535857, 0.0, 0.0, 0.0, 0.027439980552710016, 0.0, 0.2634523244708942, 0.750190928083991, 0.31925762502388877, 0.0, 0.0, 0.0, 0.17667054707398389, 1.689395274403252, 0.0, 0.5386556936239477, 0.21507940395745773, 0.30698899212442304, 0.11255638742238075, 0.12042909174810443, 0.1983506487023661, 0.0, 0.2156156778918424, 0.0, 0.6179686549930762, 0.0, 0.0, 0.0, 0.011162873807723371, 0.003307472295366656, 0.5417377310206691, 0.1038404263557644, 0.0, 0.0, 0.0, 0.010082100558503525, 0.5759566406752274, 0.5373731999014957, 0.24497595431253502, 0.3628321361534925, 0.4271139218413104, 0.0888079037091352, 0.013607634508588288, 0.5254304747208627, 0.0, 0.0, 0.0033818738704913948, 0.0, 0.3894178985059293, 7.727488918331624e-5, 0.4719056234120719, 0.0, 0.0, 0.7548965169480935, 0.0, 0.0, 0.0, 0.0, 0.04295271297559638, 0.3048341885265102, 0.0, 0.16015654700904233, 0.0, 0.03255288417829475, 0.0, 0.0, 0.0, 0.0, 0.16019347860889097, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3426629556463706, 0.0, 0.33591507158653605, 0.0, 0.0, 0.04025140372585128, 0.0, 0.5756230062735465, 0.0, 0.0, 0.0, 0.0, 0.0017523850398583757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32421546356710995, 0.0, 0.011282618188498251, 0.6937716630434633, 0.2529924781123921, 0.2596235239889639, 0.0, 0.043120476743740394, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2793513283874615, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7775441119273626, 0.14515455310675088, 0.0, 0.13510821830370037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44716225485327055, 0.0, 0.0, 0.0, 0.8291790553392753, 0.0, 0.0, 0.26334889102262177, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15479667093058366, 0.0, 0.0, 0.0, 0.36993623982653, 0.0, 0.0, 0.0, 0.0, 0.3623559014178924, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029233403628440607, 0.1427335193249464, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051251957334763225, 0.691166524717783, 0.29938181148714105, 0.5349464228115411, 0.06157899241792075, 0.0, 0.0, 0.2102727260204982, 0.0, 0.60145477594229, 0.0, 0.0, 0.03062034252430008, 0.1635016794080344, 0.7915679370358879, 0.0, 0.07317711878131836, 0.9809574403621903, 0.0, 0.0, 0.44926990137304107, 0.21608537407152922, 0.0, 0.05777727499408966, 0.039929965496851884, 0.0, 0.29915326656993935, 0.31099294960838475, 0.13414679708282617, 0.10949528327933863, 0.0, 0.10753728810972799, 0.0, 0.3797681313373244, 0.5019126906002389, 0.8077076191871431, 0.02575673641821252, 0.0, 0.0, 0.0, 0.0, 0.08748647908145589, 0.0, 0.0, 0.2775216739406583, 0.0, 0.0, 0.0, 0.0, 0.19491911889837882, 0.0, 0.626470449065492, 0.0, 0.1610321350235478, 0.0, 0.6250193931691284, 0.18518836301307043, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5645059221744597, 0.0, 0.30319370972913895, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5299926460898494, 0.0, 0.0, 0.18935417444624433, 0.0, 0.3520383786660897, 0.004326690884129795, 0.4266082560323472, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04753484047689839, 0.0, 0.0, 0.0, 0.2507515224933452, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.011126595947621928, 0.0, 0.0, 0.0, 0.0, 0.07883374294223121, 0.0, 0.0, 0.06158319631443835, 0.0, 0.0, 0.0, 0.0, 0.18599923723367912, 0.0, 0.0, 0.0, 0.0, 0.07225540391146344, 0.0, 0.17222213577613948, 0.0, 0.07109258970520838, 0.30622054435699597, 0.0, 0.0, 0.021600783197372013, 0.0, 0.0, 0.0, 0.0, 0.08747962563792125, 0.0, 0.0, 0.6661127453751955, 0.20906059268184987, 0.0, 0.14050781836020196, 0.0, 0.0, 0.38775347026983786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.016520556870922822, 0.08066242485362363, 0.0, 0.0, 0.008507877750707929, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19963971549104562, 0.0, 0.0, 0.0, 0.0, 0.1517009343251733, 0.5312750255062002, 0.0, 0.0, 0.1147421120346578, 0.0, 0.0, 0.0, 0.0, 0.35500190337758014, 0.0, 0.045597713545061126, 0.0, 0.5209586802357347, 0.021862434298379425, 0.0, 0.0, 0.0, 1.0378291015579089, 0.0, 0.0, 0.0, 0.08585205631703301, 0.0483968201096062, 0.0, 0.025471357792783925, 0.0, 0.22080976260076224, 1.166729214929465, 0.0, 0.677323308302816, 0.18535083381370177, 0.0, 0.0, 0.8704056171514745, 0.0, 0.8935663748182991, 0.015577429284835683, 0.13855228421849528, 0.0, 0.0, 0.1744139155099896, 0.15132491229634354, 0.0, 0.02513332482807071, 0.0, 0.17525145412541498, 0.0, 0.0, 0.0, 0.0, 0.02694350993020697, 0.162823516985682, 0.0, 0.0, 0.6457319525792288, 0.07238426196350153, 0.05745965468198706, 0.0, 0.0, 0.46532195926191927, 0.08460519940877058, 0.22064747420300995, 0.07874956387307873, 0.02873453791303352, 0.04102153493571428, 0.0, 0.0, 0.0, 0.0, 0.49780157894039, 0.0, 0.0, 0.301057479311315, 0.0, 0.0, 0.0016911663416444849, 0.0, 0.2606342751929628, 0.0, 0.0, 0.0, 0.4832976838898257, 0.2663912296088851, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16074512474220395, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0418820657562929, 0.0, 0.04820286684177523, 0.0, 0.1580443847885599, 0.0, 0.1278562139832909, 0.0, 0.0, 0.12981743196566292, 0.0, 0.0, 0.12101853247948517, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13204408757174144, 0.0, 0.0, 0.0, 0.0, 0.0, 0.024933507022188058, 0.0, 0.0, 0.0, 0.22607531711845172, 0.06698435016959209, 0.0, 0.0, 0.38137808720681626, 0.04452538198512276, 0.13682477248336336, 0.20418703285947667, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19170326048233127, 0.0, 0.0, 0.0684911628398921, 0.0, 0.0, 0.0015650042612973304, 0.0, 0.0, 0.0, 0.0, 0.3663518735291969, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27889642218469224, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09171777647431381, 0.0, 0.031206336760942092, 0.04657190125204274, 0.0, 0.21168995340334643, 0.0, 0.0, 0.2715554536912592, 0.0, 0.0, 0.0476752915188213, 0.0, 0.0, 0.0, 0.0, 0.36410628949886475, 0.021118814521733104, 0.0, 0.25524059151149175, 0.22081888489064375, 0.0, 0.0008303397905156581, 0.0, 0.0, 0.0, 0.0, 0.07229346662213895, 0.0, 0.0, 0.820696989198259, 0.541933064129384, 0.0, 0.6976372073851678, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6559268620540256, 0.0, 0.0, 0.00593765430305966, 0.0, 0.03489392321475427, 0.14772313877299487, 0.20501704987333305, 0.04206924698360076, 0.15444861072003166, 0.0, 0.8226903093195739, 0.0, 0.15641473972332146, 0.790869654262485, 0.6842130952365706, 0.03633117370294634, 0.0, 0.18980663716791113, 0.0, 0.0, 0.038558748063994376, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.40339029653363123, 0.0, 0.0, 0.0, 0.0, 0.43960663038458647, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08136147927839638, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16190486570077617, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2992216626110986, 0.0, 0.0, 0.0, 0.17882109545054858, 0.0, 0.0796930212837386, 0.0, 0.620119218817229, 0.06539128749913568, 0.09575080072237417, 0.0, 0.0, 0.0, 0.31047674992819635, 0.0, 0.0, 0.3258789812741783, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03198183278340688, 0.0, 0.0, 0.05159425685765124, 0.22600144774467618, 0.0, 0.17025710615993656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27035127710875223, 0.6595462305837041, 0.0, 0.0, 0.0, 0.5146584726996519, 0.0, 0.4337121439657544, 0.0, 0.0, 0.006091807521893999, 0.0, 0.0, 0.0, 0.0, 0.012888743397998564, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.336652909816104, 0.0, 0.0, 0.33692102610329455, 0.41892538326879675, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4637663755690806, 0.004049689433712162, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2537974154183676, 0.0, 0.0, 0.0, 0.01941920682276314, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2625647477298457, 0.0, 0.0, 0.0, 0.28333914754514417, 0.0, 0.009497623447163565, 0.0, 0.0, 0.015321911880061054, 0.7292697770823527, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4913667474115824, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8188140725936274, 0.23538609489199455, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004251660745273512, 0.2915534718195699, 0.8234990979680312, 0.15784851698528854, 0.31856705993041073, 0.0, 0.0, 0.0, 0.0, 0.8168645454274115, 0.2887084121601819, 0.0, 0.0, 0.0, 0.020685054965967595, 0.784321469374656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5719438351419199, 0.0, 0.0, 0.0, 0.0, 0.23810583942791758, 0.0, 0.0, 0.13190421809771516, 0.2355353163505223, 0.21414939137204708, 0.0, 0.13824109301205073, 0.0, 0.0, 0.4059138329547745, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3839879400284894, 0.7642606292584734, 0.17337082964447778, 0.43085204172578645, 0.5071846921436626, 0.0, 0.0, 0.0, 0.0, 0.0064224562854441995, 0.45947466920879537, 0.0, 0.048013668076727356, 0.008826989297459209, 0.0, 0.10254269883954115, 0.0, 0.449628221574638, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3130138916400048, 0.0, 0.0, 0.0, 0.0, 0.2198473045188841, 0.0, 0.7854658854954149, 0.0, 0.0, 0.0, 0.27482511606730614, 0.0, 0.0, 0.0, 0.10051459327881847, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03619595572786272, 0.2919384825550201, 0.0, 0.27020767480793234, 0.32906141180848986, 0.4014761358710767, 0.0, 0.0, 0.22194819820968317, 0.0, 0.397060529897469, 0.20690476484626705, 0.4811671410392035, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10602724763101144, 0.0, 0.9180290974697203, 0.32581440887276836, 0.11505868376784396, 0.5289668394733107, 0.0, 0.5268986674479775, 0.2483018891728648, 0.0, 0.0, 0.014289568621041568, 0.0, 0.0, 0.0, 0.0, 1.010481071564644, 0.06469540823739603, 0.19880648111582097, 0.580377081863938, 0.3701240890884847, 0.00033976241032705203, 0.5120222312956857, 0.54263963710411, 0.24775903677393285, 0.13070835967347635, 0.9915175816548458, 0.2899273698579516, 0.0, 0.0, 1.1703372022756595, 0.02329003991510475, 0.11859776061629382, 0.69977713771051, 0.6054053013517017, 0.707408250006164, 0.0, 0.2196427786747048, 0.5323095043727097, 0.027197936547729912, 0.0, 0.0, 0.6744130710240275, 0.0, 0.0, 0.009472629890788111, 0.0, 0.0, 0.0, 0.0, 0.11454144616825819, 0.0, 0.0, 0.0, 1.3982199856641506, 0.2538753491205552, 0.20096391172061562, 0.0, 0.0, 0.04239072289345119, 0.0, 0.773883065549572, 0.0, 0.0, 0.41373255777296347, 0.0, 0.0, 0.0, 0.0, 0.7328658795072667, 0.0, 0.0, 0.8143261048934798, 0.0, 0.0, 0.005931475071506779, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5479468542821576, 0.0, 0.32433512795769415, 0.7968405650512658, 0.0, 0.0, 0.2823749754870304, 0.0, 0.08888138290002096, 0.0, 0.0, 0.0, 0.17925820791427197, 0.2000876096746871, 0.0, 0.0, 0.40815111826084144, 0.16385977895936904, 0.06986036185280928, 0.0, 0.0, 0.0, 0.0, 0.05375441115395932, 0.0, 0.1762464226118615, 0.0, 0.3587964347388992, 0.0, 0.8015475518237312, 0.175514484083294, 0.0, 0.0, 0.13495628742382593, 0.0, 0.3105505922199702, 0.7248528773530782, 0.0, 0.18705292898123585, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1748071953278316, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7043431257504623, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13971141189132677, 0.0, 0.0, 0.0, 0.0, 0.0, 0.031464801155366616, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16845401890236414, 0.14573633601571054, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13998624971109908, 0.0, 0.07426203609200491, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2049851695927226, 0.0, 0.0, 0.17338949919280155, 0.0, 0.0, 0.18945472552918335, 0.0, 0.0, 0.0, 0.0, 0.0, 0.036320374032721404, 0.15648907735824633, 0.0, 0.05859334953381536, 0.0, 0.0, 0.0, 0.0, 0.5224897007715829, 0.0, 0.0, 0.0, 0.0, 0.08480845151311803, 0.0, 0.0, 0.0, 0.0, 0.07725579657733653, 0.0, 0.14447765770967222, 0.0, 0.0, 0.0, 0.15678431253622274, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.255601945951803, 0.0, 0.0, 0.2867970808516741, 0.3376079838842544, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29929546323980694, 0.0, 0.0, 0.0]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.70856859734722, 0.0, 0.0, 0.0, 0.0, 0.40683416426697433, 0.0, 0.0, 0.5116135014596547, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11665081191597346, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6815260724911955, 0.0, 0.012792585308225086, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.23414421666297028, 0.0, 0.049360715516608075, 0.0, 0.17114666211685992, 0.0, 0.0, 0.016462013473269064, 0.10889740119368015, 0.0, 0.0, 0.0, 0.00577445736315422, 0.03699291283586617, 0.0, 0.054643694670994745, 0.0, 0.0, 0.0, 0.08011353665096754, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1586425298490503, 0.5528778968703049, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22133004329744424, 0.198518145547811, 0.038821202773921835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18278114382714625, 0.1962641247777959, 0.33892974018746314, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.013014677888550407, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6923776912647246, 0.0, 0.0, 0.0, 0.0, 0.03372992996786747, 0.0, 0.0, 0.0, 0.16613962476105457, 0.0, 0.21040813690603985, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12848588404681333, 0.44877210624067243, 0.0, 0.0, 0.00922143015221846, 0.0, 0.334367843457963, 0.0, 0.3344728737871945, 0.0, 0.007609184274463018, 0.0, 0.0783652603407444, 0.0, 0.008880000989208168, 0.6489339658812214, 0.0, 0.0, 0.4325454998052285, 0.24409841671258664, 0.0, 0.5857475361200408, 0.0, 0.006543890265716072, 0.0, 0.0, 0.0, 0.008425346810589148, 0.0, 0.0, 0.16622566484891482, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27228959440031625, 0.16863240701914226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16867493346874554, 0.42330165278515836, 0.0, 0.0, 0.6457463733709866, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12409061480277174, 0.0, 0.14869580809977814, 0.0, 0.0, 0.0, 0.0, 0.14872661472502066, 0.5062551989716859, 0.06509123699478471, 0.0, 0.026886171078575067, 0.0, 0.3503937118835625, 0.0, 0.13397275360612415, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07224002362266076, 0.0, 0.0, 0.014356019852976252, 0.2658719803791635, 0.13166323290951196, 0.0, 0.0, 0.0, 0.0, 0.020308821426184575, 0.025635708510132263, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.007980130035150811, 0.4090538905999397, 0.0, 0.0, 0.008918289569362796, 0.31893009912431536, 0.0, 0.0, 0.0, 0.009525001505142072, 0.0, 0.0, 0.013278407346240287, 0.021967736559129595, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12136922915980554, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.279484838006678, 0.2506790805406071, 0.0, 0.0, 0.10182245842840729, 0.0, 0.0, 0.5745756063332743, 0.0, 0.5180568530499269, 0.0, 0.19018853437509187, 0.2984452378932974, 0.0, 0.0, 0.0, 0.2447378349547936, 0.0, 0.48522550177156104, 0.5906428332019245, 0.0, 0.0, 0.756905839792281, 0.0, 0.4128008966782496, 0.7173389246941403, 0.0, 0.4558370427008323, 0.6596592042653375, 0.33014948101925834, 0.0, 0.0, 0.0, 0.0, 0.17629318543732997, 0.5676926328184286, 0.6751757284159318, 0.18305092512120225, 0.0, 0.5526511646802545, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6816784313112039, 0.0, 0.0, 0.0, 0.0, 0.4384965381282249, 0.0, 0.5249476708016299, 0.5514304573066787, 0.0, 0.0, 0.0278361825874964, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.38619300372291254, 0.0, 0.5997636810868653, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20257599957103595, 0.0, 0.10844521538627999, 0.0, 1.2226089817686585, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04229463432907405, 0.0, 0.0, 0.0, 0.0, 0.19946965003853376, 0.048044013732540566, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.036066754029278635, 0.0, 0.16231330637401103, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6062852141104628, 0.40481276616279827, 0.0, 0.0, 0.2539845497787725, 0.0, 0.0, 0.5691049256163461, 0.572636917198234, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.026986118300396385, 0.0, 0.0, 0.2578776387682179, 0.2201878278780288, 0.3521973225117564, 0.49204059164875263, 0.20695213801377368, 0.3889153033164169, 0.12024801465448598, 0.5015222202004627, 0.0, 0.0, 0.0, 0.25511838171251733, 0.3395573400007252, 0.0, 0.14076018335068016, 0.006079069440287111, 0.3120090695218348, 0.02735798901473654, 0.23564550369089346, 0.0, 0.5201790908279286, 0.42693711336544043, 0.0, 0.0, 0.32942094250755716, 0.0, 0.0, 0.0, 0.0, 0.42208957099917227, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27253622974111436, 0.20091824181940837, 0.0, 0.0, 0.014451665708310772, 0.0648234167882922, 0.0, 0.0, 0.0, 0.0, 0.43998592755822313, 0.200499194569837, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10517105271620596, 0.4525079677294799, 0.0, 0.0, 0.0, 0.3992933674102322, 0.0, 0.6336315500314595, 0.5683248347075297, 0.0, 0.03911423543998137, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5618719435725092, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13717215169360888, 0.6023639264726295, 0.0, 0.16451246906039718, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2428824655720991, 0.0, 0.0, 0.0, 0.1307489669067023, 0.016490708613327746, 0.0, 0.5332965109179645, 0.0, 0.72835164827528, 0.5456771996801212, 0.20306669911566266, 0.8042852233793947, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08986996958215537, 0.0, 0.09372773893140769, 0.2910950907401526, 0.0, 0.0, 0.11400417325056827, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15073719147466486, 0.0, 0.0062702773417321524, 0.0, 0.11018067217476075, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03517847753788876, 0.0, 0.0, 0.0, 0.0, 0.0, 0.012565073058016527, 0.0, 0.013511533493035587, 0.0, 0.0, 0.0, 0.1160032767395455, 0.3288776375406247, 0.009384967607632352, 0.013704851364696426, 0.0, 0.0, 0.0, 0.10679904950368906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5396299966121684, 0.0, 0.0, 0.0, 0.4120885163537877, 0.0, 0.0, 0.0, 0.0, 0.1374333138690627, 0.0, 0.0, 0.0, 0.0, 0.0, 0.308835769631579, 0.0, 0.0, 0.2935183046180839, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21641442424094412, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16667427577804808, 0.0, 0.0, 0.0, 0.0, 0.1072149118509185, 0.0, 0.0, 0.13482790109225204, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32702264908263307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17999984836884408, 0.0, 0.0, 0.0, 0.0, 0.17960575635997003, 0.0, 0.0, 0.0, 0.0, 0.08691531027429766, 0.0, 0.2893303365574358, 0.0, 0.21730094701941294, 0.07940443022930238, 0.0, 0.0, 0.01060094130869171, 0.0, 0.0, 0.21897146914670435, 0.3193413479843402, 0.11502306512986679, 0.16078084781731777, 0.0, 0.0, 0.029138065953053547, 0.12899773650646262, 0.0, 0.0, 0.0, 0.0, 0.35209003333845906, 0.0, 0.0, 0.42881832168904727, 0.0, 0.07551665376676242, 0.0, 0.10828996414360535, 0.0, 0.0, 0.0, 0.06175478190339224, 0.07317612880730584, 0.0, 0.4573326969055594, 0.13616590004764864, 0.1733951270114995, 0.0, 0.0, 0.0, 0.0, 0.004682414366264115, 0.0, 0.0, 0.014457116882680743, 0.477538324169661, 0.6690522150262886, 0.0, 0.0, 0.35074798851029604, 0.0, 0.6171788496488323, 0.0, 0.0, 0.0, 0.4598571719367441, 0.020424541646230095, 0.5014147387061915, 0.0, 0.0, 0.18767693158032267, 0.0, 0.08703683411330847, 0.0, 0.3388800152965881, 0.004390191394809013, 0.2131890539109787, 0.0, 0.43631258167790793, 0.0, 0.0, 0.0, 0.0, 0.011243656021000366, 0.0, 0.0, 0.004302223899340062, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3252052607129126, 0.10943362605720088, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4600533876598886, 0.0, 0.0, 0.0, 0.6238654988124779, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17327928789102656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3007942289792172, 0.49763260068933673, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1811653464990684, 0.0, 0.7596663692737102, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24115083978451807, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4132016125575898, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.30212649550849624, 0.45064666528381636, 0.0, 0.0, 1.0295831107021076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4924133218118872, 0.0, 0.0, 0.6123145833841932, 1.0074416855456372, 0.8974627446983252, 0.0, 0.0, 0.39387754214687604, 0.6443411524082342, 0.0, 0.6700619016074552, 0.0, 0.0, 0.4377096051189058, 0.3977735630344448, 0.0, 0.0, 0.0, 0.054395363429349475, 0.46912699721752377, 0.09054692381782561, 0.0, 0.6320539215802606, 0.33393006705956935, 0.614294006786966, 0.0, 0.0, 0.3986581318369477, 0.630705395059908, 0.0, 0.4266820903955834, 0.6230830913144384, 0.0, 1.0831760350408295, 0.21088758697054613, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7135848094649876, 0.06891111903866448, 0.0, 0.0, 0.0, 0.32920907856114856, 0.5438621275845595, 0.0, 0.4139962279186794, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13809169802867077, 0.0, 0.14849341459532064, 0.0, 0.0, 0.0, 0.5533499952652239, 0.0, 0.10314194807289108, 0.15061800177708015, 0.0, 0.5514890096422472, 0.23190068111070972, 0.0, 0.701822721136001, 0.6294877235260824, 0.0, 0.0, 0.0, 1.1059687974440209, 0.0, 0.0, 0.0, 0.96169924491107, 0.0, 0.0, 0.0, 0.0, 0.06628312350990566, 0.0, 0.37743722057381907, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08765206247905213, 0.0, 0.5218343219200703, 0.0, 0.0, 0.0, 0.41461579287108996, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6671900885778136, 0.0, 0.0, 0.0, 0.028262864260027967, 0.7909490968152504, 0.04511006432931489, 0.0, 0.0, 0.0, 0.4564818142302977, 0.35113439772465294, 0.0, 0.0, 0.0, 0.03776705986522304, 0.6129906961879193, 0.0, 0.0, 0.0, 0.0, 0.0, 0.42034814190539166, 0.0, 0.0, 0.21638060933821013, 0.0, 0.0, 0.0, 0.2526638526129318, 0.03715346614099295, 0.6358424325058142, 0.0, 0.0, 0.04152129953915335, 0.04614236094065058, 0.0, 0.0, 0.07015688762319212, 0.05740172594394938, 0.18351207696535793, 0.0, 0.0, 0.008864400691370657, 0.0, 0.8651249823989057, 0.407678395491645, 0.845679782901505, 0.0, 0.0, 0.0, 0.0, 0.4753420456230014, 1.6107190368773618, 0.0, 0.0, 0.0638102435424578, 0.24041718723542044, 0.5177820553003522, 0.44619181405158337, 0.4489609795607919, 0.0, 0.07301898938869086, 0.0902695074635508, 0.4268753686592877, 0.0, 0.0, 0.0, 0.16408594940133228, 0.0, 0.0, 0.6736439849461895, 0.031382854877976686, 0.034000045192845295, 0.0, 0.0, 0.8630676095443404, 0.3932053636261741, 0.0, 0.0, 0.0, 0.23747714078691665, 0.2179752640521007, 0.0, 0.059020425946533776, 0.23507519209688904, 0.0, 0.6184935143504988, 0.18475168643298573, 0.3255150538360457, 0.0, 0.0, 0.10559996237493433, 0.258855010743052, 0.0, 0.0, 0.0, 0.0, 0.5931453366617909, 0.0, 0.012879882724963071, 0.34456425817306313, 0.0, 0.10363371305008902, 0.0, 0.0, 0.13032437159832005, 0.0, 0.0, 0.9136517678658531, 0.11645026631438779, 0.0, 0.0, 1.006195673838974, 0.0, 0.49183662858528426, 0.5242175629103283, 0.0, 0.0, 0.5842253265103485, 0.09175087532086124, 0.0, 0.0, 0.6346229344595797, 0.8483440750859271, 0.0, 0.0, 0.43168828228976236, 1.1746392457903614, 0.9786548179849323, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22466432888463708, 0.0, 0.0, 0.23383689086971213, 0.07868759200794351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5047067971651431, 0.0, 0.04466167239654772, 0.0, 0.18031282035336027, 0.06880056169195574, 0.0, 0.039760598424459205, 0.2052193360923158, 0.0, 0.1245954319549744, 0.0, 0.0, 0.3371869924989234, 0.10076818165067654, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21628428501390357, 0.41878760793751535, 0.0, 0.2743772579349106, 0.0, 0.0, 0.0, 0.23737336558608516, 0.0, 0.5609891075534331, 0.0, 0.0, 0.0, 0.0, 0.11206304892649907, 0.03770992438488979, 0.0, 0.0, 0.17383517173220803, 0.252655932334268, 0.0, 0.1585306005724301, 0.0, 0.1865298137691172, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05971061253533409, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15913149160221682, 0.0, 0.4030910369398146, 0.0, 0.32022434202130456, 0.23687245172165972, 0.0, 0.3599325265793679, 0.0, 0.4765964362382492, 0.0, 0.0, 0.0, 0.0, 0.6107120779202261, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.573260313114729, 0.5768180939544553, 0.0, 0.17499066339826644, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7201822598869417, 0.0, 0.0, 0.0, 0.0, 0.08725982492406978, 0.5051841445138487, 0.0, 0.0, 0.0, 0.2569811590076317, 0.3964028116744446, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31198143094865527, 0.0, 0.0, 0.0, 0.0, 0.0, 0.42812611727229755, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.40187139064927635, 0.40436549376609193, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5533450612442088, 0.3541481069684905, 0.0, 0.0, 0.0, 0.1801509251180122, 0.0, 0.0, 0.0, 0.08899148634361333, 0.0, 0.4004935508153472, 0.1664002225353232, 0.6660561411338942, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5274372110974553, 0.0, 0.0, 0.11745018036413006, 0.03952272816910389, 0.654574176319042, 0.0, 0.0, 0.0, 0.0, 0.29642163335908794, 0.1274499525156547, 0.03345490004078419, 0.0, 0.0, 0.07653915037041417, 0.0, 0.02978363268713748, 0.15372448023095572, 0.03967384765850083, 0.06258104057589436, 0.0, 0.0, 0.044337981986606795, 0.07548283043416787, 0.0, 0.0, 0.0, 0.04735429836324166, 0.0, 0.0, 0.10863396357319674, 0.1797235339241024, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2053113311622715, 0.0, 0.0, 0.6339058613302375, 0.26881844559242324, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.047384735026192754, 0.0, 0.09394657688969027, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.41199723535819494, 0.0, 0.0, 0.19249813639294353, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4930042077083581, 0.01569004651529754, 0.0, 0.1886409972802957, 0.0, 0.6504613027483894, 0.0, 0.0, 0.0, 0.4491308783325726, 0.0, 0.710600063326777, 0.0, 0.0, 0.0, 0.0, 0.6392481732081897, 0.0, 0.0, 0.21075790790635565, 0.143953089400151, 0.04517962123405222, 0.12446587761719602, 0.011602660433066613, 0.0, 0.021141064793252704, 0.017873704948355638, 0.0, 0.010329409925325224, 0.21730544865000528, 0.03874493610862431, 0.0, 0.0, 0.0, 0.04329986579681618, 0.02617857620219232, 0.0, 0.0, 0.14198488087669728, 0.04624555904799935, 0.33624630483183143, 0.0, 0.18065873234459212, 0.001167765010724762, 0.0, 0.41156050949339695, 0.06138103351330629, 0.0, 0.0, 0.0, 0.0, 0.0, 0.45223330011890606, 0.0, 0.42719481956226096, 0.0, 0.09390028378745956, 0.03159803909732349, 0.0, 0.0, 0.0, 0.14464053921535813, 0.0, 0.355579453624945, 0.27582314245244144, 0.0, 0.0, 0.4779189904559178, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6540512683692249, 0.16386729047093346, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08595593354654336, 0.0868518036911852, 0.1436872279500763, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08976911428083846, 0.0, 0.0, 0.0, 0.06561633035108058, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0209499775034313, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06082234101182034, 0.19585779687130894, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.01528743323594608, 0.0, 0.0, 0.0, 0.011174280569280867, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3922416239543676, 0.0, 0.5308327922857218, 0.38811106643298066, 0.0, 0.5861742359361938, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010357877371534024, 0.03335404406511716, 0.2121541431315042, 0.0, 0.0, 0.0, 0.0, 0.0, 0.022181366862053645, 0.0, 0.0, 0.3232792127186002, 0.21780290259329063, 0.0, 0.0, 0.6724740217065875, 0.33454771410797746, 0.0, 0.0, 0.0, 0.0, 0.1517011050211833, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20421012621580428, 0.0, 0.0, 0.0, 0.09554663093280256, 0.0, 0.9066194809744413, 0.0, 0.6530356828494477, 0.0, 0.0, 0.4162310356447254, 0.2004622291406719, 0.0, 0.06531630990369706, 0.0, 0.0, 0.22516333873266767, 0.08751639468488193, 0.31273858097846424, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10565952264223451, 0.25213753900728575, 0.0, 0.13605306731422323, 0.0, 0.0, 0.20467409186458246, 0.0, 0.0, 0.0, 0.14062561725182204, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06654804138060808, 0.04780210989364991, 0.3312858803709398, 0.0, 0.09056986573031543, 0.0, 0.0, 0.22425218794100035, 0.6978010919630194, 0.5644822411311934, 0.0, 0.0, 0.0, 0.0, 0.25245963204466193, 0.5714387205668741, 0.0, 0.7794778768245345, 0.5229243836029062, 0.6068223768633771, 0.0, 0.0, 0.3439063861094934, 0.0, 0.5825998753106167, 0.07738278703840655, 0.0, 0.0, 0.45088731313609587, 0.020026145653267647, 0.49371220470576765, 0.0, 0.1967497337446331, 0.9333687888834381, 0.2687116640308751, 0.3109501951809905, 0.0, 0.628995837333548, 0.6431918870734405, 0.0, 0.0, 0.4278019777568812, 0.0, 0.0, 0.3426634565816645, 0.0, 0.7642079896603969, 0.15720215492969136, 0.0, 0.5627301734522071, 0.0, 0.0, 0.03992028432745955, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8902694418730629, 0.24785210085431258, 0.0, 0.0, 0.0, 0.19750384789873962, 0.0, 0.0, 0.24837057467209334, 0.0, 0.0, 0.06196917660673224, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9196979517908253, 0.47523150409994275, 0.0, 0.05084636736867684, 0.30281629383729847, 0.0, 0.0, 0.0, 0.0, 0.7797375130571516, 0.0, 0.0, 0.009193696508787878, 0.7164774465476489, 0.37223214885126943, 0.36077619715591613]), 42), 42)),) julia> @finch_code begin Ct .= 0 for j = _ @@ -1015,7 +1015,7 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.1619393094464903, 0.0, 0.0, 0.0, 0.0, 0.11373910752308043, 0.0, 0.32533429668145175, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5405512925681031, 0.0, 0.0, 0.5409817971066755, 0.6726532010052559, 0.0, 0.0, 0.0, 0.04498001780375231, 0.0, 0.7446527460595233, 0.0, 0.0, 0.0, 0.0648053115514859, 0.0, 0.20542126000594346, 0.0, 0.2489342378383824, 0.0, 0.0, 0.2446702787341799, 0.0, 0.0, 0.4075132486743765, 0.372693911014397, 0.0, 0.03990868671702989, 0.32865292999993995, 0.0, 0.0, 0.0, 0.037570880212435515, 0.0, 0.0, 0.2585440952996821, 0.0, 0.0, 0.5429032184680616, 0.0, 0.0, 0.0, 0.7310331654112876, 1.6974310666890076, 0.13434284643730737, 0.0, 0.15388431962676646, 0.0, 0.018799628425153446, 0.026448056346556916, 0.020943024178172204, 0.08671614507629592, 0.19272805440861934, 0.07015243227726202, 0.0, 0.1267665206913561, 0.1014023431949165, 0.494724963965631, 0.0, 0.6317423070706343, 0.0, 0.4351905463586081, 0.019451367524410516, 0.11392026534019284, 0.0, 0.7674183972620773, 0.0, 0.0, 0.009728790198518009, 0.0, 0.0, 0.03627546054320975, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0140288190005624, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4229718175600567, 0.0752980218883111, 0.013070459322559402, 0.0, 0.4793455258509991, 0.0, 0.0, 0.0, 0.0, 0.08811633730455204, 0.08467555208376226, 0.0, 0.0, 1.4824413586764027, 0.27442978968992093, 0.0, 0.0028104905637611507, 0.1480443868451215, 0.6744061467564826, 0.043998508948338316, 0.8697701045107844, 0.8469834954000914, 0.0, 0.02425613445444166, 0.0, 0.0, 0.0, 0.9679232213808633, 0.6774894982888419, 0.35310753741950685, 0.0, 0.2841919624705342, 0.0, 0.0, 0.7349602036514661, 0.0, 0.2186035505612502, 0.04416466424315345, 0.0, 0.0, 0.25133653271826356, 0.11160837067772013, 0.0, 0.14048007630402903, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.035048636482553235, 0.038653696504083, 0.10014641420794519, 0.0, 0.0837599459565703, 0.10942537757376403, 0.0, 0.0, 0.0, 0.08204362658289192, 0.0, 0.0, 0.011591138384550418, 0.0, 0.038004261053570694, 0.0066189468466051875, 0.06306237088337384, 0.0, 0.0, 0.03121664575636558, 0.0, 0.0, 0.02910081181829685, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08506408857544866, 0.0, 0.0, 0.0, 0.7712870388819855, 0.2285263236705729, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6966121466049721, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6540220401149287, 0.0, 0.0, 0.2336670223432043, 0.0, 0.0, 0.005339227289024509, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4930665741229495, 0.0, 0.029559863815954657, 0.0, 0.0, 0.10760363562562023, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15061269543615943, 0.6107211710602042, 0.0, 0.0, 0.733057860494869, 0.057362855000467054, 0.17650444882735677, 0.0, 0.0, 0.014677698725170102, 0.0, 0.17821555119599314, 0.0025555492556658746, 0.14808219427948163, 0.0, 0.11979690859781277, 0.0, 0.0, 0.13110894332781436, 0.04449679654819995, 0.0, 0.1133902344080122, 0.0, 0.0, 0.0017495044850376442, 0.013900993801975209, 0.03729472110086185, 0.19173933242455474, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1709634942172136, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13051636625786148, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4357713541613571, 0.0, 0.0, 0.0, 0.0, 0.07073267416682687, 0.0, 0.0, 0.0, 0.0, 0.06443354393704691, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.28238918313491895, 0.0, 0.0, 0.0, 0.28219752132848275, 0.0, 0.0, 0.0, 0.3045252869011713, 0.0, 0.0, 0.019083741024338748, 0.0, 0.06257051306836219, 0.7837995208867943, 0.05061887468267648, 0.0, 0.0, 0.05139533007879884, 0.0, 0.0, 0.04791180451081585, 0.0, 0.5281077501137272, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7571506519409951, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.026654196669850944, 0.0, 0.0, 0.0, 0.0, 0.23843473688023176, 0.0, 0.0, 0.6051386294410329, 0.0, 0.0, 0.0, 0.0, 0.04194764240896927, 0.13628497764809444, 0.0, 0.0, 0.0, 0.0, 0.06043639304510901, 0.04344269031549197, 0.0, 0.7296328391677986, 0.6312346675367022, 0.0, 0.0, 0.22817557354519388, 0.0, 0.05073205279897938, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1594527848545218, 0.1381227206057285, 0.0, 0.0, 0.0, 0.0, 0.4217049712314433, 0.0, 0.0, 0.31027130374464373, 0.0, 0.0, 0.08118863628632204, 0.8304208532182848, 0.983137215831116, 0.0, 0.24897028906526258, 0.14034260442091134, 0.0, 0.691731307052974, 0.7500207108166317, 0.833859795824118, 0.0, 0.05053828036951065, 0.8139843305766208, 0.0, 0.0, 1.3856822465181273, 1.0343729450047436, 0.0, 0.0, 1.09811525132565, 0.0, 0.0, 0.005748580563865145, 0.0, 0.0, 0.8634025361175751, 0.0, 0.14616020357939458, 0.7514377111323272, 0.0, 0.0, 0.1732108049991939, 0.0, 0.0, 0.0, 0.1879649588465491, 0.0, 0.0, 0.0, 0.00817965091901661, 0.0, 0.0, 0.0, 0.5779500058438248, 0.0, 0.0, 0.0, 0.005249336837927155, 0.0, 0.0, 0.0, 0.3064350538312218, 0.0, 0.001890320177282059, 0.45976772975798436, 0.40475012946470096, 0.3442380471075082, 0.017185108496187197, 0.288035784498987, 0.0, 0.0, 0.2827566402954316, 0.0, 0.0, 0.2635916697723135, 0.0, 0.0, 0.0, 0.3588181656747819, 0.0, 0.0, 0.0, 0.17570163169455902, 0.0, 0.2076868163288207, 0.0, 0.0, 0.0, 0.5097341557191223, 0.14587016095283192, 0.0, 0.4172405362928458, 0.0, 0.13951021052730417, 0.0, 0.6033798708626249, 0.0, 0.0, 0.0, 0.0, 0.4512081190066747, 1.1915177253624374, 0.0, 0.53626862172996, 0.26267190873847124, 0.024946529615964698, 0.630282563668714, 0.0, 0.7072072219187049, 0.2557442098535857, 0.0, 0.0, 0.0, 0.027439980552710016, 0.0, 0.2634523244708942, 0.750190928083991, 0.31925762502388877, 0.0, 0.0, 0.0, 0.17667054707398389, 1.689395274403252, 0.0, 0.5386556936239477, 0.21507940395745773, 0.30698899212442304, 0.11255638742238075, 0.12042909174810443, 0.1983506487023661, 0.0, 0.2156156778918424, 0.0, 0.6179686549930762, 0.0, 0.0, 0.0, 0.011162873807723371, 0.003307472295366656, 0.5417377310206691, 0.1038404263557644, 0.0, 0.0, 0.0, 0.010082100558503525, 0.5759566406752274, 0.5373731999014957, 0.24497595431253502, 0.3628321361534925, 0.4271139218413104, 0.0888079037091352, 0.013607634508588288, 0.5254304747208627, 0.0, 0.0, 0.0033818738704913948, 0.0, 0.3894178985059293, 7.727488918331624e-5, 0.4719056234120719, 0.0, 0.0, 0.7548965169480935, 0.0, 0.0, 0.0, 0.0, 0.04295271297559638, 0.3048341885265102, 0.0, 0.16015654700904233, 0.0, 0.03255288417829475, 0.0, 0.0, 0.0, 0.0, 0.16019347860889097, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3426629556463706, 0.0, 0.33591507158653605, 0.0, 0.0, 0.04025140372585128, 0.0, 0.5756230062735465, 0.0, 0.0, 0.0, 0.0, 0.0017523850398583757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32421546356710995, 0.0, 0.011282618188498251, 0.6937716630434633, 0.2529924781123921, 0.2596235239889639, 0.0, 0.043120476743740394, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2793513283874615, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7775441119273626, 0.14515455310675088, 0.0, 0.13510821830370037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44716225485327055, 0.0, 0.0, 0.0, 0.8291790553392753, 0.0, 0.0, 0.26334889102262177, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15479667093058366, 0.0, 0.0, 0.0, 0.36993623982653, 0.0, 0.0, 0.0, 0.0, 0.3623559014178924, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029233403628440607, 0.1427335193249464, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051251957334763225, 0.691166524717783, 0.29938181148714105, 0.5349464228115411, 0.06157899241792075, 0.0, 0.0, 0.2102727260204982, 0.0, 0.60145477594229, 0.0, 0.0, 0.03062034252430008, 0.1635016794080344, 0.7915679370358879, 0.0, 0.07317711878131836, 0.9809574403621903, 0.0, 0.0, 0.44926990137304107, 0.21608537407152922, 0.0, 0.05777727499408966, 0.039929965496851884, 0.0, 0.29915326656993935, 0.31099294960838475, 0.13414679708282617, 0.10949528327933863, 0.0, 0.10753728810972799, 0.0, 0.3797681313373244, 0.5019126906002389, 0.8077076191871431, 0.02575673641821252, 0.0, 0.0, 0.0, 0.0, 0.08748647908145589, 0.0, 0.0, 0.2775216739406583, 0.0, 0.0, 0.0, 0.0, 0.19491911889837882, 0.0, 0.626470449065492, 0.0, 0.1610321350235478, 0.0, 0.6250193931691284, 0.18518836301307043, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5645059221744597, 0.0, 0.30319370972913895, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5299926460898494, 0.0, 0.0, 0.18935417444624433, 0.0, 0.3520383786660897, 0.004326690884129795, 0.4266082560323472, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04753484047689839, 0.0, 0.0, 0.0, 0.2507515224933452, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.011126595947621928, 0.0, 0.0, 0.0, 0.0, 0.07883374294223121, 0.0, 0.0, 0.06158319631443835, 0.0, 0.0, 0.0, 0.0, 0.18599923723367912, 0.0, 0.0, 0.0, 0.0, 0.07225540391146344, 0.0, 0.17222213577613948, 0.0, 0.07109258970520838, 0.30622054435699597, 0.0, 0.0, 0.021600783197372013, 0.0, 0.0, 0.0, 0.0, 0.08747962563792125, 0.0, 0.0, 0.6661127453751955, 0.20906059268184987, 0.0, 0.14050781836020196, 0.0, 0.0, 0.38775347026983786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.016520556870922822, 0.08066242485362363, 0.0, 0.0, 0.008507877750707929, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19963971549104562, 0.0, 0.0, 0.0, 0.0, 0.1517009343251733, 0.5312750255062002, 0.0, 0.0, 0.1147421120346578, 0.0, 0.0, 0.0, 0.0, 0.35500190337758014, 0.0, 0.045597713545061126, 0.0, 0.5209586802357347, 0.021862434298379425, 0.0, 0.0, 0.0, 1.0378291015579089, 0.0, 0.0, 0.0, 0.08585205631703301, 0.0483968201096062, 0.0, 0.025471357792783925, 0.0, 0.22080976260076224, 1.166729214929465, 0.0, 0.677323308302816, 0.18535083381370177, 0.0, 0.0, 0.8704056171514745, 0.0, 0.8935663748182991, 0.015577429284835683, 0.13855228421849528, 0.0, 0.0, 0.1744139155099896, 0.15132491229634354, 0.0, 0.02513332482807071, 0.0, 0.17525145412541498, 0.0, 0.0, 0.0, 0.0, 0.02694350993020697, 0.162823516985682, 0.0, 0.0, 0.6457319525792288, 0.07238426196350153, 0.05745965468198706, 0.0, 0.0, 0.46532195926191927, 0.08460519940877058, 0.22064747420300995, 0.07874956387307873, 0.02873453791303352, 0.04102153493571428, 0.0, 0.0, 0.0, 0.0, 0.49780157894039, 0.0, 0.0, 0.301057479311315, 0.0, 0.0, 0.0016911663416444849, 0.0, 0.2606342751929628, 0.0, 0.0, 0.0, 0.4832976838898257, 0.2663912296088851, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16074512474220395, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0418820657562929, 0.0, 0.04820286684177523, 0.0, 0.1580443847885599, 0.0, 0.1278562139832909, 0.0, 0.0, 0.12981743196566292, 0.0, 0.0, 0.12101853247948517, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13204408757174144, 0.0, 0.0, 0.0, 0.0, 0.0, 0.024933507022188058, 0.0, 0.0, 0.0, 0.22607531711845172, 0.06698435016959209, 0.0, 0.0, 0.38137808720681626, 0.04452538198512276, 0.13682477248336336, 0.20418703285947667, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19170326048233127, 0.0, 0.0, 0.0684911628398921, 0.0, 0.0, 0.0015650042612973304, 0.0, 0.0, 0.0, 0.0, 0.3663518735291969, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27889642218469224, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09171777647431381, 0.0, 0.031206336760942092, 0.04657190125204274, 0.0, 0.21168995340334643, 0.0, 0.0, 0.2715554536912592, 0.0, 0.0, 0.0476752915188213, 0.0, 0.0, 0.0, 0.0, 0.36410628949886475, 0.021118814521733104, 0.0, 0.25524059151149175, 0.22081888489064375, 0.0, 0.0008303397905156581, 0.0, 0.0, 0.0, 0.0, 0.07229346662213895, 0.0, 0.0, 0.820696989198259, 0.541933064129384, 0.0, 0.6976372073851678, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6559268620540256, 0.0, 0.0, 0.00593765430305966, 0.0, 0.03489392321475427, 0.14772313877299487, 0.20501704987333305, 0.04206924698360076, 0.15444861072003166, 0.0, 0.8226903093195739, 0.0, 0.15641473972332146, 0.790869654262485, 0.6842130952365706, 0.03633117370294634, 0.0, 0.18980663716791113, 0.0, 0.0, 0.038558748063994376, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.40339029653363123, 0.0, 0.0, 0.0, 0.0, 0.43960663038458647, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08136147927839638, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16190486570077617, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2992216626110986, 0.0, 0.0, 0.0, 0.17882109545054858, 0.0, 0.0796930212837386, 0.0, 0.620119218817229, 0.06539128749913568, 0.09575080072237417, 0.0, 0.0, 0.0, 0.31047674992819635, 0.0, 0.0, 0.3258789812741783, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03198183278340688, 0.0, 0.0, 0.05159425685765124, 0.22600144774467618, 0.0, 0.17025710615993656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27035127710875223, 0.6595462305837041, 0.0, 0.0, 0.0, 0.5146584726996519, 0.0, 0.4337121439657544, 0.0, 0.0, 0.006091807521893999, 0.0, 0.0, 0.0, 0.0, 0.012888743397998564, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.336652909816104, 0.0, 0.0, 0.33692102610329455, 0.41892538326879675, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4637663755690806, 0.004049689433712162, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2537974154183676, 0.0, 0.0, 0.0, 0.01941920682276314, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2625647477298457, 0.0, 0.0, 0.0, 0.28333914754514417, 0.0, 0.009497623447163565, 0.0, 0.0, 0.015321911880061054, 0.7292697770823527, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4913667474115824, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8188140725936274, 0.23538609489199455, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004251660745273512, 0.2915534718195699, 0.8234990979680312, 0.15784851698528854, 0.31856705993041073, 0.0, 0.0, 0.0, 0.0, 0.8168645454274115, 0.2887084121601819, 0.0, 0.0, 0.0, 0.020685054965967595, 0.784321469374656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5719438351419199, 0.0, 0.0, 0.0, 0.0, 0.23810583942791758, 0.0, 0.0, 0.13190421809771516, 0.2355353163505223, 0.21414939137204708, 0.0, 0.13824109301205073, 0.0, 0.0, 0.4059138329547745, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3839879400284894, 0.7642606292584734, 0.17337082964447778, 0.43085204172578645, 0.5071846921436626, 0.0, 0.0, 0.0, 0.0, 0.0064224562854441995, 0.45947466920879537, 0.0, 0.048013668076727356, 0.008826989297459209, 0.0, 0.10254269883954115, 0.0, 0.449628221574638, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3130138916400048, 0.0, 0.0, 0.0, 0.0, 0.2198473045188841, 0.0, 0.7854658854954149, 0.0, 0.0, 0.0, 0.27482511606730614, 0.0, 0.0, 0.0, 0.10051459327881847, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03619595572786272, 0.2919384825550201, 0.0, 0.27020767480793234, 0.32906141180848986, 0.4014761358710767, 0.0, 0.0, 0.22194819820968317, 0.0, 0.397060529897469, 0.20690476484626705, 0.4811671410392035, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10602724763101144, 0.0, 0.9180290974697203, 0.32581440887276836, 0.11505868376784396, 0.5289668394733107, 0.0, 0.5268986674479775, 0.2483018891728648, 0.0, 0.0, 0.014289568621041568, 0.0, 0.0, 0.0, 0.0, 1.010481071564644, 0.06469540823739603, 0.19880648111582097, 0.580377081863938, 0.3701240890884847, 0.00033976241032705203, 0.5120222312956857, 0.54263963710411, 0.24775903677393285, 0.13070835967347635, 0.9915175816548458, 0.2899273698579516, 0.0, 0.0, 1.1703372022756595, 0.02329003991510475, 0.11859776061629382, 0.69977713771051, 0.6054053013517017, 0.707408250006164, 0.0, 0.2196427786747048, 0.5323095043727097, 0.027197936547729912, 0.0, 0.0, 0.6744130710240275, 0.0, 0.0, 0.009472629890788111, 0.0, 0.0, 0.0, 0.0, 0.11454144616825819, 0.0, 0.0, 0.0, 1.3982199856641506, 0.2538753491205552, 0.20096391172061562, 0.0, 0.0, 0.04239072289345119, 0.0, 0.773883065549572, 0.0, 0.0, 0.41373255777296347, 0.0, 0.0, 0.0, 0.0, 0.7328658795072667, 0.0, 0.0, 0.8143261048934798, 0.0, 0.0, 0.005931475071506779, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5479468542821576, 0.0, 0.32433512795769415, 0.7968405650512658, 0.0, 0.0, 0.2823749754870304, 0.0, 0.08888138290002096, 0.0, 0.0, 0.0, 0.17925820791427197, 0.2000876096746871, 0.0, 0.0, 0.40815111826084144, 0.16385977895936904, 0.06986036185280928, 0.0, 0.0, 0.0, 0.0, 0.05375441115395932, 0.0, 0.1762464226118615, 0.0, 0.3587964347388992, 0.0, 0.8015475518237312, 0.175514484083294, 0.0, 0.0, 0.13495628742382593, 0.0, 0.3105505922199702, 0.7248528773530782, 0.0, 0.18705292898123585, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1748071953278316, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7043431257504623, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13971141189132677, 0.0, 0.0, 0.0, 0.0, 0.0, 0.031464801155366616, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16845401890236414, 0.14573633601571054, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13998624971109908, 0.0, 0.07426203609200491, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2049851695927226, 0.0, 0.0, 0.17338949919280155, 0.0, 0.0, 0.18945472552918335, 0.0, 0.0, 0.0, 0.0, 0.0, 0.036320374032721404, 0.15648907735824633, 0.0, 0.05859334953381536, 0.0, 0.0, 0.0, 0.0, 0.5224897007715829, 0.0, 0.0, 0.0, 0.0, 0.08480845151311803, 0.0, 0.0, 0.0, 0.0, 0.07725579657733653, 0.0, 0.14447765770967222, 0.0, 0.0, 0.0, 0.15678431253622274, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.255601945951803, 0.0, 0.0, 0.2867970808516741, 0.3376079838842544, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29929546323980694, 0.0, 0.0, 0.0]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.70856859734722, 0.0, 0.0, 0.0, 0.0, 0.40683416426697433, 0.0, 0.0, 0.5116135014596547, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11665081191597346, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6815260724911955, 0.0, 0.012792585308225086, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.23414421666297028, 0.0, 0.049360715516608075, 0.0, 0.17114666211685992, 0.0, 0.0, 0.016462013473269064, 0.10889740119368015, 0.0, 0.0, 0.0, 0.00577445736315422, 0.03699291283586617, 0.0, 0.054643694670994745, 0.0, 0.0, 0.0, 0.08011353665096754, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1586425298490503, 0.5528778968703049, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22133004329744424, 0.198518145547811, 0.038821202773921835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18278114382714625, 0.1962641247777959, 0.33892974018746314, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.013014677888550407, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6923776912647246, 0.0, 0.0, 0.0, 0.0, 0.03372992996786747, 0.0, 0.0, 0.0, 0.16613962476105457, 0.0, 0.21040813690603985, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12848588404681333, 0.44877210624067243, 0.0, 0.0, 0.00922143015221846, 0.0, 0.334367843457963, 0.0, 0.3344728737871945, 0.0, 0.007609184274463018, 0.0, 0.0783652603407444, 0.0, 0.008880000989208168, 0.6489339658812214, 0.0, 0.0, 0.4325454998052285, 0.24409841671258664, 0.0, 0.5857475361200408, 0.0, 0.006543890265716072, 0.0, 0.0, 0.0, 0.008425346810589148, 0.0, 0.0, 0.16622566484891482, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27228959440031625, 0.16863240701914226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16867493346874554, 0.42330165278515836, 0.0, 0.0, 0.6457463733709866, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12409061480277174, 0.0, 0.14869580809977814, 0.0, 0.0, 0.0, 0.0, 0.14872661472502066, 0.5062551989716859, 0.06509123699478471, 0.0, 0.026886171078575067, 0.0, 0.3503937118835625, 0.0, 0.13397275360612415, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07224002362266076, 0.0, 0.0, 0.014356019852976252, 0.2658719803791635, 0.13166323290951196, 0.0, 0.0, 0.0, 0.0, 0.020308821426184575, 0.025635708510132263, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.007980130035150811, 0.4090538905999397, 0.0, 0.0, 0.008918289569362796, 0.31893009912431536, 0.0, 0.0, 0.0, 0.009525001505142072, 0.0, 0.0, 0.013278407346240287, 0.021967736559129595, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12136922915980554, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.279484838006678, 0.2506790805406071, 0.0, 0.0, 0.10182245842840729, 0.0, 0.0, 0.5745756063332743, 0.0, 0.5180568530499269, 0.0, 0.19018853437509187, 0.2984452378932974, 0.0, 0.0, 0.0, 0.2447378349547936, 0.0, 0.48522550177156104, 0.5906428332019245, 0.0, 0.0, 0.756905839792281, 0.0, 0.4128008966782496, 0.7173389246941403, 0.0, 0.4558370427008323, 0.6596592042653375, 0.33014948101925834, 0.0, 0.0, 0.0, 0.0, 0.17629318543732997, 0.5676926328184286, 0.6751757284159318, 0.18305092512120225, 0.0, 0.5526511646802545, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6816784313112039, 0.0, 0.0, 0.0, 0.0, 0.4384965381282249, 0.0, 0.5249476708016299, 0.5514304573066787, 0.0, 0.0, 0.0278361825874964, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.38619300372291254, 0.0, 0.5997636810868653, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20257599957103595, 0.0, 0.10844521538627999, 0.0, 1.2226089817686585, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04229463432907405, 0.0, 0.0, 0.0, 0.0, 0.19946965003853376, 0.048044013732540566, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.036066754029278635, 0.0, 0.16231330637401103, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6062852141104628, 0.40481276616279827, 0.0, 0.0, 0.2539845497787725, 0.0, 0.0, 0.5691049256163461, 0.572636917198234, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.026986118300396385, 0.0, 0.0, 0.2578776387682179, 0.2201878278780288, 0.3521973225117564, 0.49204059164875263, 0.20695213801377368, 0.3889153033164169, 0.12024801465448598, 0.5015222202004627, 0.0, 0.0, 0.0, 0.25511838171251733, 0.3395573400007252, 0.0, 0.14076018335068016, 0.006079069440287111, 0.3120090695218348, 0.02735798901473654, 0.23564550369089346, 0.0, 0.5201790908279286, 0.42693711336544043, 0.0, 0.0, 0.32942094250755716, 0.0, 0.0, 0.0, 0.0, 0.42208957099917227, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27253622974111436, 0.20091824181940837, 0.0, 0.0, 0.014451665708310772, 0.0648234167882922, 0.0, 0.0, 0.0, 0.0, 0.43998592755822313, 0.200499194569837, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10517105271620596, 0.4525079677294799, 0.0, 0.0, 0.0, 0.3992933674102322, 0.0, 0.6336315500314595, 0.5683248347075297, 0.0, 0.03911423543998137, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5618719435725092, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13717215169360888, 0.6023639264726295, 0.0, 0.16451246906039718, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2428824655720991, 0.0, 0.0, 0.0, 0.1307489669067023, 0.016490708613327746, 0.0, 0.5332965109179645, 0.0, 0.72835164827528, 0.5456771996801212, 0.20306669911566266, 0.8042852233793947, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08986996958215537, 0.0, 0.09372773893140769, 0.2910950907401526, 0.0, 0.0, 0.11400417325056827, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15073719147466486, 0.0, 0.0062702773417321524, 0.0, 0.11018067217476075, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03517847753788876, 0.0, 0.0, 0.0, 0.0, 0.0, 0.012565073058016527, 0.0, 0.013511533493035587, 0.0, 0.0, 0.0, 0.1160032767395455, 0.3288776375406247, 0.009384967607632352, 0.013704851364696426, 0.0, 0.0, 0.0, 0.10679904950368906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5396299966121684, 0.0, 0.0, 0.0, 0.4120885163537877, 0.0, 0.0, 0.0, 0.0, 0.1374333138690627, 0.0, 0.0, 0.0, 0.0, 0.0, 0.308835769631579, 0.0, 0.0, 0.2935183046180839, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21641442424094412, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16667427577804808, 0.0, 0.0, 0.0, 0.0, 0.1072149118509185, 0.0, 0.0, 0.13482790109225204, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32702264908263307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17999984836884408, 0.0, 0.0, 0.0, 0.0, 0.17960575635997003, 0.0, 0.0, 0.0, 0.0, 0.08691531027429766, 0.0, 0.2893303365574358, 0.0, 0.21730094701941294, 0.07940443022930238, 0.0, 0.0, 0.01060094130869171, 0.0, 0.0, 0.21897146914670435, 0.3193413479843402, 0.11502306512986679, 0.16078084781731777, 0.0, 0.0, 0.029138065953053547, 0.12899773650646262, 0.0, 0.0, 0.0, 0.0, 0.35209003333845906, 0.0, 0.0, 0.42881832168904727, 0.0, 0.07551665376676242, 0.0, 0.10828996414360535, 0.0, 0.0, 0.0, 0.06175478190339224, 0.07317612880730584, 0.0, 0.4573326969055594, 0.13616590004764864, 0.1733951270114995, 0.0, 0.0, 0.0, 0.0, 0.004682414366264115, 0.0, 0.0, 0.014457116882680743, 0.477538324169661, 0.6690522150262886, 0.0, 0.0, 0.35074798851029604, 0.0, 0.6171788496488323, 0.0, 0.0, 0.0, 0.4598571719367441, 0.020424541646230095, 0.5014147387061915, 0.0, 0.0, 0.18767693158032267, 0.0, 0.08703683411330847, 0.0, 0.3388800152965881, 0.004390191394809013, 0.2131890539109787, 0.0, 0.43631258167790793, 0.0, 0.0, 0.0, 0.0, 0.011243656021000366, 0.0, 0.0, 0.004302223899340062, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3252052607129126, 0.10943362605720088, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4600533876598886, 0.0, 0.0, 0.0, 0.6238654988124779, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17327928789102656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3007942289792172, 0.49763260068933673, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1811653464990684, 0.0, 0.7596663692737102, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24115083978451807, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4132016125575898, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.30212649550849624, 0.45064666528381636, 0.0, 0.0, 1.0295831107021076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4924133218118872, 0.0, 0.0, 0.6123145833841932, 1.0074416855456372, 0.8974627446983252, 0.0, 0.0, 0.39387754214687604, 0.6443411524082342, 0.0, 0.6700619016074552, 0.0, 0.0, 0.4377096051189058, 0.3977735630344448, 0.0, 0.0, 0.0, 0.054395363429349475, 0.46912699721752377, 0.09054692381782561, 0.0, 0.6320539215802606, 0.33393006705956935, 0.614294006786966, 0.0, 0.0, 0.3986581318369477, 0.630705395059908, 0.0, 0.4266820903955834, 0.6230830913144384, 0.0, 1.0831760350408295, 0.21088758697054613, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7135848094649876, 0.06891111903866448, 0.0, 0.0, 0.0, 0.32920907856114856, 0.5438621275845595, 0.0, 0.4139962279186794, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13809169802867077, 0.0, 0.14849341459532064, 0.0, 0.0, 0.0, 0.5533499952652239, 0.0, 0.10314194807289108, 0.15061800177708015, 0.0, 0.5514890096422472, 0.23190068111070972, 0.0, 0.701822721136001, 0.6294877235260824, 0.0, 0.0, 0.0, 1.1059687974440209, 0.0, 0.0, 0.0, 0.96169924491107, 0.0, 0.0, 0.0, 0.0, 0.06628312350990566, 0.0, 0.37743722057381907, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08765206247905213, 0.0, 0.5218343219200703, 0.0, 0.0, 0.0, 0.41461579287108996, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6671900885778136, 0.0, 0.0, 0.0, 0.028262864260027967, 0.7909490968152504, 0.04511006432931489, 0.0, 0.0, 0.0, 0.4564818142302977, 0.35113439772465294, 0.0, 0.0, 0.0, 0.03776705986522304, 0.6129906961879193, 0.0, 0.0, 0.0, 0.0, 0.0, 0.42034814190539166, 0.0, 0.0, 0.21638060933821013, 0.0, 0.0, 0.0, 0.2526638526129318, 0.03715346614099295, 0.6358424325058142, 0.0, 0.0, 0.04152129953915335, 0.04614236094065058, 0.0, 0.0, 0.07015688762319212, 0.05740172594394938, 0.18351207696535793, 0.0, 0.0, 0.008864400691370657, 0.0, 0.8651249823989057, 0.407678395491645, 0.845679782901505, 0.0, 0.0, 0.0, 0.0, 0.4753420456230014, 1.6107190368773618, 0.0, 0.0, 0.0638102435424578, 0.24041718723542044, 0.5177820553003522, 0.44619181405158337, 0.4489609795607919, 0.0, 0.07301898938869086, 0.0902695074635508, 0.4268753686592877, 0.0, 0.0, 0.0, 0.16408594940133228, 0.0, 0.0, 0.6736439849461895, 0.031382854877976686, 0.034000045192845295, 0.0, 0.0, 0.8630676095443404, 0.3932053636261741, 0.0, 0.0, 0.0, 0.23747714078691665, 0.2179752640521007, 0.0, 0.059020425946533776, 0.23507519209688904, 0.0, 0.6184935143504988, 0.18475168643298573, 0.3255150538360457, 0.0, 0.0, 0.10559996237493433, 0.258855010743052, 0.0, 0.0, 0.0, 0.0, 0.5931453366617909, 0.0, 0.012879882724963071, 0.34456425817306313, 0.0, 0.10363371305008902, 0.0, 0.0, 0.13032437159832005, 0.0, 0.0, 0.9136517678658531, 0.11645026631438779, 0.0, 0.0, 1.006195673838974, 0.0, 0.49183662858528426, 0.5242175629103283, 0.0, 0.0, 0.5842253265103485, 0.09175087532086124, 0.0, 0.0, 0.6346229344595797, 0.8483440750859271, 0.0, 0.0, 0.43168828228976236, 1.1746392457903614, 0.9786548179849323, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22466432888463708, 0.0, 0.0, 0.23383689086971213, 0.07868759200794351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5047067971651431, 0.0, 0.04466167239654772, 0.0, 0.18031282035336027, 0.06880056169195574, 0.0, 0.039760598424459205, 0.2052193360923158, 0.0, 0.1245954319549744, 0.0, 0.0, 0.3371869924989234, 0.10076818165067654, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21628428501390357, 0.41878760793751535, 0.0, 0.2743772579349106, 0.0, 0.0, 0.0, 0.23737336558608516, 0.0, 0.5609891075534331, 0.0, 0.0, 0.0, 0.0, 0.11206304892649907, 0.03770992438488979, 0.0, 0.0, 0.17383517173220803, 0.252655932334268, 0.0, 0.1585306005724301, 0.0, 0.1865298137691172, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05971061253533409, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15913149160221682, 0.0, 0.4030910369398146, 0.0, 0.32022434202130456, 0.23687245172165972, 0.0, 0.3599325265793679, 0.0, 0.4765964362382492, 0.0, 0.0, 0.0, 0.0, 0.6107120779202261, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.573260313114729, 0.5768180939544553, 0.0, 0.17499066339826644, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7201822598869417, 0.0, 0.0, 0.0, 0.0, 0.08725982492406978, 0.5051841445138487, 0.0, 0.0, 0.0, 0.2569811590076317, 0.3964028116744446, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31198143094865527, 0.0, 0.0, 0.0, 0.0, 0.0, 0.42812611727229755, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.40187139064927635, 0.40436549376609193, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5533450612442088, 0.3541481069684905, 0.0, 0.0, 0.0, 0.1801509251180122, 0.0, 0.0, 0.0, 0.08899148634361333, 0.0, 0.4004935508153472, 0.1664002225353232, 0.6660561411338942, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5274372110974553, 0.0, 0.0, 0.11745018036413006, 0.03952272816910389, 0.654574176319042, 0.0, 0.0, 0.0, 0.0, 0.29642163335908794, 0.1274499525156547, 0.03345490004078419, 0.0, 0.0, 0.07653915037041417, 0.0, 0.02978363268713748, 0.15372448023095572, 0.03967384765850083, 0.06258104057589436, 0.0, 0.0, 0.044337981986606795, 0.07548283043416787, 0.0, 0.0, 0.0, 0.04735429836324166, 0.0, 0.0, 0.10863396357319674, 0.1797235339241024, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2053113311622715, 0.0, 0.0, 0.6339058613302375, 0.26881844559242324, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.047384735026192754, 0.0, 0.09394657688969027, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.41199723535819494, 0.0, 0.0, 0.19249813639294353, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4930042077083581, 0.01569004651529754, 0.0, 0.1886409972802957, 0.0, 0.6504613027483894, 0.0, 0.0, 0.0, 0.4491308783325726, 0.0, 0.710600063326777, 0.0, 0.0, 0.0, 0.0, 0.6392481732081897, 0.0, 0.0, 0.21075790790635565, 0.143953089400151, 0.04517962123405222, 0.12446587761719602, 0.011602660433066613, 0.0, 0.021141064793252704, 0.017873704948355638, 0.0, 0.010329409925325224, 0.21730544865000528, 0.03874493610862431, 0.0, 0.0, 0.0, 0.04329986579681618, 0.02617857620219232, 0.0, 0.0, 0.14198488087669728, 0.04624555904799935, 0.33624630483183143, 0.0, 0.18065873234459212, 0.001167765010724762, 0.0, 0.41156050949339695, 0.06138103351330629, 0.0, 0.0, 0.0, 0.0, 0.0, 0.45223330011890606, 0.0, 0.42719481956226096, 0.0, 0.09390028378745956, 0.03159803909732349, 0.0, 0.0, 0.0, 0.14464053921535813, 0.0, 0.355579453624945, 0.27582314245244144, 0.0, 0.0, 0.4779189904559178, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6540512683692249, 0.16386729047093346, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08595593354654336, 0.0868518036911852, 0.1436872279500763, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08976911428083846, 0.0, 0.0, 0.0, 0.06561633035108058, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0209499775034313, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06082234101182034, 0.19585779687130894, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.01528743323594608, 0.0, 0.0, 0.0, 0.011174280569280867, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3922416239543676, 0.0, 0.5308327922857218, 0.38811106643298066, 0.0, 0.5861742359361938, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010357877371534024, 0.03335404406511716, 0.2121541431315042, 0.0, 0.0, 0.0, 0.0, 0.0, 0.022181366862053645, 0.0, 0.0, 0.3232792127186002, 0.21780290259329063, 0.0, 0.0, 0.6724740217065875, 0.33454771410797746, 0.0, 0.0, 0.0, 0.0, 0.1517011050211833, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20421012621580428, 0.0, 0.0, 0.0, 0.09554663093280256, 0.0, 0.9066194809744413, 0.0, 0.6530356828494477, 0.0, 0.0, 0.4162310356447254, 0.2004622291406719, 0.0, 0.06531630990369706, 0.0, 0.0, 0.22516333873266767, 0.08751639468488193, 0.31273858097846424, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10565952264223451, 0.25213753900728575, 0.0, 0.13605306731422323, 0.0, 0.0, 0.20467409186458246, 0.0, 0.0, 0.0, 0.14062561725182204, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06654804138060808, 0.04780210989364991, 0.3312858803709398, 0.0, 0.09056986573031543, 0.0, 0.0, 0.22425218794100035, 0.6978010919630194, 0.5644822411311934, 0.0, 0.0, 0.0, 0.0, 0.25245963204466193, 0.5714387205668741, 0.0, 0.7794778768245345, 0.5229243836029062, 0.6068223768633771, 0.0, 0.0, 0.3439063861094934, 0.0, 0.5825998753106167, 0.07738278703840655, 0.0, 0.0, 0.45088731313609587, 0.020026145653267647, 0.49371220470576765, 0.0, 0.1967497337446331, 0.9333687888834381, 0.2687116640308751, 0.3109501951809905, 0.0, 0.628995837333548, 0.6431918870734405, 0.0, 0.0, 0.4278019777568812, 0.0, 0.0, 0.3426634565816645, 0.0, 0.7642079896603969, 0.15720215492969136, 0.0, 0.5627301734522071, 0.0, 0.0, 0.03992028432745955, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8902694418730629, 0.24785210085431258, 0.0, 0.0, 0.0, 0.19750384789873962, 0.0, 0.0, 0.24837057467209334, 0.0, 0.0, 0.06196917660673224, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9196979517908253, 0.47523150409994275, 0.0, 0.05084636736867684, 0.30281629383729847, 0.0, 0.0, 0.0, 0.0, 0.7797375130571516, 0.0, 0.0, 0.009193696508787878, 0.7164774465476489, 0.37223214885126943, 0.36077619715591613]), 42), 42)),) julia> @finch_code begin Ct .= 0 for j = parallel(_) @@ -1313,5 +1313,5 @@ julia> @finch begin end end end -(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.1619393094464903, 0.0, 0.0, 0.0, 0.0, 0.11373910752308043, 0.0, 0.32533429668145175, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5405512925681031, 0.0, 0.0, 0.5409817971066755, 0.6726532010052559, 0.0, 0.0, 0.0, 0.04498001780375231, 0.0, 0.7446527460595233, 0.0, 0.0, 0.0, 0.0648053115514859, 0.0, 0.20542126000594346, 0.0, 0.2489342378383824, 0.0, 0.0, 0.2446702787341799, 0.0, 0.0, 0.4075132486743765, 0.372693911014397, 0.0, 0.03990868671702989, 0.32865292999993995, 0.0, 0.0, 0.0, 0.037570880212435515, 0.0, 0.0, 0.2585440952996821, 0.0, 0.0, 0.5429032184680616, 0.0, 0.0, 0.0, 0.7310331654112876, 1.6974310666890076, 0.13434284643730737, 0.0, 0.15388431962676646, 0.0, 0.018799628425153446, 0.026448056346556916, 0.020943024178172204, 0.08671614507629592, 0.19272805440861934, 0.07015243227726202, 0.0, 0.1267665206913561, 0.1014023431949165, 0.494724963965631, 0.0, 0.6317423070706343, 0.0, 0.4351905463586081, 0.019451367524410516, 0.11392026534019284, 0.0, 0.7674183972620773, 0.0, 0.0, 0.009728790198518009, 0.0, 0.0, 0.03627546054320975, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0140288190005624, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4229718175600567, 0.0752980218883111, 0.013070459322559402, 0.0, 0.4793455258509991, 0.0, 0.0, 0.0, 0.0, 0.08811633730455204, 0.08467555208376226, 0.0, 0.0, 1.4824413586764027, 0.27442978968992093, 0.0, 0.0028104905637611507, 0.1480443868451215, 0.6744061467564826, 0.043998508948338316, 0.8697701045107844, 0.8469834954000914, 0.0, 0.02425613445444166, 0.0, 0.0, 0.0, 0.9679232213808633, 0.6774894982888419, 0.35310753741950685, 0.0, 0.2841919624705342, 0.0, 0.0, 0.7349602036514661, 0.0, 0.2186035505612502, 0.04416466424315345, 0.0, 0.0, 0.25133653271826356, 0.11160837067772013, 0.0, 0.14048007630402903, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.035048636482553235, 0.038653696504083, 0.10014641420794519, 0.0, 0.0837599459565703, 0.10942537757376403, 0.0, 0.0, 0.0, 0.08204362658289192, 0.0, 0.0, 0.011591138384550418, 0.0, 0.038004261053570694, 0.0066189468466051875, 0.06306237088337384, 0.0, 0.0, 0.03121664575636558, 0.0, 0.0, 0.02910081181829685, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08506408857544866, 0.0, 0.0, 0.0, 0.7712870388819855, 0.2285263236705729, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6966121466049721, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6540220401149287, 0.0, 0.0, 0.2336670223432043, 0.0, 0.0, 0.005339227289024509, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4930665741229495, 0.0, 0.029559863815954657, 0.0, 0.0, 0.10760363562562023, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15061269543615943, 0.6107211710602042, 0.0, 0.0, 0.733057860494869, 0.057362855000467054, 0.17650444882735677, 0.0, 0.0, 0.014677698725170102, 0.0, 0.17821555119599314, 0.0025555492556658746, 0.14808219427948163, 0.0, 0.11979690859781277, 0.0, 0.0, 0.13110894332781436, 0.04449679654819995, 0.0, 0.1133902344080122, 0.0, 0.0, 0.0017495044850376442, 0.013900993801975209, 0.03729472110086185, 0.19173933242455474, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1709634942172136, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13051636625786148, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4357713541613571, 0.0, 0.0, 0.0, 0.0, 0.07073267416682687, 0.0, 0.0, 0.0, 0.0, 0.06443354393704691, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.28238918313491895, 0.0, 0.0, 0.0, 0.28219752132848275, 0.0, 0.0, 0.0, 0.3045252869011713, 0.0, 0.0, 0.019083741024338748, 0.0, 0.06257051306836219, 0.7837995208867943, 0.05061887468267648, 0.0, 0.0, 0.05139533007879884, 0.0, 0.0, 0.04791180451081585, 0.0, 0.5281077501137272, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7571506519409951, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.026654196669850944, 0.0, 0.0, 0.0, 0.0, 0.23843473688023176, 0.0, 0.0, 0.6051386294410329, 0.0, 0.0, 0.0, 0.0, 0.04194764240896927, 0.13628497764809444, 0.0, 0.0, 0.0, 0.0, 0.06043639304510901, 0.04344269031549197, 0.0, 0.7296328391677986, 0.6312346675367022, 0.0, 0.0, 0.22817557354519388, 0.0, 0.05073205279897938, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1594527848545218, 0.1381227206057285, 0.0, 0.0, 0.0, 0.0, 0.4217049712314433, 0.0, 0.0, 0.31027130374464373, 0.0, 0.0, 0.08118863628632204, 0.8304208532182848, 0.983137215831116, 0.0, 0.24897028906526258, 0.14034260442091134, 0.0, 0.691731307052974, 0.7500207108166317, 0.833859795824118, 0.0, 0.05053828036951065, 0.8139843305766208, 0.0, 0.0, 1.3856822465181273, 1.0343729450047436, 0.0, 0.0, 1.09811525132565, 0.0, 0.0, 0.005748580563865145, 0.0, 0.0, 0.8634025361175751, 0.0, 0.14616020357939458, 0.7514377111323272, 0.0, 0.0, 0.1732108049991939, 0.0, 0.0, 0.0, 0.1879649588465491, 0.0, 0.0, 0.0, 0.00817965091901661, 0.0, 0.0, 0.0, 0.5779500058438248, 0.0, 0.0, 0.0, 0.005249336837927155, 0.0, 0.0, 0.0, 0.3064350538312218, 0.0, 0.001890320177282059, 0.45976772975798436, 0.40475012946470096, 0.3442380471075082, 0.017185108496187197, 0.288035784498987, 0.0, 0.0, 0.2827566402954316, 0.0, 0.0, 0.2635916697723135, 0.0, 0.0, 0.0, 0.3588181656747819, 0.0, 0.0, 0.0, 0.17570163169455902, 0.0, 0.2076868163288207, 0.0, 0.0, 0.0, 0.5097341557191223, 0.14587016095283192, 0.0, 0.4172405362928458, 0.0, 0.13951021052730417, 0.0, 0.6033798708626249, 0.0, 0.0, 0.0, 0.0, 0.4512081190066747, 1.1915177253624374, 0.0, 0.53626862172996, 0.26267190873847124, 0.024946529615964698, 0.630282563668714, 0.0, 0.7072072219187049, 0.2557442098535857, 0.0, 0.0, 0.0, 0.027439980552710016, 0.0, 0.2634523244708942, 0.750190928083991, 0.31925762502388877, 0.0, 0.0, 0.0, 0.17667054707398389, 1.689395274403252, 0.0, 0.5386556936239477, 0.21507940395745773, 0.30698899212442304, 0.11255638742238075, 0.12042909174810443, 0.1983506487023661, 0.0, 0.2156156778918424, 0.0, 0.6179686549930762, 0.0, 0.0, 0.0, 0.011162873807723371, 0.003307472295366656, 0.5417377310206691, 0.1038404263557644, 0.0, 0.0, 0.0, 0.010082100558503525, 0.5759566406752274, 0.5373731999014957, 0.24497595431253502, 0.3628321361534925, 0.4271139218413104, 0.0888079037091352, 0.013607634508588288, 0.5254304747208627, 0.0, 0.0, 0.0033818738704913948, 0.0, 0.3894178985059293, 7.727488918331624e-5, 0.4719056234120719, 0.0, 0.0, 0.7548965169480935, 0.0, 0.0, 0.0, 0.0, 0.04295271297559638, 0.3048341885265102, 0.0, 0.16015654700904233, 0.0, 0.03255288417829475, 0.0, 0.0, 0.0, 0.0, 0.16019347860889097, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3426629556463706, 0.0, 0.33591507158653605, 0.0, 0.0, 0.04025140372585128, 0.0, 0.5756230062735465, 0.0, 0.0, 0.0, 0.0, 0.0017523850398583757, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32421546356710995, 0.0, 0.011282618188498251, 0.6937716630434633, 0.2529924781123921, 0.2596235239889639, 0.0, 0.043120476743740394, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2793513283874615, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7775441119273626, 0.14515455310675088, 0.0, 0.13510821830370037, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.44716225485327055, 0.0, 0.0, 0.0, 0.8291790553392753, 0.0, 0.0, 0.26334889102262177, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15479667093058366, 0.0, 0.0, 0.0, 0.36993623982653, 0.0, 0.0, 0.0, 0.0, 0.3623559014178924, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029233403628440607, 0.1427335193249464, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051251957334763225, 0.691166524717783, 0.29938181148714105, 0.5349464228115411, 0.06157899241792075, 0.0, 0.0, 0.2102727260204982, 0.0, 0.60145477594229, 0.0, 0.0, 0.03062034252430008, 0.1635016794080344, 0.7915679370358879, 0.0, 0.07317711878131836, 0.9809574403621903, 0.0, 0.0, 0.44926990137304107, 0.21608537407152922, 0.0, 0.05777727499408966, 0.039929965496851884, 0.0, 0.29915326656993935, 0.31099294960838475, 0.13414679708282617, 0.10949528327933863, 0.0, 0.10753728810972799, 0.0, 0.3797681313373244, 0.5019126906002389, 0.8077076191871431, 0.02575673641821252, 0.0, 0.0, 0.0, 0.0, 0.08748647908145589, 0.0, 0.0, 0.2775216739406583, 0.0, 0.0, 0.0, 0.0, 0.19491911889837882, 0.0, 0.626470449065492, 0.0, 0.1610321350235478, 0.0, 0.6250193931691284, 0.18518836301307043, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5645059221744597, 0.0, 0.30319370972913895, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5299926460898494, 0.0, 0.0, 0.18935417444624433, 0.0, 0.3520383786660897, 0.004326690884129795, 0.4266082560323472, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04753484047689839, 0.0, 0.0, 0.0, 0.2507515224933452, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.011126595947621928, 0.0, 0.0, 0.0, 0.0, 0.07883374294223121, 0.0, 0.0, 0.06158319631443835, 0.0, 0.0, 0.0, 0.0, 0.18599923723367912, 0.0, 0.0, 0.0, 0.0, 0.07225540391146344, 0.0, 0.17222213577613948, 0.0, 0.07109258970520838, 0.30622054435699597, 0.0, 0.0, 0.021600783197372013, 0.0, 0.0, 0.0, 0.0, 0.08747962563792125, 0.0, 0.0, 0.6661127453751955, 0.20906059268184987, 0.0, 0.14050781836020196, 0.0, 0.0, 0.38775347026983786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.016520556870922822, 0.08066242485362363, 0.0, 0.0, 0.008507877750707929, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19963971549104562, 0.0, 0.0, 0.0, 0.0, 0.1517009343251733, 0.5312750255062002, 0.0, 0.0, 0.1147421120346578, 0.0, 0.0, 0.0, 0.0, 0.35500190337758014, 0.0, 0.045597713545061126, 0.0, 0.5209586802357347, 0.021862434298379425, 0.0, 0.0, 0.0, 1.0378291015579089, 0.0, 0.0, 0.0, 0.08585205631703301, 0.0483968201096062, 0.0, 0.025471357792783925, 0.0, 0.22080976260076224, 1.166729214929465, 0.0, 0.677323308302816, 0.18535083381370177, 0.0, 0.0, 0.8704056171514745, 0.0, 0.8935663748182991, 0.015577429284835683, 0.13855228421849528, 0.0, 0.0, 0.1744139155099896, 0.15132491229634354, 0.0, 0.02513332482807071, 0.0, 0.17525145412541498, 0.0, 0.0, 0.0, 0.0, 0.02694350993020697, 0.162823516985682, 0.0, 0.0, 0.6457319525792288, 0.07238426196350153, 0.05745965468198706, 0.0, 0.0, 0.46532195926191927, 0.08460519940877058, 0.22064747420300995, 0.07874956387307873, 0.02873453791303352, 0.04102153493571428, 0.0, 0.0, 0.0, 0.0, 0.49780157894039, 0.0, 0.0, 0.301057479311315, 0.0, 0.0, 0.0016911663416444849, 0.0, 0.2606342751929628, 0.0, 0.0, 0.0, 0.4832976838898257, 0.2663912296088851, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16074512474220395, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0418820657562929, 0.0, 0.04820286684177523, 0.0, 0.1580443847885599, 0.0, 0.1278562139832909, 0.0, 0.0, 0.12981743196566292, 0.0, 0.0, 0.12101853247948517, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13204408757174144, 0.0, 0.0, 0.0, 0.0, 0.0, 0.024933507022188058, 0.0, 0.0, 0.0, 0.22607531711845172, 0.06698435016959209, 0.0, 0.0, 0.38137808720681626, 0.04452538198512276, 0.13682477248336336, 0.20418703285947667, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.19170326048233127, 0.0, 0.0, 0.0684911628398921, 0.0, 0.0, 0.0015650042612973304, 0.0, 0.0, 0.0, 0.0, 0.3663518735291969, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27889642218469224, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09171777647431381, 0.0, 0.031206336760942092, 0.04657190125204274, 0.0, 0.21168995340334643, 0.0, 0.0, 0.2715554536912592, 0.0, 0.0, 0.0476752915188213, 0.0, 0.0, 0.0, 0.0, 0.36410628949886475, 0.021118814521733104, 0.0, 0.25524059151149175, 0.22081888489064375, 0.0, 0.0008303397905156581, 0.0, 0.0, 0.0, 0.0, 0.07229346662213895, 0.0, 0.0, 0.820696989198259, 0.541933064129384, 0.0, 0.6976372073851678, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6559268620540256, 0.0, 0.0, 0.00593765430305966, 0.0, 0.03489392321475427, 0.14772313877299487, 0.20501704987333305, 0.04206924698360076, 0.15444861072003166, 0.0, 0.8226903093195739, 0.0, 0.15641473972332146, 0.790869654262485, 0.6842130952365706, 0.03633117370294634, 0.0, 0.18980663716791113, 0.0, 0.0, 0.038558748063994376, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.40339029653363123, 0.0, 0.0, 0.0, 0.0, 0.43960663038458647, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08136147927839638, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16190486570077617, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2992216626110986, 0.0, 0.0, 0.0, 0.17882109545054858, 0.0, 0.0796930212837386, 0.0, 0.620119218817229, 0.06539128749913568, 0.09575080072237417, 0.0, 0.0, 0.0, 0.31047674992819635, 0.0, 0.0, 0.3258789812741783, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03198183278340688, 0.0, 0.0, 0.05159425685765124, 0.22600144774467618, 0.0, 0.17025710615993656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27035127710875223, 0.6595462305837041, 0.0, 0.0, 0.0, 0.5146584726996519, 0.0, 0.4337121439657544, 0.0, 0.0, 0.006091807521893999, 0.0, 0.0, 0.0, 0.0, 0.012888743397998564, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.336652909816104, 0.0, 0.0, 0.33692102610329455, 0.41892538326879675, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4637663755690806, 0.004049689433712162, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2537974154183676, 0.0, 0.0, 0.0, 0.01941920682276314, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2625647477298457, 0.0, 0.0, 0.0, 0.28333914754514417, 0.0, 0.009497623447163565, 0.0, 0.0, 0.015321911880061054, 0.7292697770823527, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4913667474115824, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8188140725936274, 0.23538609489199455, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004251660745273512, 0.2915534718195699, 0.8234990979680312, 0.15784851698528854, 0.31856705993041073, 0.0, 0.0, 0.0, 0.0, 0.8168645454274115, 0.2887084121601819, 0.0, 0.0, 0.0, 0.020685054965967595, 0.784321469374656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5719438351419199, 0.0, 0.0, 0.0, 0.0, 0.23810583942791758, 0.0, 0.0, 0.13190421809771516, 0.2355353163505223, 0.21414939137204708, 0.0, 0.13824109301205073, 0.0, 0.0, 0.4059138329547745, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3839879400284894, 0.7642606292584734, 0.17337082964447778, 0.43085204172578645, 0.5071846921436626, 0.0, 0.0, 0.0, 0.0, 0.0064224562854441995, 0.45947466920879537, 0.0, 0.048013668076727356, 0.008826989297459209, 0.0, 0.10254269883954115, 0.0, 0.449628221574638, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3130138916400048, 0.0, 0.0, 0.0, 0.0, 0.2198473045188841, 0.0, 0.7854658854954149, 0.0, 0.0, 0.0, 0.27482511606730614, 0.0, 0.0, 0.0, 0.10051459327881847, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03619595572786272, 0.2919384825550201, 0.0, 0.27020767480793234, 0.32906141180848986, 0.4014761358710767, 0.0, 0.0, 0.22194819820968317, 0.0, 0.397060529897469, 0.20690476484626705, 0.4811671410392035, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10602724763101144, 0.0, 0.9180290974697203, 0.32581440887276836, 0.11505868376784396, 0.5289668394733107, 0.0, 0.5268986674479775, 0.2483018891728648, 0.0, 0.0, 0.014289568621041568, 0.0, 0.0, 0.0, 0.0, 1.010481071564644, 0.06469540823739603, 0.19880648111582097, 0.580377081863938, 0.3701240890884847, 0.00033976241032705203, 0.5120222312956857, 0.54263963710411, 0.24775903677393285, 0.13070835967347635, 0.9915175816548458, 0.2899273698579516, 0.0, 0.0, 1.1703372022756595, 0.02329003991510475, 0.11859776061629382, 0.69977713771051, 0.6054053013517017, 0.707408250006164, 0.0, 0.2196427786747048, 0.5323095043727097, 0.027197936547729912, 0.0, 0.0, 0.6744130710240275, 0.0, 0.0, 0.009472629890788111, 0.0, 0.0, 0.0, 0.0, 0.11454144616825819, 0.0, 0.0, 0.0, 1.3982199856641506, 0.2538753491205552, 0.20096391172061562, 0.0, 0.0, 0.04239072289345119, 0.0, 0.773883065549572, 0.0, 0.0, 0.41373255777296347, 0.0, 0.0, 0.0, 0.0, 0.7328658795072667, 0.0, 0.0, 0.8143261048934798, 0.0, 0.0, 0.005931475071506779, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5479468542821576, 0.0, 0.32433512795769415, 0.7968405650512658, 0.0, 0.0, 0.2823749754870304, 0.0, 0.08888138290002096, 0.0, 0.0, 0.0, 0.17925820791427197, 0.2000876096746871, 0.0, 0.0, 0.40815111826084144, 0.16385977895936904, 0.06986036185280928, 0.0, 0.0, 0.0, 0.0, 0.05375441115395932, 0.0, 0.1762464226118615, 0.0, 0.3587964347388992, 0.0, 0.8015475518237312, 0.175514484083294, 0.0, 0.0, 0.13495628742382593, 0.0, 0.3105505922199702, 0.7248528773530782, 0.0, 0.18705292898123585, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1748071953278316, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7043431257504623, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13971141189132677, 0.0, 0.0, 0.0, 0.0, 0.0, 0.031464801155366616, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16845401890236414, 0.14573633601571054, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13998624971109908, 0.0, 0.07426203609200491, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2049851695927226, 0.0, 0.0, 0.17338949919280155, 0.0, 0.0, 0.18945472552918335, 0.0, 0.0, 0.0, 0.0, 0.0, 0.036320374032721404, 0.15648907735824633, 0.0, 0.05859334953381536, 0.0, 0.0, 0.0, 0.0, 0.5224897007715829, 0.0, 0.0, 0.0, 0.0, 0.08480845151311803, 0.0, 0.0, 0.0, 0.0, 0.07725579657733653, 0.0, 0.14447765770967222, 0.0, 0.0, 0.0, 0.15678431253622274, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.255601945951803, 0.0, 0.0, 0.2867970808516741, 0.3376079838842544, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.29929546323980694, 0.0, 0.0, 0.0]), 42), 42)),) +(Ct = Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}([0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.70856859734722, 0.0, 0.0, 0.0, 0.0, 0.40683416426697433, 0.0, 0.0, 0.5116135014596547, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.11665081191597346, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6815260724911955, 0.0, 0.012792585308225086, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.23414421666297028, 0.0, 0.049360715516608075, 0.0, 0.17114666211685992, 0.0, 0.0, 0.016462013473269064, 0.10889740119368015, 0.0, 0.0, 0.0, 0.00577445736315422, 0.03699291283586617, 0.0, 0.054643694670994745, 0.0, 0.0, 0.0, 0.08011353665096754, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1586425298490503, 0.5528778968703049, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22133004329744424, 0.198518145547811, 0.038821202773921835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18278114382714625, 0.1962641247777959, 0.33892974018746314, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.013014677888550407, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6923776912647246, 0.0, 0.0, 0.0, 0.0, 0.03372992996786747, 0.0, 0.0, 0.0, 0.16613962476105457, 0.0, 0.21040813690603985, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12848588404681333, 0.44877210624067243, 0.0, 0.0, 0.00922143015221846, 0.0, 0.334367843457963, 0.0, 0.3344728737871945, 0.0, 0.007609184274463018, 0.0, 0.0783652603407444, 0.0, 0.008880000989208168, 0.6489339658812214, 0.0, 0.0, 0.4325454998052285, 0.24409841671258664, 0.0, 0.5857475361200408, 0.0, 0.006543890265716072, 0.0, 0.0, 0.0, 0.008425346810589148, 0.0, 0.0, 0.16622566484891482, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27228959440031625, 0.16863240701914226, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16867493346874554, 0.42330165278515836, 0.0, 0.0, 0.6457463733709866, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12409061480277174, 0.0, 0.14869580809977814, 0.0, 0.0, 0.0, 0.0, 0.14872661472502066, 0.5062551989716859, 0.06509123699478471, 0.0, 0.026886171078575067, 0.0, 0.3503937118835625, 0.0, 0.13397275360612415, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07224002362266076, 0.0, 0.0, 0.014356019852976252, 0.2658719803791635, 0.13166323290951196, 0.0, 0.0, 0.0, 0.0, 0.020308821426184575, 0.025635708510132263, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.007980130035150811, 0.4090538905999397, 0.0, 0.0, 0.008918289569362796, 0.31893009912431536, 0.0, 0.0, 0.0, 0.009525001505142072, 0.0, 0.0, 0.013278407346240287, 0.021967736559129595, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12136922915980554, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.279484838006678, 0.2506790805406071, 0.0, 0.0, 0.10182245842840729, 0.0, 0.0, 0.5745756063332743, 0.0, 0.5180568530499269, 0.0, 0.19018853437509187, 0.2984452378932974, 0.0, 0.0, 0.0, 0.2447378349547936, 0.0, 0.48522550177156104, 0.5906428332019245, 0.0, 0.0, 0.756905839792281, 0.0, 0.4128008966782496, 0.7173389246941403, 0.0, 0.4558370427008323, 0.6596592042653375, 0.33014948101925834, 0.0, 0.0, 0.0, 0.0, 0.17629318543732997, 0.5676926328184286, 0.6751757284159318, 0.18305092512120225, 0.0, 0.5526511646802545, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6816784313112039, 0.0, 0.0, 0.0, 0.0, 0.4384965381282249, 0.0, 0.5249476708016299, 0.5514304573066787, 0.0, 0.0, 0.0278361825874964, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.38619300372291254, 0.0, 0.5997636810868653, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20257599957103595, 0.0, 0.10844521538627999, 0.0, 1.2226089817686585, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04229463432907405, 0.0, 0.0, 0.0, 0.0, 0.19946965003853376, 0.048044013732540566, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.036066754029278635, 0.0, 0.16231330637401103, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6062852141104628, 0.40481276616279827, 0.0, 0.0, 0.2539845497787725, 0.0, 0.0, 0.5691049256163461, 0.572636917198234, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.026986118300396385, 0.0, 0.0, 0.2578776387682179, 0.2201878278780288, 0.3521973225117564, 0.49204059164875263, 0.20695213801377368, 0.3889153033164169, 0.12024801465448598, 0.5015222202004627, 0.0, 0.0, 0.0, 0.25511838171251733, 0.3395573400007252, 0.0, 0.14076018335068016, 0.006079069440287111, 0.3120090695218348, 0.02735798901473654, 0.23564550369089346, 0.0, 0.5201790908279286, 0.42693711336544043, 0.0, 0.0, 0.32942094250755716, 0.0, 0.0, 0.0, 0.0, 0.42208957099917227, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27253622974111436, 0.20091824181940837, 0.0, 0.0, 0.014451665708310772, 0.0648234167882922, 0.0, 0.0, 0.0, 0.0, 0.43998592755822313, 0.200499194569837, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10517105271620596, 0.4525079677294799, 0.0, 0.0, 0.0, 0.3992933674102322, 0.0, 0.6336315500314595, 0.5683248347075297, 0.0, 0.03911423543998137, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5618719435725092, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13717215169360888, 0.6023639264726295, 0.0, 0.16451246906039718, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2428824655720991, 0.0, 0.0, 0.0, 0.1307489669067023, 0.016490708613327746, 0.0, 0.5332965109179645, 0.0, 0.72835164827528, 0.5456771996801212, 0.20306669911566266, 0.8042852233793947, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08986996958215537, 0.0, 0.09372773893140769, 0.2910950907401526, 0.0, 0.0, 0.11400417325056827, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15073719147466486, 0.0, 0.0062702773417321524, 0.0, 0.11018067217476075, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03517847753788876, 0.0, 0.0, 0.0, 0.0, 0.0, 0.012565073058016527, 0.0, 0.013511533493035587, 0.0, 0.0, 0.0, 0.1160032767395455, 0.3288776375406247, 0.009384967607632352, 0.013704851364696426, 0.0, 0.0, 0.0, 0.10679904950368906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5396299966121684, 0.0, 0.0, 0.0, 0.4120885163537877, 0.0, 0.0, 0.0, 0.0, 0.1374333138690627, 0.0, 0.0, 0.0, 0.0, 0.0, 0.308835769631579, 0.0, 0.0, 0.2935183046180839, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21641442424094412, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16667427577804808, 0.0, 0.0, 0.0, 0.0, 0.1072149118509185, 0.0, 0.0, 0.13482790109225204, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32702264908263307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17999984836884408, 0.0, 0.0, 0.0, 0.0, 0.17960575635997003, 0.0, 0.0, 0.0, 0.0, 0.08691531027429766, 0.0, 0.2893303365574358, 0.0, 0.21730094701941294, 0.07940443022930238, 0.0, 0.0, 0.01060094130869171, 0.0, 0.0, 0.21897146914670435, 0.3193413479843402, 0.11502306512986679, 0.16078084781731777, 0.0, 0.0, 0.029138065953053547, 0.12899773650646262, 0.0, 0.0, 0.0, 0.0, 0.35209003333845906, 0.0, 0.0, 0.42881832168904727, 0.0, 0.07551665376676242, 0.0, 0.10828996414360535, 0.0, 0.0, 0.0, 0.06175478190339224, 0.07317612880730584, 0.0, 0.4573326969055594, 0.13616590004764864, 0.1733951270114995, 0.0, 0.0, 0.0, 0.0, 0.004682414366264115, 0.0, 0.0, 0.014457116882680743, 0.477538324169661, 0.6690522150262886, 0.0, 0.0, 0.35074798851029604, 0.0, 0.6171788496488323, 0.0, 0.0, 0.0, 0.4598571719367441, 0.020424541646230095, 0.5014147387061915, 0.0, 0.0, 0.18767693158032267, 0.0, 0.08703683411330847, 0.0, 0.3388800152965881, 0.004390191394809013, 0.2131890539109787, 0.0, 0.43631258167790793, 0.0, 0.0, 0.0, 0.0, 0.011243656021000366, 0.0, 0.0, 0.004302223899340062, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3252052607129126, 0.10943362605720088, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4600533876598886, 0.0, 0.0, 0.0, 0.6238654988124779, 0.0, 0.0, 0.0, 0.0, 0.0, 0.17327928789102656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3007942289792172, 0.49763260068933673, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1811653464990684, 0.0, 0.7596663692737102, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24115083978451807, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4132016125575898, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.30212649550849624, 0.45064666528381636, 0.0, 0.0, 1.0295831107021076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4924133218118872, 0.0, 0.0, 0.6123145833841932, 1.0074416855456372, 0.8974627446983252, 0.0, 0.0, 0.39387754214687604, 0.6443411524082342, 0.0, 0.6700619016074552, 0.0, 0.0, 0.4377096051189058, 0.3977735630344448, 0.0, 0.0, 0.0, 0.054395363429349475, 0.46912699721752377, 0.09054692381782561, 0.0, 0.6320539215802606, 0.33393006705956935, 0.614294006786966, 0.0, 0.0, 0.3986581318369477, 0.630705395059908, 0.0, 0.4266820903955834, 0.6230830913144384, 0.0, 1.0831760350408295, 0.21088758697054613, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7135848094649876, 0.06891111903866448, 0.0, 0.0, 0.0, 0.32920907856114856, 0.5438621275845595, 0.0, 0.4139962279186794, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.13809169802867077, 0.0, 0.14849341459532064, 0.0, 0.0, 0.0, 0.5533499952652239, 0.0, 0.10314194807289108, 0.15061800177708015, 0.0, 0.5514890096422472, 0.23190068111070972, 0.0, 0.701822721136001, 0.6294877235260824, 0.0, 0.0, 0.0, 1.1059687974440209, 0.0, 0.0, 0.0, 0.96169924491107, 0.0, 0.0, 0.0, 0.0, 0.06628312350990566, 0.0, 0.37743722057381907, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08765206247905213, 0.0, 0.5218343219200703, 0.0, 0.0, 0.0, 0.41461579287108996, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6671900885778136, 0.0, 0.0, 0.0, 0.028262864260027967, 0.7909490968152504, 0.04511006432931489, 0.0, 0.0, 0.0, 0.4564818142302977, 0.35113439772465294, 0.0, 0.0, 0.0, 0.03776705986522304, 0.6129906961879193, 0.0, 0.0, 0.0, 0.0, 0.0, 0.42034814190539166, 0.0, 0.0, 0.21638060933821013, 0.0, 0.0, 0.0, 0.2526638526129318, 0.03715346614099295, 0.6358424325058142, 0.0, 0.0, 0.04152129953915335, 0.04614236094065058, 0.0, 0.0, 0.07015688762319212, 0.05740172594394938, 0.18351207696535793, 0.0, 0.0, 0.008864400691370657, 0.0, 0.8651249823989057, 0.407678395491645, 0.845679782901505, 0.0, 0.0, 0.0, 0.0, 0.4753420456230014, 1.6107190368773618, 0.0, 0.0, 0.0638102435424578, 0.24041718723542044, 0.5177820553003522, 0.44619181405158337, 0.4489609795607919, 0.0, 0.07301898938869086, 0.0902695074635508, 0.4268753686592877, 0.0, 0.0, 0.0, 0.16408594940133228, 0.0, 0.0, 0.6736439849461895, 0.031382854877976686, 0.034000045192845295, 0.0, 0.0, 0.8630676095443404, 0.3932053636261741, 0.0, 0.0, 0.0, 0.23747714078691665, 0.2179752640521007, 0.0, 0.059020425946533776, 0.23507519209688904, 0.0, 0.6184935143504988, 0.18475168643298573, 0.3255150538360457, 0.0, 0.0, 0.10559996237493433, 0.258855010743052, 0.0, 0.0, 0.0, 0.0, 0.5931453366617909, 0.0, 0.012879882724963071, 0.34456425817306313, 0.0, 0.10363371305008902, 0.0, 0.0, 0.13032437159832005, 0.0, 0.0, 0.9136517678658531, 0.11645026631438779, 0.0, 0.0, 1.006195673838974, 0.0, 0.49183662858528426, 0.5242175629103283, 0.0, 0.0, 0.5842253265103485, 0.09175087532086124, 0.0, 0.0, 0.6346229344595797, 0.8483440750859271, 0.0, 0.0, 0.43168828228976236, 1.1746392457903614, 0.9786548179849323, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.22466432888463708, 0.0, 0.0, 0.23383689086971213, 0.07868759200794351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5047067971651431, 0.0, 0.04466167239654772, 0.0, 0.18031282035336027, 0.06880056169195574, 0.0, 0.039760598424459205, 0.2052193360923158, 0.0, 0.1245954319549744, 0.0, 0.0, 0.3371869924989234, 0.10076818165067654, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21628428501390357, 0.41878760793751535, 0.0, 0.2743772579349106, 0.0, 0.0, 0.0, 0.23737336558608516, 0.0, 0.5609891075534331, 0.0, 0.0, 0.0, 0.0, 0.11206304892649907, 0.03770992438488979, 0.0, 0.0, 0.17383517173220803, 0.252655932334268, 0.0, 0.1585306005724301, 0.0, 0.1865298137691172, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05971061253533409, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.15913149160221682, 0.0, 0.4030910369398146, 0.0, 0.32022434202130456, 0.23687245172165972, 0.0, 0.3599325265793679, 0.0, 0.4765964362382492, 0.0, 0.0, 0.0, 0.0, 0.6107120779202261, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.573260313114729, 0.5768180939544553, 0.0, 0.17499066339826644, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7201822598869417, 0.0, 0.0, 0.0, 0.0, 0.08725982492406978, 0.5051841445138487, 0.0, 0.0, 0.0, 0.2569811590076317, 0.3964028116744446, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31198143094865527, 0.0, 0.0, 0.0, 0.0, 0.0, 0.42812611727229755, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.40187139064927635, 0.40436549376609193, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5533450612442088, 0.3541481069684905, 0.0, 0.0, 0.0, 0.1801509251180122, 0.0, 0.0, 0.0, 0.08899148634361333, 0.0, 0.4004935508153472, 0.1664002225353232, 0.6660561411338942, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5274372110974553, 0.0, 0.0, 0.11745018036413006, 0.03952272816910389, 0.654574176319042, 0.0, 0.0, 0.0, 0.0, 0.29642163335908794, 0.1274499525156547, 0.03345490004078419, 0.0, 0.0, 0.07653915037041417, 0.0, 0.02978363268713748, 0.15372448023095572, 0.03967384765850083, 0.06258104057589436, 0.0, 0.0, 0.044337981986606795, 0.07548283043416787, 0.0, 0.0, 0.0, 0.04735429836324166, 0.0, 0.0, 0.10863396357319674, 0.1797235339241024, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2053113311622715, 0.0, 0.0, 0.6339058613302375, 0.26881844559242324, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.047384735026192754, 0.0, 0.09394657688969027, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.41199723535819494, 0.0, 0.0, 0.19249813639294353, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4930042077083581, 0.01569004651529754, 0.0, 0.1886409972802957, 0.0, 0.6504613027483894, 0.0, 0.0, 0.0, 0.4491308783325726, 0.0, 0.710600063326777, 0.0, 0.0, 0.0, 0.0, 0.6392481732081897, 0.0, 0.0, 0.21075790790635565, 0.143953089400151, 0.04517962123405222, 0.12446587761719602, 0.011602660433066613, 0.0, 0.021141064793252704, 0.017873704948355638, 0.0, 0.010329409925325224, 0.21730544865000528, 0.03874493610862431, 0.0, 0.0, 0.0, 0.04329986579681618, 0.02617857620219232, 0.0, 0.0, 0.14198488087669728, 0.04624555904799935, 0.33624630483183143, 0.0, 0.18065873234459212, 0.001167765010724762, 0.0, 0.41156050949339695, 0.06138103351330629, 0.0, 0.0, 0.0, 0.0, 0.0, 0.45223330011890606, 0.0, 0.42719481956226096, 0.0, 0.09390028378745956, 0.03159803909732349, 0.0, 0.0, 0.0, 0.14464053921535813, 0.0, 0.355579453624945, 0.27582314245244144, 0.0, 0.0, 0.4779189904559178, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6540512683692249, 0.16386729047093346, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08595593354654336, 0.0868518036911852, 0.1436872279500763, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08976911428083846, 0.0, 0.0, 0.0, 0.06561633035108058, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0209499775034313, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06082234101182034, 0.19585779687130894, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.01528743323594608, 0.0, 0.0, 0.0, 0.011174280569280867, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3922416239543676, 0.0, 0.5308327922857218, 0.38811106643298066, 0.0, 0.5861742359361938, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010357877371534024, 0.03335404406511716, 0.2121541431315042, 0.0, 0.0, 0.0, 0.0, 0.0, 0.022181366862053645, 0.0, 0.0, 0.3232792127186002, 0.21780290259329063, 0.0, 0.0, 0.6724740217065875, 0.33454771410797746, 0.0, 0.0, 0.0, 0.0, 0.1517011050211833, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20421012621580428, 0.0, 0.0, 0.0, 0.09554663093280256, 0.0, 0.9066194809744413, 0.0, 0.6530356828494477, 0.0, 0.0, 0.4162310356447254, 0.2004622291406719, 0.0, 0.06531630990369706, 0.0, 0.0, 0.22516333873266767, 0.08751639468488193, 0.31273858097846424, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10565952264223451, 0.25213753900728575, 0.0, 0.13605306731422323, 0.0, 0.0, 0.20467409186458246, 0.0, 0.0, 0.0, 0.14062561725182204, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06654804138060808, 0.04780210989364991, 0.3312858803709398, 0.0, 0.09056986573031543, 0.0, 0.0, 0.22425218794100035, 0.6978010919630194, 0.5644822411311934, 0.0, 0.0, 0.0, 0.0, 0.25245963204466193, 0.5714387205668741, 0.0, 0.7794778768245345, 0.5229243836029062, 0.6068223768633771, 0.0, 0.0, 0.3439063861094934, 0.0, 0.5825998753106167, 0.07738278703840655, 0.0, 0.0, 0.45088731313609587, 0.020026145653267647, 0.49371220470576765, 0.0, 0.1967497337446331, 0.9333687888834381, 0.2687116640308751, 0.3109501951809905, 0.0, 0.628995837333548, 0.6431918870734405, 0.0, 0.0, 0.4278019777568812, 0.0, 0.0, 0.3426634565816645, 0.0, 0.7642079896603969, 0.15720215492969136, 0.0, 0.5627301734522071, 0.0, 0.0, 0.03992028432745955, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8902694418730629, 0.24785210085431258, 0.0, 0.0, 0.0, 0.19750384789873962, 0.0, 0.0, 0.24837057467209334, 0.0, 0.0, 0.06196917660673224, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9196979517908253, 0.47523150409994275, 0.0, 0.05084636736867684, 0.30281629383729847, 0.0, 0.0, 0.0, 0.0, 0.7797375130571516, 0.0, 0.0, 0.009193696508787878, 0.7164774465476489, 0.37223214885126943, 0.36077619715591613]), 42), 42)),) From d5244bdaa29c83e5964eaece1003364d0231cc83 Mon Sep 17 00:00:00 2001 From: teocollin1995 Date: Thu, 29 Feb 2024 13:15:00 -0500 Subject: [PATCH 33/41] add docs --- src/transforms/concurrent.jl | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/transforms/concurrent.jl b/src/transforms/concurrent.jl index 861939fac..4d450d7de 100644 --- a/src/transforms/concurrent.jl +++ b/src/transforms/concurrent.jl @@ -15,12 +15,21 @@ function is_injective end """ is_atomic(tns, ctx) - Returns a tuple (below, overall) where below is a vector, indicating which indicies are safe to write to out of order, - and overall is a boolean that indicates if this is true for the entire tensor. - + Returns a tuple (below, overall) where below is a vector, indicating which indicies have an atomic that guards them, + and overall is a boolean that indicates is the last level had an atomic guarding it. """ function is_atomic end +""" + is_concurrent(tns, ctx) + + Returns a vector of booleans, one for each dimension of the tensor, indicating + whether the index can be written to without any state. So if a matrix returns [true, false], + then we can write to A[i, j] and A[i+1, j] without any shared state between the two, but + we can't write to A[i, j] and A[i, j+1] without carrying over state. +""" +function is_concurrent end + """ ensure_concurrent(root, ctx) From 88fd4835a25459a330f715c3739d12ef9673159e Mon Sep 17 00:00:00 2001 From: Willow Ahrens Date: Thu, 29 Feb 2024 16:51:49 -0500 Subject: [PATCH 34/41] smallnotes --- src/transforms/concurrent.jl | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/transforms/concurrent.jl b/src/transforms/concurrent.jl index 4d450d7de..29c4a8fb0 100644 --- a/src/transforms/concurrent.jl +++ b/src/transforms/concurrent.jl @@ -24,9 +24,9 @@ function is_atomic end is_concurrent(tns, ctx) Returns a vector of booleans, one for each dimension of the tensor, indicating - whether the index can be written to without any state. So if a matrix returns [true, false], - then we can write to A[i, j] and A[i+1, j] without any shared state between the two, but - we can't write to A[i, j] and A[i, j+1] without carrying over state. + whether the index can be written to without any execution state. So if a matrix returns [true, false], + then we can write to A[i, j] and A[i_2, j] without any shared execution state between the two, but + we can't write to A[i, j] and A[i, j_2] without carrying over execution state. """ function is_concurrent end @@ -112,6 +112,7 @@ function ensure_concurrent(root, ctx) for loc in 1:length(i) if i[loc] in indicies_in_region push!(locations_with_parallel_vars, loc + 1) + #off by one should go away end end if length(locations_with_parallel_vars) == 0 @@ -124,6 +125,7 @@ function ensure_concurrent(root, ctx) end end + #TODO If we could prove that some indices do not depend on the parallel index, we could exempt them from this somehow. if all(injectivity[[x-1 for x in locations_with_parallel_vars]]) && all(concurrencyInfo[[x-1 for x in locations_with_parallel_vars]]) continue # We pass due to injectivity! end @@ -134,6 +136,8 @@ function ensure_concurrent(root, ctx) else throw(FinchConcurrencyError("Assignment $(acc) requires injectivity or atomics in at least places $(locations_with_parallel_vars), but does not have them, due to injectivity=$(injectivity) and atomics=$(below) and concurrency=$(concurrencyInfo).")) end + + #TODO perhaps if the last access is the parallel index, we only need injectivity or atomics on the parallel one, and concurrency on that one only else throw(FinchConcurrencyError("Assignment $(acc) is invalid! ")) From ca45a33cb3e184107040abf02960b4ac77725568 Mon Sep 17 00:00:00 2001 From: Willow Ahrens Date: Tue, 30 Apr 2024 16:47:12 -0400 Subject: [PATCH 35/41] prepare for merge --- src/interface/abstractarrays.jl | 6 +++--- src/looplets/unfurl.jl | 4 ++-- src/tensors/combinators/offset.jl | 6 +++--- src/tensors/combinators/permissive.jl | 6 +++--- src/tensors/combinators/product.jl | 12 ++++++------ src/tensors/combinators/protocolized.jl | 6 +++--- src/tensors/combinators/roots.jl | 6 +++--- src/tensors/combinators/scale.jl | 6 +++--- src/tensors/combinators/swizzle.jl | 4 ++-- src/tensors/combinators/toeplitz.jl | 12 ++++++------ src/tensors/combinators/unfurled.jl | 6 +++--- src/tensors/combinators/windowed.jl | 6 +++--- src/tensors/fibers.jl | 6 +++--- src/tensors/levels/abstractlevel.jl | 2 +- src/tensors/levels/atomicelementlevels.jl | 6 +++--- src/tensors/levels/atomiclevels.jl | 10 +++++----- src/tensors/levels/denselevels.jl | 10 +++++----- src/tensors/levels/elementlevels.jl | 6 +++--- src/tensors/levels/patternlevels.jl | 6 +++--- src/tensors/levels/repeatrlelevels.jl | 6 +++--- src/tensors/levels/separatelevels.jl | 10 +++++----- src/tensors/levels/singlelistlevels.jl | 10 +++++----- src/tensors/levels/singlerlelevels.jl | 10 +++++----- src/tensors/levels/sparsebytemaplevels.jl | 10 +++++----- src/tensors/levels/sparsecoolevels.jl | 10 +++++----- src/tensors/levels/sparsehashlevels.jl | 10 +++++----- src/tensors/levels/sparselevels.jl | 10 +++++----- src/tensors/levels/sparselistlevels.jl | 10 +++++----- src/tensors/levels/sparserlelevels.jl | 10 +++++----- src/tensors/levels/sparsetrianglelevels.jl | 10 +++++----- src/tensors/levels/sparsevbllevels.jl | 10 +++++----- src/transforms/concurrent.jl | 22 +++++++++++----------- 32 files changed, 132 insertions(+), 132 deletions(-) diff --git a/src/interface/abstractarrays.jl b/src/interface/abstractarrays.jl index e1128ac9f..408ebe358 100644 --- a/src/interface/abstractarrays.jl +++ b/src/interface/abstractarrays.jl @@ -113,6 +113,6 @@ Base.getindex(arr::AsArray{T, N}, i::Vararg{Any, N}) where {T, N} = arr.fbr[i... Base.setindex!(arr::AsArray{T, N}, v, i::Vararg{Int, N}) where {T, N} = arr.fbr[i...] = v Base.setindex!(arr::AsArray{T, N}, v, i::Vararg{Any, N}) where {T, N} = arr.fbr[i...] = v -is_injective(tns::VirtualAbstractArray, ctx) = [true for _ in tns.ndims] -is_atomic(tns::VirtualAbstractArray, ctx) = [false, [false for _ in tns.ndims]...] -# is_atomic(tns::VirtualAbstractArray, ctx) = true \ No newline at end of file +is_injective(ctx, tns::VirtualAbstractArray) = [true for _ in tns.ndims] +is_atomic(ctx, tns::VirtualAbstractArray) = [false, [false for _ in tns.ndims]...] +# is_atomic(ctx, tns::VirtualAbstractArray) = true \ No newline at end of file diff --git a/src/looplets/unfurl.jl b/src/looplets/unfurl.jl index 7d54b7770..c27792e82 100644 --- a/src/looplets/unfurl.jl +++ b/src/looplets/unfurl.jl @@ -27,5 +27,5 @@ end unfurl(tns, ctx, ext, mode, protos...) = tns instantiate(tns::Furlable, ctx, mode, protos) = tns -is_injective(tns:: Furlable, ctx) = is_injective(tns.body, ctx) -is_atomic(tns:: Furlable, ctx) = is_atomic(tns.body, ctx) \ No newline at end of file +is_injective(ctx, tns:: Furlable) = is_injective(ctx, tns.body) +is_atomic(ctx, tns:: Furlable) = is_atomic(ctx, tns.body) \ No newline at end of file diff --git a/src/tensors/combinators/offset.jl b/src/tensors/combinators/offset.jl index 4e5266e6d..01f187d8b 100644 --- a/src/tensors/combinators/offset.jl +++ b/src/tensors/combinators/offset.jl @@ -15,9 +15,9 @@ struct VirtualOffsetArray <: AbstractVirtualCombinator delta end -is_injective(lvl::VirtualOffsetArray, ctx) = is_injective(lvl.body, ctx) -is_atomic(lvl::VirtualOffsetArray, ctx) = is_atomic(lvl.body, ctx) -is_concurrent(lvl::VirtualOffsetArray, ctx) = is_concurrent(lvl.body, ctx) +is_injective(ctx, lvl::VirtualOffsetArray) = is_injective(ctx, lvl.body) +is_atomic(ctx, lvl::VirtualOffsetArray) = is_atomic(ctx, lvl.body) +is_concurrent(ctx, lvl::VirtualOffsetArray) = is_concurrent(ctx, lvl.body) Base.show(io::IO, ex::VirtualOffsetArray) = Base.show(io, MIME"text/plain"(), ex) function Base.show(io::IO, mime::MIME"text/plain", ex::VirtualOffsetArray) diff --git a/src/tensors/combinators/permissive.jl b/src/tensors/combinators/permissive.jl index 568b59038..4e523a90a 100644 --- a/src/tensors/combinators/permissive.jl +++ b/src/tensors/combinators/permissive.jl @@ -17,9 +17,9 @@ struct VirtualPermissiveArray <: AbstractVirtualCombinator dims end -is_injective(lvl::VirtualPermissiveArray, ctx) = is_injective(lvl.body, ctx) -is_atomic(lvl::VirtualPermissiveArray, ctx) = is_atomic(lvl.body, ctx) -is_concurrent(lvl::VirtualPermissiveArray, ctx) = is_concurrent(lvl.body, ctx) +is_injective(ctx, lvl::VirtualPermissiveArray) = is_injective(ctx, lvl.body) +is_atomic(ctx, lvl::VirtualPermissiveArray) = is_atomic(ctx, lvl.body) +is_concurrent(ctx, lvl::VirtualPermissiveArray) = is_concurrent(ctx, lvl.body) Base.show(io::IO, ex::VirtualPermissiveArray) = Base.show(io, MIME"text/plain"(), ex) diff --git a/src/tensors/combinators/product.jl b/src/tensors/combinators/product.jl index 9e159741b..a4f3bf32c 100644 --- a/src/tensors/combinators/product.jl +++ b/src/tensors/combinators/product.jl @@ -17,16 +17,16 @@ struct VirtualProductArray <: AbstractVirtualCombinator dim end -function is_injective(lvl::VirtualProductArray, ctx) - sub = is_injective(lvl.body, ctx) +function is_injective(ctx, lvl::VirtualProductArray) + sub = is_injective(ctx, lvl.body) return [sub[1:lvl.dim]..., false, sub[lvl.dim + 1:end]...] end -function is_concurrent(lvl::VirtualProductArray, ctx) - sub = is_concurrent(lvl.body, ctx) +function is_concurrent(ctx, lvl::VirtualProductArray) + sub = is_concurrent(ctx, lvl.body) return [sub[1:lvl.dim]..., false, sub[lvl.dim + 1:end]...] end -function is_atomic(lvl::VirtualProductArray, ctx) - (below, overall) = is_atomic(lvl.body, ctx) +function is_atomic(ctx, lvl::VirtualProductArray) + (below, overall) = is_atomic(ctx, lvl.body) return ([below[1:lvl.dim]..., below[lvl.dim] && below[lvl.dim+1], below[lvl.dim + 1:end]... ], overall) end diff --git a/src/tensors/combinators/protocolized.jl b/src/tensors/combinators/protocolized.jl index 26aaafe95..616ab2d40 100644 --- a/src/tensors/combinators/protocolized.jl +++ b/src/tensors/combinators/protocolized.jl @@ -15,9 +15,9 @@ struct VirtualProtocolizedArray <: AbstractVirtualCombinator protos end -is_injective(lvl::VirtualProtocolizedArray, ctx) = is_injective(lvl.body, ctx) -is_atomic(lvl::VirtualProtocolizedArray, ctx) = is_atomic(lvl.body, ctx) -is_concurrent(lvl::VirtualProtocolizedArray, ctx) = is_concurrent(lvl.body, ctx) +is_injective(ctx, lvl::VirtualProtocolizedArray) = is_injective(ctx, lvl.body) +is_atomic(ctx, lvl::VirtualProtocolizedArray) = is_atomic(ctx, lvl.body) +is_concurrent(ctx, lvl::VirtualProtocolizedArray) = is_concurrent(ctx, lvl.body) Base.:(==)(a::VirtualProtocolizedArray, b::VirtualProtocolizedArray) = a.body == b.body && a.protos == b.protos diff --git a/src/tensors/combinators/roots.jl b/src/tensors/combinators/roots.jl index a7f8d689d..c01599bee 100644 --- a/src/tensors/combinators/roots.jl +++ b/src/tensors/combinators/roots.jl @@ -28,9 +28,9 @@ end lower_access(ctx::AbstractCompiler, node, tns::FinchNode) = lower_access(ctx, node, resolve(tns, ctx)) -is_injective(lvl::FinchNode, ctx) = is_injective(resolve(lvl, ctx), ctx) -is_atomic(lvl::FinchNode, ctx) = is_atomic(resolve(lvl, ctx), ctx) -is_concurrent(lvl::FinchNode, ctx) = is_concurrent(resolve(lvl, ctx), ctx) +is_injective(ctx, lvl::FinchNode) = is_injective(ctx, resolve(lvl), ctx) +is_atomic(ctx, lvl::FinchNode) = is_atomic(ctx, resolve(lvl), ctx) +is_concurrent(ctx, lvl::FinchNode) = is_concurrent(ctx, resolve(lvl), ctx) function getroot(node::FinchNode) if node.kind === virtual diff --git a/src/tensors/combinators/scale.jl b/src/tensors/combinators/scale.jl index 54ffb8e67..4d47d8b7f 100644 --- a/src/tensors/combinators/scale.jl +++ b/src/tensors/combinators/scale.jl @@ -15,9 +15,9 @@ struct VirtualScaleArray <: AbstractVirtualCombinator scale end -is_injective(lvl::VirtualScaleArray, ctx) = is_injective(lvl.body, ctx) -is_atomic(lvl::VirtualScaleArray, ctx) = is_atomic(lvl.body, ctx) -is_concurrent(lvl::VirtualScaleArray, ctx) = is_concurrent(lvl.body, ctx) +is_injective(ctx, lvl::VirtualScaleArray) = is_injective(ctx, lvl.body) +is_atomic(ctx, lvl::VirtualScaleArray) = is_atomic(ctx, lvl.body) +is_concurrent(ctx, lvl::VirtualScaleArray) = is_concurrent(ctx, lvl.body) Base.show(io::IO, ex::VirtualScaleArray) = Base.show(io, MIME"text/plain"(), ex) diff --git a/src/tensors/combinators/swizzle.jl b/src/tensors/combinators/swizzle.jl index 41171f0aa..9176a0bfd 100644 --- a/src/tensors/combinators/swizzle.jl +++ b/src/tensors/combinators/swizzle.jl @@ -48,8 +48,8 @@ struct VirtualSwizzleArray <: AbstractVirtualCombinator dims end -#is_injective(lvl::VirtualSwizzleArray, ctx) = is_injective(lvl.body, ctx) -#is_atomic(lvl::VirtualSwizzleArray, ctx) = is_atomic(lvl.body, ctx) +#is_injective(ctx, lvl::VirtualSwizzleArray) = is_injective(ctx, lvl.body) +#is_atomic(ctx, lvl::VirtualSwizzleArray) = is_atomic(ctx, lvl.body) Base.show(io::IO, ex::VirtualSwizzleArray) = Base.show(io, MIME"text/plain"(), ex) function Base.show(io::IO, mime::MIME"text/plain", ex::VirtualSwizzleArray) diff --git a/src/tensors/combinators/toeplitz.jl b/src/tensors/combinators/toeplitz.jl index 7912d06a4..d86e6a74b 100644 --- a/src/tensors/combinators/toeplitz.jl +++ b/src/tensors/combinators/toeplitz.jl @@ -24,17 +24,17 @@ struct VirtualToeplitzArray <: AbstractVirtualCombinator end end -function is_injective(lvl::VirtualToeplitzArray, ctx) - sub = is_injective(lvl.body, ctx) +function is_injective(ctx, lvl::VirtualToeplitzArray) + sub = is_injective(ctx, lvl.body) return [sub[1:lvl.dim]..., false, sub[lvl.dim + 1:end]...] end -function is_atomic(lvl::VirtualToeplitzArray, ctx) - (below, overall) = is_atomic(lvl.body, ctx) +function is_atomic(ctx, lvl::VirtualToeplitzArray) + (below, overall) = is_atomic(ctx, lvl.body) newBelow = [below[1:lvl.dim]..., below[lvl.dim] && below[lvl.dim + 1], below[lvl.dim + 1:end]...] return (newBelow, overall) end -function is_concurrent(lvl::VirtualToeplitzArray, ctx) - sub = is_concurrent(lvl.body, ctx) +function is_concurrent(ctx, lvl::VirtualToeplitzArray) + sub = is_concurrent(ctx, lvl.body) return [sub[1:lvl.dim]..., false, sub[lvl.dim + 1:end]...] end diff --git a/src/tensors/combinators/unfurled.jl b/src/tensors/combinators/unfurled.jl index d0164394d..8322147fe 100644 --- a/src/tensors/combinators/unfurled.jl +++ b/src/tensors/combinators/unfurled.jl @@ -122,9 +122,9 @@ end getroot(tns::Unfurled) = getroot(tns.arr) -is_injective(lvl::Unfurled, ctx) = is_injective(lvl.arr, ctx) -is_atomic(lvl::Unfurled, ctx) = is_atomic(lvl.arr, ctx) -is_concurrent(lvl::Unfurled, ctx) = is_concurrent(lvl.arr, ctx) +is_injective(ctx, lvl::Unfurled) = is_injective(ctx, lvl.arr) +is_atomic(ctx, lvl::Unfurled) = is_atomic(ctx, lvl.arr) +is_concurrent(ctx, lvl::Unfurled) = is_concurrent(ctx, lvl.arr) function lower_access(ctx::AbstractCompiler, node, tns::Unfurled) if !isempty(node.idxs) diff --git a/src/tensors/combinators/windowed.jl b/src/tensors/combinators/windowed.jl index fcc5b632c..55e843b9b 100644 --- a/src/tensors/combinators/windowed.jl +++ b/src/tensors/combinators/windowed.jl @@ -15,9 +15,9 @@ struct VirtualWindowedArray <: AbstractVirtualCombinator dims end -is_injective(lvl::VirtualWindowedArray, ctx) = is_injective(lvl.body, ctx) -is_atomic(lvl::VirtualWindowedArray, ctx) = is_atomic(lvl.body, ctx) -is_concurrent(lvl::VirtualWindowedArray, ctx) = is_concurrent(lvl.body, ctx) +is_injective(ctx, lvl::VirtualWindowedArray) = is_injective(ctx, lvl.body) +is_atomic(ctx, lvl::VirtualWindowedArray) = is_atomic(ctx, lvl.body) +is_concurrent(ctx, lvl::VirtualWindowedArray) = is_concurrent(ctx, lvl.body) Base.show(io::IO, ex::VirtualWindowedArray) = Base.show(io, MIME"text/plain"(), ex) function Base.show(io::IO, mime::MIME"text/plain", ex::VirtualWindowedArray) diff --git a/src/tensors/fibers.jl b/src/tensors/fibers.jl index daf562b61..8dca94381 100644 --- a/src/tensors/fibers.jl +++ b/src/tensors/fibers.jl @@ -68,10 +68,10 @@ mutable struct VirtualFiber{Lvl} <: AbstractVirtualFiber{Lvl} lvl::Lvl end -is_injective(tns::VirtualFiber, ctx) = is_level_injective(tns.lvl, ctx) -is_concurrent(tns::VirtualFiber, ctx) = is_level_concurrent(tns.lvl, ctx)[1] +is_injective(ctx, tns::VirtualFiber) = is_level_injective(ctx, tns.lvl) +is_concurrent(ctx, tns::VirtualFiber) = is_level_concurrent(ctx, tns.lvl)[1] -is_atomic(tns::VirtualFiber, ctx) = is_level_atomic(tns.lvl, ctx) +is_atomic(ctx, tns::VirtualFiber) = is_level_atomic(ctx, tns.lvl) function virtualize(ex, ::Type{<:Tensor{Lvl}}, ctx, tag=freshen(ctx, :tns)) where {Lvl} lvl = virtualize(:($ex.lvl), Lvl, ctx, Symbol(tag, :_lvl)) diff --git a/src/tensors/levels/abstractlevel.jl b/src/tensors/levels/abstractlevel.jl index cc0a2fee8..8cfdad910 100644 --- a/src/tensors/levels/abstractlevel.jl +++ b/src/tensors/levels/abstractlevel.jl @@ -10,7 +10,7 @@ virtual_level_ndims(lvl:: AbstractVirtualLevel, ctx) = length(virtual_level_size -#is_level_injective(lvl::AbstractVirtualLevel, ctx) = false +#is_level_injective(ctx, lvl::AbstractVirtualLevel) = false diff --git a/src/tensors/levels/atomicelementlevels.jl b/src/tensors/levels/atomicelementlevels.jl index 9260c6bd0..8fd809133 100644 --- a/src/tensors/levels/atomicelementlevels.jl +++ b/src/tensors/levels/atomicelementlevels.jl @@ -87,9 +87,9 @@ mutable struct VirtualAtomicElementLevel <: AbstractVirtualLevel val end -is_level_injective(::VirtualAtomicElementLevel, ctx) = [] -is_level_atomic(lvl::VirtualAtomicElementLevel, ctx) = ([true], true) -function is_level_concurrent(lvl::VirtualAtomicLevel, ctx) +is_level_injective(ctx, ::VirtualAtomicElementLevel) = [] +is_level_atomic(ctx, lvl::VirtualAtomicElementLevel) = ([true], true) +function is_level_concurrent(ctx, lvl::VirtualAtomicLevel) return ([], true) end num_indexable(lvl::VirtualAtomicElementLevel, ctx) = 0 diff --git a/src/tensors/levels/atomiclevels.jl b/src/tensors/levels/atomiclevels.jl index 6d86eb9b3..1d5e10401 100644 --- a/src/tensors/levels/atomiclevels.jl +++ b/src/tensors/levels/atomiclevels.jl @@ -91,13 +91,13 @@ postype(lvl:: AtomicLevel) = postype(lvl.lvl) postype(lvl:: VirtualAtomicLevel) = postype(lvl.lvl) -is_level_injective(lvl::VirtualAtomicLevel, ctx) = [is_level_injective(lvl.lvl, ctx)...] -function is_level_concurrent(lvl::VirtualAtomicLevel, ctx) - (below, c) = is_level_concurrent(lvl.lvl, ctx) +is_level_injective(ctx, lvl::VirtualAtomicLevel) = [is_level_injective(ctx, lvl.lvl)...] +function is_level_concurrent(ctx, lvl::VirtualAtomicLevel) + (below, c) = is_level_concurrent(ctx, lvl.lvl) return (below, c) end -function is_level_atomic(lvl::VirtualAtomicLevel, ctx) - (below, _) = is_level_atomic(lvl.lvl, ctx) +function is_level_atomic(ctx, lvl::VirtualAtomicLevel) + (below, _) = is_level_atomic(ctx, lvl.lvl) return (below, true) end num_indexable(lvl::VirtualAtomicLevel, ctx) = virtual_level_ndims(lvl) - virtual_level_ndims(lvl.lvl) diff --git a/src/tensors/levels/denselevels.jl b/src/tensors/levels/denselevels.jl index 494ce793b..ad2203be5 100644 --- a/src/tensors/levels/denselevels.jl +++ b/src/tensors/levels/denselevels.jl @@ -105,13 +105,13 @@ mutable struct VirtualDenseLevel <: AbstractVirtualLevel shape end -is_level_injective(lvl::VirtualDenseLevel, ctx) = [is_level_injective(lvl.lvl, ctx)..., true] -function is_level_atomic(lvl::VirtualDenseLevel, ctx) - (data, atomic) = is_level_atomic(lvl.lvl, ctx) +is_level_injective(ctx, lvl::VirtualDenseLevel) = [is_level_injective(ctx, lvl.lvl)..., true] +function is_level_atomic(ctx, lvl::VirtualDenseLevel) + (data, atomic) = is_level_atomic(ctx, lvl.lvl) return ([data; [atomic for _ in 1:num_indexable(lvl, ctx)]], atomic) end -function is_level_concurrent(lvl::VirtualDenseLevel, ctx) - (data, concurrent) = is_level_concurrent(lvl.lvl, ctx) +function is_level_concurrent(ctx, lvl::VirtualDenseLevel) + (data, concurrent) = is_level_concurrent(ctx, lvl.lvl) return ([data; [concurrent for _ in 1:num_indexable(lvl, ctx)]], concurrent) end num_indexable(lvl::VirtualDenseLevel, ctx) = virtual_level_ndims(lvl, ctx) - virtual_level_ndims(lvl.lvl, ctx) diff --git a/src/tensors/levels/elementlevels.jl b/src/tensors/levels/elementlevels.jl index 779933095..a11a1ff43 100644 --- a/src/tensors/levels/elementlevels.jl +++ b/src/tensors/levels/elementlevels.jl @@ -86,9 +86,9 @@ mutable struct VirtualElementLevel <: AbstractVirtualLevel val end -is_level_injective(::VirtualElementLevel, ctx) = [] -is_level_atomic(lvl::VirtualElementLevel, ctx) = ([false], false) -function is_level_concurrent(lvl::VirtualElementLevel, ctx) +is_level_injective(ctx, ::VirtualElementLevel) = [] +is_level_atomic(ctx, lvl::VirtualElementLevel) = ([false], false) +function is_level_concurrent(ctx, lvl::VirtualElementLevel) return ([], true) end num_indexable(lvl::VirtualElementLevel, ctx) = 0 diff --git a/src/tensors/levels/patternlevels.jl b/src/tensors/levels/patternlevels.jl index 76c9231dd..c99c2ac9b 100644 --- a/src/tensors/levels/patternlevels.jl +++ b/src/tensors/levels/patternlevels.jl @@ -84,9 +84,9 @@ end function virtual_moveto_level(lvl::VirtualPatternLevel, ctx::AbstractCompiler, arch) end -is_level_injective(::VirtualPatternLevel, ctx) = [] -is_level_atomic(lvl::VirtualPatternLevel, ctx) = ([false], false) -function is_level_concurrent(lvl::VirtualPatternLevel, ctx) +is_level_injective(ctx, ::VirtualPatternLevel) = [] +is_level_atomic(ctx, lvl::VirtualPatternLevel) = ([false], false) +function is_level_concurrent(ctx, lvl::VirtualPatternLevel) return ([], true) end num_indexable(lvl::VirtualPatternLevel, ctx) = 0 diff --git a/src/tensors/levels/repeatrlelevels.jl b/src/tensors/levels/repeatrlelevels.jl index 6d0a45111..3f0e305be 100644 --- a/src/tensors/levels/repeatrlelevels.jl +++ b/src/tensors/levels/repeatrlelevels.jl @@ -134,9 +134,9 @@ mutable struct VirtualRepeatRLELevel <: AbstractVirtualLevel dirty prev_pos end -is_level_injective(::VirtualRepeatRLELevel, ctx) = [false] -is_level_atomic(lvl::VirtualRepeatRLELevel, ctx) = ([false], false) -function is_level_concurrent(lvl::VirtualRepeatRLELevel, ctx) +is_level_injective(ctx, ::VirtualRepeatRLELevel) = [false] +is_level_atomic(ctx, lvl::VirtualRepeatRLELevel) = ([false], false) +function is_level_concurrent(ctx, lvl::VirtualRepeatRLELevel) return ([false for _ in 1:num_indexable(lvl)], false) end num_indexable(lvl::VirtualRepeatRLELevel, ctx) = length(lvl.shape) diff --git a/src/tensors/levels/separatelevels.jl b/src/tensors/levels/separatelevels.jl index 0d5c1c460..069add642 100644 --- a/src/tensors/levels/separatelevels.jl +++ b/src/tensors/levels/separatelevels.jl @@ -90,14 +90,14 @@ end postype(lvl:: VirtualSeparateLevel) = postype(lvl.lvl) -is_level_injective(lvl::VirtualSeparateLevel, ctx) = [is_level_injective(lvl.lvl, ctx)..., true] +is_level_injective(ctx, lvl::VirtualSeparateLevel) = [is_level_injective(ctx, lvl.lvl)..., true] num_indexable(lvl::VirtualSeparateLevel, ctx) = virtual_level_ndims(lvl, ctx) - virtual_level_ndims(lvl.lvl, ctx) -function is_level_atomic(lvl::VirtualSeparateLevel, ctx) - (below, atomic) = is_level_atomic(lvl.lvl, ctx) +function is_level_atomic(ctx, lvl::VirtualSeparateLevel) + (below, atomic) = is_level_atomic(ctx, lvl.lvl) return ([below; [atomic for _ in 1:num_indexable(lvl, ctx)]], atomic) end -function is_level_concurrent(lvl::VirtualSeparateLevel, ctx) - (data, _) = is_level_concurrent(lvl.lvl, ctx) +function is_level_concurrent(ctx, lvl::VirtualSeparateLevel) + (data, _) = is_level_concurrent(ctx, lvl.lvl) return (data, true) end diff --git a/src/tensors/levels/singlelistlevels.jl b/src/tensors/levels/singlelistlevels.jl index da904fee8..79fef95a4 100644 --- a/src/tensors/levels/singlelistlevels.jl +++ b/src/tensors/levels/singlelistlevels.jl @@ -141,14 +141,14 @@ mutable struct VirtualSingleListLevel <: AbstractVirtualLevel prev_pos end -is_level_injective(lvl::VirtualSingleListLevel, ctx) = [is_level_injective(lvl.lvl, ctx)..., false] +is_level_injective(ctx, lvl::VirtualSingleListLevel) = [is_level_injective(ctx, lvl.lvl)..., false] -function is_level_atomic(lvl::VirtualSingleListLevel, ctx) - (below, atomic) = is_level_atomic(lvl.lvl, ctx) +function is_level_atomic(ctx, lvl::VirtualSingleListLevel) + (below, atomic) = is_level_atomic(ctx, lvl.lvl) return ([below; [atomic for _ in 1:num_indexable(lvl, ctx)]], atomic) end -function is_level_concurrent(lvl::VirtualSingleListLevel, ctx) - (data, _) = is_level_concurrent(lvl.lvl, ctx) +function is_level_concurrent(ctx, lvl::VirtualSingleListLevel) + (data, _) = is_level_concurrent(ctx, lvl.lvl) return ([data; [false for _ in 1:num_indexable(lvl, ctx)]], false) end num_indexable(lvl::VirtualSingleListLevel, ctx) = virtual_level_ndims(lvl, ctx) - virtual_level_ndims(lvl.lvl, ctx) diff --git a/src/tensors/levels/singlerlelevels.jl b/src/tensors/levels/singlerlelevels.jl index 188273bfd..00aa43005 100644 --- a/src/tensors/levels/singlerlelevels.jl +++ b/src/tensors/levels/singlerlelevels.jl @@ -143,13 +143,13 @@ mutable struct VirtualSingleRLELevel <: AbstractVirtualLevel prev_pos end -is_level_injective(lvl::VirtualSingleRLELevel, ctx) = [false, is_level_injective(lvl.lvl, ctx)...] -function is_level_atomic(lvl::VirtualSingleRLELevel, ctx) - (below, atomic) = is_level_atomic(lvl.lvl, ctx) +is_level_injective(ctx, lvl::VirtualSingleRLELevel) = [false, is_level_injective(ctx, lvl.lvl)...] +function is_level_atomic(ctx, lvl::VirtualSingleRLELevel) + (below, atomic) = is_level_atomic(ctx, lvl.lvl) return ([below; [atomic for _ in 1:num_indexable(lvl, ctx)]], atomic) end -function is_level_concurrent(lvl::VirtualSingleRLELevel, ctx) - (data, concurrent) = is_level_concurrent(lvl.lvl, ctx) +function is_level_concurrent(ctx, lvl::VirtualSingleRLELevel) + (data, concurrent) = is_level_concurrent(ctx, lvl.lvl) return ([data; [false for _ in 1:num_indexable(lvl, ctx)]], false) end num_indexable(lvl::VirtualSingleRLELevel, ctx) = virtual_level_ndims(lvl, ctx) - virtual_level_ndims(lvl.lvl, ctx) diff --git a/src/tensors/levels/sparsebytemaplevels.jl b/src/tensors/levels/sparsebytemaplevels.jl index 4c805e996..76f5eb1e6 100644 --- a/src/tensors/levels/sparsebytemaplevels.jl +++ b/src/tensors/levels/sparsebytemaplevels.jl @@ -139,13 +139,13 @@ mutable struct VirtualSparseByteMapLevel <: AbstractVirtualLevel qos_stop end -is_level_injective(lvl::VirtualSparseByteMapLevel, ctx) = [is_level_injective(lvl.lvl, ctx)..., false] -function is_level_atomic(lvl::VirtualSparseByteMapLevel, ctx) - (below, atomic) = is_level_atomic(lvl.lvl, ctx) +is_level_injective(ctx, lvl::VirtualSparseByteMapLevel) = [is_level_injective(ctx, lvl.lvl)..., false] +function is_level_atomic(ctx, lvl::VirtualSparseByteMapLevel) + (below, atomic) = is_level_atomic(ctx, lvl.lvl) return ([below; [atomic for _ in 1:num_indexable(lvl, ctx)]], atomic) end -function is_level_concurrent(lvl::VirtualSparseByteMapLevel, ctx) - (data, _) = is_level_concurrent(lvl.lvl, ctx) +function is_level_concurrent(ctx, lvl::VirtualSparseByteMapLevel) + (data, _) = is_level_concurrent(ctx, lvl.lvl) return ([data; [false for _ in 1:num_indexable(lvl, ctx)]], false) end num_indexable(lvl::VirtualSparseByteMapLevel, ctx) = virtual_level_ndims(lvl, ctx) - virtual_level_ndims(lvl.lvl, ctx) diff --git a/src/tensors/levels/sparsecoolevels.jl b/src/tensors/levels/sparsecoolevels.jl index f4fd3597e..972ca5e77 100644 --- a/src/tensors/levels/sparsecoolevels.jl +++ b/src/tensors/levels/sparsecoolevels.jl @@ -153,13 +153,13 @@ mutable struct VirtualSparseCOOLevel <: AbstractVirtualLevel prev_pos end -is_level_injective(lvl::VirtualSparseCOOLevel, ctx) = [is_level_injective(lvl.lvl, ctx)..., (true for _ in 1:lvl.N)...] -function is_level_atomic(lvl::VirtualSparseCOOLevel, ctx) - (below, atomic) = is_level_atomic(lvl.lvl, ctx) +is_level_injective(ctx, lvl::VirtualSparseCOOLevel) = [is_level_injective(ctx, lvl.lvl)..., (true for _ in 1:lvl.N)...] +function is_level_atomic(ctx, lvl::VirtualSparseCOOLevel) + (below, atomic) = is_level_atomic(ctx, lvl.lvl) return ([below; [atomic for _ in 1:num_indexable(lvl, ctx)]], atomic) end -function is_level_concurrent(lvl::VirtualSparseCOOLevel, ctx) - (data, _) = is_level_concurrent(lvl.lvl, ctx) +function is_level_concurrent(ctx, lvl::VirtualSparseCOOLevel) + (data, _) = is_level_concurrent(ctx, lvl.lvl) return ([data; [false for _ in 1:num_indexable(lvl, ctx)]], false) end num_indexable(lvl::VirtualSparseCOOLevel, ctx) = virtual_level_ndims(lvl, ctx) - virtual_level_ndims(lvl.lvl, ctx) diff --git a/src/tensors/levels/sparsehashlevels.jl b/src/tensors/levels/sparsehashlevels.jl index 0d06d9195..141037a4c 100644 --- a/src/tensors/levels/sparsehashlevels.jl +++ b/src/tensors/levels/sparsehashlevels.jl @@ -169,13 +169,13 @@ mutable struct VirtualSparseHashLevel <: AbstractVirtualLevel Lvl end -is_level_injective(lvl::VirtualSparseHashLevel, ctx) = [is_level_injective(lvl.lvl, ctx)..., (true for _ in 1:lvl.N)...] -function is_level_atomic(lvl::VirtualSparseHashLevel, ctx) - (below, atomic) = is_level_atomic(lvl.lvl, ctx) +is_level_injective(ctx, lvl::VirtualSparseHashLevel) = [is_level_injective(ctx, lvl.lvl)..., (true for _ in 1:lvl.N)...] +function is_level_atomic(ctx, lvl::VirtualSparseHashLevel) + (below, atomic) = is_level_atomic(ctx, lvl.lvl) return ([below; [atomic for _ in 1:num_indexable(lvl, ctx)]], atomic) end -function is_level_concurrent(lvl::VirtualSparseHashLevel, ctx) - (data, _) = is_level_concurrent(lvl.lvl, ctx) +function is_level_concurrent(ctx, lvl::VirtualSparseHashLevel) + (data, _) = is_level_concurrent(ctx, lvl.lvl) return ([data; [false for _ in 1:num_indexable(lvl, ctx)]], false) end num_indexable(lvl::VirtualSparseHashLevel, ctx) = virtual_level_ndims(lvl, ctx) - virtual_level_ndims(lvl.lvl, ctx) diff --git a/src/tensors/levels/sparselevels.jl b/src/tensors/levels/sparselevels.jl index d8a33a2df..b00f07eb7 100644 --- a/src/tensors/levels/sparselevels.jl +++ b/src/tensors/levels/sparselevels.jl @@ -250,13 +250,13 @@ mutable struct VirtualSparseLevel <: AbstractVirtualLevel qos_stop end -is_level_injective(lvl::VirtualSparseLevel, ctx) = [is_level_injective(lvl.lvl, ctx)..., false] -function is_level_atomic(lvl::VirtualSparseLevel, ctx) - (below, atomic) = is_level_atomic(lvl.lvl, ctx) +is_level_injective(ctx, lvl::VirtualSparseLevel) = [is_level_injective(ctx, lvl.lvl)..., false] +function is_level_atomic(ctx, lvl::VirtualSparseLevel) + (below, atomic) = is_level_atomic(ctx, lvl.lvl) return ([below; [atomic for _ in 1:num_indexable(lvl, ctx)]], atomic) end -function is_level_concurrent(lvl::VirtualSparseLevel, ctx) - (data, _) = is_level_concurrent(lvl.lvl, ctx) +function is_level_concurrent(ctx, lvl::VirtualSparseLevel) + (data, _) = is_level_concurrent(ctx, lvl.lvl) #FIXME: return ([data; [false for _ in 1:num_indexable(lvl, ctx)]], false) end diff --git a/src/tensors/levels/sparselistlevels.jl b/src/tensors/levels/sparselistlevels.jl index dd1e0c6d1..e849933b8 100644 --- a/src/tensors/levels/sparselistlevels.jl +++ b/src/tensors/levels/sparselistlevels.jl @@ -137,13 +137,13 @@ mutable struct VirtualSparseListLevel <: AbstractVirtualLevel prev_pos end -is_level_injective(lvl::VirtualSparseListLevel, ctx) = [is_level_injective(lvl.lvl, ctx)..., false] -function is_level_atomic(lvl::VirtualSparseListLevel, ctx) - (below, atomic) = is_level_atomic(lvl.lvl, ctx) +is_level_injective(ctx, lvl::VirtualSparseListLevel) = [is_level_injective(ctx, lvl.lvl)..., false] +function is_level_atomic(ctx, lvl::VirtualSparseListLevel) + (below, atomic) = is_level_atomic(ctx, lvl.lvl) return ([below; [atomic for _ in 1:num_indexable(lvl, ctx)]], atomic) end -function is_level_concurrent(lvl::VirtualSparseListLevel, ctx) - (data, _) = is_level_concurrent(lvl.lvl, ctx) +function is_level_concurrent(ctx, lvl::VirtualSparseListLevel) + (data, _) = is_level_concurrent(ctx, lvl.lvl) return ([data; [false for _ in 1:num_indexable(lvl, ctx)]], false) end num_indexable(lvl::VirtualSparseListLevel, ctx) = virtual_level_ndims(lvl, ctx) - virtual_level_ndims(lvl.lvl, ctx) diff --git a/src/tensors/levels/sparserlelevels.jl b/src/tensors/levels/sparserlelevels.jl index 961f7de41..acb894802 100644 --- a/src/tensors/levels/sparserlelevels.jl +++ b/src/tensors/levels/sparserlelevels.jl @@ -133,13 +133,13 @@ mutable struct VirtualSparseRLELevel <: AbstractVirtualLevel prev_pos end -is_level_injective(lvl::VirtualSparseRLELevel, ctx) = [false, is_level_injective(lvl.lvl, ctx)...] -function is_level_atomic(lvl::VirtualSparseRLELevel, ctx) - (below, atomic) = is_level_atomic(lvl.lvl, ctx) +is_level_injective(ctx, lvl::VirtualSparseRLELevel) = [false, is_level_injective(ctx, lvl.lvl)...] +function is_level_atomic(ctx, lvl::VirtualSparseRLELevel) + (below, atomic) = is_level_atomic(ctx, lvl.lvl) return ([below; [atomic for _ in 1:num_indexable(lvl, ctx)]], atomic) end -function is_level_concurrent(lvl::VirtualSparseRLELevel, ctx) - (data, _) = is_level_concurrent(lvl.lvl, ctx) +function is_level_concurrent(ctx, lvl::VirtualSparseRLELevel) + (data, _) = is_level_concurrent(ctx, lvl.lvl) return ([data; [false for _ in 1:num_indexable(lvl, ctx)]], false) end num_indexable(lvl::VirtualSparseRLELevel, ctx) = virtual_level_ndims(lvl, ctx) - virtual_level_ndims(lvl.lvl, ctx) diff --git a/src/tensors/levels/sparsetrianglelevels.jl b/src/tensors/levels/sparsetrianglelevels.jl index de924ee68..b17d950f7 100644 --- a/src/tensors/levels/sparsetrianglelevels.jl +++ b/src/tensors/levels/sparsetrianglelevels.jl @@ -110,13 +110,13 @@ mutable struct VirtualSparseTriangleLevel <: AbstractVirtualLevel shape end -is_level_injective(lvl::VirtualSparseTriangleLevel, ctx) = [is_level_injective(lvl.lvl, ctx)..., (true for _ in 1:lvl.N)...] -function is_level_atomic(lvl::VirtualSparseTriangleLevel, ctx) - (below, atomic) = is_level_atomic(lvl.lvl, ctx) +is_level_injective(ctx, lvl::VirtualSparseTriangleLevel) = [is_level_injective(ctx, lvl.lvl)..., (true for _ in 1:lvl.N)...] +function is_level_atomic(ctx, lvl::VirtualSparseTriangleLevel) + (below, atomic) = is_level_atomic(ctx, lvl.lvl) return ([below; [atomic for _ in 1:num_indexable(lvl, ctx)]], atomic) end -function is_level_concurrent(lvl::VirtualSparseTriangleLevel, ctx) - (data, _) = is_level_concurrent(lvl.lvl, ctx) +function is_level_concurrent(ctx, lvl::VirtualSparseTriangleLevel) + (data, _) = is_level_concurrent(ctx, lvl.lvl) return ([data; [false for _ in 1:num_indexable(lvl, ctx)]], false) end num_indexable(lvl::VirtualSparseTriangleLevel, ctx) = virtual_level_ndims(lvl, ctx) - virtual_level_ndims(lvl.lvl, ctx) diff --git a/src/tensors/levels/sparsevbllevels.jl b/src/tensors/levels/sparsevbllevels.jl index 638c1ec12..aad75d01d 100644 --- a/src/tensors/levels/sparsevbllevels.jl +++ b/src/tensors/levels/sparsevbllevels.jl @@ -146,14 +146,14 @@ mutable struct VirtualSparseVBLLevel <: AbstractVirtualLevel prev_pos end -is_level_injective(lvl::VirtualSparseVBLLevel, ctx) = [is_level_injective(lvl.lvl, ctx)..., false] -function is_level_atomic(lvl::VirtualSparseVBLLevel, ctx) - (below, atomic) = is_level_atomic(lvl.lvl, ctx) +is_level_injective(ctx, lvl::VirtualSparseVBLLevel) = [is_level_injective(ctx, lvl.lvl)..., false] +function is_level_atomic(ctx, lvl::VirtualSparseVBLLevel) + (below, atomic) = is_level_atomic(ctx, lvl.lvl) return ([below; [atomic for _ in 1:num_indexable(lvl, ctx)]], atomic) end num_indexable(lvl::VirtualSparseVBLLevel, ctx) = virtual_level_ndims(lvl, ctx) - virtual_level_ndims(lvl.lvl, ctx) -function is_level_concurrent(lvl::VirtualSparseVBLLevel, ctx) - (data, _) = is_level_concurrent(lvl.lvl, ctx) +function is_level_concurrent(ctx, lvl::VirtualSparseVBLLevel) + (data, _) = is_level_concurrent(ctx, lvl.lvl) return ([data; [false for _ in 1:num_indexable(lvl, ctx)]], false) end postype(lvl::VirtualSparseVBLLevel) = postype(lvl.lvl) diff --git a/src/transforms/concurrent.jl b/src/transforms/concurrent.jl index 29c4a8fb0..169ffe214 100644 --- a/src/transforms/concurrent.jl +++ b/src/transforms/concurrent.jl @@ -3,7 +3,7 @@ struct FinchConcurrencyError end """ - is_injective(tns, ctx) + is_injective(ctx, tns) Returns a vector of booleans, one for each dimension of the tensor, indicating whether the access is injective in that dimension. A dimension is injective if @@ -13,7 +13,7 @@ array. function is_injective end """ - is_atomic(tns, ctx) + is_atomic(ctx, tns) Returns a tuple (below, overall) where below is a vector, indicating which indicies have an atomic that guards them, and overall is a boolean that indicates is the last level had an atomic guarding it. @@ -21,7 +21,7 @@ function is_injective end function is_atomic end """ - is_concurrent(tns, ctx) + is_concurrent(ctx, tns) Returns a vector of booleans, one for each dimension of the tensor, indicating whether the index can be written to without any execution state. So if a matrix returns [true, false], @@ -78,8 +78,8 @@ function ensure_concurrent(root, ctx) if !(isassociative(ctx.algebra, oper)) if (length(ops) == 1) if (@capture(acc, access(~tns, ~mode, ~i...))) - injectivityIdp:: Vector{Bool} = is_injective(tns, ctx) - concurrencyInfo = is_concurrent(tns, ctx) + injectivityIdp:: Vector{Bool} = is_injective(ctx, tns) + concurrencyInfo = is_concurrent(ctx, tns) if !all(injectivityIdp) || !all(concurrencyInfo) throw(FinchConcurrencyError("Non-associative operations can only be parallelized in the case of a single injective acceses, but the injectivity is $(injectivity) and the concurrency is $(concurrencyInfo).")) else @@ -95,8 +95,8 @@ function ensure_concurrent(root, ctx) # If the acceses are different, then all acceses must be atomic. if !allequal(accs) for acc in accs - (below, _) = is_atomic(acc.tns, ctx) - concurrencyInfo = is_concurrent(acc.tns, ctx) + (below, _) = is_atomic(ctx, acc.tns) + concurrencyInfo = is_concurrent(ctx, acc.tns) if !all(below) || !all(concurrencyInfo) throw(FinchConcurrencyError("Nonlocal assignments to $(root) are not all the same access so concurrency and atomics are needed on all acceses!")) end @@ -107,8 +107,8 @@ function ensure_concurrent(root, ctx) #Every access must be injective or they must all be atomic. if (@capture(acc, access(~tns, ~mode, ~i...))) locations_with_parallel_vars = [] - injectivity:: Vector{Bool} = is_injective(tns, ctx) - concurrencyInfo = is_concurrent(acc.tns, ctx) + injectivity:: Vector{Bool} = is_injective(ctx, tns) + concurrencyInfo = is_concurrent(ctx, acc.tns) for loc in 1:length(i) if i[loc] in indicies_in_region push!(locations_with_parallel_vars, loc + 1) @@ -116,7 +116,7 @@ function ensure_concurrent(root, ctx) end end if length(locations_with_parallel_vars) == 0 - (below, overall) = is_atomic(acc.tns, ctx) + (below, overall) = is_atomic(ctx, acc.tns) if !below[1] throw(FinchConcurrencyError("Assignment $(acc) requires last level atomics!")) # FIXME: we could do atomic operations here. @@ -130,7 +130,7 @@ function ensure_concurrent(root, ctx) continue # We pass due to injectivity! end # FIXME: This could be more fine grained: atomics need to only protect the non-injectivity. - (below, _) = is_atomic(acc.tns, ctx) + (below, _) = is_atomic(ctx, acc.tns) if all(below[locations_with_parallel_vars]) && all(concurrencyInfo[[x-1 for x in locations_with_parallel_vars]]) continue # we pass due to atomics! else From 580f64d3b2da8402259bf7a28ccb847db9329112 Mon Sep 17 00:00:00 2001 From: Willow Ahrens Date: Tue, 30 Apr 2024 17:19:41 -0400 Subject: [PATCH 36/41] oops --- src/tensors/levels/atomiclevels.jl | 79 +++++++++++++++--------------- 1 file changed, 40 insertions(+), 39 deletions(-) diff --git a/src/tensors/levels/atomiclevels.jl b/src/tensors/levels/atomiclevels.jl index 1d5e10401..597fea6d7 100644 --- a/src/tensors/levels/atomiclevels.jl +++ b/src/tensors/levels/atomiclevels.jl @@ -14,18 +14,20 @@ Dense [1:3] ``` """ -struct AtomicLevel{AVal <: AbstractVector, Lvl} <: AbstractLevel +struct AtomicLevel{AVal, Lvl} <: AbstractLevel lvl::Lvl locks::AVal end const Atomic = AtomicLevel -AtomicLevel(lvl::Lvl) where {Lvl} = AtomicLevel{Vector{Base.Threads.SpinLock}, Lvl}(lvl, Vector{Base.Threads.SpinLock}([])) -# AtomicLevel{AVal, Lvl}(atomics::AVal, lvl::Lvl) where {Lvl, AVal} = AtomicLevel{AVal, Lvl}(lvl, atomics) +AtomicLevel(lvl) = AtomicLevel(lvl, Base.Threads.SpinLock[]) +#AtomicLevel(lvl::Lvl, locks::AVal) where {Lvl, AVal} = +# AtomicLevel{AVal, Lvl}(lvl, locks) Base.summary(::AtomicLevel{AVal, Lvl}) where {Lvl, AVal} = "AtomicLevel($(AVal), $(Lvl))" -similar_level(lvl::Atomic{AVal, Lvl}) where {Lvl, AVal} = AtomicLevel{AVal, Lvl}(similar_level(lvl.lvl)) +similar_level(lvl::Atomic{AVal, Lvl}, fill_value, eltype::Type, dims...) where {Lvl, AVal} = + AtomicLevel(similar_level(lvl.lvl, fill_value, eltype, dims...)) postype(::Type{<:AtomicLevel{AVal, Lvl}}) where {Lvl, AVal} = postype(Lvl) @@ -46,9 +48,9 @@ function Base.show(io::IO, lvl::AtomicLevel{AVal, Lvl}) where {AVal, Lvl} if get(io, :compact, false) print(io, "…") else - show(IOContext(io, :typeinfo=>AVal), lvl.locks) + show(IOContext(io), lvl.lvl) print(io, ", ") - show(IOContext(io, :typeinfo=>Val), lvl.lvl) + show(IOContext(io, :typeinfo=>AVal), lvl.locks) end print(io, ")") end @@ -73,7 +75,7 @@ end (fbr::Tensor{<:AtomicLevel})() = SubFiber(fbr.lvl, 1)() (fbr::SubFiber{<:AtomicLevel})() = fbr #TODO this is not consistent somehow function (fbr::SubFiber{<:AtomicLevel})(idxs...) - return Tensor(fbr.lvl)(idxs...) + return Tensor(fbr.lvl.lvl)(idxs...) end countstored_level(lvl::AtomicLevel, pos) = countstored_level(lvl.lvl, pos) @@ -100,43 +102,42 @@ function is_level_atomic(ctx, lvl::VirtualAtomicLevel) (below, _) = is_level_atomic(ctx, lvl.lvl) return (below, true) end -num_indexable(lvl::VirtualAtomicLevel, ctx) = virtual_level_ndims(lvl) - virtual_level_ndims(lvl.lvl) +num_indexable(ctx, lvl::VirtualAtomicLevel) = virtual_level_ndims(ctx, lvl) - virtual_level_ndims(ctx, lvl.lvl) -function lower(lvl::VirtualAtomicLevel, ctx::AbstractCompiler, ::DefaultStyle) +function lower(ctx::AbstractCompiler, lvl::VirtualAtomicLevel, ::DefaultStyle) quote $AtomicLevel{$(lvl.AVal), $(lvl.Lvl)}($(ctx(lvl.lvl)), $(lvl.locks)) end end -function virtualize(ex, ::Type{AtomicLevel{AVal, Lvl}}, ctx, tag=:lvl) where {AVal, Lvl} +function virtualize(ctx, ex, ::Type{AtomicLevel{AVal, Lvl}}, tag=:lvl) where {AVal, Lvl} sym = freshen(ctx, tag) atomics = freshen(ctx, tag, :_locks) push!(ctx.preamble, quote $sym = $ex $atomics = $ex.locks end) - lvl_2 = virtualize(:($sym.lvl), Lvl, ctx, sym) + lvl_2 = virtualize(ctx, :($sym.lvl), Lvl, sym) temp = VirtualAtomicLevel(lvl_2, sym, atomics, typeof(level_default(Lvl)), Val, AVal, Lvl) temp end Base.summary(lvl::VirtualAtomicLevel) = "Atomic($(lvl.Lvl))" -virtual_level_resize!(lvl::VirtualAtomicLevel, ctx, dims...) = (lvl.lvl = virtual_level_resize!(lvl.lvl, ctx, dims...); lvl) -virtual_level_size(lvl::VirtualAtomicLevel, ctx) = virtual_level_size(lvl.lvl, ctx) -virtual_level_ndims(lvl::VirtualAtomicLevel, ctx) = length(virtual_level_size(lvl.lvl, ctx)) -virtual_level_size(x, ctx) = error(string("Not defined for", x)) +virtual_level_resize!(ctx, lvl::VirtualAtomicLevel, dims...) = (lvl.lvl = virtual_level_resize!(ctx, lvl.lvl, dims...); lvl) +virtual_level_size(ctx, lvl::VirtualAtomicLevel) = virtual_level_size(ctx, lvl.lvl) +virtual_level_ndims(ctx, lvl::VirtualAtomicLevel) = length(virtual_level_size(ctx, lvl.lvl)) virtual_level_eltype(lvl::VirtualAtomicLevel) = virtual_level_eltype(lvl.lvl) virtual_level_default(lvl::VirtualAtomicLevel) = virtual_level_default(lvl.lvl) -function declare_level!(lvl::VirtualAtomicLevel, ctx, pos, init) - lvl.lvl = declare_level!(lvl.lvl, ctx, pos, init) +function declare_level!(ctx, lvl::VirtualAtomicLevel, pos, init) + lvl.lvl = declare_level!(ctx, lvl.lvl, pos, init) return lvl end -function assemble_level!(lvl::VirtualAtomicLevel, ctx, pos_start, pos_stop) - pos_start = cache!(ctx, :pos_start, simplify(pos_start, ctx)) - pos_stop = cache!(ctx, :pos_stop, simplify(pos_stop, ctx)) +function assemble_level!(ctx, lvl::VirtualAtomicLevel, pos_start, pos_stop) + pos_start = cache!(ctx, :pos_start, simplify(ctx, pos_start)) + pos_stop = cache!(ctx, :pos_stop, simplify(ctx, pos_stop)) idx = freshen(ctx.code, :idx) lockVal = freshen(ctx.code, :lock) push!(ctx.code.preamble, quote @@ -145,13 +146,13 @@ function assemble_level!(lvl::VirtualAtomicLevel, ctx, pos_start, pos_stop) $(lvl.locks)[$idx] = make_lock(eltype($(lvl.AVal))) end end) - assemble_level!(lvl.lvl, ctx, pos_start, pos_stop) + assemble_level!(ctx, lvl.lvl, pos_start, pos_stop) end supports_reassembly(lvl::VirtualAtomicLevel) = supports_reassembly(lvl.lvl) -function reassemble_level!(lvl::VirtualAtomicLevel, ctx, pos_start, pos_stop) - pos_start = cache!(ctx, :pos_start, simplify(pos_start, ctx)) - pos_stop = cache!(ctx, :pos_stop, simplify(pos_stop, ctx)) +function reassemble_level!(ctx, lvl::VirtualAtomicLevel, pos_start, pos_stop) + pos_start = cache!(ctx, :pos_start, simplify(ctx, pos_start)) + pos_stop = cache!(ctx, :pos_stop, simplify(ctx, pos_stop)) idx = freshen(ctx.code, :idx) lockVal = freshen(ctx.code, :lock) push!(ctx.code.preamble, quote @@ -160,25 +161,25 @@ function reassemble_level!(lvl::VirtualAtomicLevel, ctx, pos_start, pos_stop) $lvl.locks[$idx] = Finch.make_lock(eltype($(lvl.AVal))) end end) - reassemble_level!(lvl.lvl, ctx, pos_start, pos_stop) + reassemble_level!(ctx, lvl.lvl, pos_start, pos_stop) lvl end -function freeze_level!(lvl::VirtualAtomicLevel, ctx, pos) +function freeze_level!(ctx, lvl::VirtualAtomicLevel, pos) idx = freshen(ctx.code, :idx) push!(ctx.code.preamble, quote resize!($(lvl.locks), $(ctx(pos))) end) - lvl.lvl = freeze_level!(lvl.lvl, ctx, pos) + lvl.lvl = freeze_level!(ctx, lvl.lvl, pos) return lvl end -function thaw_level!(lvl::VirtualAtomicLevel, ctx::AbstractCompiler, pos) - lvl.lvl = thaw_level!(lvl.lvl, ctx, pos) +function thaw_level!(ctx::AbstractCompiler, lvl::VirtualAtomicLevel, pos) + lvl.lvl = thaw_level!(ctx, lvl.lvl, pos) return lvl end -function virtual_moveto_level(lvl::VirtualAtomicLevel, ctx::AbstractCompiler, arch) +function virtual_moveto_level(ctx::AbstractCompiler, lvl::VirtualAtomicLevel, arch) #Add for seperation level too. atomics = freshen(ctx.code, :locksArray) @@ -189,26 +190,26 @@ function virtual_moveto_level(lvl::VirtualAtomicLevel, ctx::AbstractCompiler, ar push!(ctx.code.epilogue, quote $(lvl.locks) = $atomics end) - virtual_moveto_level(lvl.lvl, ctx, arch) + virtual_moveto_level(ctx, lvl.lvl, arch) end -function instantiate(fbr::VirtualSubFiber{VirtualAtomicLevel}, ctx, mode::Reader, protos) +function instantiate(ctx, fbr::VirtualSubFiber{VirtualAtomicLevel}, mode::Reader, protos) (lvl, pos) = (fbr.lvl, fbr.pos) # lvlp = freshen(ctx.code, lvl.ex, :_lvl) # sym = freshen(ctx.code, lvl.ex, :_after_atomic_lvl) return body = Thunk( body = (ctx) -> begin - instantiate(VirtualSubFiber(lvl.lvl, pos), ctx, mode, protos) + instantiate(ctx, VirtualSubFiber(lvl.lvl, pos), mode, protos) end, ) end -function instantiate(fbr::VirtualSubFiber{VirtualAtomicLevel}, ctx, mode::Updater, protos) +function instantiate(ctx, fbr::VirtualSubFiber{VirtualAtomicLevel}, mode::Updater, protos) (lvl, pos) = (fbr.lvl, fbr.pos) sym = freshen(ctx.code, lvl.ex, :after_atomic_lvl) atomicData = freshen(ctx.code, lvl.ex, :atomicArraysAcc) lockVal = freshen(ctx.code, lvl.ex, :lockVal) - dev = lower(virtual_get_device(ctx.code.task), ctx, DefaultStyle()) + dev = lower(ctx, virtual_get_device(ctx.code.task), DefaultStyle()) return Thunk( body = (ctx) -> begin @@ -221,18 +222,18 @@ function instantiate(fbr::VirtualSubFiber{VirtualAtomicLevel}, ctx, mode::Update push!(ctx.code.preamble, preamble) push!(ctx.code.epilogue, epilogue) lvl_2 = lvl.lvl - update = instantiate(VirtualSubFiber(lvl_2, pos), ctx, mode, protos) + update = instantiate(ctx, VirtualSubFiber(lvl_2, pos), mode, protos) return update end, ) end -function instantiate(fbr::VirtualHollowSubFiber{VirtualAtomicLevel}, ctx, mode::Updater, protos) +function instantiate(ctx, fbr::VirtualHollowSubFiber{VirtualAtomicLevel}, mode::Updater, protos) (lvl, pos) = (fbr.lvl, fbr.pos) sym = freshen(ctx.code, lvl.ex, :after_atomic_lvl) atomicData = freshen(ctx.code, lvl.ex, :atomicArrays) lockVal = freshen(ctx.code, lvl.ex, :lockVal) - dev = lower(virtual_get_device(ctx.code.task), ctx, DefaultStyle()) + dev = lower(ctx, virtual_get_device(ctx.code.task), DefaultStyle()) return Thunk( body = (ctx) -> begin @@ -245,7 +246,7 @@ function instantiate(fbr::VirtualHollowSubFiber{VirtualAtomicLevel}, ctx, mode:: push!(ctx.code.preamble, preamble) push!(ctx.code.epilogue, epilogue) lvl_2 = lvl.lvl - update = instantiate(VirtualHollowSubFiber(lvl_2, pos, fbr.dirty), ctx, mode, protos) + update = instantiate(ctx, VirtualHollowSubFiber(lvl_2, pos, fbr.dirty), mode, protos) return update end ) From 537a7f2710c143ba7dff2c5e65a0082c6e051f40 Mon Sep 17 00:00:00 2001 From: Willow Ahrens Date: Tue, 30 Apr 2024 18:17:15 -0400 Subject: [PATCH 37/41] fix --- src/looplets/unfurl.jl | 5 +-- src/tensors/combinators/roots.jl | 6 ++-- src/tensors/levels/atomicelementlevels.jl | 38 +++++++++++------------ src/tensors/levels/separatelevels.jl | 6 ++-- 4 files changed, 28 insertions(+), 27 deletions(-) diff --git a/src/looplets/unfurl.jl b/src/looplets/unfurl.jl index 22d464351..8bc446162 100644 --- a/src/looplets/unfurl.jl +++ b/src/looplets/unfurl.jl @@ -27,5 +27,6 @@ end unfurl(ctx, tns, ext, mode, protos...) = tns instantiate(ctx, tns::Furlable, mode, protos) = tns -is_injective(ctx, tns:: Furlable) = is_injective(ctx, tns.body) -is_atomic(ctx, tns:: Furlable) = is_atomic(ctx, tns.body) +is_injective(ctx, tns::Furlable) = is_injective(ctx, tns.body) +is_atomic(ctx, tns::Furlable) = is_atomic(ctx, tns.body) +is_concurrent(ctx, tns::Furlable) = is_concurrent(ctx, tns.body) \ No newline at end of file diff --git a/src/tensors/combinators/roots.jl b/src/tensors/combinators/roots.jl index 2b6a75296..9b8b8d9ad 100644 --- a/src/tensors/combinators/roots.jl +++ b/src/tensors/combinators/roots.jl @@ -28,9 +28,9 @@ end lower_access(ctx::AbstractCompiler, node, tns::FinchNode) = lower_access(ctx, node, resolve(ctx, tns)) -is_injective(ctx, lvl::FinchNode) = is_injective(ctx, resolve(ctx, lvl), ctx) -is_atomic(ctx, lvl::FinchNode) = is_atomic(ctx, resolve(ctx, lvl), ctx) -is_concurrent(ctx, lvl::FinchNode) = is_concurrent(ctx, resolve(ctx, lvl), ctx) +is_injective(ctx, lvl::FinchNode) = is_injective(ctx, resolve(ctx, lvl)) +is_atomic(ctx, lvl::FinchNode) = is_atomic(ctx, resolve(ctx, lvl)) +is_concurrent(ctx, lvl::FinchNode) = is_concurrent(ctx, resolve(ctx, lvl)) function getroot(node::FinchNode) if node.kind === virtual diff --git a/src/tensors/levels/atomicelementlevels.jl b/src/tensors/levels/atomicelementlevels.jl index 8fd809133..8741f4014 100644 --- a/src/tensors/levels/atomicelementlevels.jl +++ b/src/tensors/levels/atomicelementlevels.jl @@ -92,11 +92,11 @@ is_level_atomic(ctx, lvl::VirtualAtomicElementLevel) = ([true], true) function is_level_concurrent(ctx, lvl::VirtualAtomicLevel) return ([], true) end -num_indexable(lvl::VirtualAtomicElementLevel, ctx) = 0 +num_indexable(ctx, lvl::VirtualAtomicElementLevel) = 0 -lower(lvl::VirtualAtomicElementLevel, ctx::AbstractCompiler, ::DefaultStyle) = lvl.ex +lower(ctx::AbstractCompiler, lvl::VirtualAtomicElementLevel, ::DefaultStyle) = lvl.ex -function virtualize(ex, ::Type{AtomicElementLevel{D, Tv, Tp, Val}}, ctx, tag=:lvl) where {D, Tv, Tp, Val} +function virtualize(ctx, ex, ::Type{AtomicElementLevel{D, Tv, Tp, Val}}, tag=:lvl) where {D, Tv, Tp, Val} sym = freshen(ctx, tag) val = freshen(ctx, tag, :_val) push!(ctx.preamble, quote @@ -108,31 +108,31 @@ end Base.summary(lvl::VirtualAtomicElementLevel) = "AtomicElement($(lvl.D))" -virtual_level_resize!(lvl::VirtualAtomicElementLevel, ctx) = lvl -virtual_level_size(::VirtualAtomicElementLevel, ctx) = () -virtual_level_ndims(lvl::VirtualAtomicLevel, ctx) = length(virtual_level_size(lvl, ctx)) +virtual_level_resize!(ctx, lvl::VirtualAtomicElementLevel) = lvl +virtual_level_size(ctx, ::VirtualAtomicElementLevel) = () +virtual_level_ndims(ctx, lvl::VirtualAtomicLevel) = length(virtual_level_size(ctx, lvl)) virtual_level_eltype(lvl::VirtualAtomicElementLevel) = lvl.Tv virtual_level_default(lvl::VirtualAtomicElementLevel) = lvl.D postype(lvl::VirtualAtomicElementLevel) = lvl.Tp -function declare_level!(lvl::VirtualAtomicElementLevel, ctx, pos, init) +function declare_level!(ctx, lvl::VirtualAtomicElementLevel, pos, init) init == literal(lvl.D) || throw(FinchProtocolError("Cannot initialize Element Levels to non-default values (have $init expected $(lvl.D))")) lvl end -function freeze_level!(lvl::VirtualAtomicElementLevel, ctx::AbstractCompiler, pos) +function freeze_level!(ctx::AbstractCompiler, lvl::VirtualAtomicElementLevel, pos) push!(ctx.code.preamble, quote resize!($(lvl.val), $(ctx(pos))) end) return lvl end -thaw_level!(lvl::VirtualAtomicElementLevel, ctx::AbstractCompiler, pos) = lvl +thaw_level!(ctx::AbstractCompiler, lvl::VirtualAtomicElementLevel, pos) = lvl -function assemble_level!(lvl::VirtualAtomicElementLevel, ctx, pos_start, pos_stop) - pos_start = cache!(ctx, :pos_start, simplify(pos_start, ctx)) - pos_stop = cache!(ctx, :pos_stop, simplify(pos_stop, ctx)) +function assemble_level!(ctx, lvl::VirtualAtomicElementLevel, pos_start, pos_stop) + pos_start = cache!(ctx, :pos_start, simplify(ctx, pos_start)) + pos_stop = cache!(ctx, :pos_stop, simplify(ctx, pos_stop)) quote Finch.resize_if_smaller!($(lvl.val), $(ctx(pos_stop))) Finch.fill_range!($(lvl.val), $(lvl.D), $(ctx(pos_start)), $(ctx(pos_stop))) @@ -140,16 +140,16 @@ function assemble_level!(lvl::VirtualAtomicElementLevel, ctx, pos_start, pos_sto end supports_reassembly(::VirtualAtomicElementLevel) = true -function reassemble_level!(lvl::VirtualAtomicElementLevel, ctx, pos_start, pos_stop) - pos_start = cache!(ctx, :pos_start, simplify(pos_start, ctx)) - pos_stop = cache!(ctx, :pos_stop, simplify(pos_stop, ctx)) +function reassemble_level!(ctx, lvl::VirtualAtomicElementLevel, pos_start, pos_stop) + pos_start = cache!(ctx, :pos_start, simplify(ctx, pos_start)) + pos_stop = cache!(ctx, :pos_stop, simplify(ctx, pos_stop)) push!(ctx.code.preamble, quote Finch.fill_range!($(lvl.val), $(lvl.D), $(ctx(pos_start)), $(ctx(pos_stop))) end) lvl end -function virtual_moveto_level(lvl::VirtualAtomicElementLevel, ctx::AbstractCompiler, arch) +function virtual_moveto_level(ctx::AbstractCompiler, lvl::VirtualAtomicElementLevel, arch) val_2 = freshen(ctx.code, :val) push!(ctx.code.preamble, quote $val_2 = $(lvl.val) @@ -160,7 +160,7 @@ function virtual_moveto_level(lvl::VirtualAtomicElementLevel, ctx::AbstractCompi end) end -function instantiate(fbr::VirtualSubFiber{VirtualAtomicElementLevel}, ctx, mode::Reader, protos) +function instantiate(ctx, fbr::VirtualSubFiber{VirtualAtomicElementLevel}, mode::Reader, protos) (lvl, pos) = (fbr.lvl, fbr.pos) val = freshen(ctx.code, lvl.ex, :_val) return Thunk( @@ -171,12 +171,12 @@ function instantiate(fbr::VirtualSubFiber{VirtualAtomicElementLevel}, ctx, mode: ) end -function instantiate(fbr::VirtualSubFiber{VirtualAtomicElementLevel}, ctx, mode::Updater, protos) +function instantiate(ctx, fbr::VirtualSubFiber{VirtualAtomicElementLevel}, mode::Updater, protos) (lvl, pos) = (fbr.lvl, fbr.pos) VirtualScalar(nothing, lvl.Tv, lvl.D, gensym(), :($(lvl.val)[$(ctx(pos))])) end -function instantiate(fbr::VirtualHollowSubFiber{VirtualAtomicElementLevel}, ctx, mode::Updater, protos) +function instantiate(ctx, fbr::VirtualHollowSubFiber{VirtualAtomicElementLevel}, mode::Updater, protos) (lvl, pos) = (fbr.lvl, fbr.pos) VirtualSparseScalar(nothing, lvl.Tv, lvl.D, gensym(), :($(lvl.val)[$(ctx(pos))]), fbr.dirty) end \ No newline at end of file diff --git a/src/tensors/levels/separatelevels.jl b/src/tensors/levels/separatelevels.jl index 84f7a0133..fdfab51df 100644 --- a/src/tensors/levels/separatelevels.jl +++ b/src/tensors/levels/separatelevels.jl @@ -90,11 +90,11 @@ end postype(lvl:: VirtualSeparateLevel) = postype(lvl.lvl) is_level_injective(ctx, lvl::VirtualSeparateLevel) = [is_level_injective(ctx, lvl.lvl)..., true] -num_indexable(lvl::VirtualSeparateLevel, ctx) = virtual_level_ndims(lvl, ctx) - virtual_level_ndims(lvl.lvl, ctx) function is_level_atomic(ctx, lvl::VirtualSeparateLevel) (below, atomic) = is_level_atomic(ctx, lvl.lvl) return ([below; [atomic for _ in 1:num_indexable(ctx, lvl)]], atomic) end +num_indexable(ctx, lvl::VirtualSeparateLevel) = virtual_level_ndims(ctx, lvl) - virtual_level_ndims(ctx, lvl.lvl) function is_level_concurrent(ctx, lvl::VirtualSeparateLevel) (data, _) = is_level_concurrent(ctx, lvl.lvl) return (data, true) @@ -140,8 +140,8 @@ function virtual_moveto_level(ctx, lvl::VirtualSeparateLevel, arch) end -function declare_level!(lvl::VirtualSeparateLevel, ctx, pos, init) - #declare_level!(lvl.lvl, ctx_2, literal(1), init) +function declare_level!(ctx, lvl::VirtualSeparateLevel, pos, init) + #declare_level!(ctx_2, lvl.lvl, literal(1), init) return lvl end From 8efac90c3df90cea358faa877aa6fff39c1c1fed Mon Sep 17 00:00:00 2001 From: Willow Ahrens Date: Tue, 30 Apr 2024 18:34:40 -0400 Subject: [PATCH 38/41] update SingleRLE --- src/tensors/levels/sparseintervallevels.jl | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/tensors/levels/sparseintervallevels.jl b/src/tensors/levels/sparseintervallevels.jl index 490fb7f7d..4857fe064 100644 --- a/src/tensors/levels/sparseintervallevels.jl +++ b/src/tensors/levels/sparseintervallevels.jl @@ -143,18 +143,16 @@ mutable struct VirtualSparseIntervalLevel <: AbstractVirtualLevel prev_pos end -is_level_injective(ctx, lvl::VirtualSingleRLELevel) = [false, is_level_injective(ctx, lvl.lvl)...] -function is_level_atomic(ctx, lvl::VirtualSingleRLELevel) +is_level_injective(ctx, lvl::VirtualSparseIntervalLevel) = [false, is_level_injective(ctx, lvl.lvl)...] +function is_level_atomic(ctx, lvl::VirtualSparseIntervalLevel) (below, atomic) = is_level_atomic(ctx, lvl.lvl) return ([below; [atomic for _ in 1:num_indexable(ctx, lvl)]], atomic) end -function is_level_concurrent(ctx, lvl::VirtualSingleRLELevel) +function is_level_concurrent(ctx, lvl::VirtualSparseIntervalLevel) (data, concurrent) = is_level_concurrent(ctx, lvl.lvl) return ([data; [false for _ in 1:num_indexable(ctx, lvl)]], false) end -num_indexable(ctx, lvl::VirtualSingleRLELevel) = virtual_level_ndims(ctx, lvl) - virtual_level_ndims(ctx, lvl.lvl) - - +num_indexable(ctx, lvl::VirtualSparseIntervalLevel) = virtual_level_ndims(ctx, lvl) - virtual_level_ndims(ctx, lvl.lvl) function virtualize(ctx, ex, ::Type{SparseIntervalLevel{Ti, Ptr, Left, Right, Lvl}}, tag=:lvl) where {Ti, Ptr, Left, Right, Lvl} sym = freshen(ctx, tag) From f7f491f7c39a133404cb5b183f38c41b05b8ffc0 Mon Sep 17 00:00:00 2001 From: Willow Ahrens Date: Tue, 30 Apr 2024 18:37:49 -0400 Subject: [PATCH 39/41] fixes --- src/tensors/levels/denserlelevels.jl | 11 +++++++++-- src/tensors/levels/sparsebandlevels.jl | 10 +++++++++- src/tensors/levels/sparsepointlevels.jl | 8 ++++---- 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/src/tensors/levels/denserlelevels.jl b/src/tensors/levels/denserlelevels.jl index f5d3375ee..3d3c1490b 100644 --- a/src/tensors/levels/denserlelevels.jl +++ b/src/tensors/levels/denserlelevels.jl @@ -145,8 +145,15 @@ mutable struct VirtualDenseRLELevel <: AbstractVirtualLevel end is_level_injective(ctx, lvl::VirtualDenseRLELevel) = [false, is_level_injective(ctx, lvl.lvl)...] -is_level_concurrent(ctx, lvl::VirtualDenseRLELevel) = [false, is_level_concurrent(ctx, lvl.lvl)...] -is_level_atomic(ctx, lvl::VirtualDenseRLELevel) = false +function is_level_atomic(ctx, lvl::VirtualDenseRLELevel) + (below, atomic) = is_level_atomic(ctx, lvl.lvl) + return ([below; [atomic for _ in 1:num_indexable(ctx, lvl)]], atomic) +end +function is_level_concurrent(ctx, lvl::VirtualDenseRLELevel) + (data, _) = is_level_concurrent(ctx, lvl.lvl) + return ([data; [false for _ in 1:num_indexable(ctx, lvl)]], false) +end +num_indexable(ctx, lvl::VirtualDenseRLELevel) = virtual_level_ndims(ctx, lvl) - virtual_level_ndims(ctx, lvl.lvl) postype(lvl::VirtualDenseRLELevel) = postype(lvl.lvl) diff --git a/src/tensors/levels/sparsebandlevels.jl b/src/tensors/levels/sparsebandlevels.jl index d40c4db53..773b55cd3 100644 --- a/src/tensors/levels/sparsebandlevels.jl +++ b/src/tensors/levels/sparsebandlevels.jl @@ -137,7 +137,15 @@ mutable struct VirtualSparseBandLevel <: AbstractVirtualLevel end is_level_injective(ctx, lvl::VirtualSparseBandLevel) = [is_level_injective(ctx, lvl.lvl)..., false] -is_level_atomic(ctx, lvl::VirtualSparseBandLevel) = false +function is_level_atomic(ctx, lvl::VirtualSparseBandLevel) + (below, atomic) = is_level_atomic(ctx, lvl.lvl) + return ([below; [atomic for _ in 1:num_indexable(ctx, lvl)]], atomic) +end +function is_level_concurrent(ctx, lvl::VirtualSparseBandLevel) + (data, _) = is_level_concurrent(ctx, lvl.lvl) + return ([data; [false for _ in 1:num_indexable(ctx, lvl)]], false) +end +num_indexable(ctx, lvl::VirtualSparseBandLevel) = virtual_level_ndims(ctx, lvl) - virtual_level_ndims(ctx, lvl.lvl) postype(lvl::VirtualSparseBandLevel) = postype(lvl.lvl) diff --git a/src/tensors/levels/sparsepointlevels.jl b/src/tensors/levels/sparsepointlevels.jl index daffde510..417f494fa 100644 --- a/src/tensors/levels/sparsepointlevels.jl +++ b/src/tensors/levels/sparsepointlevels.jl @@ -141,17 +141,17 @@ mutable struct VirtualSparsePointLevel <: AbstractVirtualLevel prev_pos end -is_level_injective(ctx, lvl::VirtualSingleListLevel) = [is_level_injective(ctx, lvl.lvl)..., false] +is_level_injective(ctx, lvl::VirtualSparsePointLevel) = [is_level_injective(ctx, lvl.lvl)..., false] -function is_level_atomic(ctx, lvl::VirtualSingleListLevel) +function is_level_atomic(ctx, lvl::VirtualSparsePointLevel) (below, atomic) = is_level_atomic(ctx, lvl.lvl) return ([below; [atomic for _ in 1:num_indexable(ctx, lvl)]], atomic) end -function is_level_concurrent(ctx, lvl::VirtualSingleListLevel) +function is_level_concurrent(ctx, lvl::VirtualSparsePointLevel) (data, _) = is_level_concurrent(ctx, lvl.lvl) return ([data; [false for _ in 1:num_indexable(ctx, lvl)]], false) end -num_indexable(ctx, lvl::VirtualSingleListLevel) = virtual_level_ndims(ctx, lvl) - virtual_level_ndims(ctx, lvl.lvl) +num_indexable(ctx, lvl::VirtualSparsePointLevel) = virtual_level_ndims(ctx, lvl) - virtual_level_ndims(ctx, lvl.lvl) function virtualize(ctx, ex, ::Type{SparsePointLevel{Ti, Ptr, Idx, Lvl}}, tag=:lvl) where {Ti, Ptr, Idx, Lvl} sym = freshen(ctx, tag) From 063cf4c6e36e61bc37d1bd63a5e50a3b9c67bd95 Mon Sep 17 00:00:00 2001 From: Willow Ahrens Date: Tue, 30 Apr 2024 19:28:09 -0400 Subject: [PATCH 40/41] cool --- src/tensors/levels/atomicelementlevels.jl | 182 ---------------------- 1 file changed, 182 deletions(-) delete mode 100644 src/tensors/levels/atomicelementlevels.jl diff --git a/src/tensors/levels/atomicelementlevels.jl b/src/tensors/levels/atomicelementlevels.jl deleted file mode 100644 index 8741f4014..000000000 --- a/src/tensors/levels/atomicelementlevels.jl +++ /dev/null @@ -1,182 +0,0 @@ -""" - AtomicElementLevel{D, [Tv=typeof(D)], [Tp=Int], [Val]}() - -A subfiber of an element level is a scalar of type `Tv`, initialized to `D`. `D` -may optionally be given as the first argument. - -The data is stored in a vector -of type `Val` with `eltype(Val) = Tv`. The type `Ti` is the index type used to -access Val. - -```jldoctest -julia> Tensor(Dense(Element(0.0)), [1, 2, 3]) -Dense [1:3] -├─ [1]: 1.0 -├─ [2]: 2.0 -└─ [3]: 3.0 -``` -""" -struct AtomicElementLevel{D, Tv, Tp, Val, AVal <: AbstractVector} <: AbstractLevel - val::Val - locks::AVal -end -const Element = ElementLevel - -function ElementLevel(d, args...) - isbits(d) || throw(ArgumentError("Finch currently only supports isbits defaults")) - ElementLevel{d}(args...) -end -AtomicElementLevel{D}() where {D} = ElementLevel{D, typeof(D)}() -AtomicElementLevel{D}(val::Val) where {D, Val} = ElementLevel{D, eltype(Val)}(val) -AtomicElementLevel{D, Tv}(args...) where {D, Tv} = ElementLevel{D, Tv, Int}(args...) -AtomicElementLevel{D, Tv, Tp}() where {D, Tv, Tp} = ElementLevel{D, Tv, Tp}(Tv[]) - -AtomicElementLevel{D, Tv, Tp}(val::Val) where {D, Tv, Tp, Val} = ElementLevel{D, Tv, Tp, Val}(val) - -Base.summary(::AtomicElementLevel{D}) where {D} = "AtomicElementLevel($(D))" - -similar_level(::AtomicElementLevel{D, Tv, Tp}) where {D, Tv, Tp} = AtomicElementLevel{D, Tv, Tp}() - -postype(::Type{<:AtomicElementLevel{D, Tv, Tp}}) where {D, Tv, Tp} = Tp - -function moveto(lvl::ElementLevel{D, Tv, Tp}, device) where {D, Tv, Tp} - return ElementLevel{D, Tv, Tp}(moveto(lvl.val, device)) -end - -pattern!(lvl::AtomicElementLevel{D, Tv, Tp}) where {D, Tv, Tp} = - Pattern{Tp}() -redefault!(lvl::AtomicElementLevel{D, Tv, Tp}, init) where {D, Tv, Tp} = -AtomicElementLevel{init, Tv, Tp}(lvl.val) -Base.resize!(lvl::AtomicElementLevel) = lvl - -function Base.show(io::IO, lvl::AtomicElementLevel{D, Tv, Tp, Val}) where {D, Tv, Tp, Val} - print(io, "AtomicElement{") - show(io, D) - print(io, ", $Tv, $Tp}(") - if get(io, :compact, false) - print(io, "…") - else - show(io, lvl.val) - end - print(io, ")") -end - -labelled_show(io::IO, fbr::SubFiber{<:AtomicElementLevel}) = - print(io, fbr.lvl.val[fbr.pos]) - -@inline level_ndims(::Type{<:AtomicElementLevel}) = 0 -@inline level_size(::AtomicElementLevel) = () -@inline level_axes(::AtomicElementLevel) = () -@inline level_eltype(::Type{<:AtomicElementLevel{D, Tv}}) where {D, Tv} = Tv -@inline level_default(::Type{<:AtomicElementLevel{D}}) where {D} = D -data_rep_level(::Type{<:AtomicElementLevel{D, Tv}}) where {D, Tv} = ElementData(D, Tv) - -(fbr::Tensor{<:AtomicElementLevel})() = SubFiber(fbr.lvl, 1)() -function (fbr::SubFiber{<:AtomicElementLevel})() - q = fbr.pos - return fbr.lvl.val[q] -end - -countstored_level(lvl::AtomicElementLevel, pos) = pos - -mutable struct VirtualAtomicElementLevel <: AbstractVirtualLevel - ex - D - Tv - Tp - val -end - -is_level_injective(ctx, ::VirtualAtomicElementLevel) = [] -is_level_atomic(ctx, lvl::VirtualAtomicElementLevel) = ([true], true) -function is_level_concurrent(ctx, lvl::VirtualAtomicLevel) - return ([], true) -end -num_indexable(ctx, lvl::VirtualAtomicElementLevel) = 0 - -lower(ctx::AbstractCompiler, lvl::VirtualAtomicElementLevel, ::DefaultStyle) = lvl.ex - -function virtualize(ctx, ex, ::Type{AtomicElementLevel{D, Tv, Tp, Val}}, tag=:lvl) where {D, Tv, Tp, Val} - sym = freshen(ctx, tag) - val = freshen(ctx, tag, :_val) - push!(ctx.preamble, quote - $sym = $ex - $val = $ex.val - end) - VirtualAtomicElementLevel(sym, D, Tv, Tp, val) -end - -Base.summary(lvl::VirtualAtomicElementLevel) = "AtomicElement($(lvl.D))" - -virtual_level_resize!(ctx, lvl::VirtualAtomicElementLevel) = lvl -virtual_level_size(ctx, ::VirtualAtomicElementLevel) = () -virtual_level_ndims(ctx, lvl::VirtualAtomicLevel) = length(virtual_level_size(ctx, lvl)) -virtual_level_eltype(lvl::VirtualAtomicElementLevel) = lvl.Tv -virtual_level_default(lvl::VirtualAtomicElementLevel) = lvl.D - -postype(lvl::VirtualAtomicElementLevel) = lvl.Tp - -function declare_level!(ctx, lvl::VirtualAtomicElementLevel, pos, init) - init == literal(lvl.D) || throw(FinchProtocolError("Cannot initialize Element Levels to non-default values (have $init expected $(lvl.D))")) - lvl -end - -function freeze_level!(ctx::AbstractCompiler, lvl::VirtualAtomicElementLevel, pos) - push!(ctx.code.preamble, quote - resize!($(lvl.val), $(ctx(pos))) - end) - return lvl -end - -thaw_level!(ctx::AbstractCompiler, lvl::VirtualAtomicElementLevel, pos) = lvl - -function assemble_level!(ctx, lvl::VirtualAtomicElementLevel, pos_start, pos_stop) - pos_start = cache!(ctx, :pos_start, simplify(ctx, pos_start)) - pos_stop = cache!(ctx, :pos_stop, simplify(ctx, pos_stop)) - quote - Finch.resize_if_smaller!($(lvl.val), $(ctx(pos_stop))) - Finch.fill_range!($(lvl.val), $(lvl.D), $(ctx(pos_start)), $(ctx(pos_stop))) - end -end - -supports_reassembly(::VirtualAtomicElementLevel) = true -function reassemble_level!(ctx, lvl::VirtualAtomicElementLevel, pos_start, pos_stop) - pos_start = cache!(ctx, :pos_start, simplify(ctx, pos_start)) - pos_stop = cache!(ctx, :pos_stop, simplify(ctx, pos_stop)) - push!(ctx.code.preamble, quote - Finch.fill_range!($(lvl.val), $(lvl.D), $(ctx(pos_start)), $(ctx(pos_stop))) - end) - lvl -end - -function virtual_moveto_level(ctx::AbstractCompiler, lvl::VirtualAtomicElementLevel, arch) - val_2 = freshen(ctx.code, :val) - push!(ctx.code.preamble, quote - $val_2 = $(lvl.val) - $(lvl.val) = $moveto($(lvl.val), $(ctx(arch))) - end) - push!(ctx.code.epilogue, quote - $(lvl.val) = $val_2 - end) -end - -function instantiate(ctx, fbr::VirtualSubFiber{VirtualAtomicElementLevel}, mode::Reader, protos) - (lvl, pos) = (fbr.lvl, fbr.pos) - val = freshen(ctx.code, lvl.ex, :_val) - return Thunk( - preamble = quote - $val = $(lvl.val)[$(ctx(pos))] - end, - body = (ctx) -> VirtualScalar(nothing, lvl.Tv, lvl.D, gensym(), val) - ) -end - -function instantiate(ctx, fbr::VirtualSubFiber{VirtualAtomicElementLevel}, mode::Updater, protos) - (lvl, pos) = (fbr.lvl, fbr.pos) - VirtualScalar(nothing, lvl.Tv, lvl.D, gensym(), :($(lvl.val)[$(ctx(pos))])) -end - -function instantiate(ctx, fbr::VirtualHollowSubFiber{VirtualAtomicElementLevel}, mode::Updater, protos) - (lvl, pos) = (fbr.lvl, fbr.pos) - VirtualSparseScalar(nothing, lvl.Tv, lvl.D, gensym(), :($(lvl.val)[$(ctx(pos))]), fbr.dirty) -end \ No newline at end of file From b5a7f521514b2f8274f55c3e8df51840f4586ea7 Mon Sep 17 00:00:00 2001 From: Willow Ahrens Date: Tue, 30 Apr 2024 20:00:35 -0400 Subject: [PATCH 41/41] remove num_indexable --- src/tensors/levels/atomiclevels.jl | 2 -- src/tensors/levels/denselevels.jl | 6 ++---- src/tensors/levels/denserlelevels.jl | 5 ++--- src/tensors/levels/elementlevels.jl | 1 - src/tensors/levels/patternlevels.jl | 2 -- src/tensors/levels/repeatrlelevels.jl | 3 +-- src/tensors/levels/separatelevels.jl | 5 ++--- src/tensors/levels/sparsebandlevels.jl | 5 ++--- src/tensors/levels/sparsebytemaplevels.jl | 5 ++--- src/tensors/levels/sparsecoolevels.jl | 6 ++---- src/tensors/levels/sparsehashlevels.jl | 6 ++---- src/tensors/levels/sparseintervallevels.jl | 5 ++--- src/tensors/levels/sparselevels.jl | 6 ++---- src/tensors/levels/sparselistlevels.jl | 6 ++---- src/tensors/levels/sparsepointlevels.jl | 5 ++--- src/tensors/levels/sparserlelevels.jl | 6 ++---- src/tensors/levels/sparsetrianglelevels.jl | 6 ++---- src/tensors/levels/sparsevbllevels.jl | 5 ++--- 18 files changed, 29 insertions(+), 56 deletions(-) diff --git a/src/tensors/levels/atomiclevels.jl b/src/tensors/levels/atomiclevels.jl index 597fea6d7..8c61a03b7 100644 --- a/src/tensors/levels/atomiclevels.jl +++ b/src/tensors/levels/atomiclevels.jl @@ -102,8 +102,6 @@ function is_level_atomic(ctx, lvl::VirtualAtomicLevel) (below, _) = is_level_atomic(ctx, lvl.lvl) return (below, true) end -num_indexable(ctx, lvl::VirtualAtomicLevel) = virtual_level_ndims(ctx, lvl) - virtual_level_ndims(ctx, lvl.lvl) - function lower(ctx::AbstractCompiler, lvl::VirtualAtomicLevel, ::DefaultStyle) quote diff --git a/src/tensors/levels/denselevels.jl b/src/tensors/levels/denselevels.jl index fe2aa1bbb..e453b6f99 100644 --- a/src/tensors/levels/denselevels.jl +++ b/src/tensors/levels/denselevels.jl @@ -109,14 +109,12 @@ end is_level_injective(ctx, lvl::VirtualDenseLevel) = [is_level_injective(ctx, lvl.lvl)..., true] function is_level_atomic(ctx, lvl::VirtualDenseLevel) (data, atomic) = is_level_atomic(ctx, lvl.lvl) - return ([data; [atomic for _ in 1:num_indexable(ctx, lvl)]], atomic) + return ([data; atomic], atomic) end function is_level_concurrent(ctx, lvl::VirtualDenseLevel) (data, concurrent) = is_level_concurrent(ctx, lvl.lvl) - return ([data; [concurrent for _ in 1:num_indexable(ctx, lvl)]], concurrent) + return ([data; concurrent], concurrent) end -num_indexable(ctx, lvl::VirtualDenseLevel) = virtual_level_ndims(ctx, lvl) - virtual_level_ndims(ctx, lvl.lvl) - function virtualize(ctx, ex, ::Type{DenseLevel{Ti, Lvl}}, tag=:lvl) where {Ti, Lvl} sym = freshen(ctx, tag) diff --git a/src/tensors/levels/denserlelevels.jl b/src/tensors/levels/denserlelevels.jl index 3d3c1490b..3eea56d3e 100644 --- a/src/tensors/levels/denserlelevels.jl +++ b/src/tensors/levels/denserlelevels.jl @@ -147,13 +147,12 @@ end is_level_injective(ctx, lvl::VirtualDenseRLELevel) = [false, is_level_injective(ctx, lvl.lvl)...] function is_level_atomic(ctx, lvl::VirtualDenseRLELevel) (below, atomic) = is_level_atomic(ctx, lvl.lvl) - return ([below; [atomic for _ in 1:num_indexable(ctx, lvl)]], atomic) + return ([below; [atomic]], atomic) end function is_level_concurrent(ctx, lvl::VirtualDenseRLELevel) (data, _) = is_level_concurrent(ctx, lvl.lvl) - return ([data; [false for _ in 1:num_indexable(ctx, lvl)]], false) + return ([data; [false]], false) end -num_indexable(ctx, lvl::VirtualDenseRLELevel) = virtual_level_ndims(ctx, lvl) - virtual_level_ndims(ctx, lvl.lvl) postype(lvl::VirtualDenseRLELevel) = postype(lvl.lvl) diff --git a/src/tensors/levels/elementlevels.jl b/src/tensors/levels/elementlevels.jl index e2dafe95a..dbe1fe284 100644 --- a/src/tensors/levels/elementlevels.jl +++ b/src/tensors/levels/elementlevels.jl @@ -92,7 +92,6 @@ is_level_atomic(ctx, lvl::VirtualElementLevel) = ([false], false) function is_level_concurrent(ctx, lvl::VirtualElementLevel) return ([], true) end -num_indexable(ctx, lvl::VirtualElementLevel) = 0 lower(ctx::AbstractCompiler, lvl::VirtualElementLevel, ::DefaultStyle) = lvl.ex diff --git a/src/tensors/levels/patternlevels.jl b/src/tensors/levels/patternlevels.jl index ddaec8ee1..d9401e0b3 100644 --- a/src/tensors/levels/patternlevels.jl +++ b/src/tensors/levels/patternlevels.jl @@ -89,8 +89,6 @@ is_level_atomic(ctx, lvl::VirtualPatternLevel) = ([false], false) function is_level_concurrent(ctx, lvl::VirtualPatternLevel) return ([], true) end -num_indexable(ctx, lvl::VirtualPatternLevel) = 0 - lower(ctx::AbstractCompiler, lvl::VirtualPatternLevel, ::DefaultStyle) = :(PatternLevel()) virtualize(ctx, ex, ::Type{PatternLevel{Tp}}) where {Tp} = VirtualPatternLevel(Tp) diff --git a/src/tensors/levels/repeatrlelevels.jl b/src/tensors/levels/repeatrlelevels.jl index 96a8407c7..fd69fac41 100644 --- a/src/tensors/levels/repeatrlelevels.jl +++ b/src/tensors/levels/repeatrlelevels.jl @@ -136,9 +136,8 @@ end is_level_injective(ctx, ::VirtualRepeatRLELevel) = [false] is_level_atomic(ctx, lvl::VirtualRepeatRLELevel) = ([false], false) function is_level_concurrent(ctx, lvl::VirtualRepeatRLELevel) - return ([false for _ in 1:num_indexable(ctx, lvl)], false) + return ([false], false) end -num_indexable(ctx, lvl::VirtualRepeatRLELevel) = length(lvl.shape) function virtualize(ctx, ex, ::Type{RepeatRLELevel{D, Ti, Tp, Tv, Ptr, Idx, Val}}, tag=:lvl) where {D, Ti, Tp, Tv, Ptr, Idx, Val} sym = freshen(ctx, tag) diff --git a/src/tensors/levels/separatelevels.jl b/src/tensors/levels/separatelevels.jl index fdfab51df..c815ebd25 100644 --- a/src/tensors/levels/separatelevels.jl +++ b/src/tensors/levels/separatelevels.jl @@ -92,9 +92,8 @@ postype(lvl:: VirtualSeparateLevel) = postype(lvl.lvl) is_level_injective(ctx, lvl::VirtualSeparateLevel) = [is_level_injective(ctx, lvl.lvl)..., true] function is_level_atomic(ctx, lvl::VirtualSeparateLevel) (below, atomic) = is_level_atomic(ctx, lvl.lvl) - return ([below; [atomic for _ in 1:num_indexable(ctx, lvl)]], atomic) + return ([below; [atomic]], atomic) end -num_indexable(ctx, lvl::VirtualSeparateLevel) = virtual_level_ndims(ctx, lvl) - virtual_level_ndims(ctx, lvl.lvl) function is_level_concurrent(ctx, lvl::VirtualSeparateLevel) (data, _) = is_level_concurrent(ctx, lvl.lvl) return (data, true) @@ -141,7 +140,7 @@ end function declare_level!(ctx, lvl::VirtualSeparateLevel, pos, init) - #declare_level!(ctx_2, lvl.lvl, literal(1), init) + #declare_level!(lvl.lvl, ctx_2, literal(1), init) return lvl end diff --git a/src/tensors/levels/sparsebandlevels.jl b/src/tensors/levels/sparsebandlevels.jl index 773b55cd3..cb44c7e60 100644 --- a/src/tensors/levels/sparsebandlevels.jl +++ b/src/tensors/levels/sparsebandlevels.jl @@ -139,13 +139,12 @@ end is_level_injective(ctx, lvl::VirtualSparseBandLevel) = [is_level_injective(ctx, lvl.lvl)..., false] function is_level_atomic(ctx, lvl::VirtualSparseBandLevel) (below, atomic) = is_level_atomic(ctx, lvl.lvl) - return ([below; [atomic for _ in 1:num_indexable(ctx, lvl)]], atomic) + return ([below; [atomic]], atomic) end function is_level_concurrent(ctx, lvl::VirtualSparseBandLevel) (data, _) = is_level_concurrent(ctx, lvl.lvl) - return ([data; [false for _ in 1:num_indexable(ctx, lvl)]], false) + return ([data; [false]], false) end -num_indexable(ctx, lvl::VirtualSparseBandLevel) = virtual_level_ndims(ctx, lvl) - virtual_level_ndims(ctx, lvl.lvl) postype(lvl::VirtualSparseBandLevel) = postype(lvl.lvl) diff --git a/src/tensors/levels/sparsebytemaplevels.jl b/src/tensors/levels/sparsebytemaplevels.jl index 8599f4396..c0b1fbf07 100644 --- a/src/tensors/levels/sparsebytemaplevels.jl +++ b/src/tensors/levels/sparsebytemaplevels.jl @@ -142,13 +142,12 @@ end is_level_injective(ctx, lvl::VirtualSparseByteMapLevel) = [is_level_injective(ctx, lvl.lvl)..., false] function is_level_atomic(ctx, lvl::VirtualSparseByteMapLevel) (below, atomic) = is_level_atomic(ctx, lvl.lvl) - return ([below; [atomic for _ in 1:num_indexable(ctx, lvl)]], atomic) + return ([below; [atomic]], atomic) end function is_level_concurrent(ctx, lvl::VirtualSparseByteMapLevel) (data, _) = is_level_concurrent(ctx, lvl.lvl) - return ([data; [false for _ in 1:num_indexable(ctx, lvl)]], false) + return ([data; [false]], false) end -num_indexable(ctx, lvl::VirtualSparseByteMapLevel) = virtual_level_ndims(ctx, lvl) - virtual_level_ndims(ctx, lvl.lvl) function virtualize(ctx, ex, ::Type{SparseByteMapLevel{Ti, Ptr, Tbl, Srt, Lvl}}, tag=:lvl) where {Ti, Ptr, Tbl, Srt, Lvl} sym = freshen(ctx, tag) diff --git a/src/tensors/levels/sparsecoolevels.jl b/src/tensors/levels/sparsecoolevels.jl index 3c09243f2..c676a80f8 100644 --- a/src/tensors/levels/sparsecoolevels.jl +++ b/src/tensors/levels/sparsecoolevels.jl @@ -156,14 +156,12 @@ end is_level_injective(ctx, lvl::VirtualSparseCOOLevel) = [is_level_injective(ctx, lvl.lvl)..., (true for _ in 1:lvl.N)...] function is_level_atomic(ctx, lvl::VirtualSparseCOOLevel) (below, atomic) = is_level_atomic(ctx, lvl.lvl) - return ([below; [atomic for _ in 1:num_indexable(ctx, lvl)]], atomic) + return ([below; [atomic for _ in 1:lvl.N]], atomic) end function is_level_concurrent(ctx, lvl::VirtualSparseCOOLevel) (data, _) = is_level_concurrent(ctx, lvl.lvl) - return ([data; [false for _ in 1:num_indexable(ctx, lvl)]], false) + return ([data; [false for _ in 1:lvl.N]], false) end -num_indexable(ctx, lvl::VirtualSparseCOOLevel) = virtual_level_ndims(ctx, lvl) - virtual_level_ndims(ctx, lvl.lvl) - function virtualize(ctx, ex, ::Type{SparseCOOLevel{N, TI, Ptr, Tbl, Lvl}}, tag=:lvl) where {N, TI, Ptr, Tbl, Lvl} sym = freshen(ctx, tag) diff --git a/src/tensors/levels/sparsehashlevels.jl b/src/tensors/levels/sparsehashlevels.jl index e5bbf164a..0647307b8 100644 --- a/src/tensors/levels/sparsehashlevels.jl +++ b/src/tensors/levels/sparsehashlevels.jl @@ -172,14 +172,12 @@ end is_level_injective(ctx, lvl::VirtualSparseHashLevel) = [is_level_injective(ctx, lvl.lvl)..., (true for _ in 1:lvl.N)...] function is_level_atomic(ctx, lvl::VirtualSparseHashLevel) (below, atomic) = is_level_atomic(ctx, lvl.lvl) - return ([below; [atomic for _ in 1:num_indexable(ctx, lvl)]], atomic) + return ([below; [atomic for _ in 1:lvl.N]], atomic) end function is_level_concurrent(ctx, lvl::VirtualSparseHashLevel) (data, _) = is_level_concurrent(ctx, lvl.lvl) - return ([data; [false for _ in 1:num_indexable(ctx, lvl)]], false) + return ([data; [false for _ in 1:lvl.N]], false) end -num_indexable(ctx, lvl::VirtualSparseHashLevel) = virtual_level_ndims(ctx, lvl) - virtual_level_ndims(ctx, lvl.lvl) - is_level_injective(ctx, lvl::VirtualSparseHashLevel) = [is_level_injective(ctx, lvl.lvl)..., (true for _ in 1:lvl.N)...] is_level_atomic(ctx, lvl::VirtualSparseHashLevel) = false diff --git a/src/tensors/levels/sparseintervallevels.jl b/src/tensors/levels/sparseintervallevels.jl index 4857fe064..fe4c1e4c9 100644 --- a/src/tensors/levels/sparseintervallevels.jl +++ b/src/tensors/levels/sparseintervallevels.jl @@ -146,13 +146,12 @@ end is_level_injective(ctx, lvl::VirtualSparseIntervalLevel) = [false, is_level_injective(ctx, lvl.lvl)...] function is_level_atomic(ctx, lvl::VirtualSparseIntervalLevel) (below, atomic) = is_level_atomic(ctx, lvl.lvl) - return ([below; [atomic for _ in 1:num_indexable(ctx, lvl)]], atomic) + return ([below; [atomic]], atomic) end function is_level_concurrent(ctx, lvl::VirtualSparseIntervalLevel) (data, concurrent) = is_level_concurrent(ctx, lvl.lvl) - return ([data; [false for _ in 1:num_indexable(ctx, lvl)]], false) + return ([data; [false]], false) end -num_indexable(ctx, lvl::VirtualSparseIntervalLevel) = virtual_level_ndims(ctx, lvl) - virtual_level_ndims(ctx, lvl.lvl) function virtualize(ctx, ex, ::Type{SparseIntervalLevel{Ti, Ptr, Left, Right, Lvl}}, tag=:lvl) where {Ti, Ptr, Left, Right, Lvl} sym = freshen(ctx, tag) diff --git a/src/tensors/levels/sparselevels.jl b/src/tensors/levels/sparselevels.jl index 77682eae3..505dd7bf9 100644 --- a/src/tensors/levels/sparselevels.jl +++ b/src/tensors/levels/sparselevels.jl @@ -256,15 +256,13 @@ end is_level_injective(ctx, lvl::VirtualSparseLevel) = [is_level_injective(ctx, lvl.lvl)..., false] function is_level_atomic(ctx, lvl::VirtualSparseLevel) (below, atomic) = is_level_atomic(ctx, lvl.lvl) - return ([below; [atomic for _ in 1:num_indexable(ctx, lvl)]], atomic) + return ([below; [atomic]], atomic) end function is_level_concurrent(ctx, lvl::VirtualSparseLevel) (data, _) = is_level_concurrent(ctx, lvl.lvl) #FIXME: - return ([data; [false for _ in 1:num_indexable(ctx, lvl)]], false) + return ([data; [false]], false) end -num_indexable(ctx, lvl::VirtualSparseLevel) = virtual_level_ndims(ctx, lvl) - virtual_level_ndims(ctx, lvl.lvl) - function virtualize(ctx, ex, ::Type{SparseLevel{Ti, Tbl, Lvl}}, tag=:lvl) where {Ti, Tbl, Lvl} sym = freshen(ctx, tag) diff --git a/src/tensors/levels/sparselistlevels.jl b/src/tensors/levels/sparselistlevels.jl index fe0f9af92..ae2e9e260 100644 --- a/src/tensors/levels/sparselistlevels.jl +++ b/src/tensors/levels/sparselistlevels.jl @@ -140,14 +140,12 @@ end is_level_injective(ctx, lvl::VirtualSparseListLevel) = [is_level_injective(ctx, lvl.lvl)..., false] function is_level_atomic(ctx, lvl::VirtualSparseListLevel) (below, atomic) = is_level_atomic(ctx, lvl.lvl) - return ([below; [atomic for _ in 1:num_indexable(ctx, lvl)]], atomic) + return ([below; [atomic]], atomic) end function is_level_concurrent(ctx, lvl::VirtualSparseListLevel) (data, _) = is_level_concurrent(ctx, lvl.lvl) - return ([data; [false for _ in 1:num_indexable(ctx, lvl)]], false) + return ([data; [false]], false) end -num_indexable(ctx, lvl::VirtualSparseListLevel) = virtual_level_ndims(ctx, lvl) - virtual_level_ndims(ctx, lvl.lvl) - function virtualize(ctx, ex, ::Type{SparseListLevel{Ti, Ptr, Idx, Lvl}}, tag=:lvl) where {Ti, Ptr, Idx, Lvl} sym = freshen(ctx, tag) diff --git a/src/tensors/levels/sparsepointlevels.jl b/src/tensors/levels/sparsepointlevels.jl index 417f494fa..66da669fb 100644 --- a/src/tensors/levels/sparsepointlevels.jl +++ b/src/tensors/levels/sparsepointlevels.jl @@ -145,13 +145,12 @@ is_level_injective(ctx, lvl::VirtualSparsePointLevel) = [is_level_injective(ctx, function is_level_atomic(ctx, lvl::VirtualSparsePointLevel) (below, atomic) = is_level_atomic(ctx, lvl.lvl) - return ([below; [atomic for _ in 1:num_indexable(ctx, lvl)]], atomic) + return ([below; [atomic]], atomic) end function is_level_concurrent(ctx, lvl::VirtualSparsePointLevel) (data, _) = is_level_concurrent(ctx, lvl.lvl) - return ([data; [false for _ in 1:num_indexable(ctx, lvl)]], false) + return ([data; [false]], false) end -num_indexable(ctx, lvl::VirtualSparsePointLevel) = virtual_level_ndims(ctx, lvl) - virtual_level_ndims(ctx, lvl.lvl) function virtualize(ctx, ex, ::Type{SparsePointLevel{Ti, Ptr, Idx, Lvl}}, tag=:lvl) where {Ti, Ptr, Idx, Lvl} sym = freshen(ctx, tag) diff --git a/src/tensors/levels/sparserlelevels.jl b/src/tensors/levels/sparserlelevels.jl index fc8c1e21d..9b385d2ad 100644 --- a/src/tensors/levels/sparserlelevels.jl +++ b/src/tensors/levels/sparserlelevels.jl @@ -148,14 +148,12 @@ end is_level_injective(ctx, lvl::VirtualSparseRLELevel) = [false, is_level_injective(ctx, lvl.lvl)...] function is_level_atomic(ctx, lvl::VirtualSparseRLELevel) (below, atomic) = is_level_atomic(ctx, lvl.lvl) - return ([below; [atomic for _ in 1:num_indexable(ctx, lvl)]], atomic) + return ([below; [atomic]], atomic) end function is_level_concurrent(ctx, lvl::VirtualSparseRLELevel) (data, _) = is_level_concurrent(ctx, lvl.lvl) - return ([data; [false for _ in 1:num_indexable(ctx, lvl)]], false) + return ([data; [false]], false) end -num_indexable(ctx, lvl::VirtualSparseRLELevel) = virtual_level_ndims(ctx, lvl) - virtual_level_ndims(ctx, lvl.lvl) - postype(lvl::VirtualSparseRLELevel) = postype(lvl.lvl) diff --git a/src/tensors/levels/sparsetrianglelevels.jl b/src/tensors/levels/sparsetrianglelevels.jl index 0db87fb79..00a1b0ccf 100644 --- a/src/tensors/levels/sparsetrianglelevels.jl +++ b/src/tensors/levels/sparsetrianglelevels.jl @@ -113,14 +113,12 @@ end is_level_injective(ctx, lvl::VirtualSparseTriangleLevel) = [is_level_injective(ctx, lvl.lvl)..., (true for _ in 1:lvl.N)...] function is_level_atomic(ctx, lvl::VirtualSparseTriangleLevel) (below, atomic) = is_level_atomic(ctx, lvl.lvl) - return ([below; [atomic for _ in 1:num_indexable(ctx, lvl)]], atomic) + return ([below; [lvl.N]], atomic) end function is_level_concurrent(ctx, lvl::VirtualSparseTriangleLevel) (data, _) = is_level_concurrent(ctx, lvl.lvl) - return ([data; [false for _ in 1:num_indexable(ctx, lvl)]], false) + return ([data; [lvl.N]], false) end -num_indexable(ctx, lvl::VirtualSparseTriangleLevel) = virtual_level_ndims(ctx, lvl) - virtual_level_ndims(ctx, lvl.lvl) - postype(lvl::VirtualSparseTriangleLevel) = postype(lvl.lvl) diff --git a/src/tensors/levels/sparsevbllevels.jl b/src/tensors/levels/sparsevbllevels.jl index 6b33f0316..35bb0941a 100644 --- a/src/tensors/levels/sparsevbllevels.jl +++ b/src/tensors/levels/sparsevbllevels.jl @@ -148,12 +148,11 @@ end is_level_injective(ctx, lvl::VirtualSparseVBLLevel) = [is_level_injective(ctx, lvl.lvl)..., false] function is_level_atomic(ctx, lvl::VirtualSparseVBLLevel) (below, atomic) = is_level_atomic(ctx, lvl.lvl) - return ([below; [atomic for _ in 1:num_indexable(ctx, lvl)]], atomic) + return ([below; [atomic]], atomic) end -num_indexable(ctx, lvl::VirtualSparseVBLLevel) = virtual_level_ndims(ctx, lvl) - virtual_level_ndims(ctx, lvl.lvl) function is_level_concurrent(ctx, lvl::VirtualSparseVBLLevel) (data, _) = is_level_concurrent(ctx, lvl.lvl) - return ([data; [false for _ in 1:num_indexable(ctx, lvl)]], false) + return ([data; [false]], false) end postype(lvl::VirtualSparseVBLLevel) = postype(lvl.lvl)